From 018491788381e16917fa584acc6a5296eb160b39 Mon Sep 17 00:00:00 2001 From: Atvaark Date: Sat, 7 Mar 2015 15:45:52 +0100 Subject: [PATCH] Initial commit Initial commit Added the license file --- .gitattributes | 63 ++++ .gitignore | 189 +++++++++++ .../DarkSoulsII.DebugView.Core.csproj | 306 ++++++++++++++++++ .../DarkSoulsII/App/Graphics/DrawDevice.cs | 19 ++ .../App/Graphics/Filters/AppBlackOutFilter.cs | 10 + .../App/Graphics/Filters/AppFogFilter.cs | 25 ++ .../App/Graphics/Filters/AppLightFilter.cs | 10 + .../Graphics/Filters/AppVignettingFilter.cs | 10 + .../Graphics/Filters/AppVolumeFogFilter.cs | 10 + .../App/Graphics/Filters/GxLensFlareFilter.cs | 10 + .../Filters/GxLensSimulationFilter.cs | 10 + .../App/Graphics/Filters/GxToneMapFilter.cs | 10 + .../App/Graphics/KatanaDrawDeviceContainer.cs | 13 + .../App/Graphics/KatanaDrawSystem.cs | 29 ++ .../DarkSoulsII/App/Graphics/Surface.cs | 10 + .../DarkSoulsII/App/KatanaMainApp.cs | 18 ++ .../DarkSoulsII/App/MainApp.cs | 10 + .../DarkSoulsII/Camera/CameraOperator.cs | 16 + .../DarkSoulsII/Camera/CameraOperatorType.cs | 16 + .../Camera/Operators/ActionCameraOperator.cs | 11 + .../Camera/Operators/DefaultCameraOperator.cs | 11 + .../Camera/Operators/DemoCameraOperator.cs | 11 + .../Camera/Operators/EventCameraOperator.cs | 11 + .../Operators/ExFollowCameraOperator.cs | 11 + .../Operators/FallDeadCameraOperator.cs | 11 + .../Camera/Operators/FreeCameraOperator.cs | 11 + .../Operators/FreeOrthoCameraOperator.cs | 11 + .../Operators/GrapplerCameraOperator.cs | 11 + .../Camera/Operators/IngameCameraOperator.cs | 11 + .../Camera/Operators/MenuCameraOperator.cs | 11 + .../Camera/Operators/NormalCameraOperator.cs | 11 + .../Camera/Operators/OrthoCameraOperator.cs | 11 + .../Operators/PerspectiveCameraOperator.cs | 11 + .../Camera/Operators/PlayerCameraOperator.cs | 11 + .../Operators/SubjectiveCameraOperator.cs | 11 + .../Operators/TransitionCameraOperator.cs | 36 +++ .../DarkSoulsII/Character/CharacterType.cs | 12 + .../DarkSoulsII/Character/ChrAsmCtrl.cs | 13 + .../Character/ChrAsmCtrlEquipment.cs | 58 ++++ .../Equipment/ChrAsmCtrlEquipmentAmmo.cs | 16 + .../Equipment/ChrAsmCtrlEquipmentArmor.cs | 14 + .../Equipment/ChrAsmCtrlEquipmentRing.cs | 15 + .../Equipment/ChrAsmCtrlEquipmentWeapon.cs | 19 ++ .../Character/Equipment/WeaponInfusion.cs | 16 + .../DarkSoulsII/Character/PlayerData.cs | 67 ++++ .../DarkSoulsII/Controllers/ActiveSignCtrl.cs | 28 ++ .../Controllers/MapTextureResolutionCtrl.cs | 10 + .../Controllers/SignKeyGuideCtrl.cs | 15 + .../Controllers/SignPreviewCtrl.cs | 10 + .../DarkSoulsII/Drawing/MapTexture.cs | 11 + .../DarkSoulsII/Drawing/MdlTexture.cs | 10 + .../DarkSoulsII/Events/MapObjectBonfire.cs | 22 ++ .../DarkSoulsII/GameData/CharacterSlotData.cs | 17 + .../DarkSoulsII/GameData/PlayerClass.cs | 17 + .../DarkSoulsII/GameData/SaveSlotData.cs | 13 + .../DarkSoulsII/GameData/UserData000.cs | 13 + .../GameObjects/GameEntities/CharacterCtrl.cs | 60 ++++ .../GameEntities/CharacterCtrlBase.cs | 22 ++ .../GameEntities/CharacterGlowEffectType.cs | 7 + .../GameEntities/CharacterVisualState.cs | 22 ++ .../Components/GameEntityComponent.cs | 10 + .../GameEntities/DemoCharacterCtrl.cs | 19 ++ .../GameObjects/GameEntities/GameEntity.cs | 12 + .../GameObjects/GameEntities/MapEntity.cs | 20 ++ .../GameObjects/GameEntities/PlayerCtrl.cs | 20 ++ .../GameEntities/SignKeyGuideEntity.cs | 13 + .../DarkSoulsII/GameObjects/GameObject.cs | 10 + .../DarkSoulsII/Managers/Ai/AiManager.cs | 10 + .../Managers/App/AppDecalManager.cs | 11 + .../Managers/App/AppResourceManager.cs | 10 + .../Managers/Bullet/BulletManager.cs | 11 + .../DarkSoulsII/Managers/CameraManager.cs | 33 ++ .../Managers/Character/CharacterManager.cs | 52 +++ .../Managers/Character/ChrTextureManager.cs | 10 + .../DarkSoulsII/Managers/Demo/DemoManager.cs | 11 + .../Managers/Event/EventBonfireManager.cs | 30 ++ .../Managers/Event/EventFlagManager.cs | 11 + .../Managers/Event/EventManager.cs | 18 ++ .../DarkSoulsII/Managers/FaceGenManager.cs | 11 + .../DarkSoulsII/Managers/GameDataManager.cs | 21 ++ .../DarkSoulsII/Managers/GameManager.cs | 10 + .../DarkSoulsII/Managers/GameManagerImpl.cs | 59 ++++ .../DarkSoulsII/Managers/GameManagerState.cs | 38 +++ .../Managers/Input/RumbleManager.cs | 11 + .../Managers/Map/MapAreaManager.cs | 34 ++ .../Managers/Map/MapChameleonAreaManager.cs | 16 + .../Managers/Map/MapItemPackManager.cs | 15 + .../DarkSoulsII/Managers/Map/MapManager.cs | 28 ++ .../Managers/Map/MapTextureManager.cs | 20 ++ .../Map/MapTextureResolutionManager.cs | 15 + .../Managers/Map/MapWindManager.cs | 19 ++ .../Managers/Network/NetEnemyManager.cs | 10 + .../Managers/Network/NetLatencyManager.cs | 10 + .../Managers/Network/NetParamContainer.cs | 10 + .../Managers/Network/NetPlayerWatcher.cs | 10 + .../Managers/Network/NetSessionManager.cs | 17 + .../Network/NetSummonSlotAreaManager.cs | 13 + .../Managers/Network/NetSummonSlotManager.cs | 25 ++ .../Network/NetSvrBloodMessageManager.cs | 10 + .../Network/NetSvrBloodstainManager.cs | 10 + .../Managers/Network/NetSvrBreakInManager.cs | 10 + .../Managers/Network/NetSvrDuelManager.cs | 10 + .../Managers/Network/NetSvrGhostManager.cs | 10 + .../Managers/Network/NetSvrLoginManager.cs | 10 + .../Managers/Network/NetSvrManager.cs | 43 +++ .../Managers/Network/NetSvrPlayerManager.cs | 10 + .../Network/NetSvrPreviewChrManager.cs | 10 + .../Network/NetSvrStateChartManager.cs | 10 + .../Network/NetSvrSummonSignManager.cs | 10 + .../Managers/Network/NetSvrVisitorManager.cs | 10 + .../Managers/Network/NetSyncDataManager.cs | 10 + .../Managers/Network/NetworkManager.cs | 26 ++ .../Managers/Sign/ActiveSignManager.cs | 36 +++ .../Managers/Sign/SignEventAreaManager.cs | 10 + .../DarkSoulsII/Managers/Sign/SignManager.cs | 24 ++ .../Managers/Sign/SignSetCtrlManager.cs | 10 + .../DarkSoulsII/Map/Area/MapAreaCtrlOwner.cs | 13 + .../DarkSoulsII/Map/Area/MapChameleonArea.cs | 28 ++ .../Map/Area/MapChameleonAreaData.cs | 37 +++ .../DarkSoulsII/Map/Item/MapItem.cs | 31 ++ .../DarkSoulsII/Map/Item/MapItemListType.cs | 26 ++ .../DarkSoulsII/Map/Item/MapItemPack.cs | 60 ++++ .../DarkSoulsII/Map/Item/MapItemPackTable.cs | 27 ++ .../DarkSoulsII/Map/MapWorldList.cs | 10 + .../Map/Wind/MapModelWindReactor.cs | 10 + .../DarkSoulsII/Map/Wind/MapPointWind.cs | 18 ++ .../Map/Wind/MapTargetDirectionalWind.cs | 11 + .../DarkSoulsII/Map/Wind/MapWind.cs | 10 + .../Network/NetPlayerSyncObject.cs | 10 + .../DarkSoulsII/Network/NetSummonSlot.cs | 19 ++ .../DarkSoulsII/Network/NetSummonSlotCtrl.cs | 10 + .../Network/NetSvrClientInterface.cs | 10 + .../DarkSoulsII/Network/NetSvrJobRunner.cs | 10 + .../DarkSoulsII/Network/NetSvrMemory.cs | 10 + .../DarkSoulsII/Network/NetSvrProperties.cs | 10 + .../DarkSoulsII/Network/ServerInfo.cs | 12 + .../Resources/FileResourceObject.cs | 17 + .../DarkSoulsII/Resources/Memory.cs | 17 + .../Param/Character/ArmorHandsUpFParam.cs | 10 + .../Resources/Param/Character/ArmorParam.cs | 10 + .../Param/Character/ArmorReinforceParam.cs | 10 + .../Resources/Param/Character/ArrowParam.cs | 10 + .../Param/Character/BehaviorParam.cs | 10 + .../Param/Character/BossEnemyGenerateParam.cs | 10 + .../Resources/Param/Character/BossParam.cs | 10 + .../Param/Character/BossPartsModelParam.cs | 10 + .../Param/Character/BossPartsParam.cs | 10 + .../Param/Character/ChrColorParam.cs | 10 + .../Param/Character/ChrCommonParam.cs | 10 + .../Param/Character/ChrCullingParam.cs | 10 + .../Param/Character/ChrEditParamBodyPreset.cs | 10 + .../Param/Character/ChrEquipLoadParam.cs | 10 + .../Param/Character/ChrEquipWeaponParam.cs | 10 + .../Param/Character/ChrFullbodySfxParam.cs | 10 + .../Param/Character/ChrGrowthParam.cs | 10 + .../Param/Character/ChrLevelUpSoulsParam.cs | 10 + .../Param/Character/ChrModelParam.cs | 10 + .../Resources/Param/Character/ChrMoveParam.cs | 10 + .../Param/Character/ChrMultiplayParam.cs | 10 + .../Character/ChrNetPhantomSoulRateParam.cs | 10 + .../Param/Character/ChrNetworkPhantomParam.cs | 10 + .../Resources/Param/Character/ChrParam.cs | 10 + .../Param/Character/ChrPointWindParam.cs | 10 + .../Param/Character/ChrRoundDamageParam.cs | 10 + .../Param/Character/ChrRoundDropSoulParam.cs | 10 + .../Resources/Param/Character/ChrWetParam.cs | 10 + .../Param/Character/ComboBehaviorParam.cs | 10 + .../Character/CriminalAndDeceasedParam.cs | 10 + .../Param/Character/CustomAttrCostParam.cs | 10 + .../Param/Character/CustomAttrSpecParam.cs | 10 + .../Param/Character/DeadTypeParam.cs | 10 + .../Character/DualWieldPermissionParam.cs | 10 + .../Param/Character/EnemyAttackMoveParam.cs | 10 + .../Param/Character/EnemyShotSfxParam.cs | 10 + .../Character/EquipmentCullingTargetParam.cs | 10 + .../Character/EquipmentInterfereParam.cs | 10 + .../Resources/Param/Character/FallingParam.cs | 10 + .../Param/Character/FootEffectSfxParam.cs | 10 + .../Character/FootEffectWaterSfxParam.cs | 10 + .../Resources/Param/Character/GrabParam.cs | 10 + .../Param/Character/GroundMaterialParam.cs | 10 + .../Param/Character/GuardLevelMotionParam.cs | 10 + .../Param/Character/HitBackMatrixParam.cs | 10 + .../Resources/Param/Character/HitBackParam.cs | 10 + .../Param/Character/HollowLevelStatsParam.cs | 10 + .../Param/Character/LackOfStatsParam.cs | 10 + .../Character/LockOnCameraOffsetParam.cs | 10 + .../Resources/Param/Character/LockOnParam.cs | 10 + .../Param/Character/LockTargetParam.cs | 10 + .../Param/Character/MaterialParam.cs | 10 + .../Param/Character/MenuStatsParam.cs | 10 + .../Param/Character/NpcGenerateParam.cs | 10 + .../Param/Character/NpcPlayerSkinParam.cs | 10 + .../Param/Character/NpcPlayerStatusParam.cs | 10 + .../Character/PhysStatsPerLevelStatParam.cs | 10 + .../Param/Character/PlayerCommonParam.cs | 10 + .../Param/Character/PlayerLightParam.cs | 10 + .../Param/Character/PlayerStatusItemParam.cs | 10 + .../Param/Character/PlayerStatusNormal.cs | 10 + .../Param/Character/ReinforceCostParam.cs | 10 + .../Character/RelatePhysStatToLevelStat.cs | 10 + .../Resources/Param/Character/RingParam.cs | 10 + .../Resources/Param/Character/SpellParam.cs | 10 + .../Param/Character/SpellSoulConsumeParam.cs | 10 + .../Param/Character/TorchCtrlParam.cs | 10 + .../Param/Character/TorchOffCtrlParam.cs | 10 + .../Resources/Param/Character/VowParam.cs | 10 + .../Character/WeaponActionCategoryParam.cs | 10 + .../Character/WeaponAttackMotionParam.cs | 10 + .../Resources/Param/Character/WeaponParam.cs | 10 + .../Param/Character/WeaponReinforceParam.cs | 10 + .../Param/Character/WeaponStaminaCostParam.cs | 10 + .../Param/Character/WeaponStatsAffectParam.cs | 10 + .../Param/Character/WeaponTypeParam.cs | 10 + .../Param/Containers/AiParamContainer.cs | 6 + .../Param/Containers/BulletParamContainer.cs | 6 + .../Param/Containers/CameraParamContainer.cs | 6 + .../Containers/CharacterParamContainer.cs | 297 +++++++++++++++++ .../Param/Containers/DamageParamContainer.cs | 6 + .../Param/Containers/DemoParamContainer.cs | 6 + .../Param/Containers/EventParamContainer.cs | 6 + .../Param/Containers/FaceGenParamContainer.cs | 6 + .../Param/Containers/Item2ParamContainer.cs | 6 + .../Containers/MapBonfireParamContainer.cs | 6 + .../Param/Containers/MapParamContainer.cs | 6 + .../Param/Containers/NetParamContainer.cs | 6 + .../Param/Containers/RumbleParamContainer.cs | 6 + .../DarkSoulsII/Resources/Param/Param.cs | 13 + .../Param/ParamFileResourceObject.cs | 21 ++ .../ParamFileResourceObjectForRegulation.cs | 12 + .../DarkSoulsII/Resources/ResourceObject.cs | 10 + .../Resources/Text/TextLookUpTable.cs | 49 +++ .../Resources/Text/TextLookUpTableCache.cs | 25 ++ .../Text/TextLookUpTableCacheEntry.cs | 17 + .../Resources/Text/TextLookupTableType.cs | 32 ++ .../DarkSoulsII/Rtti/CameraOperatorHelper.cs | 100 ++++++ .../Rtti/CharacterCtrlBaseHelper.cs | 57 ++++ .../Rtti/GameEntityComponentHelper.cs | 40 +++ .../DarkSoulsII/Savegame/SaveLoadSystem.cs | 17 + .../DarkSoulsII/Savegame/SaveReason.cs | 25 ++ .../Exceptions/MemoryInaccessibleException.cs | 8 + .../ProcessAccessDeniedException.cs | 8 + .../Exceptions/ProcessNotFoundException.cs | 8 + DarkSoulsII.DebugView.Core/GenericPointer.cs | 68 ++++ DarkSoulsII.DebugView.Core/IPointer.cs | 9 + DarkSoulsII.DebugView.Core/IReadable.cs | 7 + DarkSoulsII.DebugView.Core/IReader.cs | 32 ++ DarkSoulsII.DebugView.Core/MemoryReader.cs | 243 ++++++++++++++ DarkSoulsII.DebugView.Core/NativeMethods.cs | 44 +++ DarkSoulsII.DebugView.Core/Pointer.cs | 127 ++++++++ .../Properties/AssemblyInfo.cs | 39 +++ .../Rtti/IRttiHelper.cs | 7 + .../Standard/Matrix4.cs | 94 ++++++ .../Standard/Quaternion.cs | 10 + .../Standard/Templates/StdString.cs | 17 + .../Standard/Vector3.cs | 22 ++ DarkSoulsII.DebugView.Test/App.config | 6 + .../DarkSoulsII.DebugView.Test.csproj | 64 ++++ DarkSoulsII.DebugView.Test/Program.cs | 67 ++++ .../Properties/AssemblyInfo.cs | 15 + DarkSoulsII.DebugView.sln | 28 ++ LICENSE | 22 ++ 262 files changed, 5373 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII.DebugView.Core.csproj create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/DrawDevice.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppBlackOutFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppFogFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppLightFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVignettingFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVolumeFogFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensFlareFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensSimulationFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxToneMapFilter.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawDeviceContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawSystem.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Surface.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/KatanaMainApp.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/App/MainApp.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperatorType.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ActionCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DefaultCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DemoCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/EventCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ExFollowCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FallDeadCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeOrthoCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/GrapplerCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/IngameCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/MenuCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/NormalCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/OrthoCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PerspectiveCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PlayerCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/SubjectiveCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/TransitionCameraOperator.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/CharacterType.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrlEquipment.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentAmmo.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentArmor.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentRing.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentWeapon.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/WeaponInfusion.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Character/PlayerData.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/ActiveSignCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/MapTextureResolutionCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignKeyGuideCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignPreviewCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MapTexture.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MdlTexture.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Events/MapObjectBonfire.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/CharacterSlotData.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/PlayerClass.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/SaveSlotData.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/UserData000.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrlBase.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterGlowEffectType.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterVisualState.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/Components/GameEntityComponent.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/DemoCharacterCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/GameEntity.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/MapEntity.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/PlayerCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/SignKeyGuideEntity.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameObject.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Ai/AiManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppDecalManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppResourceManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Bullet/BulletManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/CameraManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/CharacterManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/ChrTextureManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Demo/DemoManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventBonfireManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventFlagManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/FaceGenManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameDataManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerImpl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerState.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Input/RumbleManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapAreaManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapChameleonAreaManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapItemPackManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureResolutionManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapWindManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetEnemyManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetLatencyManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetPlayerWatcher.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSessionManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotAreaManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodMessageManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodstainManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBreakInManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrDuelManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrGhostManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrLoginManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPlayerManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPreviewChrManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrStateChartManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrSummonSignManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrVisitorManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSyncDataManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetworkManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/ActiveSignManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignEventAreaManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignSetCtrlManager.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapAreaCtrlOwner.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonArea.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonAreaData.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItem.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemListType.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPack.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPackTable.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/MapWorldList.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapModelWindReactor.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapPointWind.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapTargetDirectionalWind.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapWind.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetPlayerSyncObject.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlot.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlotCtrl.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrClientInterface.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrJobRunner.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrMemory.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrProperties.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Network/ServerInfo.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/FileResourceObject.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Memory.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorHandsUpFParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorReinforceParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArrowParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BehaviorParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossEnemyGenerateParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsModelParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrColorParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCommonParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCullingParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEditParamBodyPreset.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipLoadParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipWeaponParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrFullbodySfxParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrGrowthParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrLevelUpSoulsParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrModelParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMoveParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMultiplayParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetPhantomSoulRateParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetworkPhantomParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrPointWindParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDamageParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDropSoulParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrWetParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ComboBehaviorParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CriminalAndDeceasedParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrCostParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrSpecParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DeadTypeParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DualWieldPermissionParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyAttackMoveParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyShotSfxParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentCullingTargetParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentInterfereParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FallingParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectSfxParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectWaterSfxParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GrabParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GroundMaterialParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GuardLevelMotionParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackMatrixParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HollowLevelStatsParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LackOfStatsParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnCameraOffsetParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockTargetParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MaterialParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MenuStatsParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcGenerateParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerSkinParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerStatusParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PhysStatsPerLevelStatParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerCommonParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerLightParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusItemParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusNormal.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ReinforceCostParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RelatePhysStatToLevelStat.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RingParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellSoulConsumeParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchCtrlParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchOffCtrlParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/VowParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponActionCategoryParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponAttackMotionParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponReinforceParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStaminaCostParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStatsAffectParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponTypeParam.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/AiParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/BulletParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CameraParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CharacterParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DamageParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DemoParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/EventParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/FaceGenParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/Item2ParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapBonfireParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/NetParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/RumbleParamContainer.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Param.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObject.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObjectForRegulation.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/ResourceObject.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTable.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCache.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCacheEntry.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookupTableType.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CameraOperatorHelper.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CharacterCtrlBaseHelper.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/GameEntityComponentHelper.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveLoadSystem.cs create mode 100644 DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveReason.cs create mode 100644 DarkSoulsII.DebugView.Core/Exceptions/MemoryInaccessibleException.cs create mode 100644 DarkSoulsII.DebugView.Core/Exceptions/ProcessAccessDeniedException.cs create mode 100644 DarkSoulsII.DebugView.Core/Exceptions/ProcessNotFoundException.cs create mode 100644 DarkSoulsII.DebugView.Core/GenericPointer.cs create mode 100644 DarkSoulsII.DebugView.Core/IPointer.cs create mode 100644 DarkSoulsII.DebugView.Core/IReadable.cs create mode 100644 DarkSoulsII.DebugView.Core/IReader.cs create mode 100644 DarkSoulsII.DebugView.Core/MemoryReader.cs create mode 100644 DarkSoulsII.DebugView.Core/NativeMethods.cs create mode 100644 DarkSoulsII.DebugView.Core/Pointer.cs create mode 100644 DarkSoulsII.DebugView.Core/Properties/AssemblyInfo.cs create mode 100644 DarkSoulsII.DebugView.Core/Rtti/IRttiHelper.cs create mode 100644 DarkSoulsII.DebugView.Core/Standard/Matrix4.cs create mode 100644 DarkSoulsII.DebugView.Core/Standard/Quaternion.cs create mode 100644 DarkSoulsII.DebugView.Core/Standard/Templates/StdString.cs create mode 100644 DarkSoulsII.DebugView.Core/Standard/Vector3.cs create mode 100644 DarkSoulsII.DebugView.Test/App.config create mode 100644 DarkSoulsII.DebugView.Test/DarkSoulsII.DebugView.Test.csproj create mode 100644 DarkSoulsII.DebugView.Test/Program.cs create mode 100644 DarkSoulsII.DebugView.Test/Properties/AssemblyInfo.cs create mode 100644 DarkSoulsII.DebugView.sln create mode 100644 LICENSE diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7964536 --- /dev/null +++ b/.gitignore @@ -0,0 +1,189 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +x64/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Roslyn cache directories +*.ide/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +#NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding addin-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +## TODO: Comment the next line if you want to checkin your +## web deploy settings but do note that will include unencrypted +## passwords +#*.pubxml + +# NuGet Packages Directory +packages/* +## TODO: If the tool you use requires repositories.config +## uncomment the next line +#!packages/repositories.config + +# Enable "build/" folder in the NuGet Packages folder since +# NuGet packages use it for MSBuild targets. +# This line needs to be after the ignore of the build folder +# (and the packages folder if the line above has been uncommented) +!packages/build/ + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml \ No newline at end of file diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII.DebugView.Core.csproj b/DarkSoulsII.DebugView.Core/DarkSoulsII.DebugView.Core.csproj new file mode 100644 index 0000000..b0bc92d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII.DebugView.Core.csproj @@ -0,0 +1,306 @@ + + + + + Debug + AnyCPU + {B86932EF-4F6A-4612-A804-336C5C58DA0A} + Library + Properties + DarkSoulsII.DebugView.Core + DarkSoulsII.DebugView.Core + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/DrawDevice.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/DrawDevice.cs new file mode 100644 index 0000000..a8c13ef --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/DrawDevice.cs @@ -0,0 +1,19 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics +{ + public class DrawDevice : IReadable + { + public Surface Surface1 { get; set; } + public Surface Surface2 { get; set; } + + public DrawDevice Read(IReader reader, int address, bool relative = false) + { + //IDirect3D9* pIDirect3D9; //0x000C + //IDirect3DDevice9* pIDirect3DDevice9; //0x0010 + + Surface1 = Pointer.CreateAndUnbox(reader, address + 0x001C, relative); + Surface2 = Pointer.CreateAndUnbox(reader, address + 0x0034, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppBlackOutFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppBlackOutFilter.cs new file mode 100644 index 0000000..6345102 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppBlackOutFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class AppBlackOutFilter : IReadable + { + public AppBlackOutFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppFogFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppFogFilter.cs new file mode 100644 index 0000000..833c071 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppFogFilter.cs @@ -0,0 +1,25 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class AppFogFilter : IReadable + { + public byte FogBlue { get; set; } + public byte FogGreen { get; set; } + public byte FogRed { get; set; } + public byte FogAlpha { get; set; } + public float FogDistance { get; set; } + public float Overlay { get; set; } + public float Height { get; set; } + + public AppFogFilter Read(IReader reader, int address, bool relative = false) + { + FogBlue = reader.ReadByte(address + 0x0004, relative); + FogGreen = reader.ReadByte(address + 0x0005, relative); + FogRed = reader.ReadByte(address + 0x0006, relative); + FogAlpha = reader.ReadByte(address + 0x0007, relative); + FogDistance = reader.ReadSingle(address + 0x0008, relative); + Overlay = reader.ReadSingle(address + 0x0024, relative); + Height = reader.ReadSingle(address + 0x0028, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppLightFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppLightFilter.cs new file mode 100644 index 0000000..97870e8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppLightFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class AppLightFilter : IReadable + { + public AppLightFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVignettingFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVignettingFilter.cs new file mode 100644 index 0000000..af5aeae --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVignettingFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class AppVignettingFilter : IReadable + { + public AppVignettingFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVolumeFogFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVolumeFogFilter.cs new file mode 100644 index 0000000..92c1ec4 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/AppVolumeFogFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class AppVolumeFogFilter : IReadable + { + public AppVolumeFogFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensFlareFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensFlareFilter.cs new file mode 100644 index 0000000..be51f98 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensFlareFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class GxLensFlareFilter : IReadable + { + public GxLensFlareFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensSimulationFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensSimulationFilter.cs new file mode 100644 index 0000000..8ee7e66 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxLensSimulationFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class GxLensSimulationFilter : IReadable + { + public GxLensSimulationFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxToneMapFilter.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxToneMapFilter.cs new file mode 100644 index 0000000..3b43bd4 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Filters/GxToneMapFilter.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters +{ + public class GxToneMapFilter : IReadable + { + public GxToneMapFilter Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawDeviceContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawDeviceContainer.cs new file mode 100644 index 0000000..95bd106 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawDeviceContainer.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics +{ + public class KatanaDrawDeviceContainer : IReadable + { + public DrawDevice DrawDevice { get; set; } + + public KatanaDrawDeviceContainer Read(IReader reader, int address, bool relative = false) + { + DrawDevice = Pointer.CreateAndUnbox(reader, address + 0x0138, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawSystem.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawSystem.cs new file mode 100644 index 0000000..d5061cc --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/KatanaDrawSystem.cs @@ -0,0 +1,29 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics.Filters; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics +{ + public class KatanaDrawSystem : IReadable + { + public GxToneMapFilter ToneMapFilter { get; set; } + public GxLensSimulationFilter LensSimulationFilter { get; set; } + public GxLensFlareFilter LensFlareFilter { get; set; } + public AppFogFilter FogFilter { get; set; } + public AppVolumeFogFilter VolumeFogFilter { get; set; } + public AppLightFilter LightFilter { get; set; } + public AppVignettingFilter VignettingFilter { get; set; } + public AppBlackOutFilter BlackOutFilter { get; set; } + + public KatanaDrawSystem Read(IReader reader, int address, bool relative = false) + { + ToneMapFilter = Pointer.CreateAndUnbox(reader, address + 0x10E8, relative); + LensSimulationFilter = Pointer.CreateAndUnbox(reader, address + 0x11AC, relative); + LensFlareFilter = Pointer.CreateAndUnbox(reader, address + 0x11B0, relative); + FogFilter = Pointer.CreateAndUnbox(reader, address + 0x11B4, relative); + VolumeFogFilter = Pointer.CreateAndUnbox(reader, address + 0x11B8, relative); + LightFilter = Pointer.CreateAndUnbox(reader, address + 0x11BC, relative); + VignettingFilter = Pointer.CreateAndUnbox(reader, address + 0x11C0, relative); + BlackOutFilter = Pointer.CreateAndUnbox(reader, address + 0x11C4, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Surface.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Surface.cs new file mode 100644 index 0000000..23f3a78 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/Graphics/Surface.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics +{ + public class Surface : IReadable + { + public Surface Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/KatanaMainApp.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/KatanaMainApp.cs new file mode 100644 index 0000000..01e7b99 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/KatanaMainApp.cs @@ -0,0 +1,18 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.App.Graphics; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App +{ + public class KatanaMainApp : MainApp, IReadable + { + public KatanaDrawDeviceContainer DrawDeviceContainer { get; set; } + public KatanaDrawSystem DrawSystem { get; set; } + + public new KatanaMainApp Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + DrawDeviceContainer = Pointer.CreateAndUnbox(reader, address + 0x002C, relative); + DrawSystem = Pointer.CreateAndUnbox(reader, address + 0x01AC, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/App/MainApp.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/MainApp.cs new file mode 100644 index 0000000..a71e285 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/App/MainApp.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.App +{ + public class MainApp : IReadable + { + public MainApp Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperator.cs new file mode 100644 index 0000000..ed70624 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperator.cs @@ -0,0 +1,16 @@ +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera +{ + public class CameraOperator : IReadable + { + public Matrix4 Matrix { get; set; } + + public CameraOperator Read(IReader reader, int address, bool relative = false) + { + Matrix = Pointer.Create(address + 0x0010, relative).Unbox(reader); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperatorType.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperatorType.cs new file mode 100644 index 0000000..defdde5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/CameraOperatorType.cs @@ -0,0 +1,16 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera +{ + public enum CameraOperatorType + { + Action = 0, + Default, + Subjective, + ExFollow, + Normal, + Demo, + FallDead, + Grappler, + Menu, + Event + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ActionCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ActionCameraOperator.cs new file mode 100644 index 0000000..f489c67 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ActionCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class ActionCameraOperator : PerspectiveCameraOperator, IReadable + { + public new ActionCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DefaultCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DefaultCameraOperator.cs new file mode 100644 index 0000000..6e7b9a2 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DefaultCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class DefaultCameraOperator : PerspectiveCameraOperator, IReadable + { + public new DefaultCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DemoCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DemoCameraOperator.cs new file mode 100644 index 0000000..63a4536 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/DemoCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class DemoCameraOperator : PerspectiveCameraOperator, IReadable + { + public new DemoCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/EventCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/EventCameraOperator.cs new file mode 100644 index 0000000..66fe8d0 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/EventCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class EventCameraOperator : PerspectiveCameraOperator, IReadable + { + public new EventCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ExFollowCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ExFollowCameraOperator.cs new file mode 100644 index 0000000..deeaece --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/ExFollowCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class ExFollowCameraOperator : PerspectiveCameraOperator, IReadable + { + public new ExFollowCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FallDeadCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FallDeadCameraOperator.cs new file mode 100644 index 0000000..ef03278 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FallDeadCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class FallDeadCameraOperator : PerspectiveCameraOperator, IReadable + { + public new FallDeadCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeCameraOperator.cs new file mode 100644 index 0000000..61efe1d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class FreeCameraOperator : PerspectiveCameraOperator, IReadable + { + public new FreeCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeOrthoCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeOrthoCameraOperator.cs new file mode 100644 index 0000000..2f2228d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/FreeOrthoCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class FreeOrthoCameraOperator : OrthoCameraOperator, IReadable + { + public new FreeOrthoCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/GrapplerCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/GrapplerCameraOperator.cs new file mode 100644 index 0000000..61b6e0c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/GrapplerCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class GrapplerCameraOperator : PerspectiveCameraOperator, IReadable + { + public new GrapplerCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/IngameCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/IngameCameraOperator.cs new file mode 100644 index 0000000..970aed6 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/IngameCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class IngameCameraOperator : TransitionCameraOperator, IReadable + { + public new IngameCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/MenuCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/MenuCameraOperator.cs new file mode 100644 index 0000000..d5df4b9 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/MenuCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class MenuCameraOperator : PerspectiveCameraOperator, IReadable + { + public new MenuCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/NormalCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/NormalCameraOperator.cs new file mode 100644 index 0000000..dd26221 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/NormalCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class NormalCameraOperator : PerspectiveCameraOperator, IReadable + { + public new NormalCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/OrthoCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/OrthoCameraOperator.cs new file mode 100644 index 0000000..21f4d7c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/OrthoCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class OrthoCameraOperator : CameraOperator, IReadable + { + public new OrthoCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PerspectiveCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PerspectiveCameraOperator.cs new file mode 100644 index 0000000..3c89e81 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PerspectiveCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class PerspectiveCameraOperator : CameraOperator, IReadable + { + public new PerspectiveCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PlayerCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PlayerCameraOperator.cs new file mode 100644 index 0000000..ac82023 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/PlayerCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class PlayerCameraOperator : PerspectiveCameraOperator, IReadable + { + public new PlayerCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/SubjectiveCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/SubjectiveCameraOperator.cs new file mode 100644 index 0000000..9bdf193 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/SubjectiveCameraOperator.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class SubjectiveCameraOperator : PerspectiveCameraOperator, IReadable + { + public new SubjectiveCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/TransitionCameraOperator.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/TransitionCameraOperator.cs new file mode 100644 index 0000000..ddef742 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Camera/Operators/TransitionCameraOperator.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Linq; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Rtti; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators +{ + public class TransitionCameraOperator : PerspectiveCameraOperator, IReadable + { + public TransitionCameraOperator() + { + CameraOperators = new List(); + } + + public List CameraOperators { get; set; } + public CameraOperator CurrentOperator { get; set; } + public CameraOperatorType CurrentOperatorType { get; set; } + + public new TransitionCameraOperator Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + + // BUG: Invalid pointer during the game initialization states + var cameraOperators = GenericPointer.Create(reader, address + 0x00B4, relative) + .Unbox(reader, (r, a) => r.ReadInt32(10, a)) + .Select(a => CameraOperatorHelper.Instance.ResolvePointer(reader, a).Unbox(reader)); + CameraOperators.AddRange(cameraOperators); + + var index = reader.ReadInt32(address + 0x00C4, relative); + CurrentOperator = CameraOperators.ElementAt(index); + CurrentOperatorType = (CameraOperatorType) index; + int freeze = reader.ReadInt32(address + 0x00C8, relative); + int index2 = reader.ReadInt32(address + 0x00CC, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/CharacterType.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/CharacterType.cs new file mode 100644 index 0000000..2f1291f --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/CharacterType.cs @@ -0,0 +1,12 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character +{ + public enum CharacterType + { + Dummy = 0, + Player, + GhostPlayer, + Boss, + Enemy, + Npc + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrl.cs new file mode 100644 index 0000000..5cb98cc --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrl.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character +{ + public class ChrAsmCtrl : IReadable + { + public ChrAsmCtrlEquipment Equipment { get; set; } + + public ChrAsmCtrl Read(IReader reader, int address, bool relative = false) + { + Equipment = Pointer.CreateAndUnbox(reader, address + 0x0014); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrlEquipment.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrlEquipment.cs new file mode 100644 index 0000000..0538d00 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/ChrAsmCtrlEquipment.cs @@ -0,0 +1,58 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character +{ + public class ChrAsmCtrlEquipment : IReadable + { + public float Weight { get; set; } + public float WeightPercentage { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponLeft1 { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponLeft2 { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponLeft3 { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponRight1 { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponRight2 { get; set; } + public ChrAsmCtrlEquipmentWeapon WeaponRight3 { get; set; } + public ChrAsmCtrlEquipmentArmor Head { get; set; } + public ChrAsmCtrlEquipmentArmor Chest { get; set; } + public ChrAsmCtrlEquipmentArmor Hands { get; set; } + public ChrAsmCtrlEquipmentArmor Legs { get; set; } + public ChrAsmCtrlEquipmentAmmo Arrows1 { get; set; } + public ChrAsmCtrlEquipmentAmmo Arrows2 { get; set; } + public ChrAsmCtrlEquipmentAmmo Bolts1 { get; set; } + public ChrAsmCtrlEquipmentAmmo Bolts2 { get; set; } + public ChrAsmCtrlEquipmentRing Ring1 { get; set; } + public ChrAsmCtrlEquipmentRing Ring2 { get; set; } + public ChrAsmCtrlEquipmentRing Ring3 { get; set; } + public ChrAsmCtrlEquipmentRing Ring4 { get; set; } + + public ChrAsmCtrlEquipment Read(IReader reader, int address, bool relative = false) + { + Weight = reader.ReadSingle(address + 0x003C); + WeightPercentage = reader.ReadSingle(address + 0x0040); + + WeaponLeft1 = Pointer.Create(address + 0x0044).Unbox(reader); + WeaponLeft2 = Pointer.Create(address + 0x0070).Unbox(reader); + WeaponLeft3 = Pointer.Create(address + 0x009C).Unbox(reader); + WeaponRight1 = Pointer.Create(address + 0x00C8).Unbox(reader); + WeaponRight2 = Pointer.Create(address + 0x00F4).Unbox(reader); + WeaponRight3 = Pointer.Create(address + 0x0120).Unbox(reader); + + Head = Pointer.Create(address + 0x02F4).Unbox(reader); + Chest = Pointer.Create(address + 0x0310).Unbox(reader); + Hands = Pointer.Create(address + 0x032C).Unbox(reader); + Legs = Pointer.Create(address + 0x0348).Unbox(reader); + + Arrows1 = Pointer.Create(address + 0x036C).Unbox(reader); + Arrows2 = Pointer.Create(address + 0x0378).Unbox(reader); + Bolts1 = Pointer.Create(address + 0x0384).Unbox(reader); + Bolts2 = Pointer.Create(address + 0x0390).Unbox(reader); + + Ring1 = Pointer.Create(address + 0x0408).Unbox(reader); + Ring2 = Pointer.Create(address + 0x0414).Unbox(reader); + Ring3 = Pointer.Create(address + 0x0420).Unbox(reader); + Ring4 = Pointer.Create(address + 0x042C).Unbox(reader); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentAmmo.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentAmmo.cs new file mode 100644 index 0000000..7bb1efd --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentAmmo.cs @@ -0,0 +1,16 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment +{ + public class ChrAsmCtrlEquipmentAmmo : IReadable + { + public int ItemId { get; set; } + public int Quantity { get; set; } + + public ChrAsmCtrlEquipmentAmmo Read(IReader reader, int address, bool relative = false) + { + ItemId = reader.ReadInt32(address + 0x0000); + Quantity = reader.ReadInt32(address + 0x0008); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentArmor.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentArmor.cs new file mode 100644 index 0000000..1901bce --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentArmor.cs @@ -0,0 +1,14 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment +{ + public class ChrAsmCtrlEquipmentArmor : IReadable + { + public float Durability { get; set; } + + public ChrAsmCtrlEquipmentArmor Read(IReader reader, int address, bool relative = false) + { + Durability = reader.ReadSingle(address + 0x0018); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentRing.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentRing.cs new file mode 100644 index 0000000..4c2fcee --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentRing.cs @@ -0,0 +1,15 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment +{ + public class ChrAsmCtrlEquipmentRing : IReadable + { + public int ItemId { get; set; } + public float Durability { get; set; } + + public ChrAsmCtrlEquipmentRing Read(IReader reader, int address, bool relative = false) + { + ItemId = reader.ReadInt32(address + 0x0000); + Durability = reader.ReadSingle(address + 0x0008); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentWeapon.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentWeapon.cs new file mode 100644 index 0000000..c12036f --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/ChrAsmCtrlEquipmentWeapon.cs @@ -0,0 +1,19 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment +{ + public class ChrAsmCtrlEquipmentWeapon : IReadable + { + public int ItemId { get; set; } + public byte Upgrade { get; set; } + public WeaponInfusion Infusion { get; set; } + public float Durability { get; set; } + + public ChrAsmCtrlEquipmentWeapon Read(IReader reader, int address, bool relative = false) + { + ItemId = reader.ReadInt32(address + 0x0000); + Upgrade = reader.ReadByte(address + 0x0010); + Infusion = (WeaponInfusion) reader.ReadByte(address + 0x0011); + Durability = reader.ReadSingle(address + 0x0028); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/WeaponInfusion.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/WeaponInfusion.cs new file mode 100644 index 0000000..0adf259 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/Equipment/WeaponInfusion.cs @@ -0,0 +1,16 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character.Equipment +{ + public enum WeaponInfusion : byte + { + None = 0, + Fire, + Magic, + Lightning, + Dark, + Poison, + Bleed, + Raw, + Enchantend, + Mundane + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/PlayerData.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/PlayerData.cs new file mode 100644 index 0000000..725a7e5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Character/PlayerData.cs @@ -0,0 +1,67 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Character +{ + public class PlayerData : IReadable + { + public byte Sins { get; set; } + public short Vitality { get; set; } + public short Endurance { get; set; } + public short Vigor { get; set; } + public short Attunement { get; set; } + public short Strength { get; set; } + public short Dexterity { get; set; } + public short Intelligence { get; set; } + public short Faith { get; set; } + public short Adaptability { get; set; } + public float Stamina { get; set; } + public float EquipWeightMax { get; set; } + public int SoulLevel { get; set; } + public int Souls { get; set; } + public int SoulMemory { get; set; } + public int DeathCount { get; set; } + public byte HollowState { get; set; } + public short HeirsOfTheSunStanding { get; set; } + public short BlueSentinelsStanding { get; set; } + public short BrotherhoodOfBloodStanding { get; set; } + public short WayOfBlueStanding { get; set; } + public short RatKingStanding { get; set; } + public short BellkeepersStanding { get; set; } + public short DragonRemnantsStanding { get; set; } + public short CompanyOfChampionsStanding { get; set; } + public short PilgrimsOfTheDarkStanding { get; set; } + + public PlayerData Read(IReader reader, int address, bool relative = false) + { + Vitality = reader.ReadInt16(address + 0x0004); + Endurance = reader.ReadInt16(address + 0x0006); + Vigor = reader.ReadInt16(address + 0x0008); + Attunement = reader.ReadInt16(address + 0x000A); + Strength = reader.ReadInt16(address + 0x000C); + Dexterity = reader.ReadInt16(address + 0x000E); + Intelligence = reader.ReadInt16(address + 0x0010); + Faith = reader.ReadInt16(address + 0x0012); + Adaptability = reader.ReadInt16(address + 0x0014); + + Stamina = reader.ReadSingle(address + 0x0034); + EquipWeightMax = reader.ReadSingle(address + 0x0038); + SoulLevel = reader.ReadInt32(address + 0x00CC); + Souls = reader.ReadInt32(address + 0x00E8); + SoulMemory = reader.ReadInt32(address + 0x00F0); + DeathCount = reader.ReadInt32(address + 0x01A0); + HollowState = reader.ReadByte(address + 0x01A8); + + HeirsOfTheSunStanding = reader.ReadInt16(address + 0x01C0); + BlueSentinelsStanding = reader.ReadInt16(address + 0x01C2); + BrotherhoodOfBloodStanding = reader.ReadInt16(address + 0x01C4); + WayOfBlueStanding = reader.ReadInt16(address + 0x01C6); + RatKingStanding = reader.ReadInt16(address + 0x01C8); + BellkeepersStanding = reader.ReadInt16(address + 0x01CA); + DragonRemnantsStanding = reader.ReadInt16(address + 0x01CC); + CompanyOfChampionsStanding = reader.ReadInt16(address + 0x01CE); + PilgrimsOfTheDarkStanding = reader.ReadInt16(address + 0x01D0); + Sins = reader.ReadByte(address + 0x01D3); + + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/ActiveSignCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/ActiveSignCtrl.cs new file mode 100644 index 0000000..0c52b0a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/ActiveSignCtrl.cs @@ -0,0 +1,28 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers +{ + public class ActiveSignCtrl : IReadable + { + public const int Size = 60; + public Vector3 Position { get; set; } + public SignKeyGuideEntity SignKeyGuideEntity { get; set; } + public SignKeyGuideCtrl SignKeyGuideCtrl { get; set; } + + public ActiveSignCtrl Read(IReader reader, int address, bool relative = false) + { + int coordinateType = reader.ReadInt32(address + 0x0004, relative); + // coordinateType = 0 => 000C points to another ActiveSignCtrl + Position = coordinateType == 3 + ? Pointer.Create(address + 0x0008, relative).Unbox(reader) + : new Vector3(); + // GlowEffect 001C + + SignKeyGuideEntity = Pointer.CreateAndUnbox(reader, address + 0x0034, relative); + SignKeyGuideCtrl = Pointer.CreateAndUnbox(reader, address + 0x0038, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/MapTextureResolutionCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/MapTextureResolutionCtrl.cs new file mode 100644 index 0000000..df09e22 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/MapTextureResolutionCtrl.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers +{ + public class MapTextureResolutionCtrl : IReadable + { + public MapTextureResolutionCtrl Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignKeyGuideCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignKeyGuideCtrl.cs new file mode 100644 index 0000000..708e539 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignKeyGuideCtrl.cs @@ -0,0 +1,15 @@ +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers +{ + public class SignKeyGuideCtrl : IReadable + { + public Vector3 Position { get; set; } + + public SignKeyGuideCtrl Read(IReader reader, int address, bool relative = false) + { + Position = Pointer.Create(address + 0x0020, relative).Unbox(reader); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignPreviewCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignPreviewCtrl.cs new file mode 100644 index 0000000..398aef3 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Controllers/SignPreviewCtrl.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers +{ + public class SignPreviewCtrl : IReadable + { + public SignPreviewCtrl Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MapTexture.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MapTexture.cs new file mode 100644 index 0000000..596173b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MapTexture.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Drawing +{ + public class MapTexture : MdlTexture, IReadable + { + public new MapTexture Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MdlTexture.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MdlTexture.cs new file mode 100644 index 0000000..1718dc5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Drawing/MdlTexture.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Drawing +{ + public class MdlTexture : IReadable + { + public MdlTexture Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Events/MapObjectBonfire.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Events/MapObjectBonfire.cs new file mode 100644 index 0000000..8a993d8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Events/MapObjectBonfire.cs @@ -0,0 +1,22 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Events +{ + public class MapObjectBonfire : IReadable + { + public const int Size = 16; + public short Id { get; set; } + + /// + /// (AscLevel-1)*2)+1 (&1 = Kindled, &254 = Ascetic Level) + /// + public byte AscentionLevel { get; set; } + + public MapObjectBonfire Read(IReader reader, int address, bool relative = false) + { + Id = reader.ReadInt16(address + 0x0000, relative); + AscentionLevel = reader.ReadByte(address + 0x0002, relative); + // 0004 ParamEntry + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/CharacterSlotData.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/CharacterSlotData.cs new file mode 100644 index 0000000..c54bf46 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/CharacterSlotData.cs @@ -0,0 +1,17 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameData +{ + public class CharacterSlotData : IReadable + { + public string Name { get; set; } + public PlayerClass Class { get; set; } + public byte NewGameLevel { get; set; } + + public CharacterSlotData Read(IReader reader, int address, bool relative = false) + { + Name = reader.ReadString(32, address + 0x0024, relative).Replace("\0", ""); + Class = (PlayerClass) reader.ReadByte(address + 0x0064); + NewGameLevel = reader.ReadByte(address + 0x0068); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/PlayerClass.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/PlayerClass.cs new file mode 100644 index 0000000..2ca4d84 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/PlayerClass.cs @@ -0,0 +1,17 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameData +{ + public enum PlayerClass : byte + { + Unknown0 = 0, + Warrior, + Unknown2, + Unknown3, + Unknown4, + Unknown5, + Unknown6, + Unknown7, + Unknown8, + Unknown9, + Unknown10 + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/SaveSlotData.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/SaveSlotData.cs new file mode 100644 index 0000000..c899441 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/SaveSlotData.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameData +{ + public class SaveSlotData : IReadable + { + public byte SaveSlotId { get; set; } + + public SaveSlotData Read(IReader reader, int address, bool relative = false) + { + SaveSlotId = reader.ReadByte(address + 0x1368, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/UserData000.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/UserData000.cs new file mode 100644 index 0000000..05b0ebb --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameData/UserData000.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameData +{ + public class UserData000 : IReadable + { + public string SteamId { get; set; } + + public UserData000 Read(IReader reader, int address, bool relative = false) + { + SteamId = reader.ReadString(16, address + 0x0015, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrl.cs new file mode 100644 index 0000000..c89635b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrl.cs @@ -0,0 +1,60 @@ +using System; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Character; +using DarkSoulsII.DebugView.Core.Standard; +using DarkSoulsII.DebugView.Core.Standard.Templates; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class CharacterCtrl : CharacterCtrlBase, IReadable + { + public double AngleY { get; set; } + public Vector3 Position { get; set; } + public int Health { get; set; } + public int HealthMaxHuman { get; set; } + public int HealthMaxHollow { get; set; } + public float Stamina { get; set; } + public float StaminaMax { get; set; } + public float Petrification { get; set; } + public float PetrificationMax { get; set; } + public float Poison { get; set; } + public float PoisonMax { get; set; } + public ChrAsmCtrl AsmControl { get; set; } + + public new CharacterCtrl Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + + // TODO: Maybe it's a quarternion? + var angleYFlag = reader.ReadUInt32(address + 0x0058, relative); + var cosineY = reader.ReadSingle(address + 0x0068, relative); + var angleY = Math.Acos(cosineY)*180.0/Math.PI; + AngleY = (angleYFlag & 0x80000000) > 0 ? 360 - angleY : angleY; + + Position = Pointer.Create(address + 0x0070).Unbox(reader); + + Name = Pointer.Create(address + 0x00C8).Unbox(reader).Value; + + Health = reader.ReadInt32(address + 0x00FC); + HealthMaxHuman = reader.ReadInt32(address + 0x0104); + HealthMaxHollow = reader.ReadInt32(address + 0x0108); + Stamina = reader.ReadSingle(address + 0x0140); + StaminaMax = reader.ReadSingle(address + 0x0148); + + Petrification = reader.ReadSingle(address + 0x014A); + PetrificationMax = reader.ReadSingle(address + 0x01A8); + Poison = reader.ReadSingle(address + 0x01AC); + PoisonMax = reader.ReadSingle(address + 0x01B4); + + + AsmControl = Pointer.CreateAndUnbox(reader, address + 0x2D4); + + return this; + } + + public override string ToString() + { + return string.Format("{0} HP: {1}/{2} Stamina: {3:F1}/{4:F1} Position: {5}, Angle = {6:F1}", Name, Health, + HealthMaxHuman, Stamina, StaminaMax, Position, AngleY); + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrlBase.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrlBase.cs new file mode 100644 index 0000000..4ff0cd8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterCtrlBase.cs @@ -0,0 +1,22 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Character; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class CharacterCtrlBase : GameEntity, IReadable + { + public int Id1 { get; set; } + public int Id2 { get; set; } + public CharacterType Type { get; set; } + public string Name { get; set; } + + public new CharacterCtrlBase Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + Id1 = reader.ReadInt32(address + 0x0014); + Id2 = reader.ReadInt32(address + 0x0018); + Type = (CharacterType) reader.ReadInt32(address + 0x001C); + // CharacterFlags 0x002C + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterGlowEffectType.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterGlowEffectType.cs new file mode 100644 index 0000000..c33aa5d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterGlowEffectType.cs @@ -0,0 +1,7 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public enum CharacterGlowEffectType + { + Unknown = 0 + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterVisualState.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterVisualState.cs new file mode 100644 index 0000000..1706850 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/CharacterVisualState.cs @@ -0,0 +1,22 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class CharacterVisualState : IReadable + { + public CharacterGlowEffectType GlowEffectType { get; set; } + public byte Collison { get; set; } + public byte Hostility1 { get; set; } + public byte Hostility2 { get; set; } + public byte Hostility3 { get; set; } + + public CharacterVisualState Read(IReader reader, int address, bool relative = false) + { + GlowEffectType = (CharacterGlowEffectType) reader.ReadInt32(address + 0x0038); + Collison = reader.ReadByte(address + 0x003C); + Hostility1 = reader.ReadByte(address + 0x003D); + Hostility2 = reader.ReadByte(address + 0x003E); + Hostility3 = reader.ReadByte(address + 0x003F); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/Components/GameEntityComponent.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/Components/GameEntityComponent.cs new file mode 100644 index 0000000..fa9143f --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/Components/GameEntityComponent.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities.Components +{ + public class GameEntityComponent : IReadable + { + public GameEntityComponent Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/DemoCharacterCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/DemoCharacterCtrl.cs new file mode 100644 index 0000000..8394847 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/DemoCharacterCtrl.cs @@ -0,0 +1,19 @@ +using DarkSoulsII.DebugView.Core.Standard.Templates; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class DemoCharacterCtrl : CharacterCtrlBase, IReadable + { + public new DemoCharacterCtrl Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + Name = Pointer.Create(address + 0x00B0).Unbox(reader).Value; + return this; + } + + public override string ToString() + { + return Name; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/GameEntity.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/GameEntity.cs new file mode 100644 index 0000000..7b54acd --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/GameEntity.cs @@ -0,0 +1,12 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class GameEntity : GameObject, IReadable + { + public new GameEntity Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + // GameEntityComponent 0x000C + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/MapEntity.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/MapEntity.cs new file mode 100644 index 0000000..cc9d1f9 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/MapEntity.cs @@ -0,0 +1,20 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class MapEntity : GameEntity, IReadable + { + public MapAreaCtrlOwner Owner { get; set; } + + public new MapEntity Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + Owner = Pointer.CreateAndUnbox(reader, address + 0x0014, relative); + + short type1 = reader.ReadInt16(address + 0x0078, relative); + short type2 = reader.ReadInt16(address + 0x007A, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/PlayerCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/PlayerCtrl.cs new file mode 100644 index 0000000..ad8792b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/PlayerCtrl.cs @@ -0,0 +1,20 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Character; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class PlayerCtrl : CharacterCtrl, IReadable + { + public PlayerData Data { get; set; } + + public new PlayerCtrl Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + // ActionCtrl 0x0370 + // 0x0374 + Data = Pointer.Create().Read(reader, address + 0x0378).Unbox(reader); + // 0x037C + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/SignKeyGuideEntity.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/SignKeyGuideEntity.cs new file mode 100644 index 0000000..6c3ca3b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameEntities/SignKeyGuideEntity.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities +{ + public class SignKeyGuideEntity : IReadable + { + public short Id { get; set; } + + public SignKeyGuideEntity Read(IReader reader, int address, bool relative = false) + { + Id = reader.ReadInt16(address + 0x0014, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameObject.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameObject.cs new file mode 100644 index 0000000..9aa4efb --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/GameObjects/GameObject.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects +{ + public class GameObject : IReadable + { + public GameObject Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Ai/AiManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Ai/AiManager.cs new file mode 100644 index 0000000..9ab89d1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Ai/AiManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Ai +{ + public class AiManager : IReadable + { + public AiManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppDecalManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppDecalManager.cs new file mode 100644 index 0000000..7ac024e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppDecalManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.App +{ + public class AppDecalManager : IReadable + { + public AppDecalManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add AppDecalManagerParamContainer 0180 + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppResourceManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppResourceManager.cs new file mode 100644 index 0000000..267cf14 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/App/AppResourceManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.App +{ + public class AppResourceManager : IReadable + { + public AppResourceManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Bullet/BulletManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Bullet/BulletManager.cs new file mode 100644 index 0000000..af097c9 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Bullet/BulletManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Bullet +{ + public class BulletManager : IReadable + { + public BulletManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add BulletParamContainer + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/CameraManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/CameraManager.cs new file mode 100644 index 0000000..3367648 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/CameraManager.cs @@ -0,0 +1,33 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators; +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public class CameraManager : IReadable + { + public FreeCameraOperator FreeCameraOperator { get; set; } + public PlayerCameraOperator PlayerCameraOperator { get; set; } + public IngameCameraOperator IngameCameraOperator { get; set; } + public float FieldOfView { get; set; } + public int ScreenWidth { get; set; } + public int ScreenHeight { get; set; } + public Matrix4 Matrix { get; set; } + public Vector3 CameraTarget { get; set; } + + public CameraManager Read(IReader reader, int address, bool relative = false) + { + FreeCameraOperator = Pointer.CreateAndUnbox(reader, address + 0x0018, relative); + PlayerCameraOperator = Pointer.CreateAndUnbox(reader, address + 0x001C, relative); + IngameCameraOperator = Pointer.CreateAndUnbox(reader, address + 0x0020, relative); + + Matrix = Pointer.Create(address + 0x0160, relative).Unbox(reader); + CameraTarget = Pointer.Create(address + 0x01A0, relative).Unbox(reader); + FieldOfView = reader.ReadSingle(address + 0x01B0, relative); + ScreenWidth = reader.ReadInt32(address + 0x01BC, relative); + ScreenHeight = reader.ReadInt32(address + 0x01C0, relative); + + // CameraParam 0x03AC + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/CharacterManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/CharacterManager.cs new file mode 100644 index 0000000..ee6405c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/CharacterManager.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Linq; +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Rtti; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Character +{ + public class CharacterManager : IReadable + { + public CharacterManager() + { + CharacterControls = new List(); + PlayerControls = new List(); + } + + public List CharacterControls { get; set; } + public List PlayerControls { get; set; } + public CharacterParamContainer ParamContainer { get; set; } + + public CharacterManager Read(IReader reader, int address, bool relative = false) + { + var characterControlPointerstest = reader.ReadInt32(80, address + 0x0028) + .Select(rawPointer => CharacterCtrlBaseResolver.Instance.ResolvePointer(reader, rawPointer)) + .Where(pointer => pointer != null && pointer.IsNull == false); + + foreach (var pointer in characterControlPointerstest) + { + CharacterControls.Add(pointer.Unbox(reader)); + } + + var playerControlPointers = + reader.ReadInt32(4, address + 0x0168) + .Select(Pointer.Create) + .Where(pointer => pointer.IsNull == false); + foreach (var pointer in playerControlPointers) + { + PlayerControls.Add(pointer.Unbox(reader)); + } + + + byte characterControlCount = reader.ReadByte(address + 0x0178); + byte playerControlCount = reader.ReadByte(address + 0x0179); + + // Disabled until caching is implemented + ////ParamContainer = Pointer.Create(address + 0x0188).Unbox(reader); + + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/ChrTextureManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/ChrTextureManager.cs new file mode 100644 index 0000000..0497419 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Character/ChrTextureManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Character +{ + public class ChrTextureManager : IReadable + { + public ChrTextureManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Demo/DemoManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Demo/DemoManager.cs new file mode 100644 index 0000000..d099c58 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Demo/DemoManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Demo +{ + public class DemoManager : IReadable + { + public DemoManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add DemoManagerParam 0020 + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventBonfireManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventBonfireManager.cs new file mode 100644 index 0000000..2754ba3 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventBonfireManager.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Events; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Event +{ + public class EventBonfireManager : IReadable + { + public List Bonfires { get; set; } + public float CurrentTime { get; set; } + + public EventBonfireManager Read(IReader reader, int address, bool relative = false) + { + int bonfireCount = reader.ReadInt32(address + 0x0014); + Bonfires = GenericPointer.Create(reader, address + 0x0010, relative).Unbox(reader, + (r, a) => + { + List bonfires = new List(); + int bonfireAddress = a; + for (int i = 0; i < bonfireCount; i++, bonfireAddress += MapObjectBonfire.Size) + { + bonfires.Add(Pointer.Create(bonfireAddress, relative).Unbox(reader)); + } + + return bonfires; + }); + CurrentTime = reader.ReadSingle(address + 0x002C, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventFlagManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventFlagManager.cs new file mode 100644 index 0000000..ac1fb37 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventFlagManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Event +{ + public class EventFlagManager : IReadable + { + public EventFlagManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add EventFlagParamContainer + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventManager.cs new file mode 100644 index 0000000..1ffa857 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Event/EventManager.cs @@ -0,0 +1,18 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Event +{ + public class EventManager : IReadable + { + public float CurrentTime { get; set; } + public EventFlagManager FlagManager { get; set; } + public EventBonfireManager BonfireManager { get; set; } + + public EventManager Read(IReader reader, int address, bool relative = false) + { + FlagManager = Pointer.CreateAndUnbox(reader, address + 0x0010, relative); + BonfireManager = Pointer.CreateAndUnbox(reader, address + 0x002C, relative); + // TODO: Add EventParamContainer + CurrentTime = reader.ReadSingle(address + 0x00B0, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/FaceGenManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/FaceGenManager.cs new file mode 100644 index 0000000..ee84f0b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/FaceGenManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public class FaceGenManager : IReadable + { + public FaceGenManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add FaceGenParamContainer 00B0 + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameDataManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameDataManager.cs new file mode 100644 index 0000000..4f4ad22 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameDataManager.cs @@ -0,0 +1,21 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameData; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public class GameDataManager : IReadable + { + public CharacterSlotData CharacterSlotData { get; set; } + public UserData000 UserData000 { get; set; } + public SaveSlotData SaveSlotData { get; set; } + + public GameDataManager Read(IReader reader, int address, bool relative = false) + { + CharacterSlotData = + Pointer.Create().Read(reader, address + 0x0060, relative).Unbox(reader); + UserData000 = Pointer.CreateAndUnbox(reader, address + 0x0064, relative); + SaveSlotData = Pointer.CreateAndUnbox(reader, address + 0x006C, relative); + // TODO: Add ItemInventoryWrapperWrapper + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManager.cs new file mode 100644 index 0000000..ed4a2ac --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public class GameManager : IReadable + { + public GameManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerImpl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerImpl.cs new file mode 100644 index 0000000..ebccc7c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerImpl.cs @@ -0,0 +1,59 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Ai; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.App; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Bullet; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Character; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Demo; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Event; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Input; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Sign; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Savegame; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public class GameManagerImpl : GameManager, IReadable + { + public CharacterManager CharacterManager { get; set; } + public CameraManager CameraManager { get; set; } + public AiManager AiManager { get; set; } + public AppResourceManager ResourceManager { get; set; } + public MapManager MapManager { get; set; } + public BulletManager BulletManager { get; set; } + public EventManager EventManager { get; set; } + public FaceGenManager FaceGenManager { get; set; } + public RumbleManager RumbleManager { get; set; } + public SignManager SignManager { get; set; } + public GameDataManager GameDataManager { get; set; } + public PlayerCtrl PlayerControl { get; set; } + public SaveLoadSystem SaveLoadSystem { get; set; } + public int FrameCount { get; set; } + public AppDecalManager DecalManager { get; set; } + public DemoManager DemoManager { get; set; } + public GameManagerState ManagerState { get; set; } + + public new GameManagerImpl Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + + CharacterManager = Pointer.CreateAndUnbox(reader, address + 0x0018, relative); + CameraManager = Pointer.CreateAndUnbox(reader, address + 0x001C, relative); + AiManager = Pointer.CreateAndUnbox(reader, address + 0x0020, relative); + ResourceManager = Pointer.CreateAndUnbox(reader, address + 0x0024, relative); + MapManager = Pointer.CreateAndUnbox(reader, address + 0x0028, relative); + BulletManager = Pointer.CreateAndUnbox(reader, address + 0x003C, relative); + EventManager = Pointer.CreateAndUnbox(reader, address + 0x0044, relative); + FaceGenManager = Pointer.CreateAndUnbox(reader, address + 0x004C, relative); + RumbleManager = Pointer.CreateAndUnbox(reader, address + 0x0050, relative); + SignManager = Pointer.CreateAndUnbox(reader, address + 0x0054, relative); + GameDataManager = Pointer.CreateAndUnbox(reader, address + 0x0060, relative); + PlayerControl = Pointer.CreateAndUnbox(reader, address + 0x0074, relative); + SaveLoadSystem = Pointer.CreateAndUnbox(reader, address + 0x0068, relative); + FrameCount = reader.ReadInt32(address + 0x00A4, relative); + DecalManager = Pointer.CreateAndUnbox(reader, address + 0x0648, relative); + DemoManager = Pointer.CreateAndUnbox(reader, address + 0x065C, relative); + ManagerState = (GameManagerState) reader.ReadInt32(address + 0x0DEC, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerState.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerState.cs new file mode 100644 index 0000000..d7e4582 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/GameManagerState.cs @@ -0,0 +1,38 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers +{ + public enum GameManagerState + { + State00 = 0, + State01, + State02, + State03, + State04, + State05, + State06, + State07, + State08, + State09, + MainMenu, + State11, + State12, + State13, + State14, + State15, + State16, + State17, + State18, + State19, + State20, + State21, + State22, + State23, + State24, + State25, + State26, + State27, + State28, + State29, + Ingame, + State31 + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Input/RumbleManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Input/RumbleManager.cs new file mode 100644 index 0000000..4823b02 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Input/RumbleManager.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Input +{ + public class RumbleManager : IReadable + { + public RumbleManager Read(IReader reader, int address, bool relative = false) + { + // TODO: Add RumbleParamContainer 001C + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapAreaManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapAreaManager.cs new file mode 100644 index 0000000..ac5750b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapAreaManager.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapAreaManager : IReadable + { + public MapAreaManager() + { + Owners = new List(); + } + + public MapEntity Entity1 { get; set; } + public MapEntity Entity2 { get; set; } + public List Owners { get; set; } + + public MapAreaManager Read(IReader reader, int address, bool relative = false) + { + Entity1 = Pointer.CreateAndUnbox(reader, address + 0x0010, relative); + Entity2 = Pointer.CreateAndUnbox(reader, address + 0x0014, relative); + + int ownersAddress = address + 0x001C; + for (int i = 0; i < 38; i++, ownersAddress += Pointer.Size) + { + MapAreaCtrlOwner owner = Pointer.CreateAndUnbox(reader, ownersAddress, relative); + Owners.Add(owner); + } + + short areaCtrlOwnerCount = reader.ReadInt16(address + 0x0C8, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapChameleonAreaManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapChameleonAreaManager.cs new file mode 100644 index 0000000..83f40be --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapChameleonAreaManager.cs @@ -0,0 +1,16 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapChameleonAreaManager : IReadable + { + public MapChameleonArea Area { get; set; } + + public MapChameleonAreaManager Read(IReader reader, int address, bool relative = false) + { + // BUG: Sometimes +0020 is just +0014 (value: 1019) and not a pointer + Area = Pointer.CreateAndUnbox(reader, address + 0x0020, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapItemPackManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapItemPackManager.cs new file mode 100644 index 0000000..9ce94e3 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapItemPackManager.cs @@ -0,0 +1,15 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Item; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapItemPackManager : IReadable + { + public MapItemPackTable ItemPackTable { get; set; } + + public MapItemPackManager Read(IReader reader, int address, bool relative = false) + { + ItemPackTable = Pointer.CreateAndUnbox(reader, address + 0x0004, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapManager.cs new file mode 100644 index 0000000..b28d67c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapManager.cs @@ -0,0 +1,28 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapManager : IReadable + { + public MapAreaManager AreaManager { get; set; } + public MapWorldList WorldList { get; set; } + public MapTextureManager TextureManager { get; set; } + public MapTextureResolutionManager TextureResolutionManager { get; set; } + public MapWindManager WindManager { get; set; } + public MapItemPackManager ItemPackManager { get; set; } + public MapChameleonAreaManager ChameleonAreaManager { get; set; } + + public MapManager Read(IReader reader, int address, bool relative = false) + { + AreaManager = Pointer.CreateAndUnbox(reader, address + 0x0004, relative); + WorldList = Pointer.CreateAndUnbox(reader, address + 0x0008, relative); + TextureManager = Pointer.CreateAndUnbox(reader, address + 0x00C0); + TextureResolutionManager = Pointer.CreateAndUnbox(reader, address + 0x00C4, + relative); + WindManager = Pointer.CreateAndUnbox(reader, address + 0x00DC, relative); + ItemPackManager = Pointer.CreateAndUnbox(reader, address + 0x00E4, relative); + ChameleonAreaManager = Pointer.CreateAndUnbox(reader, address + 0x0104, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureManager.cs new file mode 100644 index 0000000..bd5708e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureManager.cs @@ -0,0 +1,20 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Drawing; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Character; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapTextureManager : IReadable + { + public ChrTextureManager ChrTextureManager { get; set; } + public MapTexture MapTexture1 { get; set; } + public MapTexture MapTexture2 { get; set; } + + public MapTextureManager Read(IReader reader, int address, bool relative = false) + { + ChrTextureManager = Pointer.CreateAndUnbox(reader, address + 0x0004, relative); + MapTexture1 = Pointer.CreateAndUnbox(reader, address + 0x0014, relative); + MapTexture2 = Pointer.CreateAndUnbox(reader, address + 0x0018, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureResolutionManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureResolutionManager.cs new file mode 100644 index 0000000..1a1dd3e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapTextureResolutionManager.cs @@ -0,0 +1,15 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapTextureResolutionManager : IReadable + { + public MapTextureResolutionCtrl TextureResolutionCtrl { get; set; } + + public MapTextureResolutionManager Read(IReader reader, int address, bool relative = false) + { + TextureResolutionCtrl = Pointer.CreateAndUnbox(reader, address + 0x0004, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapWindManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapWindManager.cs new file mode 100644 index 0000000..6f102f9 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Map/MapWindManager.cs @@ -0,0 +1,19 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Wind; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Map +{ + public class MapWindManager : IReadable + { + public MapPointWind PointWind { get; set; } + public MapTargetDirectionalWind TargetDirectionalWind { get; set; } + public MapModelWindReactor ModelWindReactor { get; set; } + + public MapWindManager Read(IReader reader, int address, bool relative = false) + { + PointWind = Pointer.CreateAndUnbox(reader, address + 0x0008, relative); + TargetDirectionalWind = Pointer.CreateAndUnbox(reader, address + 0x000C, relative); + ModelWindReactor = Pointer.CreateAndUnbox(reader, address + 0x000C, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetEnemyManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetEnemyManager.cs new file mode 100644 index 0000000..4fd1124 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetEnemyManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetEnemyManager : IReadable + { + public NetEnemyManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetLatencyManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetLatencyManager.cs new file mode 100644 index 0000000..6df2e63 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetLatencyManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetLatencyManager : IReadable + { + public NetLatencyManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetParamContainer.cs new file mode 100644 index 0000000..cdfe3c7 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetParamContainer.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetParamContainer : IReadable + { + public NetParamContainer Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetPlayerWatcher.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetPlayerWatcher.cs new file mode 100644 index 0000000..7346ed2 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetPlayerWatcher.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetPlayerWatcher : IReadable + { + public NetPlayerWatcher Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSessionManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSessionManager.cs new file mode 100644 index 0000000..c685c28 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSessionManager.cs @@ -0,0 +1,17 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Network; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSessionManager : IReadable + { + public ServerInfo ServerInfo { get; set; } + public NetLatencyManager LatencyManager { get; set; } + + public NetSessionManager Read(IReader reader, int address, bool relative = false) + { + ServerInfo = Pointer.Create(address + 0x002C).Unbox(reader); + LatencyManager = Pointer.CreateAndUnbox(reader, address + 0x005C); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotAreaManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotAreaManager.cs new file mode 100644 index 0000000..03a940e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotAreaManager.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSummonSlotAreaManager : IReadable + { + public NetSummonSlotAreaManager Read(IReader reader, int address, bool relative = false) + { + // 0004 + // 0008 + // 000C + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotManager.cs new file mode 100644 index 0000000..e5a84ed --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSummonSlotManager.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Network; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSummonSlotManager : IReadable + { + public NetSummonSlotManager() + { + Slots = new List(); + } + + public List Slots { get; set; } + + public NetSummonSlotManager Read(IReader reader, int address, bool relative = false) + { + for (int i = 0; i < 3; i++) + { + var slot = Pointer.Create(address + 0x0108 + i*0xB0).Unbox(reader); + Slots.Add(slot); + } + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodMessageManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodMessageManager.cs new file mode 100644 index 0000000..a9c30ca --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodMessageManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrBloodMessageManager : IReadable + { + public NetSvrBloodMessageManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodstainManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodstainManager.cs new file mode 100644 index 0000000..8f93b59 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBloodstainManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrBloodstainManager : IReadable + { + public NetSvrBloodstainManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBreakInManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBreakInManager.cs new file mode 100644 index 0000000..7faf466 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrBreakInManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrBreakInManager : IReadable + { + public NetSvrBreakInManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrDuelManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrDuelManager.cs new file mode 100644 index 0000000..662197b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrDuelManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrDuelManager : IReadable + { + public NetSvrDuelManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrGhostManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrGhostManager.cs new file mode 100644 index 0000000..b2a39d0 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrGhostManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrGhostManager : IReadable + { + public NetSvrGhostManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrLoginManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrLoginManager.cs new file mode 100644 index 0000000..31d296d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrLoginManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrLoginManager : IReadable + { + public NetSvrLoginManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrManager.cs new file mode 100644 index 0000000..c7bb90d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrManager.cs @@ -0,0 +1,43 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Network; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrManager : IReadable + { + public NetSvrMemory Memory { get; set; } + public NetSvrJobRunner JobRunner { get; set; } + public NetSvrClientInterface ClientInterface { get; set; } + public NetSvrLoginManager LoginManager { get; set; } + public NetSvrProperties Properties { get; set; } + public NetSvrPlayerManager PlayerManager { get; set; } + public NetSvrSummonSignManager SummonSignManager { get; set; } + public NetSvrPreviewChrManager PreviewCharacterManager { get; set; } + public NetSvrBloodMessageManager BloodMessageManager { get; set; } + public NetSvrBloodstainManager BloodstainManager { get; set; } + public NetSvrGhostManager GhostManager { get; set; } + public NetSvrBreakInManager BreakInManager { get; set; } + public NetSvrVisitorManager VisitorManager { get; set; } + public NetSvrDuelManager DuelManager { get; set; } + public NetPlayerWatcher PlayerWatcher { get; set; } + + public NetSvrManager Read(IReader reader, int address, bool relative = false) + { + Memory = Pointer.CreateAndUnbox(reader, address + 0x002C); + JobRunner = Pointer.CreateAndUnbox(reader, address + 0x0030); + ClientInterface = Pointer.CreateAndUnbox(reader, address + 0x0034); + LoginManager = Pointer.CreateAndUnbox(reader, address + 0x0038); + Properties = Pointer.CreateAndUnbox(reader, address + 0x003C); + PlayerManager = Pointer.CreateAndUnbox(reader, address + 0x0040); + SummonSignManager = Pointer.CreateAndUnbox(reader, address + 0x0044); + PreviewCharacterManager = Pointer.CreateAndUnbox(reader, address + 0x0048); + BloodMessageManager = Pointer.CreateAndUnbox(reader, address + 0x004C); + BloodstainManager = Pointer.CreateAndUnbox(reader, address + 0x0050); + GhostManager = Pointer.CreateAndUnbox(reader, address + 0x0054); + BreakInManager = Pointer.CreateAndUnbox(reader, address + 0x0058); + VisitorManager = Pointer.CreateAndUnbox(reader, address + 0x005C); + DuelManager = Pointer.CreateAndUnbox(reader, address + 0x0060); + PlayerWatcher = Pointer.CreateAndUnbox(reader, address + 0x0068); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPlayerManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPlayerManager.cs new file mode 100644 index 0000000..3810c73 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPlayerManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrPlayerManager : IReadable + { + public NetSvrPlayerManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPreviewChrManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPreviewChrManager.cs new file mode 100644 index 0000000..86f6419 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrPreviewChrManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrPreviewChrManager : IReadable + { + public NetSvrPreviewChrManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrStateChartManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrStateChartManager.cs new file mode 100644 index 0000000..2c697e1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrStateChartManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrStateChartManager : IReadable + { + public NetSvrStateChartManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrSummonSignManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrSummonSignManager.cs new file mode 100644 index 0000000..d2cac8d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrSummonSignManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrSummonSignManager : IReadable + { + public NetSvrSummonSignManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrVisitorManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrVisitorManager.cs new file mode 100644 index 0000000..863cde7 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSvrVisitorManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSvrVisitorManager : IReadable + { + public NetSvrVisitorManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSyncDataManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSyncDataManager.cs new file mode 100644 index 0000000..c486032 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetSyncDataManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetSyncDataManager : IReadable + { + public NetSyncDataManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetworkManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetworkManager.cs new file mode 100644 index 0000000..089c7dd --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Network/NetworkManager.cs @@ -0,0 +1,26 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network +{ + public class NetworkManager : IReadable + { + public NetSessionManager SessionManager { get; set; } + public NetSyncDataManager SyncDataManager { get; set; } + public NetSummonSlotManager SummonSlotManager { get; set; } + public NetEnemyManager EnemyManager { get; set; } + public NetSvrManager ServerManager { get; set; } + public NetSvrStateChartManager ServerStateChartManager { get; set; } + public NetParamContainer ParamContainer { get; set; } + + public NetworkManager Read(IReader reader, int address, bool relative = false) + { + SessionManager = Pointer.CreateAndUnbox(reader, address + 0x0000); + SyncDataManager = Pointer.CreateAndUnbox(reader, address + 0x0008); + + SummonSlotManager = Pointer.CreateAndUnbox(reader, address + 0x0010); + EnemyManager = Pointer.CreateAndUnbox(reader, address + 0x0014); + ServerManager = Pointer.CreateAndUnbox(reader, address + 0x0018); + ServerStateChartManager = Pointer.CreateAndUnbox(reader, address + 0x001C); + ParamContainer = Pointer.CreateAndUnbox(reader, address + 0x0020); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/ActiveSignManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/ActiveSignManager.cs new file mode 100644 index 0000000..35d912a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/ActiveSignManager.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Sign +{ + public class ActiveSignManager : IReadable + { + public ActiveSignManager() + { + ActiveSigns = new List(); + } + + public bool Initialized { get; set; } + public List ActiveSigns { get; set; } + + public ActiveSignManager Read(IReader reader, int address, bool relative = false) + { + Initialized = reader.ReadBoolean(address + 0x0008, relative); + int activeSignCount = reader.ReadInt32(address + 0x000C, relative); + + ActiveSigns = GenericPointer.Create(reader, address + 0x0010, relative).Unbox(reader, + (r, a) => + { + List activeSigns = new List(); + int activeSignAddress = a; + for (int i = 0; i < activeSignCount; i++, activeSignAddress += ActiveSignCtrl.Size) + { + activeSigns.Add(Pointer.Create(activeSignAddress, relative).Unbox(reader)); + } + return activeSigns; + }); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignEventAreaManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignEventAreaManager.cs new file mode 100644 index 0000000..cbc79be --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignEventAreaManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Sign +{ + public class SignEventAreaManager : IReadable + { + public SignEventAreaManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignManager.cs new file mode 100644 index 0000000..b54b6f2 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignManager.cs @@ -0,0 +1,24 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Controllers; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Sign +{ + public class SignManager : IReadable + { + public bool Initialized { get; set; } + public ActiveSignManager ActiveSignManager { get; set; } + public SignSetCtrlManager SignSetCtrlManager { get; set; } + public SignPreviewCtrl SignPreviewCtrl { get; set; } + public SignEventAreaManager SignEventAreaManager { get; set; } + + public SignManager Read(IReader reader, int address, bool relative = false) + { + Initialized = reader.ReadBoolean(address + 0x0008, relative); + SignSetCtrlManager = Pointer.CreateAndUnbox(reader, address + 0x0034, relative); + ActiveSignManager = Pointer.CreateAndUnbox(reader, address + 0x0038, relative); + SignPreviewCtrl = Pointer.CreateAndUnbox(reader, address + 0x003C, relative); + SignEventAreaManager = Pointer.CreateAndUnbox(reader, address + 0x0040, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignSetCtrlManager.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignSetCtrlManager.cs new file mode 100644 index 0000000..01cced5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Managers/Sign/SignSetCtrlManager.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Sign +{ + public class SignSetCtrlManager : IReadable + { + public SignSetCtrlManager Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapAreaCtrlOwner.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapAreaCtrlOwner.cs new file mode 100644 index 0000000..6cd697e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapAreaCtrlOwner.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area +{ + public class MapAreaCtrlOwner : IReadable + { + public int MapId { get; set; } + + public MapAreaCtrlOwner Read(IReader reader, int address, bool relative = false) + { + MapId = reader.ReadInt32(address + 0x0004, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonArea.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonArea.cs new file mode 100644 index 0000000..f9ec148 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonArea.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area +{ + public class MapChameleonArea : IReadable + { + public MapChameleonArea() + { + ChameleonAreaDataList = new List(); + } + + public List ChameleonAreaDataList { get; set; } + + public MapChameleonArea Read(IReader reader, int address, bool relative = false) + { + int chameleonDataAddress = address + 0x0010; + for (int i = 0; i < 3; i++, chameleonDataAddress += MapChameleonAreaData.Size) + { + var data = Pointer.Create(chameleonDataAddress, relative).Unbox(reader); + ChameleonAreaDataList.Add(data); + } + + int chameleonDataCount = reader.ReadInt32(address + 0x0064, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonAreaData.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonAreaData.cs new file mode 100644 index 0000000..1c09d8d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Area/MapChameleonAreaData.cs @@ -0,0 +1,37 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Area +{ + public class MapChameleonAreaData : IReadable + { + public int ChameleonId { get; set; } + public int ChameleonIndex { get; set; } + public int ModelId1 { get; set; } + public int ModelId2 { get; set; } + public int ModelId3 { get; set; } + public int ModelId4 { get; set; } + public byte RolledId1Flag { get; set; } + public byte RolledId2Flag { get; set; } + public byte RolledId3Flag { get; set; } + public byte RolledId4Flag { get; set; } + + public static int Size + { + get { return 28; } + } + + public MapChameleonAreaData Read(IReader reader, int address, bool relative = false) + { + ChameleonId = reader.ReadInt32(address + 0x0000, relative); + ChameleonIndex = reader.ReadInt32(address + 0x0004, relative); + ModelId1 = reader.ReadInt32(address + 0x0008, relative); + ModelId2 = reader.ReadInt32(address + 0x000C, relative); + ModelId3 = reader.ReadInt32(address + 0x0010, relative); + ModelId4 = reader.ReadInt32(address + 0x0014, relative); + RolledId1Flag = reader.ReadByte(address + 0x0018, relative); + RolledId2Flag = reader.ReadByte(address + 0x0019, relative); + RolledId3Flag = reader.ReadByte(address + 0x001A, relative); + RolledId4Flag = reader.ReadByte(address + 0x001B, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItem.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItem.cs new file mode 100644 index 0000000..0a69417 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItem.cs @@ -0,0 +1,31 @@ +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Item +{ + public class MapItem : IReadable + { + public short Unknown1 { get; set; } + public short Unknown2 { get; set; } + public short ContainerId { get; set; } + public short DropId { get; set; } + public int ItemId { get; set; } + public int Amount { get; set; } + public Vector3 Position { get; set; } + + public MapItem Read(IReader reader, int address, bool relative = false) + { + short containerIdLow = reader.ReadInt16(address + 0x0008, relative); + Unknown1 = containerIdLow; + Unknown2 = reader.ReadInt16(address + 0x0010, relative); + ContainerId = reader.ReadInt16(address + 0x000C, relative); + DropId = reader.ReadInt16(address + 0x000E, relative); + ItemId = reader.ReadInt32(address + 0x0044, relative); + Amount = reader.ReadInt32(address + 0x004C, relative); + // TODO: Check if this works with multiple items + // or Matrix4 at 0x00D0-0x010C + + Position = Pointer.Create(address + 0x0100).Unbox(reader); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemListType.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemListType.cs new file mode 100644 index 0000000..fcf9fcc --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemListType.cs @@ -0,0 +1,26 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Item +{ + public enum MapItemListType + { + /// + /// Interactable items in the current area. + /// + AreaItems = 0, + + /// + /// Unknown + /// + Unknown1, + + /// + /// Dropped items anywhere in the world. + /// + WorldItems, + + /// + /// Miscellaneous items in the current area. + /// e.g. Prism Stones + /// + AreaGizmo + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPack.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPack.cs new file mode 100644 index 0000000..34c45d8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPack.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Item +{ + public class MapItemPack : IReadable + { + public MapItemPack() + { + Items = new List(); + } + + public List Items { get; set; } + + public MapItemPack Read(IReader reader, int address, bool relative = false) + { + // TODO: Is this a StdVector or a Std(Linked-)List? + Items = GenericPointer.Create(reader, address + 0x000C, relative) + .Unbox(reader, (rootNodeReader, rootNodeAddress) => + { + List items = new List(); + + int nextNodePointer = rootNodeAddress + 0x0000; + int finalNodePointer = reader.ReadInt32(rootNodeAddress + 0x0004); + while (nextNodePointer != finalNodePointer) + { + nextNodePointer = GenericPointer.Create(rootNodeReader, nextNodePointer, false) + .Unbox(rootNodeReader, (nodeReader, nodeAddress) => + { + items.Add(Pointer.CreateAndUnbox(nodeReader, nodeAddress + 0x0008)); + return nodeAddress; + }); + } + return items; + }); + + + int count = reader.ReadInt32(address + 0x0010, relative); + //Items = GenericPointer.Create(reader, address + 0x000C, relative) + // .Unbox(reader, (containerReader, containerAddress) => + // { + // List items = new List(); + + // var nodePointer = containerAddress + 0x0000; + // for (int i = 0; i < count; i++) // TODO: Can this be read without the counter? + // { + // nodePointer = GenericPointer.Create(containerReader, nodePointer, false) + // .Unbox(containerReader, (nodeReader, nodeAddress) => + // { + // items.Add(Pointer.CreateAndUnbox(nodeReader, nodeAddress + 0x0008)); + // return nodeAddress + 0x0000; + // }); + + // } + + // return items; + // }); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPackTable.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPackTable.cs new file mode 100644 index 0000000..78ce115 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Item/MapItemPackTable.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Item +{ + public class MapItemPackTable : IReadable + { + public MapItemPackTable() + { + Table = new Dictionary(); + } + + public Dictionary Table { get; set; } + + public MapItemPackTable Read(IReader reader, int address, bool relative = false) + { + int mapItemListAddress = address; + for (int i = 0; i < 4; i++, mapItemListAddress += Pointer.Size) + { + var mapItemList = Pointer.CreateAndUnbox(reader, mapItemListAddress, relative); + + Table.Add((MapItemListType) i, mapItemList); + } + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/MapWorldList.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/MapWorldList.cs new file mode 100644 index 0000000..9bea64e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/MapWorldList.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map +{ + public class MapWorldList : IReadable + { + public MapWorldList Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapModelWindReactor.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapModelWindReactor.cs new file mode 100644 index 0000000..e8d23ad --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapModelWindReactor.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Wind +{ + public class MapModelWindReactor : IReadable + { + public MapModelWindReactor Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapPointWind.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapPointWind.cs new file mode 100644 index 0000000..3767f48 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapPointWind.cs @@ -0,0 +1,18 @@ +using DarkSoulsII.DebugView.Core.Standard; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Wind +{ + public class MapPointWind : MapWind, IReadable + { + public Vector3 Position { get; set; } + public float AliveTime { get; set; } + + public new MapPointWind Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + Position = Pointer.Create(address + 0x0020, relative).Unbox(reader); + AliveTime = reader.ReadSingle(address + 0x0034, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapTargetDirectionalWind.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapTargetDirectionalWind.cs new file mode 100644 index 0000000..b4939f2 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapTargetDirectionalWind.cs @@ -0,0 +1,11 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Wind +{ + public class MapTargetDirectionalWind : MapWind, IReadable + { + public new MapTargetDirectionalWind Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapWind.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapWind.cs new file mode 100644 index 0000000..1141baa --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Map/Wind/MapWind.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Map.Wind +{ + public class MapWind : IReadable + { + public MapWind Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetPlayerSyncObject.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetPlayerSyncObject.cs new file mode 100644 index 0000000..86959e6 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetPlayerSyncObject.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetPlayerSyncObject : IReadable + { + public NetPlayerSyncObject Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlot.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlot.cs new file mode 100644 index 0000000..6c5a81e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlot.cs @@ -0,0 +1,19 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSummonSlot : IReadable + { + public string Name { get; set; } + public PlayerCtrl PlayerControl { get; set; } + + public NetSummonSlot Read(IReader reader, int address, bool relative = false) + { + // Mutex 0004-0020 + + PlayerControl = Pointer.CreateAndUnbox(reader, address + 0x0024); + Name = reader.ReadString(62, address + 0x006C, relative).Replace("\0", ""); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlotCtrl.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlotCtrl.cs new file mode 100644 index 0000000..63e2ed1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSummonSlotCtrl.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSummonSlotCtrl : IReadable + { + public NetSummonSlotCtrl Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrClientInterface.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrClientInterface.cs new file mode 100644 index 0000000..93d0a81 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrClientInterface.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSvrClientInterface : IReadable + { + public NetSvrClientInterface Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrJobRunner.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrJobRunner.cs new file mode 100644 index 0000000..687d67a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrJobRunner.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSvrJobRunner : IReadable + { + public NetSvrJobRunner Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrMemory.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrMemory.cs new file mode 100644 index 0000000..283c92c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrMemory.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSvrMemory : IReadable + { + public NetSvrMemory Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrProperties.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrProperties.cs new file mode 100644 index 0000000..5a43f5d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/NetSvrProperties.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class NetSvrProperties : IReadable + { + public NetSvrProperties Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/ServerInfo.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/ServerInfo.cs new file mode 100644 index 0000000..376cbc6 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Network/ServerInfo.cs @@ -0,0 +1,12 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Network +{ + public class ServerInfo : IReadable + { + public ServerInfo Read(IReader reader, int address, bool relative = false) + { + //0004 + //0008 + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/FileResourceObject.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/FileResourceObject.cs new file mode 100644 index 0000000..aa0772f --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/FileResourceObject.cs @@ -0,0 +1,17 @@ +using System.Text; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources +{ + public class FileResourceObject : ResourceObject, IReadable + { + public string Name { get; set; } + + public new FileResourceObject Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + Name = GenericPointer.Create(reader, address + 0x005C, relative).Unbox(reader, + (r, a) => r.ReadNullTerminatedStringChunked(a, false, 16, Encoding.Unicode, 2)); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Memory.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Memory.cs new file mode 100644 index 0000000..8035f1a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Memory.cs @@ -0,0 +1,17 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources +{ + public class Memory : IReadable + { + public byte[] Data { get; set; } + + public Memory Read(IReader reader, int address, bool relative = false) + { + int size = reader.ReadInt32(address + 0x000C, relative); + Data = GenericPointer.Create(reader, address + 0x0008, relative).Unbox(reader, + (r, a) => r.Read(size, a)); + + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorHandsUpFParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorHandsUpFParam.cs new file mode 100644 index 0000000..1544aeb --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorHandsUpFParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ArmorHandsUpFParam : IReadable + { + public ArmorHandsUpFParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorParam.cs new file mode 100644 index 0000000..c178046 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ArmorParam : IReadable + { + public ArmorParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorReinforceParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorReinforceParam.cs new file mode 100644 index 0000000..60c9007 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArmorReinforceParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ArmorReinforceParam : IReadable + { + public ArmorReinforceParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArrowParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArrowParam.cs new file mode 100644 index 0000000..d5d4e4e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ArrowParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ArrowParam : IReadable + { + public ArrowParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BehaviorParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BehaviorParam.cs new file mode 100644 index 0000000..b75e45b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BehaviorParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class BehaviorParam : IReadable + { + public BehaviorParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossEnemyGenerateParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossEnemyGenerateParam.cs new file mode 100644 index 0000000..6889602 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossEnemyGenerateParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class BossEnemyGenerateParam : IReadable + { + public BossEnemyGenerateParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossParam.cs new file mode 100644 index 0000000..f4f057b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class BossParam : IReadable + { + public BossParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsModelParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsModelParam.cs new file mode 100644 index 0000000..dfdce44 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsModelParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class BossPartsModelParam : IReadable + { + public BossPartsModelParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsParam.cs new file mode 100644 index 0000000..d5742e4 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/BossPartsParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class BossPartsParam : IReadable + { + public BossPartsParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrColorParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrColorParam.cs new file mode 100644 index 0000000..a384227 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrColorParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrColorParam : IReadable + { + public ChrColorParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCommonParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCommonParam.cs new file mode 100644 index 0000000..896675d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCommonParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrCommonParam : IReadable + { + public ChrCommonParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCullingParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCullingParam.cs new file mode 100644 index 0000000..666de82 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrCullingParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrCullingParam : IReadable + { + public ChrCullingParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEditParamBodyPreset.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEditParamBodyPreset.cs new file mode 100644 index 0000000..d5a3d25 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEditParamBodyPreset.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrEditParamBodyPreset : IReadable + { + public ChrEditParamBodyPreset Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipLoadParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipLoadParam.cs new file mode 100644 index 0000000..2e0e687 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipLoadParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrEquipLoadParam : IReadable + { + public ChrEquipLoadParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipWeaponParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipWeaponParam.cs new file mode 100644 index 0000000..5300c8c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrEquipWeaponParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrEquipWeaponParam : IReadable + { + public ChrEquipWeaponParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrFullbodySfxParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrFullbodySfxParam.cs new file mode 100644 index 0000000..849dbf5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrFullbodySfxParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrFullbodySfxParam : IReadable + { + public ChrFullbodySfxParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrGrowthParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrGrowthParam.cs new file mode 100644 index 0000000..576d437 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrGrowthParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrGrowthParam : IReadable + { + public ChrGrowthParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrLevelUpSoulsParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrLevelUpSoulsParam.cs new file mode 100644 index 0000000..956328e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrLevelUpSoulsParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrLevelUpSoulsParam : IReadable + { + public ChrLevelUpSoulsParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrModelParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrModelParam.cs new file mode 100644 index 0000000..7a19583 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrModelParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrModelParam : IReadable + { + public ChrModelParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMoveParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMoveParam.cs new file mode 100644 index 0000000..3b7da3b --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMoveParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrMoveParam : IReadable + { + public ChrMoveParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMultiplayParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMultiplayParam.cs new file mode 100644 index 0000000..eb9cd68 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrMultiplayParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrMultiplayParam : IReadable + { + public ChrMultiplayParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetPhantomSoulRateParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetPhantomSoulRateParam.cs new file mode 100644 index 0000000..d491d55 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetPhantomSoulRateParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrNetPhantomSoulRateParam : IReadable + { + public ChrNetPhantomSoulRateParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetworkPhantomParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetworkPhantomParam.cs new file mode 100644 index 0000000..c649c77 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrNetworkPhantomParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrNetworkPhantomParam : IReadable + { + public ChrNetworkPhantomParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrParam.cs new file mode 100644 index 0000000..abf53c0 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrParam : IReadable + { + public ChrParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrPointWindParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrPointWindParam.cs new file mode 100644 index 0000000..117360d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrPointWindParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrPointWindParam : IReadable + { + public ChrPointWindParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDamageParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDamageParam.cs new file mode 100644 index 0000000..3bcadf7 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDamageParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrRoundDamageParam : IReadable + { + public ChrRoundDamageParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDropSoulParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDropSoulParam.cs new file mode 100644 index 0000000..bf9bbf0 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrRoundDropSoulParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrRoundDropSoulParam : IReadable + { + public ChrRoundDropSoulParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrWetParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrWetParam.cs new file mode 100644 index 0000000..df5db2d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ChrWetParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ChrWetParam : IReadable + { + public ChrWetParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ComboBehaviorParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ComboBehaviorParam.cs new file mode 100644 index 0000000..54497b1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ComboBehaviorParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ComboBehaviorParam : IReadable + { + public ComboBehaviorParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CriminalAndDeceasedParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CriminalAndDeceasedParam.cs new file mode 100644 index 0000000..2dcbd8e --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CriminalAndDeceasedParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class CriminalAndDeceasedParam : IReadable + { + public CriminalAndDeceasedParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrCostParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrCostParam.cs new file mode 100644 index 0000000..d529e43 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrCostParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class CustomAttrCostParam : IReadable + { + public CustomAttrCostParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrSpecParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrSpecParam.cs new file mode 100644 index 0000000..033e177 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/CustomAttrSpecParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class CustomAttrSpecParam : IReadable + { + public CustomAttrSpecParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DeadTypeParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DeadTypeParam.cs new file mode 100644 index 0000000..c6a1971 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DeadTypeParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class DeadTypeParam : IReadable + { + public DeadTypeParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DualWieldPermissionParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DualWieldPermissionParam.cs new file mode 100644 index 0000000..3fd6582 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/DualWieldPermissionParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class DualWieldPermissionParam : IReadable + { + public DualWieldPermissionParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyAttackMoveParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyAttackMoveParam.cs new file mode 100644 index 0000000..f104a4c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyAttackMoveParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class EnemyAttackMoveParam : IReadable + { + public EnemyAttackMoveParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyShotSfxParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyShotSfxParam.cs new file mode 100644 index 0000000..2535401 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EnemyShotSfxParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class EnemyShotSfxParam : IReadable + { + public EnemyShotSfxParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentCullingTargetParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentCullingTargetParam.cs new file mode 100644 index 0000000..4bf34c7 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentCullingTargetParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class EquipmentCullingTargetParam : IReadable + { + public EquipmentCullingTargetParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentInterfereParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentInterfereParam.cs new file mode 100644 index 0000000..e2a9721 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/EquipmentInterfereParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class EquipmentInterfereParam : IReadable + { + public EquipmentInterfereParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FallingParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FallingParam.cs new file mode 100644 index 0000000..1785f88 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FallingParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class FallingParam : IReadable + { + public FallingParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectSfxParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectSfxParam.cs new file mode 100644 index 0000000..d5c71ac --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectSfxParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class FootEffectSfxParam : IReadable + { + public FootEffectSfxParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectWaterSfxParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectWaterSfxParam.cs new file mode 100644 index 0000000..e68e763 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/FootEffectWaterSfxParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class FootEffectWaterSfxParam : IReadable + { + public FootEffectWaterSfxParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GrabParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GrabParam.cs new file mode 100644 index 0000000..f98c925 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GrabParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class GrabParam : IReadable + { + public GrabParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GroundMaterialParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GroundMaterialParam.cs new file mode 100644 index 0000000..adfb30a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GroundMaterialParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class GroundMaterialParam : IReadable + { + public GroundMaterialParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GuardLevelMotionParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GuardLevelMotionParam.cs new file mode 100644 index 0000000..6f551e5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/GuardLevelMotionParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class GuardLevelMotionParam : IReadable + { + public GuardLevelMotionParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackMatrixParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackMatrixParam.cs new file mode 100644 index 0000000..b1b10b6 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackMatrixParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class HitBackMatrixParam : IReadable + { + public HitBackMatrixParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackParam.cs new file mode 100644 index 0000000..c04f2d8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HitBackParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class HitBackParam : IReadable + { + public HitBackParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HollowLevelStatsParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HollowLevelStatsParam.cs new file mode 100644 index 0000000..7e42582 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/HollowLevelStatsParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class HollowLevelStatsParam : IReadable + { + public HollowLevelStatsParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LackOfStatsParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LackOfStatsParam.cs new file mode 100644 index 0000000..6e95bb5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LackOfStatsParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class LackOfStatsParam : IReadable + { + public LackOfStatsParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnCameraOffsetParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnCameraOffsetParam.cs new file mode 100644 index 0000000..4caa44d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnCameraOffsetParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class LockOnCameraOffsetParam : IReadable + { + public LockOnCameraOffsetParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnParam.cs new file mode 100644 index 0000000..9d8908a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockOnParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class LockOnParam : IReadable + { + public LockOnParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockTargetParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockTargetParam.cs new file mode 100644 index 0000000..1194889 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/LockTargetParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class LockTargetParam : IReadable + { + public LockTargetParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MaterialParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MaterialParam.cs new file mode 100644 index 0000000..6fc4a33 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MaterialParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class MaterialParam : IReadable + { + public MaterialParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MenuStatsParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MenuStatsParam.cs new file mode 100644 index 0000000..a1c6f0c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/MenuStatsParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class MenuStatsParam : IReadable + { + public MenuStatsParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcGenerateParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcGenerateParam.cs new file mode 100644 index 0000000..151c68a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcGenerateParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class NpcGenerateParam : IReadable + { + public NpcGenerateParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerSkinParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerSkinParam.cs new file mode 100644 index 0000000..a903708 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerSkinParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class NpcPlayerSkinParam : IReadable + { + public NpcPlayerSkinParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerStatusParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerStatusParam.cs new file mode 100644 index 0000000..5117eac --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/NpcPlayerStatusParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class NpcPlayerStatusParam : IReadable + { + public NpcPlayerStatusParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PhysStatsPerLevelStatParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PhysStatsPerLevelStatParam.cs new file mode 100644 index 0000000..d2cfe25 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PhysStatsPerLevelStatParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class PhysStatsPerLevelStatParam : IReadable + { + public PhysStatsPerLevelStatParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerCommonParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerCommonParam.cs new file mode 100644 index 0000000..bd3dcfe --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerCommonParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class PlayerCommonParam : IReadable + { + public PlayerCommonParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerLightParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerLightParam.cs new file mode 100644 index 0000000..0d7cf72 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerLightParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class PlayerLightParam : IReadable + { + public PlayerLightParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusItemParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusItemParam.cs new file mode 100644 index 0000000..3d36e83 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusItemParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class PlayerStatusItemParam : IReadable + { + public PlayerStatusItemParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusNormal.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusNormal.cs new file mode 100644 index 0000000..bd13317 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/PlayerStatusNormal.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class PlayerStatusNormal : IReadable + { + public PlayerStatusNormal Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ReinforceCostParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ReinforceCostParam.cs new file mode 100644 index 0000000..adc5faa --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/ReinforceCostParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class ReinforceCostParam : IReadable + { + public ReinforceCostParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RelatePhysStatToLevelStat.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RelatePhysStatToLevelStat.cs new file mode 100644 index 0000000..f0eaac0 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RelatePhysStatToLevelStat.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class RelatePhysStatToLevelStat : IReadable + { + public RelatePhysStatToLevelStat Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RingParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RingParam.cs new file mode 100644 index 0000000..0e601f8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/RingParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class RingParam : IReadable + { + public RingParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellParam.cs new file mode 100644 index 0000000..fd79bdd --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class SpellParam : IReadable + { + public SpellParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellSoulConsumeParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellSoulConsumeParam.cs new file mode 100644 index 0000000..32d3b3a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/SpellSoulConsumeParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class SpellSoulConsumeParam : IReadable + { + public SpellSoulConsumeParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchCtrlParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchCtrlParam.cs new file mode 100644 index 0000000..5832382 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchCtrlParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class TorchCtrlParam : IReadable + { + public TorchCtrlParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchOffCtrlParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchOffCtrlParam.cs new file mode 100644 index 0000000..9c62e83 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/TorchOffCtrlParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class TorchOffCtrlParam : IReadable + { + public TorchOffCtrlParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/VowParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/VowParam.cs new file mode 100644 index 0000000..41c8115 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/VowParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class VowParam : IReadable + { + public VowParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponActionCategoryParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponActionCategoryParam.cs new file mode 100644 index 0000000..e40f781 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponActionCategoryParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponActionCategoryParam : IReadable + { + public WeaponActionCategoryParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponAttackMotionParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponAttackMotionParam.cs new file mode 100644 index 0000000..5a2e837 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponAttackMotionParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponAttackMotionParam : IReadable + { + public WeaponAttackMotionParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponParam.cs new file mode 100644 index 0000000..a504570 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponParam : IReadable + { + public WeaponParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponReinforceParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponReinforceParam.cs new file mode 100644 index 0000000..09d219c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponReinforceParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponReinforceParam : IReadable + { + public WeaponReinforceParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStaminaCostParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStaminaCostParam.cs new file mode 100644 index 0000000..ceed772 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStaminaCostParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponStaminaCostParam : IReadable + { + public WeaponStaminaCostParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStatsAffectParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStatsAffectParam.cs new file mode 100644 index 0000000..61add2f --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponStatsAffectParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponStatsAffectParam : IReadable + { + public WeaponStatsAffectParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponTypeParam.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponTypeParam.cs new file mode 100644 index 0000000..c1083e6 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Character/WeaponTypeParam.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character +{ + public class WeaponTypeParam : IReadable + { + public WeaponTypeParam Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/AiParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/AiParamContainer.cs new file mode 100644 index 0000000..0ed1723 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/AiParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class AiParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/BulletParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/BulletParamContainer.cs new file mode 100644 index 0000000..4e87391 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/BulletParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class BulletParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CameraParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CameraParamContainer.cs new file mode 100644 index 0000000..4b30139 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CameraParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class CameraParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CharacterParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CharacterParamContainer.cs new file mode 100644 index 0000000..100e756 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/CharacterParamContainer.cs @@ -0,0 +1,297 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Character; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class CharacterParamContainer : IReadable + { + public ParamFileResourceObjectForRegulation ChrParam1 { get; set; } + public ParamFileResourceObjectForRegulation ChrCommonParam1 { get; set; } + public ParamFileResourceObjectForRegulation ChrMoveParam1 { get; set; } + public ParamFileResourceObjectForRegulation ChrEquipWeaponParam1 { get; set; } + public ParamFileResourceObjectForRegulation ChrParam2 { get; set; } + public ParamFileResourceObjectForRegulation ChrCommonParam2 { get; set; } + public ParamFileResourceObjectForRegulation ChrMoveParam2 { get; set; } + public ParamFileResourceObjectForRegulation ChrEquipWeaponParam2 { get; set; } + public ParamFileResourceObjectForRegulation PlayerCommonParam { get; set; } + public ParamFileResourceObjectForRegulation BehaviorParam1 { get; set; } + public ParamFileResourceObjectForRegulation BehaviorParam2 { get; set; } + public ParamFileResourceObjectForRegulation BehaviorParam3 { get; set; } + public ParamFileResourceObjectForRegulation ComboBehaviorParam { get; set; } + public ParamFileResourceObjectForRegulation ChrColorParam { get; set; } + public ParamFileResourceObjectForRegulation ChrCullingParam { get; set; } + public ParamFileResourceObjectForRegulation ChrEquipLoadParam { get; set; } + public ParamFileResourceObjectForRegulation FallingParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponActionCategoryParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponAttackMotionParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponTypeParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponStaminaCostParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponReinforceParam { get; set; } + public ParamFileResourceObjectForRegulation WeaponStatsAffectParam { get; set; } + public ParamFileResourceObjectForRegulation DualWieldPermissionParam { get; set; } + public ParamFileResourceObjectForRegulation ArmorParam { get; set; } + public ParamFileResourceObjectForRegulation ArmorReinforceParam { get; set; } + public ParamFileResourceObjectForRegulation ArmorHandsUpFParam { get; set; } + public ParamFileResourceObjectForRegulation EquipmentInterfereParam { get; set; } + + public ParamFileResourceObjectForRegulation EquipmentCullingTargetParam { get; set; + } + + public ParamFileResourceObjectForRegulation CustomAttrSpecParam { get; set; } + public ParamFileResourceObjectForRegulation CustomAttrCostParam { get; set; } + public ParamFileResourceObjectForRegulation ReinforceCostParam { get; set; } + public ParamFileResourceObjectForRegulation ArrowParam { get; set; } + public ParamFileResourceObjectForRegulation RingParam { get; set; } + public ParamFileResourceObjectForRegulation SpellParam { get; set; } + public ParamFileResourceObjectForRegulation SpellSoulConsumeParam { get; set; } + public ParamFileResourceObjectForRegulation FootEffectSfxParam { get; set; } + public ParamFileResourceObjectForRegulation ChrGrowthParam { get; set; } + public ParamFileResourceObjectForRegulation ChrLevelUpSoulsParam { get; set; } + public ParamFileResourceObjectForRegulation RelatePhysStatToLevelStat { get; set; } + public ParamFileResourceObjectForRegulation PhysStatsPerLevelStatParam { get; set; } + public ParamFileResourceObjectForRegulation MenuStatsParam { get; set; } + public ParamFileResourceObjectForRegulation HollowLevelStatsParam { get; set; } + public ParamFileResourceObjectForRegulation LackOfStatsParam { get; set; } + public ParamFileResourceObjectForRegulation NpcGenerateParam { get; set; } + public ParamFileResourceObjectForRegulation ChrEditParamBodyPreset { get; set; } + public ParamFileResourceObjectForRegulation MaterialParam { get; set; } + public ParamFileResourceObjectForRegulation GroundMaterialParam { get; set; } + public ParamFileResourceObjectForRegulation LockOnParam { get; set; } + public ParamFileResourceObjectForRegulation LockTargetParam { get; set; } + public ParamFileResourceObjectForRegulation LockOnCameraOffsetParam { get; set; } + public ParamFileResourceObjectForRegulation GuardLevelMotionParam { get; set; } + public ParamFileResourceObjectForRegulation BossParam { get; set; } + public ParamFileResourceObjectForRegulation BossPartsParam { get; set; } + public ParamFileResourceObjectForRegulation BossPartsModelParam { get; set; } + public ParamFileResourceObjectForRegulation BossEnemyGenerateParam { get; set; } + public ParamFileResourceObjectForRegulation GrabParam { get; set; } + public ParamFileResourceObjectForRegulation DeadTypeParam { get; set; } + public ParamFileResourceObjectForRegulation TorchCtrlParam { get; set; } + public ParamFileResourceObjectForRegulation TorchOffCtrlParam { get; set; } + public ParamFileResourceObjectForRegulation ChrWetParam { get; set; } + public ParamFileResourceObjectForRegulation HitBackMatrixParam { get; set; } + public ParamFileResourceObjectForRegulation HitBackParam { get; set; } + public ParamFileResourceObjectForRegulation ChrFullbodySfxParam { get; set; } + public ParamFileResourceObjectForRegulation EnemyAttackMoveParam { get; set; } + public ParamFileResourceObjectForRegulation PlayerStatusNormal { get; set; } + public ParamFileResourceObjectForRegulation PlayerStatusItemParam { get; set; } + public ParamFileResourceObjectForRegulation NpcPlayerStatusParam { get; set; } + public ParamFileResourceObjectForRegulation NpcPlayerSkinParam { get; set; } + public ParamFileResourceObjectForRegulation CriminalAndDeceasedParam { get; set; } + public ParamFileResourceObjectForRegulation ChrPointWindParam { get; set; } + public ParamFileResourceObjectForRegulation PlayerLightParam { get; set; } + public ParamFileResourceObjectForRegulation VowParam { get; set; } + public ParamFileResourceObjectForRegulation ChrNetworkPhantomParam { get; set; } + public ParamFileResourceObjectForRegulation ChrNetPhantomSoulRateParam { get; set; } + public ParamFileResourceObjectForRegulation ChrModelParam { get; set; } + public ParamFileResourceObjectForRegulation EnemyShotSfxParam { get; set; } + public ParamFileResourceObjectForRegulation ChrRoundDamageParam { get; set; } + public ParamFileResourceObjectForRegulation ChrRoundDropSoulParam { get; set; } + public ParamFileResourceObjectForRegulation ChrMultiplayParam { get; set; } + public ParamFileResourceObjectForRegulation FootEffectWaterSfxParam { get; set; } + + public CharacterParamContainer Read(IReader reader, int address, bool relative = false) + { + ChrParam1 = Pointer>.CreateAndUnbox(reader, address + 0x000, + relative); + ChrCommonParam1 = Pointer>.CreateAndUnbox(reader, + address + 0x008, relative); + ChrMoveParam1 = Pointer>.CreateAndUnbox(reader, + address + 0x0010, relative); + ChrEquipWeaponParam1 = + Pointer>.CreateAndUnbox(reader, + address + 0x0018, relative); + ChrParam2 = Pointer>.CreateAndUnbox(reader, address + 0x0020, + relative); + ChrCommonParam2 = Pointer>.CreateAndUnbox(reader, + address + 0x0028, relative); + ChrMoveParam2 = Pointer>.CreateAndUnbox(reader, + address + 0x0030, relative); + ChrEquipWeaponParam2 = + Pointer>.CreateAndUnbox(reader, + address + 0x0038, relative); + PlayerCommonParam = Pointer>.CreateAndUnbox(reader, + address + 0x0040, relative); + BehaviorParam1 = Pointer>.CreateAndUnbox(reader, + address + 0x0048, relative); + BehaviorParam2 = Pointer>.CreateAndUnbox(reader, + address + 0x0050, relative); + BehaviorParam3 = Pointer>.CreateAndUnbox(reader, + address + 0x0058, relative); + ComboBehaviorParam = Pointer>.CreateAndUnbox( + reader, address + 0x0060, relative); + ChrColorParam = Pointer>.CreateAndUnbox(reader, + address + 0x0068, relative); + ChrCullingParam = Pointer>.CreateAndUnbox(reader, + address + 0x0070, relative); + ChrEquipLoadParam = Pointer>.CreateAndUnbox(reader, + address + 0x0078, relative); + FallingParam = Pointer>.CreateAndUnbox(reader, + address + 0x0080, relative); + WeaponParam = Pointer>.CreateAndUnbox(reader, + address + 0x0088, relative); + WeaponActionCategoryParam = + Pointer>.CreateAndUnbox(reader, + address + 0x0090, relative); + WeaponAttackMotionParam = + Pointer>.CreateAndUnbox(reader, + address + 0x0098, relative); + WeaponTypeParam = Pointer>.CreateAndUnbox(reader, + address + 0x00A0, relative); + WeaponStaminaCostParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00A8, relative); + WeaponReinforceParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00B0, relative); + WeaponStatsAffectParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00B8, relative); + DualWieldPermissionParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00C0, relative); + ArmorParam = Pointer>.CreateAndUnbox(reader, + address + 0x00C8, relative); + ArmorReinforceParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00D0, relative); + ArmorHandsUpFParam = Pointer>.CreateAndUnbox( + reader, address + 0x00D8, relative); + EquipmentInterfereParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00E0, relative); + EquipmentCullingTargetParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00E8, relative); + CustomAttrSpecParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00F0, relative); + CustomAttrCostParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00F8, relative); + ReinforceCostParam = Pointer>.CreateAndUnbox( + reader, address + 0x00100, relative); + ArrowParam = Pointer>.CreateAndUnbox(reader, + address + 0x00108, relative); + RingParam = Pointer>.CreateAndUnbox(reader, + address + 0x00110, relative); + SpellParam = Pointer>.CreateAndUnbox(reader, + address + 0x00118, relative); + SpellSoulConsumeParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00120, relative); + FootEffectSfxParam = Pointer>.CreateAndUnbox( + reader, address + 0x00128, relative); + ChrGrowthParam = Pointer>.CreateAndUnbox(reader, + address + 0x00130, relative); + ChrLevelUpSoulsParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00138, relative); + RelatePhysStatToLevelStat = + Pointer>.CreateAndUnbox(reader, + address + 0x00140, relative); + PhysStatsPerLevelStatParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00148, relative); + MenuStatsParam = Pointer>.CreateAndUnbox(reader, + address + 0x00150, relative); + HollowLevelStatsParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00158, relative); + LackOfStatsParam = Pointer>.CreateAndUnbox(reader, + address + 0x00160, relative); + NpcGenerateParam = Pointer>.CreateAndUnbox(reader, + address + 0x00168, relative); + ChrEditParamBodyPreset = + Pointer>.CreateAndUnbox(reader, + address + 0x00170, relative); + MaterialParam = Pointer>.CreateAndUnbox(reader, + address + 0x00178, relative); + GroundMaterialParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00180, relative); + LockOnParam = Pointer>.CreateAndUnbox(reader, + address + 0x00188, relative); + LockTargetParam = Pointer>.CreateAndUnbox(reader, + address + 0x00190, relative); + LockOnCameraOffsetParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00198, relative); + GuardLevelMotionParam = + Pointer>.CreateAndUnbox(reader, + address + 0x001A0, relative); + BossParam = Pointer>.CreateAndUnbox(reader, + address + 0x001A8, relative); + BossPartsParam = Pointer>.CreateAndUnbox(reader, + address + 0x001B0, relative); + BossPartsModelParam = + Pointer>.CreateAndUnbox(reader, + address + 0x001B8, relative); + BossEnemyGenerateParam = + Pointer>.CreateAndUnbox(reader, + address + 0x001C0, relative); + GrabParam = Pointer>.CreateAndUnbox(reader, + address + 0x001C8, relative); + DeadTypeParam = Pointer>.CreateAndUnbox(reader, + address + 0x001D0, relative); + TorchCtrlParam = Pointer>.CreateAndUnbox(reader, + address + 0x001D8, relative); + TorchOffCtrlParam = Pointer>.CreateAndUnbox(reader, + address + 0x001E0, relative); + ChrWetParam = Pointer>.CreateAndUnbox(reader, + address + 0x001E8, relative); + HitBackMatrixParam = Pointer>.CreateAndUnbox( + reader, address + 0x001F0, relative); + HitBackParam = Pointer>.CreateAndUnbox(reader, + address + 0x001F8, relative); + ChrFullbodySfxParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00200, relative); + EnemyAttackMoveParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00208, relative); + PlayerStatusNormal = Pointer>.CreateAndUnbox( + reader, address + 0x00210, relative); + PlayerStatusItemParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00218, relative); + NpcPlayerStatusParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00220, relative); + NpcPlayerSkinParam = Pointer>.CreateAndUnbox( + reader, address + 0x00228, relative); + CriminalAndDeceasedParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00230, relative); + ChrPointWindParam = Pointer>.CreateAndUnbox(reader, + address + 0x00238, relative); + PlayerLightParam = Pointer>.CreateAndUnbox(reader, + address + 0x00240, relative); + VowParam = Pointer>.CreateAndUnbox(reader, address + 0x00248, + relative); + ChrNetworkPhantomParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00250, relative); + ChrNetPhantomSoulRateParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00258, relative); + ChrModelParam = Pointer>.CreateAndUnbox(reader, + address + 0x00260, relative); + EnemyShotSfxParam = Pointer>.CreateAndUnbox(reader, + address + 0x00268, relative); + ChrRoundDamageParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00270, relative); + ChrRoundDropSoulParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00278, relative); + ChrMultiplayParam = Pointer>.CreateAndUnbox(reader, + address + 0x00280, relative); + FootEffectWaterSfxParam = + Pointer>.CreateAndUnbox(reader, + address + 0x00288, relative); + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DamageParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DamageParamContainer.cs new file mode 100644 index 0000000..7bab148 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DamageParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class DamageParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DemoParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DemoParamContainer.cs new file mode 100644 index 0000000..7ad442d --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/DemoParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class DemoParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/EventParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/EventParamContainer.cs new file mode 100644 index 0000000..7640fee --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/EventParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class EventParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/FaceGenParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/FaceGenParamContainer.cs new file mode 100644 index 0000000..6725f59 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/FaceGenParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class FaceGenParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/Item2ParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/Item2ParamContainer.cs new file mode 100644 index 0000000..8101bca --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/Item2ParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class Item2ParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapBonfireParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapBonfireParamContainer.cs new file mode 100644 index 0000000..7e8fa81 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapBonfireParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class MapBonfireParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapParamContainer.cs new file mode 100644 index 0000000..f677e32 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/MapParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class MapParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/NetParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/NetParamContainer.cs new file mode 100644 index 0000000..78ceebf --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/NetParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class NetParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/RumbleParamContainer.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/RumbleParamContainer.cs new file mode 100644 index 0000000..526cabe --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Containers/RumbleParamContainer.cs @@ -0,0 +1,6 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param.Containers +{ + public class RumbleParamContainer + { + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Param.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Param.cs new file mode 100644 index 0000000..956be64 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/Param.cs @@ -0,0 +1,13 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param +{ + public class Param : IReadable + { + public string Name { get; set; } + + public Param Read(IReader reader, int address, bool relative = false) + { + // TODO: Implement generic param structure reading + return this; + } + } +} \ No newline at end of file diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObject.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObject.cs new file mode 100644 index 0000000..a17e301 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObject.cs @@ -0,0 +1,21 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param +{ + public class ParamFileResourceObject : FileResourceObject, IReadable> + where T : class, IReadable, new() + { + ////public Memory Memory { get; set; } + public T Param { get; set; } + + public new ParamFileResourceObject Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + bool read = reader.ReadBoolean(address + 0x00A0, relative) == false; + ////Memory = Pointer.Create(address + 0x008C, relative).Unbox(reader); + Param = GenericPointer.Create(address + 0x008C).Unbox(reader, + (r, a) => Pointer.Create(r.ReadInt32(a + 0x0008)).Unbox(r)); + + + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObjectForRegulation.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObjectForRegulation.cs new file mode 100644 index 0000000..6e31020 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Param/ParamFileResourceObjectForRegulation.cs @@ -0,0 +1,12 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Param +{ + public class ParamFileResourceObjectForRegulation : ParamFileResourceObject, + IReadable> where T : class, IReadable, new() + { + public new ParamFileResourceObjectForRegulation Read(IReader reader, int address, bool relative = false) + { + base.Read(reader, address, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/ResourceObject.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/ResourceObject.cs new file mode 100644 index 0000000..850d657 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/ResourceObject.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources +{ + public class ResourceObject : IReadable + { + public ResourceObject Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTable.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTable.cs new file mode 100644 index 0000000..273e214 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTable.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; +using System.Text; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Text +{ + public class TextLookUpTable : IReadable + { + private const int ItemEntrySize = 0x000C; + public readonly Dictionary IdToTextMap; + + public TextLookUpTable() + { + IdToTextMap = new Dictionary(); + } + + public TextLookUpTable Read(IReader reader, int address, bool relative = false) + { + ////int size = reader.ReadInt32(address + 0x0004, relative); + int count = reader.ReadInt32(address + 0x000C, relative); + int stringCount = reader.ReadInt32(address + 0x0010, relative); + + // 0x0014 points to itemAddress + ItemEntrySize * count + int[] offsets = GenericPointer.Create(reader, address + 0x0014, relative) + .Unbox(reader, (r, a) => r.ReadInt32(stringCount, a)); + string[] strings = new string[stringCount]; + + for (int i = 0; i < stringCount; i++) + { + var address1 = address + offsets[i]; + strings[i] = reader.ReadNullTerminatedStringChunked(address1, relative, 16, Encoding.Unicode, 2); + } + + int itemAddress = address + 0x001C; + for (int i = 0; i < count; i++, itemAddress += ItemEntrySize) + { + int index = reader.ReadInt32(itemAddress + 0x0000, relative); + int lowId = reader.ReadInt32(itemAddress + 0x0004, relative); + int highId = reader.ReadInt32(itemAddress + 0x0008, relative); + int idCount = highId - lowId + 1; + + for (int j = 0; j < idCount; j++) + { + IdToTextMap.Add(lowId + j, strings[index + j]); + } + } + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCache.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCache.cs new file mode 100644 index 0000000..c79610c --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCache.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Text +{ + public class TextLookUpTableCache : IReadable + { + public TextLookUpTableCache() + { + Entries = new Dictionary(); + } + + public Dictionary Entries { get; set; } + + public TextLookUpTableCache Read(IReader reader, int address, bool relative = false) + { + int offset = 0x00D8; + for (int i = 0; i < 26; i++, offset += TextLookUpTableCacheEntry.Size) + { + var entry = Pointer.Create(address + offset).Unbox(reader); + Entries.Add((TextLookupTableType) i, entry); + } + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCacheEntry.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCacheEntry.cs new file mode 100644 index 0000000..a3d3ecd --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookUpTableCacheEntry.cs @@ -0,0 +1,17 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Text +{ + public class TextLookUpTableCacheEntry : IReadable + { + public const int Size = 16; + public TextLookUpTable LookupTable { get; set; } + + public TextLookUpTableCacheEntry Read(IReader reader, int address, bool relative = false) + { + // 0000 MemoryResourceObject + // 0008 Memory + + LookupTable = Pointer.CreateAndUnbox(reader, address + 0x000C, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookupTableType.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookupTableType.cs new file mode 100644 index 0000000..6809adf --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Resources/Text/TextLookupTableType.cs @@ -0,0 +1,32 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Text +{ + public enum TextLookupTableType + { + Common = 0, + IngameSystem, + KeyGuide, + CharaMaking, + BossName, + MapName, + MapEvent, + IngameMenu, + ItemName, + SimpleExplanation, + DetailedExplanation, + Bonfire, + NpcMenu, + PluralSelect, + BloodmessageSentence, + BloodmessageWordCategory, + BloodmessageWord, + BloodmessageConjunction, + BonfireName, + Shop, + WeaponType, + IconHelp, + Win32OnlyMessage, + TitleMenu, + TitleFlow, + Prologue + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CameraOperatorHelper.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CameraOperatorHelper.cs new file mode 100644 index 0000000..0f16c83 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CameraOperatorHelper.cs @@ -0,0 +1,100 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.Camera; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Camera.Operators; +using DarkSoulsII.DebugView.Core.Exceptions; +using DarkSoulsII.DebugView.Core.Rtti; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Rtti +{ + public class CameraOperatorHelper : IRttiResolver + { + private static CameraOperatorHelper _instance; + + private CameraOperatorHelper() + { + } + + public static CameraOperatorHelper Instance + { + get { return _instance ?? (_instance = new CameraOperatorHelper()); } + } + + public IPointer ResolvePointer(IReader reader, int address, bool relative = false) + { + if (address == 0) + return null; + + int vtable; + try + { + vtable = reader.ReadInt32(address, relative); + } + catch (MemoryInaccessibleException) + { + return null; + } + + IPointer pointer; + switch (vtable) + { + case 0x012DCFCC: + pointer = Pointer.Create(address); + break; + case 0x012DD08C: + pointer = Pointer.Create(address); + break; + case 0x012DD0E4: + pointer = Pointer.Create(address); + break; + case 0x012B03AC: + pointer = Pointer.Create(address); + break; + case 0x012DD1DC: + pointer = Pointer.Create(address); + break; + case 0x012DD23C: + pointer = Pointer.Create(address); + break; + case 0x012DCDD4: + pointer = Pointer.Create(address); + break; + case 0x012DCE84: + pointer = Pointer.Create(address); + break; + case 0x012B0558: + pointer = Pointer.Create(address); + break; + case 0x012DCED4: + pointer = Pointer.Create(address); + break; + case 0x012B0608: + pointer = Pointer.Create(address); + break; + case 0x012DD294: + pointer = Pointer.Create(address); + break; + case 0x0134F624: + pointer = Pointer.Create(address); + break; + case 0x0134A3CC: + pointer = Pointer.Create(address); + break; + case 0x012DCF7C: + pointer = Pointer.Create(address); + break; + case 0x012DD2E4: + pointer = Pointer.Create(address); + break; + case 0x0134F64C: + pointer = Pointer.Create(address); + break; + case 0x0134A3FC: + pointer = Pointer.Create(address); + break; + default: + pointer = null; + break; + } + return pointer; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CharacterCtrlBaseHelper.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CharacterCtrlBaseHelper.cs new file mode 100644 index 0000000..69394f7 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/CharacterCtrlBaseHelper.cs @@ -0,0 +1,57 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities; +using DarkSoulsII.DebugView.Core.Exceptions; +using DarkSoulsII.DebugView.Core.Rtti; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Rtti +{ + public class CharacterCtrlBaseResolver : IRttiResolver + { + private static CharacterCtrlBaseResolver _instance; + + private CharacterCtrlBaseResolver() + { + } + + public static CharacterCtrlBaseResolver Instance + { + get { return _instance ?? (_instance = new CharacterCtrlBaseResolver()); } + } + + public IPointer ResolvePointer(IReader reader, int address, bool relative = false) + { + if (address == 0) + return null; + + int vtable; + try + { + vtable = reader.ReadInt32(address, relative); + } + catch (MemoryInaccessibleException) + { + return null; + } + + IPointer pointer; + switch (vtable) + { + case 0x012D2054: + pointer = Pointer.Create(address); + break; + case 0x012CE454: + pointer = Pointer.Create(address); + break; + case 0x012CEB44: + pointer = Pointer.Create(address); + break; + case 0x012CE5EC: + pointer = Pointer.Create(address); + break; + default: + pointer = null; + break; + } + return pointer; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/GameEntityComponentHelper.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/GameEntityComponentHelper.cs new file mode 100644 index 0000000..dece717 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Rtti/GameEntityComponentHelper.cs @@ -0,0 +1,40 @@ +using DarkSoulsII.DebugView.Core.DarkSoulsII.GameObjects.GameEntities.Components; +using DarkSoulsII.DebugView.Core.Exceptions; +using DarkSoulsII.DebugView.Core.Rtti; + +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Rtti +{ + public class GameEntityComponentHelper : IRttiResolver + { + public IPointer ResolvePointer(IReader reader, int address, bool relative = false) + { + // TODO: Create an abstract RttiResolver with a template method + + if (address == 0) + return null; + + int vtable; + try + { + vtable = reader.ReadInt32(address, relative); + } + catch (MemoryInaccessibleException) + { + return null; + } + + // TODO: Implement switch statement + IPointer pointer; + switch (vtable) + { + case 0x00000000: + pointer = Pointer.Create(address); + break; + default: + pointer = null; + break; + } + return pointer; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveLoadSystem.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveLoadSystem.cs new file mode 100644 index 0000000..bd49ae3 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveLoadSystem.cs @@ -0,0 +1,17 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Savegame +{ + public class SaveLoadSystem : IReadable + { + public float TimeUntilNextSaveOpportunity { get; set; } + public float TimeSinceLastSave { get; set; } + public SaveReason SaveReasonType { get; set; } + + public SaveLoadSystem Read(IReader reader, int address, bool relative = false) + { + TimeUntilNextSaveOpportunity = reader.ReadSingle(address + 0x0034, relative); + TimeSinceLastSave = reader.ReadSingle(address + 0x0038, relative); + SaveReasonType = (SaveReason) reader.ReadInt32(address + 0x003C, relative); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveReason.cs b/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveReason.cs new file mode 100644 index 0000000..ad02411 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/DarkSoulsII/Savegame/SaveReason.cs @@ -0,0 +1,25 @@ +namespace DarkSoulsII.DebugView.Core.DarkSoulsII.Savegame +{ + /// + /// Saves instantly if reason is less than 5. + /// Else saves 30s after loading the game/the last save and resets the reason to Default + /// + public enum SaveReason + { + Unknown0 = 0, + Quit, + Death, + Teleport, + EnterFogGate, + Unknown5, + Unknown6, + PickUpItem, + RetrieveSouls, + Unknown9, + MapChange, + Unknown11, + Unknown12, + Unknown13, + Default + } +} diff --git a/DarkSoulsII.DebugView.Core/Exceptions/MemoryInaccessibleException.cs b/DarkSoulsII.DebugView.Core/Exceptions/MemoryInaccessibleException.cs new file mode 100644 index 0000000..0d7fc9a --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Exceptions/MemoryInaccessibleException.cs @@ -0,0 +1,8 @@ +using System; + +namespace DarkSoulsII.DebugView.Core.Exceptions +{ + public class MemoryInaccessibleException : ApplicationException + { + } +} diff --git a/DarkSoulsII.DebugView.Core/Exceptions/ProcessAccessDeniedException.cs b/DarkSoulsII.DebugView.Core/Exceptions/ProcessAccessDeniedException.cs new file mode 100644 index 0000000..4dfe9ed --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Exceptions/ProcessAccessDeniedException.cs @@ -0,0 +1,8 @@ +using System; + +namespace DarkSoulsII.DebugView.Core.Exceptions +{ + public class ProcessAccessDeniedException : ApplicationException + { + } +} diff --git a/DarkSoulsII.DebugView.Core/Exceptions/ProcessNotFoundException.cs b/DarkSoulsII.DebugView.Core/Exceptions/ProcessNotFoundException.cs new file mode 100644 index 0000000..09788a5 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Exceptions/ProcessNotFoundException.cs @@ -0,0 +1,8 @@ +using System; + +namespace DarkSoulsII.DebugView.Core.Exceptions +{ + public class ProcessNotFoundException : ApplicationException + { + } +} diff --git a/DarkSoulsII.DebugView.Core/GenericPointer.cs b/DarkSoulsII.DebugView.Core/GenericPointer.cs new file mode 100644 index 0000000..8ba3e04 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/GenericPointer.cs @@ -0,0 +1,68 @@ +using System; +using DarkSoulsII.DebugView.Core.Exceptions; + +namespace DarkSoulsII.DebugView.Core +{ + public class GenericPointer + { + private GenericPointer() + { + } + + public int Address { get; set; } + + public bool IsNull + { + get { return Address == 0; } + } + + public static GenericPointer Create(int address) + { + var pointer = new GenericPointer {Address = address}; + return pointer; + } + + public static GenericPointer Create(IReader reader, int address, bool relative) + { + var pointer = new GenericPointer {Address = reader.ReadInt32(address, relative)}; + return pointer; + } + + public void Unbox(IReader reader, Action unboxAction) + { + unboxAction(reader, Address); + } + + public bool TryUnbox(IReader reader, Action unboxAction) + { + try + { + Unbox(reader, unboxAction); + return true; + } + catch (MemoryInaccessibleException) + { + return false; + } + } + + public T Unbox(IReader reader, Func unboxAction) + { + return unboxAction(reader, Address); + } + + public bool TryUnbox(IReader reader, Func unboxAction, out T output) + { + try + { + output = Unbox(reader, unboxAction); + return true; + } + catch (MemoryInaccessibleException) + { + output = default(T); + return false; + } + } + } +} diff --git a/DarkSoulsII.DebugView.Core/IPointer.cs b/DarkSoulsII.DebugView.Core/IPointer.cs new file mode 100644 index 0000000..2b34ef3 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/IPointer.cs @@ -0,0 +1,9 @@ +namespace DarkSoulsII.DebugView.Core +{ + public interface IPointer where T : class, IReadable, new() + { + bool IsNull { get; } + T Unbox(IReader reader); + T TryUnbox(IReader reader); + } +} diff --git a/DarkSoulsII.DebugView.Core/IReadable.cs b/DarkSoulsII.DebugView.Core/IReadable.cs new file mode 100644 index 0000000..8da2d21 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/IReadable.cs @@ -0,0 +1,7 @@ +namespace DarkSoulsII.DebugView.Core +{ + public interface IReadable + { + T Read(IReader reader, int address, bool relative = false); + } +} diff --git a/DarkSoulsII.DebugView.Core/IReader.cs b/DarkSoulsII.DebugView.Core/IReader.cs new file mode 100644 index 0000000..ed1d4f8 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/IReader.cs @@ -0,0 +1,32 @@ +using System; +using System.Text; + +namespace DarkSoulsII.DebugView.Core +{ + public interface IReader + { + byte[] Read(int size, int address, bool relative = false); + bool ReadBoolean(int address, bool relative = false); + byte ReadByte(int address, bool relative = false); + SByte ReadSByte(int address, bool relative = false); + short ReadInt16(int address, bool relative = false); + ushort ReadUInt16(int address, bool relative = false); + int ReadInt32(int address, bool relative = false); + int[] ReadInt32(int count, int address, bool relative = false); + uint ReadUInt32(int address, bool relative = false); + long ReadInt64(int address, bool relative = false); + ulong ReadUInt64(int address, bool relative = false); + float ReadSingle(int address, bool relative = false); + float[] ReadSingle(int count, int address, bool relative = false); + double ReadDouble(int address, bool relative = false); + decimal ReadDecimal(int address, bool relative = false); + char ReadChar(int address, bool relative = false); + char ReadChar(int charSize, Encoding encoding, int address, bool relative = false); + string ReadString(int length, int address, bool relative = false); + string ReadString(int length, int charSize, Encoding encoding, int address, bool relative = false); + string ReadNullTerminatedString(int address, bool relative, Encoding encoding = null, int charSize = 1); + + string ReadNullTerminatedStringChunked(int address, bool relative, int lookaheadCharCount = 16, + Encoding encoding = null, int charSize = 1); + } +} diff --git a/DarkSoulsII.DebugView.Core/MemoryReader.cs b/DarkSoulsII.DebugView.Core/MemoryReader.cs new file mode 100644 index 0000000..800a799 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/MemoryReader.cs @@ -0,0 +1,243 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using DarkSoulsII.DebugView.Core.Exceptions; + +namespace DarkSoulsII.DebugView.Core +{ + public class MemoryReader : IDisposable, IReader + { + private readonly IntPtr _baseAddress; + private readonly IntPtr _processHandle; + + private MemoryReader(IntPtr processHandle, IntPtr baseAddress) + { + _processHandle = processHandle; + _baseAddress = baseAddress; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + public byte[] Read(int size, int address, bool relative = false) + { + byte[] buffer = new byte[size]; + IntPtr bytesRead; + IntPtr absoluteAddress = GetAbsoluteAddress(address, relative); + bool success = NativeMethods.ReadProcessMemory(_processHandle, absoluteAddress, buffer, size, + out bytesRead); + if (success == false) + throw new MemoryInaccessibleException(); + return buffer; + } + + public bool ReadBoolean(int address, bool relative = false) + { + byte[] data = Read(1, address, relative); + return data[0] != 0; + } + + public byte ReadByte(int address, bool relative = false) + { + byte[] data = Read(1, address, relative); + return data[0]; + } + + public SByte ReadSByte(int address, bool relative = false) + { + byte[] data = Read(1, address, relative); + return (SByte) (data[0]); + } + + public short ReadInt16(int address, bool relative = false) + { + byte[] data = Read(2, address, relative); + return (short) (data[0] | data[1] << 8); + } + + public ushort ReadUInt16(int address, bool relative = false) + { + byte[] data = Read(2, address, relative); + return (ushort) (data[0] | data[1] << 8); + } + + public int ReadInt32(int address, bool relative = false) + { + byte[] data = Read(4, address, relative); + return data[0] | data[1] << 8 | data[2] << 16 | data[3] << 24; + } + + public int[] ReadInt32(int count, int address, bool relative = false) + { + byte[] data = Read(4*count, address, relative); + int[] result = new int[count]; + int offset = 0; + for (int i = 0; i < count; i++, offset += 4) + { + result[i] = data[offset] | data[offset + 1] << 8 | data[offset + 2] << 16 | data[offset + 3] << 24; + } + return result; + } + + public uint ReadUInt32(int address, bool relative = false) + { + byte[] data = Read(4, address, relative); + + return (uint) (data[0] | data[1] << 8 | data[2] << 16 | data[3] << 24); + } + + public long ReadInt64(int address, bool relative = false) + { + byte[] data = Read(8, address, relative); + uint lowValue = (uint) (data[0] | data[1] << 8 | data[2] << 16 | data[3] << 24); + uint highValue = (uint) (data[4] | data[5] << 8 | data[6] << 16 | data[7] << 24); + return (long) highValue << 32 | lowValue; + } + + public ulong ReadUInt64(int address, bool relative = false) + { + byte[] data = Read(8, address, relative); + uint lowValue = (uint) (data[0] | data[1] << 8 | data[2] << 16 | data[3] << 24); + uint highValue = (uint) (data[4] | data[5] << 8 | data[6] << 16 | data[7] << 24); + return (ulong) highValue << 32 | lowValue; + } + + public float ReadSingle(int address, bool relative = false) + { + byte[] data = Read(4, address, relative); + return BitConverter.ToSingle(data, 0); + } + + public float[] ReadSingle(int count, int address, bool relative = false) + { + byte[] data = Read(4*count, address, relative); + float[] result = new float[count]; + int index = 0; + for (int i = 0; i < count; i++, index += 4) + { + result[i] = BitConverter.ToSingle(data, index); + } + return result; + } + + public double ReadDouble(int address, bool relative = false) + { + byte[] data = Read(8, address, relative); + return BitConverter.ToDouble(data, 0); + } + + public decimal ReadDecimal(int address, bool relative = false) + { + byte[] data = Read(16, address, relative); + int[] bits = new int[4]; + bits[0] = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); + bits[1] = data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24); + bits[2] = data[8] | (data[9] << 8) | (data[10] << 16) | (data[11] << 24); + bits[3] = data[12] | (data[13] << 8) | (data[14] << 16) | (data[15] << 24); + return new decimal(bits); + } + + public char ReadChar(int address, bool relative = false) + { + return ReadChar(1, Encoding.ASCII, address, relative); + } + + public char ReadChar(int charSize, Encoding encoding, int address, bool relative = false) + { + byte[] data = Read(charSize, address, relative); + return encoding.GetChars(data)[0]; + } + + public string ReadString(int length, int address, bool relative = false) + { + return ReadString(length, 1, Encoding.ASCII, address, relative); + } + + public string ReadString(int length, int charSize, Encoding encoding, int address, bool relative = false) + { + byte[] data = Read(length*charSize, address, relative); + return encoding.GetString(data); + } + + public string ReadNullTerminatedString(int address, bool relative, Encoding encoding = null, int charSize = 1) + { + StringBuilder builder = new StringBuilder(); + char nextChar; + while ((nextChar = ReadChar(charSize, encoding, address, relative)) != '\0') + { + builder.Append(nextChar); + address += charSize; + } + return builder.ToString(); + } + + public string ReadNullTerminatedStringChunked(int address, bool relative, int lookaheadCharCount = 16, + Encoding encoding = null, int charSize = 1) + { + if (lookaheadCharCount == 0) + return ReadNullTerminatedString(address, relative, encoding, charSize); + + StringBuilder builder = new StringBuilder(); + + int offset = 0; + var chunkSize = lookaheadCharCount*lookaheadCharCount; + while (true) + { + byte[] chunk = Read(chunkSize, address + offset, relative); + string chunkString = (encoding ?? Encoding.ASCII).GetString(chunk); + int terminatorIndex = chunkString.IndexOf('\0'); + if (terminatorIndex != -1) + { + builder.Append(chunkString.Substring(0, terminatorIndex)); + return builder.ToString(); + } + builder.Append(chunkString); + offset += chunkSize; + } + } + + public static MemoryReader Create(string processName) + { + var process = Process.GetProcessesByName(processName).FirstOrDefault(); + if (process == null) + throw new ProcessNotFoundException(); + return Create(process); + } + + public static MemoryReader Create(Process process) + { + IntPtr processHandle = NativeMethods.OpenProcess(NativeMethods.ProcessAccessFlags.VirtualMemoryRead, false, + process.Id); + if (processHandle == IntPtr.Zero) + throw new ProcessAccessDeniedException(); + return new MemoryReader(processHandle, process.MainModule.BaseAddress); + } + + private void Dispose(bool disposing) + { + if (disposing) + { + NativeMethods.CloseHandle(_processHandle); + } + } + + private IntPtr GetAbsoluteAddress(int address, bool relative) + { + return relative ? IntPtr.Add(_baseAddress, address) : new IntPtr(address); + } + + public T ReadStructure(int address, bool relative = false) where T : struct + { + byte[] data = Read(Marshal.SizeOf(typeof (T)), address, relative); + GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned); + T structure = (T) Marshal.PtrToStructure(dataHandle.AddrOfPinnedObject(), typeof (T)); + dataHandle.Free(); + return structure; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/NativeMethods.cs b/DarkSoulsII.DebugView.Core/NativeMethods.cs new file mode 100644 index 0000000..ef28d35 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/NativeMethods.cs @@ -0,0 +1,44 @@ +using System; +using System.Runtime.InteropServices; + +namespace DarkSoulsII.DebugView.Core +{ + internal static class NativeMethods + { + [DllImport("kernel32.dll")] + internal static extern bool ReadProcessMemory( + IntPtr hProcess, + IntPtr lpBaseAddress, + [Out] byte[] lpBuffer, + int dwSize, + out IntPtr lpNumberOfBytesRead); + + [DllImport("kernel32.dll")] + public static extern IntPtr OpenProcess( + ProcessAccessFlags processAccess, + bool bInheritHandle, + int processId + ); + + [DllImport("kernel32.dll")] + public static extern bool CloseHandle(IntPtr hObject); + + [Flags] + internal enum ProcessAccessFlags : uint + { + All = 0x001F0FFF, + Terminate = 0x00000001, + CreateThread = 0x00000002, + VirtualMemoryOperation = 0x00000008, + VirtualMemoryRead = 0x00000010, + VirtualMemoryWrite = 0x00000020, + DuplicateHandle = 0x00000040, + CreateProcess = 0x000000080, + SetQuota = 0x00000100, + SetInformation = 0x00000200, + QueryInformation = 0x00000400, + QueryLimitedInformation = 0x00001000, + Synchronize = 0x00100000 + } + } +} diff --git a/DarkSoulsII.DebugView.Core/Pointer.cs b/DarkSoulsII.DebugView.Core/Pointer.cs new file mode 100644 index 0000000..07b4965 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Pointer.cs @@ -0,0 +1,127 @@ +using System; +using DarkSoulsII.DebugView.Core.Exceptions; + +namespace DarkSoulsII.DebugView.Core +{ + // TODO: Add a PointerArray class + public class Pointer : IReadable>, IPointer where T : class, IReadable, new() + { + public Pointer() + { + } + + private Pointer(int address) + { + Address = address; + } + + private Pointer(int address, bool relative) + { + Address = address; + Relative = relative; + } + + public int Address { get; set; } + public bool Relative { get; set; } + + public static int Size + { + get { return sizeof (int); } + } + + public T Unbox(IReader reader) + { + if (Address == 0) + return null; + T obj = new T(); + return obj.Read(reader, Address, Relative); + } + + public T TryUnbox(IReader reader) + { + try + { + return Unbox(reader); + } + catch (MemoryInaccessibleException) + { + return null; + } + } + + public bool IsNull + { + get { return Address == 0; } + } + + public Pointer Read(IReader reader, int address, bool relative = false) + { + Address = reader.ReadInt32(address, relative); + Relative = false; + return this; + } + + public static Pointer Create() + { + return new Pointer(); + } + + public static Pointer Create(int address) + { + return new Pointer(address); + } + + public static Pointer Create(int address, bool relative) + { + return new Pointer(address, relative); + } + + public static Pointer Create(IReader reader, int address, bool relative = false) + { + return new Pointer(address).Read(reader, address, relative); + } + + public static T CreateAndUnbox(IReader reader, int address, bool relative = false) + { + Pointer pointer = Create(); + pointer.Read(reader, address, relative); + return pointer.Unbox(reader); + } + + public static T CreateAndUnbox(IReader reader, int address, bool relative, + Action readAction) + { + if (readAction == null) throw new ArgumentNullException("readAction"); + Pointer pointer = Create(); + pointer.Read(reader, address, relative); + return pointer.Unbox(reader, readAction); + } + + public T Unbox(IReader reader, Action readAction) + { + if (Address == 0) + return null; + T obj = new T().Read(reader, Address); + readAction(obj, reader, Address, Relative); + return obj; + } + + protected bool Equals(Pointer other) + { + return Address == other.Address; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != GetType()) return false; + return Equals((Pointer) obj); + } + + public override int GetHashCode() + { + return Address; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/Properties/AssemblyInfo.cs b/DarkSoulsII.DebugView.Core/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0f0e7e1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. + +[assembly: AssemblyTitle("DarkSoulsII.DebugView.Core")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DarkSoulsII.DebugView.Core")] +[assembly: AssemblyCopyright("Copyright © 2015 Atvaark")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. + +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird + +[assembly: Guid("45a329b3-94da-43f0-aa30-e7085533f0d7")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("0.1.0.0")] +[assembly: AssemblyFileVersion("0.1.0.0")] diff --git a/DarkSoulsII.DebugView.Core/Rtti/IRttiHelper.cs b/DarkSoulsII.DebugView.Core/Rtti/IRttiHelper.cs new file mode 100644 index 0000000..a4abc74 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Rtti/IRttiHelper.cs @@ -0,0 +1,7 @@ +namespace DarkSoulsII.DebugView.Core.Rtti +{ + public interface IRttiResolver where T : class, IReadable, new() + { + IPointer ResolvePointer(IReader reader, int address, bool relative = false); + } +} diff --git a/DarkSoulsII.DebugView.Core/Standard/Matrix4.cs b/DarkSoulsII.DebugView.Core/Standard/Matrix4.cs new file mode 100644 index 0000000..9f95060 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Standard/Matrix4.cs @@ -0,0 +1,94 @@ +namespace DarkSoulsII.DebugView.Core.Standard +{ + public class Matrix4 : IReadable + { + public static readonly Matrix4 Identity = new Matrix4 + ( + 1f, 0f, 0f, 0f, + 0f, 1f, 0f, 0f, + 0f, 0f, 1f, 0f, + 0f, 0f, 0f, 1f + ); + + public float M11; + public float M12; + public float M13; + public float M14; + public float M21; + public float M22; + public float M23; + public float M24; + public float M31; + public float M32; + public float M33; + public float M34; + public float M41; + public float M42; + public float M43; + public float M44; + + public Matrix4() + { + } + + public Matrix4(float m11, float m12, float m13, float m14, + float m21, float m22, float m23, float m24, + float m31, float m32, float m33, float m34, + float m41, float m42, float m43, float m44) + { + M11 = m11; + M12 = m12; + M13 = m13; + M14 = m14; + M21 = m21; + M22 = m22; + M23 = m23; + M24 = m24; + M31 = m31; + M32 = m32; + M33 = m33; + M34 = m34; + M41 = m41; + M42 = m42; + M43 = m43; + M44 = m44; + } + + + public Matrix4 Read(IReader reader, int address, bool relative = false) + { + float[] data = reader.ReadSingle(16, address, relative); + + M11 = data[0]; + M12 = data[1]; + M13 = data[2]; + M14 = data[3]; + M21 = data[4]; + M22 = data[5]; + M23 = data[6]; + M24 = data[7]; + M31 = data[8]; + M32 = data[9]; + M33 = data[10]; + M34 = data[11]; + M41 = data[12]; + M42 = data[13]; + M43 = data[14]; + M44 = data[15]; + + return this; + } + + public override string ToString() + { + return string.Format("M11: {0}, M12: {1}, M13: {2}, M14: {3}, " + + "M21: {4}, M22: {5}, M23: {6}, M24: {7}, " + + "M31: {8}, M32: {9}, M33: {10}, M34: {11}, " + + "M41: {12}, M42: {13}, M43: {14}, M44: {15}", + M11, M12, M13, M14, + M21, M22, M23, M24, + M31, M32, M33, M34, + M41, M42, M43, M44); + } + } +} diff --git a/DarkSoulsII.DebugView.Core/Standard/Quaternion.cs b/DarkSoulsII.DebugView.Core/Standard/Quaternion.cs new file mode 100644 index 0000000..76c0b85 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Standard/Quaternion.cs @@ -0,0 +1,10 @@ +namespace DarkSoulsII.DebugView.Core.Standard +{ + public class Quaternion : IReadable + { + public Quaternion Read(IReader reader, int address, bool relative = false) + { + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/Standard/Templates/StdString.cs b/DarkSoulsII.DebugView.Core/Standard/Templates/StdString.cs new file mode 100644 index 0000000..cbf9476 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Standard/Templates/StdString.cs @@ -0,0 +1,17 @@ +using System.Text; + +namespace DarkSoulsII.DebugView.Core.Standard.Templates +{ + public class StdString : IReadable + { + public string Value { get; set; } + + public StdString Read(IReader reader, int address, bool relative = false) + { + int length = reader.ReadInt32(address + 0x0010); + int stringAddress = length >= 8 ? reader.ReadInt32(address) : address; + Value = reader.ReadString(length, 2, Encoding.Unicode, stringAddress); + return this; + } + } +} diff --git a/DarkSoulsII.DebugView.Core/Standard/Vector3.cs b/DarkSoulsII.DebugView.Core/Standard/Vector3.cs new file mode 100644 index 0000000..402f3f1 --- /dev/null +++ b/DarkSoulsII.DebugView.Core/Standard/Vector3.cs @@ -0,0 +1,22 @@ +namespace DarkSoulsII.DebugView.Core.Standard +{ + public class Vector3 : IReadable + { + public float X { get; set; } + public float Y { get; set; } + public float Z { get; set; } + + public Vector3 Read(IReader reader, int address, bool relative = false) + { + X = reader.ReadSingle(address + 0x0000, relative); + Y = reader.ReadSingle(address + 0x0004, relative); + Z = reader.ReadSingle(address + 0x0008, relative); + return this; + } + + public override string ToString() + { + return X + " " + Y + " " + Z; + } + } +} diff --git a/DarkSoulsII.DebugView.Test/App.config b/DarkSoulsII.DebugView.Test/App.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/DarkSoulsII.DebugView.Test/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DarkSoulsII.DebugView.Test/DarkSoulsII.DebugView.Test.csproj b/DarkSoulsII.DebugView.Test/DarkSoulsII.DebugView.Test.csproj new file mode 100644 index 0000000..c7582a4 --- /dev/null +++ b/DarkSoulsII.DebugView.Test/DarkSoulsII.DebugView.Test.csproj @@ -0,0 +1,64 @@ + + + + + Debug + AnyCPU + {A2B4D045-8E55-497D-8A6F-408DDADD0445} + Exe + Properties + DarkSoulsII.DebugView.Test + DarkSoulsII.DebugView.Test + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + {b86932ef-4f6a-4612-a804-336c5c58da0a} + DarkSoulsII.DebugView.Core + + + + + \ No newline at end of file diff --git a/DarkSoulsII.DebugView.Test/Program.cs b/DarkSoulsII.DebugView.Test/Program.cs new file mode 100644 index 0000000..60d9794 --- /dev/null +++ b/DarkSoulsII.DebugView.Test/Program.cs @@ -0,0 +1,67 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Threading; +using DarkSoulsII.DebugView.Core; +using DarkSoulsII.DebugView.Core.DarkSoulsII.App; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Managers.Network; +using DarkSoulsII.DebugView.Core.DarkSoulsII.Resources.Text; + +namespace DarkSoulsII.DebugView.Test +{ + public class Program + { + private static void Main(string[] args) + { + Process process = null; + while (process == null) + { + process = Process.GetProcessesByName("DarkSoulsII").FirstOrDefault(); + Thread.Sleep(200); + } + + MemoryReader reader = MemoryReader.Create(process); + var gameManagerImplPointer = GetPointer(reader, 0x011593F4); + var networkManagerPointer = GetPointer(reader, 0x0115A5B4); + var katanaMainAppPointer = GetPointer(reader, 0x011A36C4); + var lookUpTableCache = GetPointer(reader, 0x0115A590).Unbox(reader); + + Stopwatch sw = new Stopwatch(); + sw.Start(); + while (true) + { + Console.Clear(); + sw.Restart(); + var gameManagerImpl = gameManagerImplPointer.Unbox(reader); + var networkManager = networkManagerPointer.Unbox(reader); + var katanaMainApp = katanaMainAppPointer.Unbox(reader); + Console.WriteLine(gameManagerImpl.FrameCount + " " + gameManagerImpl.ManagerState + " " + + sw.ElapsedMilliseconds); + + var playerCtrl = gameManagerImpl.PlayerControl; + if (playerCtrl != null) + { + } + + foreach (var characterControl in gameManagerImpl.CharacterManager.CharacterControls) + { + Console.WriteLine(characterControl.ToString()); + } + + Thread.Sleep(200); + } + } + + private static IPointer GetPointer(IReader reader, int address) where T : class, IReadable, new() + { + var gameManagerImplPointer = new Pointer(); + while (gameManagerImplPointer.IsNull) + { + gameManagerImplPointer.Read(reader, address, true); + Thread.Sleep(50); + } + return gameManagerImplPointer; + } + } +} diff --git a/DarkSoulsII.DebugView.Test/Properties/AssemblyInfo.cs b/DarkSoulsII.DebugView.Test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b4783f0 --- /dev/null +++ b/DarkSoulsII.DebugView.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,15 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("DarkSoulsII.DebugView.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DarkSoulsII.DebugView.Test")] +[assembly: AssemblyCopyright("Copyright © 2015 Atvaark")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] +[assembly: Guid("cef0c0f0-bbb0-46e0-a984-b867cbf6c7c2")] +[assembly: AssemblyVersion("0.1.0.0")] +[assembly: AssemblyFileVersion("0.1.0.0")] diff --git a/DarkSoulsII.DebugView.sln b/DarkSoulsII.DebugView.sln new file mode 100644 index 0000000..acd3d20 --- /dev/null +++ b/DarkSoulsII.DebugView.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DarkSoulsII.DebugView.Core", "DarkSoulsII.DebugView.Core\DarkSoulsII.DebugView.Core.csproj", "{B86932EF-4F6A-4612-A804-336C5C58DA0A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DarkSoulsII.DebugView.Test", "DarkSoulsII.DebugView.Test\DarkSoulsII.DebugView.Test.csproj", "{A2B4D045-8E55-497D-8A6F-408DDADD0445}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B86932EF-4F6A-4612-A804-336C5C58DA0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B86932EF-4F6A-4612-A804-336C5C58DA0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B86932EF-4F6A-4612-A804-336C5C58DA0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B86932EF-4F6A-4612-A804-336C5C58DA0A}.Release|Any CPU.Build.0 = Release|Any CPU + {A2B4D045-8E55-497D-8A6F-408DDADD0445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2B4D045-8E55-497D-8A6F-408DDADD0445}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2B4D045-8E55-497D-8A6F-408DDADD0445}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2B4D045-8E55-497D-8A6F-408DDADD0445}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2337e08 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Atvaark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +