├── HeroesPowerPlant ├── Resources │ ├── .gitignore │ ├── Lists │ │ ├── ShadowObjectMiscHelper.ini │ │ └── HeroesObjectListCustom.ini │ ├── AboutImage.png │ ├── WhiteDefault.png │ ├── hpp_version.json │ ├── Models │ │ ├── Cylinder.mtl │ │ ├── Sphere.mtl │ │ ├── Box.mtl │ │ ├── Pyramid.mtl │ │ ├── Pyramid.obj │ │ └── Box.obj │ └── SharpDX │ │ ├── Shader_Basic.hlsl │ │ ├── Shader_Default.hlsl │ │ ├── Shader_Tinted.hlsl │ │ └── Shader_Collision.hlsl ├── Tools │ ├── txdgen_1.0 │ │ ├── LICENSES │ │ │ ├── pvrtextool │ │ │ │ └── COPYRIGHT │ │ │ ├── rwtools │ │ │ │ └── COPYRIGHT │ │ │ └── libsquish │ │ │ │ └── COPYRIGHT │ │ └── txdgen64.exe │ ├── showvcolor.ms │ ├── HeroesSPLTool.exe │ └── readme.txt ├── Game.ico ├── MainForm │ └── IUnsavedChanges.cs ├── ConfigEditor │ ├── SplineEditor │ │ └── SplineType.cs │ ├── RankEditor │ │ └── RankContainer.cs │ └── EntryRenderer.cs ├── Shared │ ├── IO │ │ └── Config │ │ │ └── HPPVersion.cs │ ├── Utilities │ │ └── ManualEndianConverter.cs │ ├── RemoteControl.cs │ └── ReadWriteCommon.cs ├── SharpDX │ ├── RenderData │ │ ├── DefaultRenderData.cs │ │ └── CollisionRenderData.cs │ └── SharpSubSet.cs ├── LayoutEditor │ ├── SetObjects │ │ ├── ObjectClassesHeroes │ │ │ ├── List05 │ │ │ │ ├── Object050B_Slot.cs │ │ │ │ ├── Object05_StarPanel.cs │ │ │ │ ├── Object0586_Roulette.cs │ │ │ │ ├── Object05_Spring.cs │ │ │ │ ├── Object0502_Flipper.cs │ │ │ │ ├── Object0503_TriBumper.cs │ │ │ │ ├── Object0587_GiantCasinoChip.cs │ │ │ │ ├── Object0584_GiantDice.cs │ │ │ │ └── Object050A_Dice.cs │ │ │ ├── ListOther │ │ │ │ ├── Object_F1Range.cs │ │ │ │ ├── Object_F1Speed.cs │ │ │ │ ├── Object_L1Offset.cs │ │ │ │ ├── Object_L1Type.cs │ │ │ │ ├── Object0000_Nothing.cs │ │ │ │ ├── Object_B1_1_Type.cs │ │ │ │ ├── Object_S1_1_Type.cs │ │ │ │ ├── Object2300_EggAlbatross.cs │ │ │ │ ├── Object_F1Scale.cs │ │ │ │ ├── Object_IntTypeFloatScale.cs │ │ │ │ └── Object_XYZScale.cs │ │ │ ├── List00 │ │ │ │ ├── Object000E_Checkpoint.cs │ │ │ │ ├── Object0025_FormSign.cs │ │ │ │ ├── Object0023_Chao.cs │ │ │ │ ├── Object0018_ItemBox.cs │ │ │ │ ├── Object0006_SwitchPP.cs │ │ │ │ ├── Object0004_HintRing.cs │ │ │ │ ├── Object0007_Target.cs │ │ │ │ ├── Object0026_FormGate.cs │ │ │ │ ├── Object002C_RollDoor.cs │ │ │ │ ├── Object001D_Pulley.cs │ │ │ │ ├── Object00_Box.cs │ │ │ │ ├── Object000B_DashPanel.cs │ │ │ │ ├── Object0024_Cage.cs │ │ │ │ ├── Object000C_DashRing.cs │ │ │ │ ├── Object0001_Spring.cs │ │ │ │ ├── Object0019_ItemBalloon.cs │ │ │ │ ├── Object000F_DashRamp.cs │ │ │ │ ├── Object0015_SpikeBall.cs │ │ │ │ ├── Object0032_WarpFlower.cs │ │ │ │ ├── Object0002_TripleSpring.cs │ │ │ │ ├── Object0005_Switch.cs │ │ │ │ ├── Object0029_Pole.cs │ │ │ │ ├── Object000D_BigRings.cs │ │ │ │ ├── Object002E_Fan.cs │ │ │ │ ├── Object0010_Cannon.cs │ │ │ │ ├── Object0031_Case.cs │ │ │ │ ├── Object0016_LaserFence.cs │ │ │ │ └── Object00_Weight.cs │ │ │ ├── List13 │ │ │ │ ├── Object1303_MovingCannon.cs │ │ │ │ ├── Object1302_HorizCannon.cs │ │ │ │ ├── Object1304_RectFloatingPlatform.cs │ │ │ │ └── Object1305_EggFleetDoor.cs │ │ │ ├── List04 │ │ │ │ ├── Object04_CraneWallLight.cs │ │ │ │ └── Object0401_EnergyColumn.cs │ │ │ ├── List11 │ │ │ │ ├── MysticLight.cs │ │ │ │ ├── Object1101_CastleDoor.cs │ │ │ │ ├── Object1102_CastleWall.cs │ │ │ │ ├── Object1182_Thunder.cs │ │ │ │ ├── Object1185_Bone.cs │ │ │ │ ├── Object1108_MansionDoor.cs │ │ │ │ ├── Object1188_Curtain.cs │ │ │ │ ├── Object1184_SmokeScreen.cs │ │ │ │ ├── Object1105_Ghost.cs │ │ │ │ ├── Object118B_Grass.cs │ │ │ │ ├── Object118D_Mask.cs │ │ │ │ ├── Object11_FloatingPlatform.cs │ │ │ │ └── Object1181_Celestial.cs │ │ │ ├── List14 │ │ │ │ ├── Object1402_Laser.cs │ │ │ │ └── Object1400_FallingPlatform.cs │ │ │ ├── List01 │ │ │ │ ├── Object0187_Tides.cs │ │ │ │ ├── Object0183_Seagulls.cs │ │ │ │ ├── Object0184_LargeBird.cs │ │ │ │ ├── Object0103_TruckPath.cs │ │ │ │ ├── Object0189_WaterfallSmall.cs │ │ │ │ ├── Object0102_TruckRail.cs │ │ │ │ ├── Object0180_FlowerPatch.cs │ │ │ │ ├── Object0105_MovingRuin.cs │ │ │ │ └── Object0182_Whale.cs │ │ │ ├── List09 │ │ │ │ ├── Object0902_RainLeaf.cs │ │ │ │ ├── Object0909_SpringMush.cs │ │ │ │ ├── Object0904_RainIvy.cs │ │ │ │ ├── Object099A_Wanibreak.cs │ │ │ │ ├── Object0903_RainMush.cs │ │ │ │ ├── Object090E_Alligator.cs │ │ │ │ ├── Object0984_RedWeed.cs │ │ │ │ ├── Object0987_RedGreenPlant.cs │ │ │ │ ├── Object0999_Powder.cs │ │ │ │ ├── Object0981_Flower.cs │ │ │ │ ├── Object0989_Pond.cs │ │ │ │ ├── Object090B_IvyJump.cs │ │ │ │ ├── Object0908_RainFruit.cs │ │ │ │ ├── Object0900_Frog.cs │ │ │ │ └── Object0913_RainCollision.cs │ │ │ ├── List02 │ │ │ │ ├── Object0281_TurtleFeet.cs │ │ │ │ ├── Object0282_KameWave.cs │ │ │ │ ├── Object0200_CrumbleStonePillar.cs │ │ │ │ ├── Object0204_Kaos.cs │ │ │ │ ├── Object020A_ColliQuake.cs │ │ │ │ └── Object0206_ScrollBalloon.cs │ │ │ ├── List07 │ │ │ │ ├── Object0704_RailRoadblock.cs │ │ │ │ └── Object0705_Capsule.cs │ │ │ ├── List16 │ │ │ │ ├── Object_16_02.cs │ │ │ │ └── Object_16_00_01.cs │ │ │ ├── List03 │ │ │ │ ├── Object0302_RoadCap.cs │ │ │ │ ├── Object0300_AcceleratorRoad.cs │ │ │ │ ├── Object0305_BigBridge.cs │ │ │ │ ├── Object0380_BalloonDesign.cs │ │ │ │ └── Object0306_AirCar.cs │ │ │ ├── Triggers │ │ │ │ ├── Object0066_TriggerBobJump.cs │ │ │ │ └── Object020C_TriggerKaos.cs │ │ │ ├── Enums.cs │ │ │ └── List15 │ │ │ │ ├── Object15C0_EggBishop.cs │ │ │ │ ├── Object15D0_E2000.cs │ │ │ │ ├── Object1540_EggHammer.cs │ │ │ │ ├── Object1590_RhinoLiner.cs │ │ │ │ └── Object15_KlagenCameron.cs │ │ ├── ObjectClassesShadow │ │ │ ├── List00 │ │ │ │ ├── Object0020_Weapon.cs │ │ │ │ ├── Object0005_Checkpoint.cs │ │ │ │ ├── Object0012_ItemCapsule.cs │ │ │ │ ├── Object0033_EnergyCore.cs │ │ │ │ ├── Object000E_Rocket.cs │ │ │ │ ├── Object0023_OverturnableObject.cs │ │ │ │ ├── Object0061_DarkSpinEntrance.cs │ │ │ │ ├── Object005A_Pole.cs │ │ │ │ ├── Object001B_Roadblock.cs │ │ │ │ ├── Object0015_BallSwitch.cs │ │ │ │ ├── Object0014_GoalRing.cs │ │ │ │ ├── Object0016_TargetSwitch.cs │ │ │ │ ├── Object0003_DashPanel.cs │ │ │ │ ├── Object004F_Vehicle.cs │ │ │ │ ├── Object000B_UnbreakableBox.cs │ │ │ │ ├── Object0007_Case.cs │ │ │ │ ├── Object0001_SpringShadow.cs │ │ │ │ ├── Object000C_WeaponBox.cs │ │ │ │ ├── Object0004_DashRamp.cs │ │ │ │ ├── Object0013_Balloon.cs │ │ │ │ ├── Object003A_SpecialWeaponBox.cs │ │ │ │ ├── Object0008_Pulley.cs │ │ │ │ ├── Object003X_UnusedMiscByteScaleType.cs │ │ │ │ ├── Object0002_WideSpring.cs │ │ │ │ ├── Object0091_BkLarva.cs │ │ │ │ ├── Object007A_EggShadowAndroid.cs │ │ │ │ ├── Object0011_HintBall.cs │ │ │ │ ├── Object0066_GUNBigfoot.cs │ │ │ │ ├── Object008C_BkGiant.cs │ │ │ │ ├── Object0092_BkChaos.cs │ │ │ │ └── Object0078_EggPierrot.cs │ │ │ ├── List07 │ │ │ │ ├── Object07E2_ElecCube.cs │ │ │ │ ├── Object07E8_ElecRollHexa.cs │ │ │ │ ├── Object07E1_TriggerDigitalBreakableTile.cs │ │ │ │ ├── Object07DA_MatrixTerminalElecFan.cs │ │ │ │ ├── Object07D7_DigitalBreakableTile.cs │ │ │ │ ├── Object07D4_ElecSecurity.cs │ │ │ │ ├── Object07D1_Searchlight.cs │ │ │ │ ├── Object07D8_LaserWallBarrier.cs │ │ │ │ ├── Object07EB_CubePlatformCircle.cs │ │ │ │ ├── Object07DF_LightspeedFirewall.cs │ │ │ │ ├── Object07D2_ColorSwitch.cs │ │ │ │ └── Object07D3_RisingLaserBar.cs │ │ │ ├── List0F │ │ │ │ ├── Object0FA1_BAMiniBomb.cs │ │ │ │ └── Object0FA4_BuildingChunk.cs │ │ │ ├── List08 │ │ │ │ ├── Object0835_TornadoCollision.cs │ │ │ │ ├── Object089C_FallingRoad.cs │ │ │ │ ├── Object089A_BreakingRoad.cs │ │ │ │ ├── Object0838_RuinsStoneGuardian.cs │ │ │ │ ├── Object0836_RollCircle.cs │ │ │ │ ├── Object0834_Tornado.cs │ │ │ │ └── Object0899_BlackTankCommandCollision.cs │ │ │ ├── List25 │ │ │ │ ├── Object2589_Destructable1.cs │ │ │ │ ├── Object2586_Sample.cs │ │ │ │ ├── Object2592_DebugMissionClearCollision.cs │ │ │ │ ├── Object2595_MissionClearCollision.cs │ │ │ │ ├── Object2588_Decoration1.cs │ │ │ │ ├── Object258A_Effect1.cs │ │ │ │ └── Object2593_SetGenerator.cs │ │ │ ├── List0C │ │ │ │ ├── Object0C81_CircusGong.cs │ │ │ │ ├── Object0C83_CircusGameTarget.cs │ │ │ │ ├── Object0C80_BounceBall.cs │ │ │ │ └── Object0C88_Zipline.cs │ │ │ ├── List11 │ │ │ │ ├── Object1130_FenceWall.cs │ │ │ │ ├── Object1134_DamageBlock.cs │ │ │ │ ├── Object1131_Vine.cs │ │ │ │ ├── Object1132_ElevatorPlatformColumn.cs │ │ │ │ ├── Object1138_JumpPanel.cs │ │ │ │ └── Object1137_StretchGrass.cs │ │ │ ├── List13 │ │ │ │ ├── Object13ED_EscapePodPathSwitch.cs │ │ │ │ ├── Object13F3_EscapePodDownRail.cs │ │ │ │ ├── Object13F0_SlideoutPlatform.cs │ │ │ │ ├── Object138E_ArkCannon.cs │ │ │ │ ├── Object1392_SpaceDebris.cs │ │ │ │ ├── Object138B_MeteorsHolder.cs │ │ │ │ └── Object13EF_SecurityLaser.cs │ │ │ ├── List17 │ │ │ │ ├── Object1773_CrushingWalls.cs │ │ │ │ ├── Object1772_ConcreteDoor.cs │ │ │ │ ├── Object17D5_BlackArmsMine.cs │ │ │ │ ├── Object1770_GUNCamera.cs │ │ │ │ └── Object17D4_BAGunShip.cs │ │ │ ├── List0B │ │ │ │ ├── Object0BBC_PopupDummyGhost.cs │ │ │ │ ├── Object0BBB_SmallLantern.cs │ │ │ │ ├── Object0BBE_Chao.cs │ │ │ │ ├── Object0BC8_CastleMonsterControl.cs │ │ │ │ └── Object0BC7_CastleMonster.cs │ │ │ ├── List10 │ │ │ │ ├── Object106C_SkyRuinsJewel.cs │ │ │ │ ├── Object1006_HealUnitServer.cs │ │ │ │ ├── Object1005_Researcher.cs │ │ │ │ ├── Object106D_RainEffect.cs │ │ │ │ ├── Object1004_ArkCrackedWall.cs │ │ │ │ └── Object1069_FleetHolderEggmanBattleship.cs │ │ │ ├── List14 │ │ │ │ ├── Object14B5_GravityChangeZone.cs │ │ │ │ └── Object14BE_ArkGreenLaser.cs │ │ │ ├── List03 │ │ │ │ ├── Object03E9_FallingBuilding.cs │ │ │ │ └── Object03EA_CityLaser.cs │ │ │ ├── List19 │ │ │ │ ├── Object1903_BlackDoomHologram.cs │ │ │ │ └── Object1901_CometBarrier.cs │ │ │ ├── List18 │ │ │ │ ├── Object1839_RisingLava.cs │ │ │ │ └── Object189E_ARKDriftingPlat1.cs │ │ │ └── List01 │ │ │ │ └── Object0190_Partner.cs │ │ ├── RingType.cs │ │ ├── SetObjectHeroes.cs │ │ ├── ObjectEntry.cs │ │ └── SetObjectShadow.cs │ └── Templates │ │ └── Template.cs ├── Properties │ ├── Settings.settings │ ├── AssemblyInfo.cs │ └── Settings.Designer.cs ├── LevelEditor │ ├── Models │ │ └── Structures │ │ │ ├── TriangleListCollada.cs │ │ │ ├── Vertex.cs │ │ │ ├── ModelConverterData.cs │ │ │ ├── Triangle.cs │ │ │ └── ModelConverterDataCollada.cs │ └── EditBSPName.cs ├── ShadowCameraEditor │ ├── ShadowCameraTriggerShape.cs │ ├── ShadowCameraFileHeader.cs │ └── ShadowCameraMode.cs ├── SetIdTableEditor │ ├── StageEntry.cs │ └── TableEntry.cs ├── ShadowSplineEditor │ └── ShadowSplinePOF0.cs ├── CollisionEditor │ ├── QuadNode.cs │ ├── CollisionVertex.cs │ └── CLFile.cs ├── App.config ├── Other │ └── SASetObject.cs └── Program.cs ├── .editorconfig └── .gitmodules /HeroesPowerPlant/Resources/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Lists/ShadowObjectMiscHelper.ini: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/txdgen_1.0/LICENSES/pvrtextool/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (c) Imagination Technologies Limited. -------------------------------------------------------------------------------- /HeroesPowerPlant/Game.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorseabra4/HeroesPowerPlant/HEAD/HeroesPowerPlant/Game.ico -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/txdgen_1.0/LICENSES/rwtools/COPYRIGHT: -------------------------------------------------------------------------------- 1 | The code is public domain, do what you want with it. - aap -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/showvcolor.ms: -------------------------------------------------------------------------------- 1 | for o in geometry do( 2 | o.showVertexColors = true 3 | ) 4 | completeRedraw() 5 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/AboutImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorseabra4/HeroesPowerPlant/HEAD/HeroesPowerPlant/Resources/AboutImage.png -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/HeroesSPLTool.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorseabra4/HeroesPowerPlant/HEAD/HeroesPowerPlant/Tools/HeroesSPLTool.exe -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/WhiteDefault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorseabra4/HeroesPowerPlant/HEAD/HeroesPowerPlant/Resources/WhiteDefault.png -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/txdgen_1.0/txdgen64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorseabra4/HeroesPowerPlant/HEAD/HeroesPowerPlant/Tools/txdgen_1.0/txdgen64.exe -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | 3 | # IDE0059: Atribuição desnecessária de um valor 4 | csharp_style_unused_value_assignment_preference = discard_variable:suggestion 5 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Lists/HeroesObjectListCustom.ini: -------------------------------------------------------------------------------- 1 | [C0][40] 2 | Object=Custom Object Test 3 | Debug=Custom Object 4 | Model=OBJ_BOBA.DFF 5 | Description=Custom object test. Model OBJ_BOBA.DFF 6 | EndOfFile -------------------------------------------------------------------------------- /HeroesPowerPlant/MainForm/IUnsavedChanges.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant; 2 | 3 | public interface IUnsavedChanges 4 | { 5 | public bool UnsavedChanges { get; } 6 | public string Text { get; } 7 | public void Save(); 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/ConfigEditor/SplineEditor/SplineType.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.SplineEditor 2 | { 3 | public enum SplineType 4 | { 5 | Null, 6 | Loop, 7 | Rail, 8 | Ball 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/hpp_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2025.12.13", 3 | "versionName": "!!WARNING: New version requires NET Desktop Runtime 10.0!\nTo stay on the current version, disable:\nOptions -> Check For Updates on Startup" 4 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/Shared/IO/Config/HPPVersion.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.Shared.IO.Config 2 | { 3 | public class HPPVersion 4 | { 5 | public string version = "2025.12.13"; 6 | public string versionName = "2025.12.13"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/readme.txt: -------------------------------------------------------------------------------- 1 | importvcolorobj_v1.3.ms : OBJ importer script for 3ds Max originally by Chris Cookson, modded by Shadowth117 to allow importing of OBJ with vertex colors. 2 | HeroesSPLTool : Used to convert SPL (Heroes spline) files to and from OBJ. -------------------------------------------------------------------------------- /HeroesPowerPlant/SharpDX/RenderData/DefaultRenderData.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant 4 | { 5 | public struct DefaultRenderData 6 | { 7 | public Matrix worldViewProjection; 8 | public Vector4 Color; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object050B_Slot.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object050B_Slot : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public int Rate { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_F1Range.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_F1Range : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Range { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_F1Speed.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_F1Speed : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Speed { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_L1Offset.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_L1Offset : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public int Offset { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_L1Type.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_L1Type : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public int ObjectType { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object0000_Nothing.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0000_Nothing : SetObjectHeroes 4 | { 5 | public string Note => "This object will not be saved."; 6 | } 7 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_B1_1_Type.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_B1_1_Type : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_S1_1_Type.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_S1_1_Type : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short ObjectType { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object000E_Checkpoint.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object000E_Checkpoint : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short Priority { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0020_Weapon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0020_Weapon : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public EWeapon Weapon { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0025_FormSign.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0025_FormSign : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EFormation Formation { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List13/Object1303_MovingCannon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1303_MovingCannon : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float MaxHeight { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/RingType.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public enum ERingType 4 | { 5 | Normal = 0, 6 | Line = 1, 7 | Circle = 2, 8 | Arch = 3, 9 | WarpToPlayerIfAtSpawn = 1092616192 10 | } 11 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List04/Object04_CraneWallLight.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object04_CraneWallLight : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public int RotSpeed { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object2300_EggAlbatross.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object2300_EggAlbatross : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float YOffset { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0005_Checkpoint.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0005_Checkpoint : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public int Number { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0012_ItemCapsule.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0012_ItemCapsule : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public EItemShadow Item { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07E2_ElecCube.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07E2_ElecCube : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Scale { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07E8_ElecRollHexa.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07E8_ElecRollHexa : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float RotateSpeed { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0F/Object0FA1_BAMiniBomb.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0FA1_BAMiniBomb : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float DetectRange { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object0835_TornadoCollision.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0835_TornadoCollision : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Radius { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2589_Destructable1.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object2589_Destructable1 : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public int DestructableType { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0033_EnergyCore.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0033_EnergyCore : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public EEnergyCore EnergyCore { get; set; } 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Cylinder.mtl: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 07.05.2018 00:07:44 3 | 4 | newmtl wire_145028177 5 | Ns 32 6 | d 1 7 | Tr 0 8 | Tf 1 1 1 9 | illum 2 10 | Ka 0.5686 0.1098 0.6941 11 | Kd 0.5686 0.1098 0.6941 12 | Ks 0.3500 0.3500 0.3500 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Sphere.mtl: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 21.06.2018 18:43:55 3 | 4 | newmtl wire_135110008 5 | Ns 32 6 | d 1 7 | Tr 0 8 | Tf 1 1 1 9 | illum 2 10 | Ka 0.5294 0.4314 0.0314 11 | Kd 0.5294 0.4314 0.0314 12 | Ks 0.3500 0.3500 0.3500 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/MysticLight.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public enum MysticLight : byte 4 | { 5 | StarLights = 0, 6 | RadialGradientLights = 1, 7 | SkullLightLayingDown = 2, 8 | SkullLightWall = 3 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07E1_TriggerDigitalBreakableTile.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07E1_TriggerDigitalBreakableTile : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Range { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/Models/Structures/TriangleListCollada.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace HeroesPowerPlant.LevelEditor 4 | { 5 | public class TriangleListCollada 6 | { 7 | public string TextureName; 8 | public List TriangleList = new List(); 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object089C_FallingRoad.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object089C_FallingRoad : SetObjectShadow 4 | { 5 | //FallRoad 6 | [MiscSetting] 7 | public float Height { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0C/Object0C81_CircusGong.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0C81_CircusGong : SetObjectShadow 4 | { 5 | //Gong(speed) 6 | [MiscSetting] 7 | public float Speed { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1130_FenceWall.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1130_FenceWall : SetObjectShadow 4 | { 5 | //Footing(model) 6 | [MiscSetting] 7 | public int Model { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/ShadowCameraEditor/ShadowCameraTriggerShape.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.ShadowCameraEditor 2 | { 3 | 4 | public enum ShadowCameraTriggerShape 5 | { 6 | Plane = 0, 7 | Box = 1, 8 | SphereCapsule = 2, 9 | Cylinder = 3, 10 | BrokenLeftover = 4 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1101_CastleDoor.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1101_CastleDoor : SetObjectHeroes 4 | { 5 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 6 | public bool IsUpsideDown { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object089A_BreakingRoad.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object089A_BreakingRoad : SetObjectShadow 4 | { 5 | //BreakRoad(RoadType) 6 | [MiscSetting] 7 | public int RoadType { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object05_StarPanel.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object05_StarPanel : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Power { get; set; } 7 | [MiscSetting] 8 | public int Color { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0023_Chao.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0023_Chao : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Radius { get; set; } 7 | [MiscSetting] 8 | public float AngularSpeed { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object0586_Roulette.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0586_Roulette : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Scale { get; set; } 7 | [MiscSetting] 8 | public int Speed { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object05_Spring.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object05_Spring : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Power { get; set; } 7 | [MiscSetting] 8 | public float RotationSpeed { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List14/Object1402_Laser.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1402_Laser : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public short Time { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0C/Object0C83_CircusGameTarget.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0C83_CircusGameTarget : SetObjectShadow 4 | { 5 | //ShootingGame::Score 6 | [MiscSetting] 7 | public int LinkID_GameNum { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object13ED_EscapePodPathSwitch.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object13ED_EscapePodPathSwitch : SetObjectShadow 4 | { 5 | //SetRailSwitch(route) 6 | [MiscSetting] 7 | public int SplineID { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/Models/Structures/Vertex.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LevelEditor 4 | { 5 | public struct Vertex 6 | { 7 | public Vector3 Position; 8 | public Color Color; 9 | public Vector2 TexCoord; 10 | 11 | public bool HasUV; 12 | public bool HasColor; 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/SharpDX/RenderData/CollisionRenderData.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant 4 | { 5 | public struct CollisionRenderData 6 | { 7 | public Matrix viewProjection; 8 | public Vector4 ambientColor; 9 | public Vector4 lightDirection; 10 | public Vector4 lightDirection2; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0187_Tides.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0187_Tides : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public float Speed { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0902_RainLeaf.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0902_RainLeaf : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Range { get; set; } 7 | [MiscSetting] 8 | public int ObjectType { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object000E_Rocket.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object000E_Rocket : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Angle { get; set; } 7 | [MiscSetting] 8 | public float Distance { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object0281_TurtleFeet.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0281_TurtleFeet : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Scale { get; set; } 7 | [MiscSetting] 8 | public float Speed { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List07/Object0704_RailRoadblock.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0704_RailRoadblock : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Range { get; set; } 7 | [MiscSetting] 8 | public int Speed { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List07/Object0705_Capsule.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0705_Capsule : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EItemHeroes Item { get; set; } 7 | [MiscSetting] 8 | public byte ObjectType { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1134_DamageBlock.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1134_DamageBlock : SetObjectShadow 4 | { 5 | //AKA Green Spike Ball 6 | //DamageBlock(kind) 7 | [MiscSetting] 8 | public int Kind { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0909_SpringMush.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0909_SpringMush : SetObjectHeroes 4 | { 5 | [MiscSetting(1)] 6 | public float Speed { get; set; } 7 | [MiscSetting(2)] 8 | public byte NoControlTime { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List14/Object1400_FallingPlatform.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1400_FallingPlatform : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float FallHeight { get; set; } 7 | [MiscSetting] 8 | public float FallSpeed { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2586_Sample.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object2586_Sample : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public int Uint32 { get; set; } 7 | 8 | [MiscSetting] 9 | public int Sint32 { get; set; } 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0023_OverturnableObject.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0023_OverturnableObject : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public int Model { get; set; } 7 | [MiscSetting] 8 | public int UnusedInt { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/SetIdTableEditor/StageEntry.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.SetIdTableEditor 2 | { 3 | public class StageEntry 4 | { 5 | public uint flag0; 6 | public uint flag1; 7 | public uint flag2; 8 | public string name; 9 | 10 | public override string ToString() 11 | { 12 | return name; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Box.mtl: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 05.05.2018 15:40:13 3 | 4 | newmtl wire_008110135 5 | Ns 32.0000 6 | Ni 1.5000 7 | d 1.0000 8 | Tr 0.0000 9 | Tf 1.0000 1.0000 1.0000 10 | illum 2 11 | Ka 0.0314 0.4314 0.5294 12 | Kd 0.0314 0.4314 0.5294 13 | Ks 0.3500 0.3500 0.3500 14 | Ke 0.0000 0.0000 0.0000 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Pyramid.mtl: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 07.05.2018 03:03:25 3 | 4 | newmtl wire_008110135 5 | Ns 32.0000 6 | Ni 1.5000 7 | d 1.0000 8 | Tr 0.0000 9 | Tf 1.0000 1.0000 1.0000 10 | illum 2 11 | Ka 0.0314 0.4314 0.5294 12 | Kd 0.0314 0.4314 0.5294 13 | Ks 0.3500 0.3500 0.3500 14 | Ke 0.0000 0.0000 0.0000 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0018_ItemBox.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0018_ItemBox : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EItemHeroes Item { get; set; } 7 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 8 | public bool HomingOff { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0006_SwitchPP.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0006_SwitchPP : SetObjectHeroes 4 | { 5 | public enum EMode : byte 6 | { 7 | Push = 0, 8 | Pull = 1 9 | } 10 | 11 | [MiscSetting] 12 | public EMode SwitchMode { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0061_DarkSpinEntrance.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0061_DarkSpinEntrance : SetObjectShadow 6 | { 7 | [MiscSetting, Description("Only valid where a darkspin spline exists")] 8 | public float Radius { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0004_HintRing.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0004_HintRing : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short LineToPlay { get; set; } 7 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 8 | public bool DeleteByLinkOff { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1102_CastleWall.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1102_CastleWall : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public int ObjectType { get; set; } 7 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 8 | public bool IsUpsideDown { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object005A_Pole.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object005A_Pole : SetObjectShadow 6 | { 7 | //CatchStick 8 | 9 | [MiscSetting, Description("Extends equally up/down from object location")] 10 | public float Length { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/SetIdTableEditor/TableEntry.cs: -------------------------------------------------------------------------------- 1 | using HeroesPowerPlant.LayoutEditor; 2 | 3 | namespace HeroesPowerPlant.SetIdTableEditor 4 | { 5 | public class TableEntry 6 | { 7 | public ObjectEntry objectEntry; 8 | public uint values0; 9 | public uint values1; 10 | public uint values2; 11 | 12 | public override string ToString() => objectEntry.ToString(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List16/Object_16_02.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_16_02 : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float CoreHP { get; set; } 7 | [MiscSetting] 8 | public float ShieldHP { get; set; } 9 | [MiscSetting] 10 | public float MissleHP { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0007_Target.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0007_Target : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EItemHeroes Item { get; set; } 7 | [MiscSetting] 8 | public byte AppearMode { get; set; } 9 | [MiscSetting] 10 | public byte LinkID { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0183_Seagulls.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0183_Seagulls : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte Number { get; set; } 7 | [MiscSetting] 8 | public float Radius { get; set; } 9 | [MiscSetting] 10 | public float Speed { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List03/Object0302_RoadCap.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0302_RoadCap : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public short ScaleX { get; set; } 9 | [MiscSetting] 10 | public short ScaleY { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object13F3_EscapePodDownRail.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object13F3_EscapePodDownRail : SetObjectShadow 4 | { 5 | //EscapePlaneRail(dist,speed) 6 | [MiscSetting] 7 | public float Distance { get; set; } 8 | [MiscSetting] 9 | public float Speed { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List17/Object1773_CrushingWalls.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1773_CrushingWalls : SetObjectShadow 4 | { 5 | //SetCloseWall 6 | [MiscSetting] 7 | public float WallStartAdditionalSize { get; set; } 8 | [MiscSetting] 9 | public float CloseRate { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0026_FormGate.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0026_FormGate : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EFormation Formation { get; set; } 7 | [MiscSetting] 8 | public float Width { get; set; } 9 | [MiscSetting] 10 | public float Height { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0184_LargeBird.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0184_LargeBird : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Radius { get; set; } 7 | [MiscSetting] 8 | public float Speed { get; set; } 9 | [MiscSetting] 10 | public float Scale { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object0282_KameWave.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0282_KameWave : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public float Speed { get; set; } 9 | [MiscSetting] 10 | public float Scale { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List16/Object_16_00_01.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object_16_00_01 : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Radius { get; set; } 7 | [MiscSetting] 8 | public int Refresh { get; set; } 9 | [MiscSetting] 10 | public int Disable { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0103_TruckPath.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0103_TruckPath : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public byte PathNum { get; set; } 9 | [MiscSetting] 10 | public float MinSpeed { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0904_RainIvy.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0904_RainIvy : SetObjectHeroes 4 | { 5 | [MiscSetting(1)] 6 | public float Range { get; set; } 7 | [MiscSetting(2)] 8 | public float MotionSpeed { get; set; } 9 | [MiscSetting(3)] 10 | public int NotInUse { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0B/Object0BBC_PopupDummyGhost.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0BBC_PopupDummyGhost : SetObjectShadow 4 | { 5 | //ThreatObjHolder(Model, Range_Radius m) 6 | [MiscSetting] 7 | public int Model { get; set; } 8 | [MiscSetting] 9 | public float DetectRadius { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0189_WaterfallSmall.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0189_WaterfallSmall : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public float Scale { get; set; } 9 | [MiscSetting] 10 | public float Speed { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List03/Object0300_AcceleratorRoad.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0300_AcceleratorRoad : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public float Speed { get; set; } 9 | [MiscSetting] 10 | public float ColliZAdd { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List04/Object0401_EnergyColumn.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0401_EnergyColumn : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public float Length { get; set; } 9 | [MiscSetting] 10 | public float Speed { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1182_Thunder.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1182_Thunder : SetObjectHeroes 4 | { 5 | public enum EObjectType 6 | { 7 | Circular, 8 | Curve, 9 | Straight 10 | } 11 | 12 | [MiscSetting(1)] 13 | public EObjectType ObjectType { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/ShadowSplineEditor/ShadowSplinePOF0.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.ShadowSplineEditor 2 | { 3 | public class ShadowSplinePOF0 4 | { 5 | public byte slot1 { get; set; } 6 | public byte slot2 { get; set; } 7 | public bool noSlot2 { get; set; } 8 | 9 | public override string ToString() 10 | { 11 | return $"S1: {slot1} | S2: {slot2} | noS2: {noSlot2}"; 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List13/Object1302_HorizCannon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1302_HorizCannon : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short ShootTime { get; set; } 7 | [MiscSetting] 8 | public float ShootRange { get; set; } 9 | [MiscSetting] 10 | public byte IgnoreCollision { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1131_Vine.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1131_Vine : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float AttackRange { get; set; } 7 | [MiscSetting] 8 | public float AttackSec { get; set; } 9 | [MiscSetting] 10 | public float ReviveSec { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1185_Bone.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1185_Bone : SetObjectHeroes 4 | { 5 | public enum EBoneType : int 6 | { 7 | FromRight = 0, 8 | FromLeft = 1, 9 | FromBelow = 2 10 | } 11 | 12 | [MiscSetting] 13 | public EBoneType BoneType { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object001B_Roadblock.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object001B_Roadblock : SetObjectShadow 4 | { 5 | public enum ERoadblockType : int 6 | { 7 | GUN, 8 | BlackArms 9 | } 10 | 11 | [MiscSetting] 12 | public ERoadblockType RoadblockType { get; set; } 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object106C_SkyRuinsJewel.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object106C_SkyRuinsJewel : SetObjectShadow 4 | { 5 | public enum EModel : int 6 | { 7 | Out, 8 | In 9 | } 10 | 11 | //PowerDeviceNaked 12 | [MiscSetting] 13 | public EModel Model { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object1006_HealUnitServer.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1006_HealUnitServer : SetObjectShadow 4 | { 5 | public enum EServe : int 6 | { 7 | Bomb, 8 | HealUnit 9 | } 10 | 11 | //BombServer(Type) 12 | [MiscSetting] 13 | public EServe Serve { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1108_MansionDoor.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1108_MansionDoor : SetObjectHeroes 4 | { 5 | public enum EOpenAngle : int 6 | { 7 | Angle90 = 0, 8 | Angle180 = 1, 9 | Angle83dot5 = 2 10 | } 11 | 12 | [MiscSetting] 13 | public EOpenAngle OpenAngle { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07DA_MatrixTerminalElecFan.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07DA_MatrixTerminalElecFan : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Height { get; set; } 7 | [MiscSetting] 8 | public float Radius { get; set; } 9 | [MiscSetting] 10 | public float Power { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object1005_Researcher.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1005_Researcher : SetObjectShadow 4 | { 5 | public enum EResearcherType : int 6 | { 7 | FaceUp, 8 | FaceDown 9 | } 10 | //Researcher 11 | [MiscSetting] 12 | public EResearcherType ResearcherType { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | // Definir ComVisible como false torna os tipos neste assembly invisíveis 4 | // para componentes COM. Caso precise acessar um tipo neste assembly de 5 | // COM, defina o atributo ComVisible como true nesse tipo. 6 | [assembly: ComVisible(false)] 7 | 8 | // O GUID a seguir será destinado à ID de typelib se este projeto for exposto para COM 9 | [assembly: Guid("a3f86b0f-4a7b-4c01-9a18-79c4ec9a6a05")] -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object0200_CrumbleStonePillar.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | 4 | public class Object0200_CrumbleStonePillar : SetObjectHeroes 5 | { 6 | public enum EPillarType : byte 7 | { 8 | Left = 0, 9 | Right = 1, 10 | Center = 2 11 | } 12 | 13 | [MiscSetting] 14 | public EPillarType PillarType { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "RenderWareFile"] 2 | path = Submodules/RenderWareFile 3 | url = https://github.com/igorseabra4/RenderWareFile 4 | [submodule "Submodules/HeroesPowerPlant.RemoteControl.ReloadedII"] 5 | path = Submodules/HeroesPowerPlant.RemoteControl.ReloadedII 6 | url = https://github.com/Sewer56/HeroesPowerPlant.RemoteControl.ReloadedII.git 7 | [submodule "Submodules/Heroes.SDK"] 8 | path = Submodules/Heroes.SDK 9 | url = https://github.com/Heroes-Hacking-Central/Heroes.SDK.git 10 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/Models/Structures/ModelConverterData.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.Collections.Generic; 3 | 4 | namespace HeroesPowerPlant.LevelEditor 5 | { 6 | public struct ModelConverterData 7 | { 8 | public List MaterialList; 9 | public List VertexList; 10 | public List UVList; 11 | public List ColorList; 12 | public List TriangleList; 13 | public string MTLLib; 14 | } 15 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List14/Object14B5_GravityChangeZone.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object14B5_GravityChangeZone : SetObjectShadow 6 | { 7 | // Also used for 14B4, GravityChangeSwitch 8 | [MiscSetting, Description("Sets the base gravity. By default the world is NegY")] 9 | public EGravityDirection GravityDirection { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object099A_Wanibreak.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object099A_Wanibreak : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public byte Kazari { get; set; } 9 | [MiscSetting] 10 | public byte Unknown1 { get; set; } 11 | [MiscSetting] 12 | public byte Unknown2 { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0102_TruckRail.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0102_TruckRail : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte ObjectType { get; set; } 7 | [MiscSetting] 8 | public byte StopTime { get; set; } 9 | [MiscSetting] 10 | public float Length { get; set; } 11 | [MiscSetting] 12 | public float Speed { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object0204_Kaos.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0204_Kaos : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte KaosNumber { get; set; } 7 | [MiscSetting] 8 | public float MinSpeed { get; set; } 9 | [MiscSetting] 10 | public float MaxSpeed { get; set; } 11 | [MiscSetting] 12 | public float Acceleration { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List03/Object0305_BigBridge.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0305_BigBridge : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float ColScaleX { get; set; } 7 | [MiscSetting] 8 | public float ColScaleY { get; set; } 9 | [MiscSetting] 10 | public float ColScaleZ { get; set; } 11 | [MiscSetting] 12 | public float AnimSpeed { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/Shared/Utilities/ManualEndianConverter.cs: -------------------------------------------------------------------------------- 1 | using Reloaded.Memory.Utilities; 2 | 3 | namespace HeroesPowerPlant.Shared.Utilities 4 | { 5 | /// 6 | /// Provides a set of methods to manually convert the endian of each primitive type. 7 | /// 8 | public static class ManualEndianConverter 9 | { 10 | public static T ReverseEndian(this T type) where T : unmanaged 11 | { 12 | return Endian.Reverse(type); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0903_RainMush.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0903_RainMush : SetObjectHeroes 4 | { 5 | [MiscSetting(1)] 6 | public float Range { get; set; } 7 | [MiscSetting(2)] 8 | public float Power { get; set; } 9 | [MiscSetting(3)] 10 | public byte NoControlTime { get; set; } 11 | [MiscSetting(4)] 12 | public byte ObjectType { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_F1Scale.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object_F1Scale : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public float Scale { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object13F0_SlideoutPlatform.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object13F0_SlideoutPlatform : SetObjectShadow 4 | { 5 | //SetPopFooting(model sec_begin, sec_wait) 6 | [MiscSetting] 7 | public int Model { get; set; } 8 | [MiscSetting] 9 | public float SecBegin { get; set; } 10 | [MiscSetting] 11 | public float SecWait { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List03/Object0380_BalloonDesign.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0380_BalloonDesign : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte BalloonType { get; set; } 7 | [MiscSetting] 8 | public int SpdRad { get; set; } 9 | [MiscSetting] 10 | public float Radius { get; set; } 11 | [MiscSetting] 12 | public float Scale { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List13/Object1304_RectFloatingPlatform.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1304_RectFloatingPlatform : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Speed { get; set; } 7 | [MiscSetting] 8 | public float EndPosX { get; set; } 9 | [MiscSetting] 10 | public float EndPosY { get; set; } 11 | [MiscSetting] 12 | public float EndPosZ { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0B/Object0BBB_SmallLantern.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0BBB_SmallLantern : SetObjectShadow 6 | { 7 | //CandleStick(SAME_COMID_SWITCH_NUM) 8 | 9 | [MiscSetting, Description("SAME_COMID_SWITCH_NUM official name, may have to do with respawning if a ComID/LinkID is not cleared")] 10 | public int WatchForLinkID { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object106D_RainEffect.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object106D_RainEffect : SetObjectShadow 4 | { 5 | //RainEffect(COLLI_WIDTH m, COLLI_HEIGHT m, COLLI_DEPTH m) 6 | [MiscSetting] 7 | public float Range_X { get; set; } 8 | [MiscSetting] 9 | public float Range_Y { get; set; } 10 | [MiscSetting] 11 | public float Range_Z { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object138E_ArkCannon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object138E_ArkCannon : SetObjectShadow 4 | { 5 | public enum EModel : int 6 | { 7 | Ground, //GRAND 8 | Air // AIR 9 | } 10 | 11 | [MiscSetting] 12 | public EModel Model { get; set; } 13 | [MiscSetting] 14 | public float DetectRange { get; set; } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2592_DebugMissionClearCollision.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object2592_DebugMissionClearCollision : SetObjectShadow 4 | { 5 | public enum EMissionType 6 | { 7 | Dark, 8 | Normal, 9 | Hero, 10 | Boss 11 | } 12 | 13 | [MiscSetting] 14 | public EMissionType MissionType { get; set; } 15 | } 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0015_BallSwitch.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0015_BallSwitch : SetObjectShadow 4 | { 5 | public enum EActivateType : int 6 | { 7 | OnOff = 0, 8 | OnTouch = 1, 9 | OnAlways = 2, 10 | Decoration = 3 11 | } 12 | 13 | [MiscSetting] 14 | public EActivateType ActivateType { get; set; } 15 | } 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object002C_RollDoor.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object002C_RollDoor : SetObjectHeroes 6 | { 7 | [MiscSetting, Description("Defaults to 5.0")] 8 | public float Power { get; set; } 9 | [MiscSetting, Description("In degrees")] 10 | public float Elevation { get; set; } 11 | [MiscSetting, Description("In frames")] 12 | public short NoControlTime { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List03/Object03E9_FallingBuilding.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object03E9_FallingBuilding : SetObjectShadow 4 | { 5 | //FallingBuildingHolder obj 6 | 7 | public enum EObjectType : int 8 | { 9 | Bridge15Angle = 0, 10 | Bridge45Angle = 1, 11 | Building = 2, 12 | } 13 | 14 | [MiscSetting] 15 | public EObjectType ObjectType { get; set; } 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object1004_ArkCrackedWall.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1004_ArkCrackedWall : SetObjectShadow 4 | { 5 | public enum EWallType : int 6 | { 7 | Out, 8 | In 9 | } 10 | 11 | //BombingWall(Type{Out,In},Range point) 12 | [MiscSetting] 13 | public EWallType WallType { get; set; } 14 | [MiscSetting] 15 | public float Range { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List19/Object1903_BlackDoomHologram.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1903_BlackDoomHologram : SetObjectShadow 6 | { 7 | //BDHologram 8 | 9 | [MiscSetting, Description("Distance (straight line) from player to object\nWhen met, the hologram disappears.")] 10 | public float DetectDistance { get; set; } 11 | [MiscSetting] 12 | public int VoiceID { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object0502_Flipper.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0502_Flipper : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Trance { get; set; } 7 | [MiscSetting] 8 | public byte FlipperType { get; set; } 9 | [MiscSetting] 10 | public byte KeyFlip { get; set; } 11 | [MiscSetting] 12 | public byte Power { get; set; } 13 | [MiscSetting] 14 | public byte Player { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object0503_TriBumper.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0503_TriBumper : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Power { get; set; } 7 | [MiscSetting] 8 | public byte AngType { get; set; } 9 | [MiscSetting] 10 | public byte Color { get; set; } 11 | [MiscSetting] 12 | public byte Number { get; set; } 13 | [MiscSetting] 14 | public byte Unknown { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2595_MissionClearCollision.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object2595_MissionClearCollision : SetObjectShadow 4 | { 5 | public enum EMissionType : int 6 | { 7 | Dark, 8 | Normal, 9 | Hero 10 | } 11 | 12 | [MiscSetting] 13 | public EMissionType MissionType { get; set; } 14 | 15 | [MiscSetting] 16 | public float Radius { get; set; } 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object020A_ColliQuake.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object020A_ColliQuake : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float ScaleX { get; set; } 7 | [MiscSetting] 8 | public float ScaleY { get; set; } 9 | [MiscSetting] 10 | public float ScaleZ { get; set; } 11 | [MiscSetting] 12 | public float Strength { get; set; } 13 | [MiscSetting] 14 | public int Time { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/Triggers/Object0066_TriggerBobJump.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0066_TriggerBobJump : SetObjectHeroes 4 | { 5 | public override bool IsTrigger() => true; 6 | 7 | [MiscSetting] 8 | public float Width { get; set; } 9 | [MiscSetting] 10 | public float Height { get; set; } 11 | [MiscSetting] 12 | public float RunDistance { get; set; } 13 | [MiscSetting] 14 | public float JumpDistance { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D7_DigitalBreakableTile.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07D7_DigitalBreakableTile : SetObjectShadow 4 | { 5 | //ElecCristalWall(type, AppearAngleX, AppearAngleY) 6 | 7 | [MiscSetting] 8 | public EDirection DirectionType { get; set; } 9 | [MiscSetting] 10 | public float AppearAngleX { get; set; } 11 | [MiscSetting] 12 | public float AppearAngleY { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/SharpDX/Shader_Basic.hlsl: -------------------------------------------------------------------------------- 1 | cbuffer data :register(b0) 2 | { 3 | float4x4 worldViewProj; 4 | float4 color; 5 | }; 6 | 7 | struct VS_IN 8 | { 9 | float4 position : POSITION; 10 | }; 11 | 12 | struct PS_IN 13 | { 14 | float4 position : SV_POSITION; 15 | float4 color: COLOR; 16 | }; 17 | 18 | PS_IN VS(VS_IN input) 19 | { 20 | PS_IN output = (PS_IN)0; 21 | 22 | output.position = mul(worldViewProj, input.position); 23 | output.color = color; 24 | 25 | return output; 26 | } 27 | 28 | float4 PS(PS_IN input) : SV_Target 29 | { 30 | return input.color; 31 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object090E_Alligator.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object090E_Alligator : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float StartPosX { get; set; } 7 | [MiscSetting] 8 | public float StartPosY { get; set; } 9 | [MiscSetting] 10 | public float StartPosZ { get; set; } 11 | [MiscSetting] 12 | public float StartRange { get; set; } 13 | [MiscSetting] 14 | public float SpeedRate { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0984_RedWeed.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0984_RedWeed : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | CreateBoundingBox(); 11 | } 12 | 13 | [MiscSetting] 14 | public float StartRange { get; set; } 15 | [MiscSetting] 16 | public float Scale { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D4_ElecSecurity.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07D4_ElecSecurity : SetObjectShadow 4 | { 5 | public enum EElecSecurityType : int 6 | { 7 | STRONG, 8 | MEDIUM, 9 | WEAK, 10 | TIKAL, 11 | } 12 | 13 | [MiscSetting] 14 | public EElecSecurityType ElecSecurityType { get; set; } 15 | [MiscSetting] 16 | public float DetectionRange { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0014_GoalRing.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0014_GoalRing : SetObjectShadow 4 | { 5 | public enum EEmeraldColor : int 6 | { 7 | Blue = 0, 8 | Green = 1, 9 | Purple = 2, 10 | Red = 3, 11 | Aqua = 4, 12 | Yellow = 5, 13 | White = 6, 14 | None = 7 15 | } 16 | 17 | [MiscSetting] 18 | public EEmeraldColor EmeraldColor { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0B/Object0BBE_Chao.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0BBE_Chao : SetObjectShadow 4 | { 5 | public enum EChao : int 6 | { 7 | Normal = 0x00, //CHAO 8 | Cheese = 0x01 //CHEEZ 9 | } 10 | 11 | [MiscSetting] 12 | public EChao Chao { get; set; } 13 | [MiscSetting] 14 | public float MoveRadius { get; set; } 15 | [MiscSetting] 16 | public float MoveSpeed { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0987_RedGreenPlant.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0987_RedGreenPlant : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | CreateBoundingBox(); 11 | } 12 | 13 | [MiscSetting] 14 | public float Scale { get; set; } 15 | [MiscSetting] 16 | public int ObjectType { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0180_FlowerPatch.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0180_FlowerPatch : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public byte ObjectType { get; set; } 16 | [MiscSetting] 17 | public float Scale { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_IntTypeFloatScale.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object_IntTypeFloatScale : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public int ObjectType { get; set; } 16 | [MiscSetting] 17 | public float Scale { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1132_ElevatorPlatformColumn.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1132_ElevatorPlatformColumn : SetObjectShadow 4 | { 5 | //Elevator(model, distance, speed, range) 6 | [MiscSetting] 7 | public int Model { get; set; } 8 | [MiscSetting] 9 | public float TravelDistance { get; set; } 10 | [MiscSetting] 11 | public float Speed { get; set; } 12 | [MiscSetting] 13 | public float DetectRange { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List19/Object1901_CometBarrier.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1901_CometBarrier : SetObjectShadow 6 | { 7 | public enum EBarrierType : int 8 | { 9 | Hero, 10 | Dark, 11 | Shadow 12 | } 13 | 14 | [MiscSetting, Description("Requires a Comet Barrier Switch object with same Link ID\nOtherwise no barrier is displayed")] 15 | public EBarrierType BarrierType { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0105_MovingRuin.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0105_MovingRuin : SetObjectHeroes 4 | { 5 | public enum ERuinType : byte 6 | { 7 | Small = 0, 8 | Normal = 1, 9 | Special = 2 10 | } 11 | 12 | [MiscSetting] 13 | public ERuinType RuinType { get; set; } 14 | [MiscSetting] 15 | public float StartY { get; set; } 16 | [MiscSetting] 17 | public float Speed { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List17/Object1772_ConcreteDoor.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1772_ConcreteDoor : SetObjectShadow 6 | { 7 | [MiscSetting] 8 | public float Detect_X { get; set; } 9 | [MiscSetting] 10 | public float Detect_Y { get; set; } 11 | [MiscSetting] 12 | public float Detect_Z { get; set; } 13 | [MiscSetting, Description("m/s to close\n smaller = slower")] 14 | public float CloseSpeed { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/Models/Structures/Triangle.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LevelEditor 2 | { 3 | public class Triangle 4 | { 5 | public int MaterialIndex; 6 | 7 | public int vertex1; 8 | public int vertex2; 9 | public int vertex3; 10 | 11 | public int UVCoord1; 12 | public int UVCoord2; 13 | public int UVCoord3; 14 | 15 | public int Color1; 16 | public int Color2; 17 | public int Color3; 18 | } 19 | 20 | public class TriangleExt : Triangle 21 | { 22 | public RenderWareFile.Color collisionFlag; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0999_Powder.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0999_Powder : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Scale { get; set; } 7 | [MiscSetting] 8 | public int ObjectType { get; set; } 9 | [MiscSetting] 10 | public int Number { get; set; } 11 | [MiscSetting] 12 | public int Time { get; set; } 13 | [MiscSetting] 14 | public float RangeR { get; set; } 15 | [MiscSetting] 16 | public float RangeY { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D1_Searchlight.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07D1_Searchlight : SetObjectShadow 4 | { 5 | // ElecSearchLight(ENEMY_ID, RotateRange, RotateSpeed, LightLength) 6 | [MiscSetting] 7 | public ENoYes SpotOnLinkID { get; set; } 8 | [MiscSetting] 9 | public float RotateRange { get; set; } 10 | [MiscSetting] 11 | public float RotateSpeed { get; set; } 12 | [MiscSetting] 13 | public float LightLength { get; set; } 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object001D_Pulley.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object001D_Pulley : SetObjectHeroes 4 | { 5 | public enum EPulleyType : short 6 | { 7 | Up = 0, 8 | Down = 1 9 | } 10 | 11 | [MiscSetting] 12 | public float Elevation { get; set; } 13 | [MiscSetting] 14 | public float ElevationAngle { get; set; } 15 | [MiscSetting] 16 | public float Power { get; set; } 17 | [MiscSetting] 18 | public EPulleyType PulleyType { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object00_Box.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object00_Box : SetObjectHeroes 6 | { 7 | public enum ECrashMode : short 8 | { 9 | CrashOut = 0, 10 | CrashThrough = 1 11 | } 12 | 13 | [MiscSetting] 14 | public ECrashMode CrashMode { get; set; } 15 | [MiscSetting, Description("Usually 0")] 16 | public short Unknown1 { get; set; } 17 | [MiscSetting, Description("Usually 0")] 18 | public short Unknown2 { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D8_LaserWallBarrier.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object07D8_LaserWallBarrier : SetObjectShadow 6 | { 7 | public enum EBarrierType 8 | { 9 | Model0, 10 | Model1, 11 | Model2 12 | } 13 | //ElecBarrier 14 | 15 | [MiscSetting, Description("Note: One sided view only, currently opposite of placement\n Move around to see model in editor")] 16 | public EBarrierType BarrierType { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07EB_CubePlatformCircle.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object07EB_CubePlatformCircle : SetObjectShadow 6 | { 7 | [MiscSetting, Description("This objects spawns this many cubes that orbit around Radius at CircleSpeed")] 8 | public int NumberOfCubes { get; set; } 9 | 10 | [MiscSetting, Description("m")] 11 | public float Radius { get; set; } 12 | 13 | [MiscSetting, Description("deg/sec")] 14 | public float CircleSpeed { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0981_Flower.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0981_Flower : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | CreateBoundingBox(); 11 | } 12 | 13 | [MiscSetting] 14 | public float StartRange { get; set; } 15 | [MiscSetting] 16 | public float Scale { get; set; } 17 | [MiscSetting] 18 | public int ObjectType { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0989_Pond.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0989_Pond : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(ScaleX, 1, ScaleZ) * DefaultTransformMatrix(); 10 | CreateBoundingBox(); 11 | } 12 | 13 | [MiscSetting] 14 | public int ObjectType { get; set; } 15 | [MiscSetting] 16 | public float ScaleX { get; set; } 17 | [MiscSetting] 18 | public float ScaleZ { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object000B_DashPanel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object000B_DashPanel : SetObjectHeroes 6 | { 7 | [MiscSetting, Description("Defaults to 5.0")] 8 | public float Speed { get; set; } 9 | [MiscSetting, Description("In frames")] 10 | public short NoControlTime { get; set; } 11 | [MiscSetting(padAfter: 8), Description("Usually 0")] 12 | public float Unknown1 { get; set; } 13 | [MiscSetting, Description("Usually 0")] 14 | public float Unknown2 { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0016_TargetSwitch.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0016_TargetSwitch : SetObjectShadow 4 | { 5 | [MiscSetting] 6 | public float Move_X { get; set; } 7 | [MiscSetting] 8 | public float Move_Y { get; set; } 9 | [MiscSetting] 10 | public float Move_Z { get; set; } 11 | [MiscSetting] 12 | public float MoveSpeed { get; set; } 13 | [MiscSetting] 14 | public float MoveWait { get; set; } 15 | [MiscSetting] 16 | public int NumberOfHits { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1188_Curtain.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1188_Curtain : SetObjectHeroes 4 | { 5 | public enum ECurtainType : byte 6 | { 7 | Light = 0, 8 | Dark = 1, 9 | } 10 | 11 | [MiscSetting] 12 | public ECurtainType CurtainType { get; set; } 13 | [MiscSetting] 14 | public byte Pole { get; set; } 15 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 16 | public bool IsUpsideDown { get; set; } 17 | [MiscSetting] 18 | public float Scale { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0024_Cage.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0024_Cage : SetObjectHeroes 4 | { 5 | public enum ECageType : int 6 | { 7 | PFixed = 0, 8 | PFlying = 1, 9 | UFixed = 2, 10 | UFlying = 3 11 | } 12 | 13 | [MiscSetting] 14 | public ECageType CageType { get; set; } 15 | [MiscSetting] 16 | public float MoveCycleSec { get; set; } 17 | [MiscSetting] 18 | public float MoveRangeH { get; set; } 19 | [MiscSetting] 20 | public float MoveRangeV { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object0587_GiantCasinoChip.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0587_GiantCasinoChip : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public float Scale { get; set; } 16 | [MiscSetting] 17 | public int ObjectType { get; set; } 18 | [MiscSetting] 19 | public int Speed { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object000C_DashRing.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object000C_DashRing : Object000B_DashPanel 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = 10 | Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * 11 | Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * 12 | Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y) + MathUtil.Pi) * 13 | Matrix.Translation(Position); 14 | 15 | CreateBoundingBox(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List17/Object17D5_BlackArmsMine.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object17D5_BlackArmsMine : SetObjectShadow 6 | { 7 | //BAMine(second) 8 | 9 | [MiscSetting] 10 | public float Translate_X { get; set; } 11 | [MiscSetting] 12 | public float Translate_Y { get; set; } 13 | [MiscSetting] 14 | public float Translate_Z { get; set; } 15 | [MiscSetting, Description("Entire time it takes to translate from origin to Translate coords and back to origin.")] 16 | public float CycleTime { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0B/Object0BC8_CastleMonsterControl.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0BC8_CastleMonsterControl : SetObjectShadow 4 | { 5 | public enum EState : int 6 | { 7 | Start, 8 | Miss, 9 | End 10 | } 11 | 12 | //MonsterControl 13 | [MiscSetting] 14 | public EState State { get; set; } 15 | [MiscSetting] 16 | public float X_Length { get; set; } 17 | [MiscSetting] 18 | public float Y_Length { get; set; } 19 | [MiscSetting] 20 | public float Z_Length { get; set; } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object0584_GiantDice.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0584_GiantDice : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public int ObjectType { get; set; } 16 | [MiscSetting] 17 | public int Speed { get; set; } 18 | [MiscSetting] 19 | public float Scale { get; set; } 20 | [MiscSetting] 21 | public int Block { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List14/Object14BE_ArkGreenLaser.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object14BE_ArkGreenLaser : SetObjectShadow 6 | { 7 | //ArkLaser 8 | 9 | [MiscSetting, Description("Y-axis increase up/down half of this value, split equally")] 10 | public float Length { get; set; } 11 | [MiscSetting, Description("How long the laser runs (seconds) once active")] 12 | public float ActiveTime { get; set; } 13 | [MiscSetting, Description("How long the laser waits (seconds) before firing again")] 14 | public float RechargeTime { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0003_DashPanel.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0003_DashPanel : Object0001_SpringShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | // function 800c9ed4 | RotationTemplateGen 10 | var shift = MathUtil.Pi / 180f; 11 | transformMatrix = 12 | Matrix.RotationZ(Rotation.Z * shift) * 13 | Matrix.RotationX(Rotation.X * shift) * 14 | Matrix.RotationY(Rotation.Y * shift) * 15 | Matrix.Translation(Position); 16 | CreateBoundingBox(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /HeroesPowerPlant/ConfigEditor/RankEditor/RankContainer.cs: -------------------------------------------------------------------------------- 1 | using Heroes.SDK.Definitions.Enums; 2 | using Heroes.SDK.Definitions.Structures.Stage.Rank; 3 | 4 | namespace HeroesPowerPlant.RankEditor 5 | { 6 | public class RankContainer 7 | { 8 | public Stage stageID; 9 | public NormalMission normalMission; 10 | public ExtraMissionScore extraMissionScore; 11 | public ExtraMissionTime extraMissionTime; 12 | 13 | public RankContainer() 14 | { 15 | stageID = Stage.Null; 16 | normalMission = new NormalMission(); 17 | extraMissionScore = new ExtraMissionScore(); 18 | extraMissionTime = new ExtraMissionTime(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0001_Spring.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object0001_Spring : SetObjectHeroes 7 | { 8 | public override void CreateTransformMatrix() 9 | { 10 | transformMatrix = DefaultTransformMatrix(MathUtil.Pi); 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting, Description("Defaults to 5.0")] 15 | public float Power { get; set; } 16 | [MiscSetting, Description("In frames")] 17 | public short NoControlTime { get; set; } 18 | [MiscSetting] 19 | public float GuideLine { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0019_ItemBalloon.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object0019_ItemBalloon : SetObjectHeroes 7 | { 8 | public override void CreateTransformMatrix() 9 | { 10 | transformMatrix = Matrix.Scaling(Scale + 1f) * DefaultTransformMatrix(); 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting] 15 | public EItemHeroes Item { get; set; } 16 | [MiscSetting(padAfter: 4)] 17 | public float Scale { get; set; } 18 | [MiscSetting, Description("Usually 0")] 19 | public short Unknown { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0B/Object0BC7_CastleMonster.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0BC7_CastleMonster : SetObjectShadow 6 | { 7 | //Monster(MIN_SPPED m/sec, MAX_SPPED m/sec, ACCEL m/sec^2, DECEL m/sec^2) 8 | 9 | [MiscSetting, Description("m/sec")] 10 | public float MinSpeed { get; set; } 11 | [MiscSetting, Description("m/sec")] 12 | public float MaxSpeed { get; set; } 13 | [MiscSetting, Description("m/sec^2")] 14 | public float Accel { get; set; } 15 | [MiscSetting, Description("m/sec^2")] 16 | public float Decel { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1138_JumpPanel.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1138_JumpPanel : SetObjectShadow 4 | { 5 | //Catapult(model, level, nocontrol time (sec)) 6 | [MiscSetting] 7 | public int Model { get; set; } 8 | [MiscSetting] 9 | public float Strength { get; set; } 10 | [MiscSetting] 11 | public float NoControlTimeAfterLaunch { get; set; } 12 | [MiscSetting] 13 | public float AngleX { get; set; } 14 | [MiscSetting] 15 | public float Unused_AngleY { get; set; } 16 | [MiscSetting] 17 | public float AngleZ { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object0838_RuinsStoneGuardian.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0838_RuinsStoneGuardian : SetObjectShadow 4 | { 5 | public enum EOffOn : int 6 | { 7 | Off, 8 | On 9 | } 10 | 11 | //StoneStatue(Active{off,on},Mirror{off,on},Range_Radius m, Range_height m) 12 | [MiscSetting] 13 | public EOffOn Active { get; set; } 14 | [MiscSetting] 15 | public EOffOn Mirror { get; set; } 16 | [MiscSetting] 17 | public float DetectRadius { get; set; } 18 | [MiscSetting] 19 | public float DetectHeight { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/Enums.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public enum EItemHeroes : byte 4 | { 5 | None = 0, 6 | Rings5 = 1, 7 | Rings10 = 2, 8 | Rings20 = 3, 9 | Barrier = 4, 10 | ExtraLife = 5, 11 | SpeedUp = 6, 12 | TeamBlast = 7, 13 | Invincibility = 8, 14 | LevelUpSpeed = 9, 15 | LevelUpFly = 10, 16 | LevelUpPower = 11, 17 | RefillFlightGauge = 12 18 | } 19 | 20 | public enum EFormation : byte 21 | { 22 | Speed = 0, 23 | Fly = 1, 24 | Power = 2 25 | } 26 | 27 | public enum EAppear : byte 28 | { 29 | Idle = 0, 30 | Fall = 1, 31 | } 32 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0C/Object0C80_BounceBall.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0C80_BounceBall : SetObjectShadow 4 | { 5 | public enum EAppearType : int 6 | { 7 | Always, 8 | AfterLinkIDCleared 9 | } 10 | 11 | //CircusBall [Horror/Circus skins] (type, level, nocontrol time (sec), angle) 12 | [MiscSetting] 13 | public EAppearType AppearType { get; set; } 14 | [MiscSetting] 15 | public float Strength { get; set; } 16 | [MiscSetting] 17 | public float NoControlTime { get; set; } 18 | [MiscSetting] 19 | public float Angle { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List05/Object050A_Dice.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object050A_Dice : SetObjectHeroes 4 | { 5 | public enum EDiceType : short 6 | { 7 | UpDown = 0, 8 | Horizontal = 1 9 | } 10 | 11 | [MiscSetting] 12 | public float Speed { get; set; } 13 | [MiscSetting] 14 | public float Height { get; set; } 15 | [MiscSetting] 16 | public float Radius { get; set; } 17 | [MiscSetting] 18 | public short StopTime { get; set; } 19 | [MiscSetting] 20 | public EDiceType DiceType { get; set; } 21 | [MiscSetting] 22 | public short OffsetTime { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object000F_DashRamp.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object000F_DashRamp : SetObjectHeroes 7 | { 8 | public override void CreateTransformMatrix() 9 | { 10 | transformMatrix = DefaultTransformMatrix(MathUtil.Pi); 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting, Description("Defaults to 5.0")] 15 | public float SpeedHorizontal { get; set; } 16 | [MiscSetting, Description("Defaults to 5.0")] 17 | public float SpeedVertical { get; set; } 18 | [MiscSetting, Description("In frames")] 19 | public short NoControlTime { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List18/Object1839_RisingLava.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1839_RisingLava : SetObjectShadow 4 | { 5 | public enum EModel : int 6 | { 7 | Model_1, 8 | Model_2, 9 | Model_3, 10 | Model_4, 11 | Model_5, 12 | Model_6, 13 | Model_7, 14 | Model_8, 15 | Model_9 16 | } 17 | 18 | //SetMagma 19 | [MiscSetting] 20 | public EModel Model { get; set; } 21 | [MiscSetting] 22 | public float RiseAmountMax { get; set; } 23 | [MiscSetting] 24 | public float RiseAmountPerSecond { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2588_Decoration1.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object2588_Decoration1 : SetObjectShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ) * DefaultTransformMatrix(); 10 | CreateBoundingBox(); 11 | } 12 | 13 | [MiscSetting] 14 | public int DecorationType { get; set; } 15 | 16 | [MiscSetting] 17 | public float ScaleX { get; set; } 18 | 19 | [MiscSetting] 20 | public float ScaleY { get; set; } 21 | 22 | [MiscSetting] 23 | public float ScaleZ { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1184_SmokeScreen.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1184_SmokeScreen : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = IsUpsideDown ? Matrix.RotationY(MathUtil.Pi) : Matrix.Identity * 10 | DefaultTransformMatrix(); 11 | 12 | CreateBoundingBox(); 13 | } 14 | 15 | [MiscSetting] 16 | public int ObjectType { get; set; } 17 | [MiscSetting] 18 | public float Speed { get; set; } 19 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 20 | public bool IsUpsideDown { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object1392_SpaceDebris.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1392_SpaceDebris : SetObjectShadow 4 | { 5 | public enum EModel : int 6 | { 7 | Model0, 8 | Model1, 9 | Model2, 10 | Model3, 11 | Model4, 12 | Model5 13 | } 14 | 15 | //SpaceGadget(RotDegSpdX,RotDegSpdY,RotDegSpdZ) 16 | [MiscSetting] 17 | public EModel Model { get; set; } 18 | [MiscSetting] 19 | public float RotDegSpdX { get; set; } 20 | [MiscSetting] 21 | public float RotDegSpdY { get; set; } 22 | [MiscSetting] 23 | public float RotDegSpdZ { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0015_SpikeBall.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0015_SpikeBall : SetObjectHeroes 6 | { 7 | public enum ESpikeBallType : int 8 | { 9 | SingleBall = 0, 10 | DoubleBall = 1 11 | } 12 | 13 | public override void CreateTransformMatrix() 14 | { 15 | transformMatrix = Matrix.Scaling(Scale + 1f) * DefaultTransformMatrix(); 16 | CreateBoundingBox(); 17 | } 18 | 19 | [MiscSetting] 20 | public ESpikeBallType SpikeBallType { get; set; } 21 | [MiscSetting] 22 | public float RotateSpeed { get; set; } 23 | [MiscSetting] 24 | public float Scale { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object004F_Vehicle.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object004F_Vehicle : SetObjectShadow 4 | { 5 | public enum EVehicle : int 6 | { 7 | None = 0x00, 8 | Jeep = 0x01, 9 | SportsCar = 0x02, 10 | ArmoredCar = 0x03, 11 | Motorcycle = 0x04, 12 | JumpMech = 0x05, 13 | ArmedMech = 0x06, 14 | AirSaucer = 0x07, 15 | BlackHawk = 0x08, 16 | BlackVolt = 0x09, 17 | GUNTurret = 0x0A, 18 | BATurret = 0x0B, 19 | GUNLiftFast = 0x0C, 20 | GUNLiftSlow = 0x0D 21 | } 22 | 23 | [MiscSetting] 24 | public EVehicle Vehicle { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List15/Object15C0_EggBishop.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object15C0_EggBishop : SetObjectHeroes 4 | { 5 | public enum EEnemyType : byte 6 | { 7 | Bishop = 0, 8 | Magician = 1 9 | } 10 | 11 | [MiscSetting] 12 | public EEnemyType EnemyType { get; set; } 13 | [MiscSetting] 14 | public float MoveRange { get; set; } 15 | [MiscSetting] 16 | public float ScopeRange { get; set; } 17 | [MiscSetting] 18 | public float ScopeOffset { get; set; } 19 | [MiscSetting] 20 | public int AttackInterval { get; set; } 21 | [MiscSetting] 22 | public float MoveSpeed { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List01/Object0190_Partner.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0190_Partner : SetObjectShadow 4 | { 5 | public enum EPartner : int 6 | { 7 | None = 0x00, 8 | Sonic = 0x01, 9 | Tails = 0x02, 10 | Knuckles = 0x03, 11 | Amy = 0x04, 12 | Rouge = 0x05, 13 | Omega = 0x06, 14 | Vector = 0x07, 15 | Espio = 0x08, 16 | Maria = 0x09, 17 | Charmy = 0x0A, 18 | Eggman = 0x0B, 19 | DoomsEye = 0x0C 20 | } 21 | 22 | [MiscSetting] 23 | public EPartner Partner { get; set; } 24 | [MiscSetting] 25 | public float DetectRange { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object258A_Effect1.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object258A_Effect1 : SetObjectShadow 6 | { 7 | [MiscSetting] 8 | public int EffectType { get; set; } 9 | 10 | [MiscSetting] 11 | public float ScaleX { get; set; } 12 | 13 | [MiscSetting] 14 | public float ScaleY { get; set; } 15 | 16 | [MiscSetting] 17 | public float ScaleZ { get; set; } 18 | 19 | public override void CreateTransformMatrix() 20 | { 21 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ); 22 | transformMatrix *= DefaultTransformMatrix(); 23 | CreateBoundingBox(); 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0032_WarpFlower.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0032_WarpFlower : SetObjectHeroes 6 | { 7 | public enum EFlowerType : byte 8 | { 9 | Item = 0, 10 | Scaffold = 1, 11 | Warp = 2 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling(Scale + 1f) * DefaultTransformMatrix(); 17 | CreateBoundingBox(); 18 | } 19 | 20 | [MiscSetting] 21 | public EFlowerType FlowerType { get; set; } 22 | [MiscSetting] 23 | public float Scale { get; set; } 24 | [MiscSetting] 25 | public float RisingHeight { get; set; } 26 | } 27 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0002_TripleSpring.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object0002_TripleSpring : SetObjectHeroes 7 | { 8 | public override void CreateTransformMatrix() 9 | { 10 | transformMatrix = Matrix.Scaling(Scale + 1f, 1f, 1f) * DefaultTransformMatrix(); 11 | CreateBoundingBox(); 12 | } 13 | 14 | [MiscSetting, Description("Defaults to 5.0")] 15 | public float Power { get; set; } 16 | [MiscSetting, Description("In frames")] 17 | public float Scale { get; set; } 18 | [MiscSetting] 19 | public short NoControlTime { get; set; } 20 | [MiscSetting] 21 | public EItemHeroes Item { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0F/Object0FA4_BuildingChunk.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0FA4_BuildingChunk : SetObjectShadow 6 | { 7 | //CityGadget(Type,ScaleX,ScaleY,ScaleZ) 8 | [MiscSetting] 9 | public int Model { get; set; } 10 | [MiscSetting] 11 | public float ScaleX { get; set; } 12 | [MiscSetting] 13 | public float ScaleY { get; set; } 14 | [MiscSetting] 15 | public float ScaleZ { get; set; } 16 | 17 | public override void CreateTransformMatrix() 18 | { 19 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ) * 20 | DefaultTransformMatrix(); 21 | CreateBoundingBox(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List03/Object0306_AirCar.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0306_AirCar : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public byte FarType { get; set; } 7 | [MiscSetting] 8 | public byte BlockType { get; set; } 9 | [MiscSetting] 10 | public byte CrossWize { get; set; } 11 | [MiscSetting] 12 | public byte LengthWize { get; set; } 13 | [MiscSetting] 14 | public short Time { get; set; } 15 | [MiscSetting] 16 | public short TimeRnd { get; set; } 17 | [MiscSetting] 18 | public float Length { get; set; } 19 | [MiscSetting] 20 | public float Speed { get; set; } 21 | [MiscSetting] 22 | public float SpeedRnd { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/CollisionEditor/QuadNode.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System; 3 | 4 | namespace HeroesPowerPlant.CollisionEditor 5 | { 6 | public class QuadNode 7 | { 8 | public UInt16 Index; 9 | public UInt16 Parent; 10 | public UInt16 Child; 11 | public UInt16 NodeTriangleAmount; 12 | public UInt32 TriListOffset; 13 | public UInt16 PosValueX; 14 | public UInt16 PosValueZ; 15 | 16 | public byte Depth; 17 | public UInt16[] NodeTriangleArray; 18 | 19 | public RectangleF NodeSquare; 20 | 21 | public override string ToString() 22 | { 23 | return "Nd. " + Index.ToString() + ", Pr. " + Parent.ToString() + ", Ch. " + Child.ToString() + ", Am. " + NodeTriangleAmount.ToString() + ", D. " + Depth.ToString(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List10/Object1069_FleetHolderEggmanBattleship.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1069_FleetHolderEggmanBattleship : SetObjectShadow 4 | { 5 | public enum EggFleetType : int 6 | { 7 | BATTLE, 8 | MOTHER 9 | } 10 | 11 | [MiscSetting] 12 | public EggFleetType ShipType { get; set; } 13 | [MiscSetting] 14 | public float RangeRadius { get; set; } 15 | [MiscSetting] 16 | public float RangeHeight { get; set; } 17 | [MiscSetting] 18 | public float MoveLength { get; set; } 19 | [MiscSetting] 20 | public float MoveSpeed { get; set; } 21 | [MiscSetting] 22 | public float FireTiming { get; set; } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object090B_IvyJump.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object090B_IvyJump : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Target1X { get; set; } 7 | [MiscSetting] 8 | public float Target1Y { get; set; } 9 | [MiscSetting] 10 | public float Target1Z { get; set; } 11 | [MiscSetting] 12 | public float Target2X { get; set; } 13 | [MiscSetting] 14 | public float Target2Y { get; set; } 15 | [MiscSetting] 16 | public float Target2Z { get; set; } 17 | [MiscSetting] 18 | public short KazariType { get; set; } 19 | [MiscSetting] 20 | public short Dammy { get; set; } 21 | [MiscSetting] 22 | public short NoControlTime { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object000B_UnbreakableBox.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object000B_UnbreakableBox : SetObjectShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | // function 800c9ed4 | RotationTemplateGen 10 | var shift = MathUtil.Pi / 180f; 11 | transformMatrix = 12 | Matrix.RotationZ(Rotation.Z * shift) * 13 | Matrix.RotationX(Rotation.X * shift) * 14 | Matrix.RotationY(Rotation.Y * shift) * 15 | Matrix.Translation(Position.X, Position.Y + 10f, Position.Z); 16 | CreateBoundingBox(); 17 | } 18 | 19 | [MiscSetting] 20 | public EBoxType BoxType { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List11/Object1137_StretchGrass.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1137_StretchGrass : SetObjectShadow 6 | { 7 | //SetStretchGrass(level, angle, length, charge, NOBI_KUSA) 8 | //HPP name: Slingshot Plant 9 | [MiscSetting] 10 | public float Strength { get; set; } 11 | [MiscSetting] 12 | public float Angle { get; set; } 13 | [MiscSetting] 14 | public float NoControlTimeAfterLaunch { get; set; } 15 | [MiscSetting, Description("How far back the sling stretches")] 16 | public float Length { get; set; } 17 | [MiscSetting, Description("Time to wait after fully pulled back Length amount before launch")] 18 | public float Charge { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0005_Switch.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0005_Switch : SetObjectHeroes 4 | { 5 | public enum ESwitchType : byte 6 | { 7 | Alternate = 0, 8 | Touch = 1, 9 | Once = 2, 10 | Interlock = 3 11 | } 12 | 13 | public enum ESound : byte 14 | { 15 | Pi = 0, 16 | Pipori = 1 17 | } 18 | 19 | [MiscSetting] 20 | public ESwitchType SwitchType { get; set; } 21 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 22 | public bool Hidden { get; set; } 23 | [MiscSetting] 24 | public byte LinkIDforHidden { get; set; } 25 | [MiscSetting] 26 | public ESound Sound { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/ListOther/Object_XYZScale.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object_XYZScale : SetObjectHeroes 6 | { 7 | private readonly float scaleAdd; 8 | 9 | public Object_XYZScale(float scaleAdd) 10 | { 11 | this.scaleAdd = scaleAdd; 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling(ScaleX + scaleAdd, ScaleY + scaleAdd, ScaleZ + scaleAdd) 17 | * DefaultTransformMatrix(); 18 | 19 | CreateBoundingBox(); 20 | } 21 | 22 | [MiscSetting] 23 | public float ScaleX { get; set; } 24 | [MiscSetting] 25 | public float ScaleY { get; set; } 26 | [MiscSetting] 27 | public float ScaleZ { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/SharpDX/Shader_Default.hlsl: -------------------------------------------------------------------------------- 1 | 2 | cbuffer data :register(b0) 3 | { 4 | float4x4 worldViewProj; 5 | }; 6 | 7 | struct VS_IN 8 | { 9 | float4 position : POSITION; 10 | float4 color : COLOR; 11 | float2 texcoord : TEXCOORD; 12 | }; 13 | 14 | struct PS_IN 15 | { 16 | float4 position : SV_POSITION; 17 | float4 color : COLOR; 18 | float2 texcoord : TEXCOORD; 19 | }; 20 | 21 | //texture 22 | Texture2D textureMap; 23 | SamplerState textureSampler 24 | { 25 | Filter = ANISOTROPIC; 26 | AddressU = Wrap; 27 | AddressV = Wrap; 28 | }; 29 | 30 | PS_IN VS(VS_IN input) 31 | { 32 | PS_IN output = (PS_IN)0; 33 | 34 | output.position = mul(worldViewProj, input.position); 35 | output.texcoord = input.texcoord; 36 | output.color = input.color; 37 | 38 | return output; 39 | } 40 | 41 | float4 PS(PS_IN input) : SV_Target 42 | { 43 | return textureMap.Sample(textureSampler, input.texcoord) * input.color; 44 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/CollisionEditor/CollisionVertex.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.Collections.Generic; 3 | 4 | namespace HeroesPowerPlant.CollisionEditor 5 | { 6 | public class CollisionVertex 7 | { 8 | public Vector3 Position; 9 | public List NormalList; 10 | public Color Color; 11 | public bool ColorInitialized = false; 12 | 13 | public CollisionVertex(float x, float y, float z) 14 | { 15 | Position = new Vector3(x, y, z); 16 | NormalList = new List(3); 17 | Color = Color.White; 18 | } 19 | 20 | public Vector3 CalculateNormals() 21 | { 22 | Vector3 Totals = new Vector3(); 23 | foreach (Vector3 j in NormalList) 24 | Totals += j; 25 | Totals.Normalize(); 26 | 27 | return Totals; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0908_RainFruit.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace HeroesPowerPlant.LayoutEditor 3 | { 4 | public class Object0908_RainFruit : SetObjectHeroes 5 | { 6 | [MiscSetting(1)] 7 | public float Range { get; set; } 8 | [MiscSetting(2)] 9 | public float Power { get; set; } 10 | [MiscSetting(3)] 11 | public short NoControlTime { get; set; } 12 | [MiscSetting(4)] 13 | public short ObjectType { get; set; } 14 | [MiscSetting(5)] 15 | public int UnknownInt { get; set; } 16 | [MiscSetting(6)] 17 | public float UnknownFloat1 { get; set; } 18 | [MiscSetting(7)] 19 | public float UnknownFloat2 { get; set; } 20 | [MiscSetting(8)] 21 | public short UnknownShort1 { get; set; } 22 | [MiscSetting(9)] 23 | public short UnknownShort2 { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0007_Case.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0007_Case : SetObjectShadow 6 | { 7 | public enum ECaseType : int 8 | { 9 | BlackArms, 10 | GUN 11 | } 12 | 13 | [MiscSetting] 14 | public ECaseType CaseType { get; set; } 15 | [MiscSetting] 16 | public float ScaleX { get; set; } 17 | [MiscSetting] 18 | public float ScaleY { get; set; } 19 | [MiscSetting] 20 | public float ScaleZ { get; set; } 21 | 22 | public override void CreateTransformMatrix() 23 | { 24 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ) * 25 | DefaultTransformMatrix(); 26 | CreateBoundingBox(); 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0900_Frog.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0900_Frog : SetObjectHeroes 4 | { 5 | [MiscSetting(1)] 6 | public float JumpDirX { get; set; } 7 | [MiscSetting(2)] 8 | public float JumpDirY { get; set; } 9 | [MiscSetting(3)] 10 | public float JumpDirZ { get; set; } 11 | [MiscSetting(4)] 12 | public float Radius { get; set; } 13 | [MiscSetting(5)] 14 | public float Scale { get; set; } 15 | [MiscSetting(6)] 16 | public float JumpCycle { get; set; } 17 | [MiscSetting(7)] 18 | public short StopTimeSec { get; set; } 19 | [MiscSetting(8)] 20 | public short LeaveTimeSec { get; set; } 21 | [MiscSetting(9, underlyingType: MiscSettingUnderlyingType.Byte)] 22 | public bool IsBlack { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0001_SpringShadow.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0001_SpringShadow : SetObjectShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | // function 800c9ed4 | RotationTemplateGen 10 | var shift = MathUtil.Pi / 180f; 11 | transformMatrix = 12 | Matrix.RotationY(0f) * // Spring only uses Y for launchDirection, no model rotation 13 | Matrix.RotationZ(Rotation.Z * shift) * 14 | Matrix.RotationX(Rotation.X * shift) * 15 | Matrix.Translation(Position); 16 | CreateBoundingBox(); 17 | } 18 | 19 | [MiscSetting] 20 | public float Strength { get; set; } 21 | [MiscSetting] 22 | public float NoControlTime { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object000C_WeaponBox.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object000C_WeaponBox : SetObjectShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | // function 800c9ed4 | RotationTemplateGen 10 | var shift = MathUtil.Pi / 180f; 11 | transformMatrix = 12 | Matrix.RotationZ(Rotation.Z * shift) * 13 | Matrix.RotationX(Rotation.X * shift) * 14 | Matrix.RotationY(Rotation.Y * shift) * 15 | Matrix.Translation(Position.X, Position.Y + 10f, Position.Z); 16 | CreateBoundingBox(); 17 | } 18 | 19 | [MiscSetting] 20 | public EBoxType BoxType { get; set; } 21 | [MiscSetting] 22 | public EWeapon Weapon { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List0C/Object0C88_Zipline.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0C88_Zipline : SetObjectShadow 6 | { 7 | //Coaster(PATH_NO, MOVE_SPPED m/sec, LAUNCH_SPD m/sec, LAUNCH_ANG deg, LAUNCH_NO_CTRL_TIME sec) 8 | 9 | [MiscSetting, Description("PATH/SplineID to follow when the player grabs object")] 10 | public int SplineID { get; set; } 11 | 12 | [MiscSetting, Description("m/sec")] 13 | public float MoveSpeed { get; set; } 14 | 15 | [MiscSetting, Description("m/sec")] 16 | public float LaunchSpeed { get; set; } 17 | 18 | [MiscSetting, Description("deg")] 19 | public float LaunchAngle { get; set; } 20 | 21 | [MiscSetting, Description("sec")] 22 | public float LaunchNoControlTime { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Pyramid.obj: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 07.05.2018 03:03:25 3 | 4 | mtllib Pyramid.mtl 5 | 6 | # 7 | # object Pyramid001 8 | # 9 | 10 | v -0.5000 -0.5000 -0.5000 11 | v 0.5000 -0.5000 -0.5000 12 | v 0.0000 -0.0000 0.5000 13 | v 0.5000 0.5000 -0.5000 14 | v -0.5000 0.5000 -0.5000 15 | # 5 vertices 16 | 17 | vn 0.0000 -1.0000 -0.0000 18 | vn 0.0000 1.0000 -0.0000 19 | vn 1.0000 0.0000 -0.0000 20 | vn 0.0000 0.0000 -1.0000 21 | vn -1.0000 0.0000 -0.0000 22 | # 5 vertex normals 23 | 24 | vt 1.0000 1.0000 0.0000 25 | vt 0.0000 1.0000 0.0000 26 | vt 2.0000 2.0000 0.0000 27 | # 3 texture coords 28 | 29 | g Pyramid001 30 | usemtl wire_008110135 31 | s 2 32 | f 1/1/1 2/2/1 3/3/1 33 | s 4 34 | f 3/3/2 4/1/2 5/2/2 35 | s 16 36 | f 2/3/3 4/1/3 3/3/3 37 | s 32 38 | f 1/3/4 5/1/4 4/2/4 39 | f 4/2/4 2/3/4 1/3/4 40 | s 64 41 | f 5/2/5 1/3/5 3/3/5 42 | # 6 faces 43 | 44 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/SharpDX/Shader_Tinted.hlsl: -------------------------------------------------------------------------------- 1 | cbuffer data :register(b0) 2 | { 3 | float4x4 worldViewProj; 4 | float4 color; 5 | }; 6 | 7 | struct VS_IN 8 | { 9 | float4 position : POSITION; 10 | float4 color : COLOR; 11 | float2 texcoord : TEXCOORD; 12 | }; 13 | 14 | struct PS_IN 15 | { 16 | float4 position : SV_POSITION; 17 | float4 color : COLOR; 18 | float2 texcoord : TEXCOORD; 19 | }; 20 | 21 | //texture 22 | Texture2D textureMap; 23 | SamplerState textureSampler 24 | { 25 | Filter = ANISOTROPIC; 26 | AddressU = Wrap; 27 | AddressV = Wrap; 28 | }; 29 | 30 | PS_IN VS(VS_IN input) 31 | { 32 | PS_IN output = (PS_IN)0; 33 | 34 | output.position = mul(worldViewProj, input.position); 35 | output.texcoord = input.texcoord; 36 | output.color = input.color * color; 37 | 38 | return output; 39 | } 40 | 41 | float4 PS(PS_IN input) : SV_Target 42 | { 43 | return textureMap.Sample(textureSampler, input.texcoord) * input.color; 44 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List02/Object0206_ScrollBalloon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0206_ScrollBalloon : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public EItemHeroes Item { get; set; } 7 | [MiscSetting] 8 | public float Scale { get; set; } 9 | [MiscSetting] 10 | public float Speed { get; set; } 11 | [MiscSetting] 12 | public float EndX { get; set; } 13 | [MiscSetting] 14 | public float EndY { get; set; } 15 | [MiscSetting] 16 | public float EndZ { get; set; } 17 | [MiscSetting] 18 | public short InvokeOffX { get; set; } 19 | [MiscSetting] 20 | public short InvokeOffY { get; set; } 21 | [MiscSetting] 22 | public short InvokeOffZ { get; set; } 23 | [MiscSetting] 24 | public short InvokeSize { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0004_DashRamp.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0004_DashRamp : SetObjectShadow 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | // function 800c9ed4 | RotationTemplateGen 10 | var shift = MathUtil.Pi / 180f; 11 | transformMatrix = 12 | Matrix.RotationZ(Rotation.Z * shift) * 13 | Matrix.RotationX(Rotation.X * shift) * 14 | Matrix.RotationY(Rotation.Y * shift) * 15 | Matrix.Translation(Position); 16 | CreateBoundingBox(); 17 | } 18 | 19 | [MiscSetting] 20 | public float Strength { get; set; } 21 | [MiscSetting] 22 | public float Height { get; set; } 23 | [MiscSetting] 24 | public float NoControlTime { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0029_Pole.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0029_Pole : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short Length { get; set; } 7 | [MiscSetting] 8 | public short Range { get; set; } 9 | [MiscSetting] 10 | public short StartOffset { get; set; } 11 | [MiscSetting] 12 | public short EndOffset { get; set; } 13 | [MiscSetting] 14 | public float ReleaseElevation { get; set; } 15 | [MiscSetting] 16 | public float ReleaseAzimuth { get; set; } 17 | [MiscSetting] 18 | public float ReleasePower { get; set; } 19 | [MiscSetting] 20 | public byte UseReference { get; set; } 21 | [MiscSetting] 22 | public byte ReferenceID { get; set; } 23 | [MiscSetting] 24 | public short NoControlTime { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0013_Balloon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0013_Balloon : SetObjectShadow 4 | { 5 | public enum EBalloonType : int 6 | { 7 | TranslationOnceAndDisappear, 8 | TranslationLoop, 9 | Orbit 10 | } 11 | 12 | [MiscSetting] 13 | public EBalloonType BalloonType { get; set; } 14 | [MiscSetting] 15 | public EItemShadow Item { get; set; } 16 | [MiscSetting] 17 | public float SpeedDampAmount { get; set; } 18 | [MiscSetting] 19 | public float OrbitDistance { get; set; } 20 | [MiscSetting] 21 | public float TranslationX { get; set; } 22 | [MiscSetting] 23 | public float TranslationY { get; set; } 24 | [MiscSetting] 25 | public float TranslationZ { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List15/Object15D0_E2000.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object15D0_E2000 : SetObjectHeroes 4 | { 5 | public enum EEnemyType : byte 6 | { 7 | Normal = 0, 8 | Special = 1 9 | } 10 | 11 | [MiscSetting] 12 | public EEnemyType EnemyType { get; set; } 13 | [MiscSetting] 14 | public EAppear Appear { get; set; } 15 | [MiscSetting] 16 | public float MoveRange { get; set; } 17 | [MiscSetting] 18 | public float ScopeRange { get; set; } 19 | [MiscSetting] 20 | public float ScopeOffset { get; set; } 21 | [MiscSetting] 22 | public int AttackInterval { get; set; } 23 | [MiscSetting] 24 | public int AttackFrame { get; set; } 25 | [MiscSetting] 26 | public float Distance { get; set; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object003A_SpecialWeaponBox.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object003A_SpecialWeaponBox : SetObjectShadow 7 | { 8 | public override void CreateTransformMatrix() 9 | { 10 | // function 800c9ed4 | RotationTemplateGen 11 | var shift = MathUtil.Pi / 180f; 12 | transformMatrix = 13 | Matrix.RotationZ(Rotation.Z * shift) * 14 | Matrix.RotationX(Rotation.X * shift) * 15 | Matrix.RotationY(Rotation.Y * shift) * 16 | Matrix.Translation(Position.X, Position.Y + 10f, Position.Z); 17 | CreateBoundingBox(); 18 | } 19 | 20 | [MiscSetting, Description("Weapon to use if special weapons not unlocked")] 21 | public EWeapon Weapon { get; set; } 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1105_Ghost.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1105_Ghost : SetObjectHeroes 6 | { 7 | public enum EGhostType : int 8 | { 9 | NoMove = 0, 10 | Line = 1, 11 | Circle = 2 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling(Scale + 1f) * DefaultTransformMatrix(); 17 | 18 | CreateBoundingBox(); 19 | } 20 | 21 | [MiscSetting] 22 | public EGhostType GhostType { get; set; } 23 | [MiscSetting] 24 | public float Range { get; set; } 25 | [MiscSetting] 26 | public float MovingArea { get; set; } 27 | [MiscSetting] 28 | public float Speed { get; set; } 29 | [MiscSetting] 30 | public float Scale { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object118B_Grass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SharpDX; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object118B_Grass : SetObjectHeroes 7 | { 8 | public enum ELightType : int 9 | { 10 | Light, 11 | Dark 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling(Scale + 1f) * Matrix.RotationX(Convert.ToSingle(IsUpsideDown) * (float)Math.PI) * DefaultTransformMatrix(); 17 | CreateBoundingBox(); 18 | } 19 | 20 | [MiscSetting(1, underlyingType: MiscSettingUnderlyingType.Byte)] 21 | public ELightType LightType { get; set; } 22 | [MiscSetting(2, underlyingType: MiscSettingUnderlyingType.Byte)] 23 | public bool IsUpsideDown { get; set; } 24 | [MiscSetting(3)] 25 | public float Scale { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object118D_Mask.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SharpDX; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object118D_Mask : SetObjectHeroes 7 | { 8 | public enum ELightType : int 9 | { 10 | Light, 11 | Dark 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling(Scale + 1f) * Matrix.RotationX(Convert.ToSingle(IsUpsideDown) * (float)Math.PI) * DefaultTransformMatrix(); 17 | CreateBoundingBox(); 18 | } 19 | 20 | [MiscSetting(1)] 21 | public ELightType LightType { get; set; } 22 | [MiscSetting(2)] 23 | public float Scale { get; set; } 24 | [MiscSetting(3)] 25 | public float SwingSpeed { get; set; } 26 | [MiscSetting(4, underlyingType: MiscSettingUnderlyingType.Byte)] 27 | public bool IsUpsideDown { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object000D_BigRings.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object000D_BigRings : SetObjectHeroes 7 | { 8 | public enum EType : short 9 | { 10 | Speed = 0, 11 | FlyA = 1, 12 | FlyB = 2, 13 | PowerS = 3, 14 | PowerL = 4 15 | } 16 | 17 | public override void CreateTransformMatrix() 18 | { 19 | transformMatrix = DefaultTransformMatrix(MathUtil.Pi); 20 | CreateBoundingBox(); 21 | } 22 | 23 | [MiscSetting] 24 | public EType RingsType { get; set; } 25 | [MiscSetting, Description("In frames")] 26 | public short AdditionalControlTime { get; set; } 27 | [MiscSetting, Description("Defaults to 5.0")] 28 | public float Speed { get; set; } 29 | [MiscSetting] 30 | public float Offset { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object002E_Fan.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object002E_Fan : SetObjectHeroes 4 | { 5 | public enum EFanMode : byte 6 | { 7 | Normal = 0, 8 | Switchable = 1, 9 | Normal2 = 2, 10 | Switchable2 = 3 11 | } 12 | 13 | [MiscSetting] 14 | public float Scale { get; set; } 15 | [MiscSetting] 16 | public float HeightTriangleDive { get; set; } 17 | [MiscSetting] 18 | public float HeightDefault { get; set; } 19 | [MiscSetting] 20 | public float Power { get; set; } 21 | [MiscSetting] 22 | public EFanMode Mode { get; set; } 23 | [MiscSetting] 24 | public byte LinkID { get; set; } 25 | [MiscSetting] 26 | public float WindScale { get; set; } 27 | [MiscSetting(underlyingType: MiscSettingUnderlyingType.Byte)] 28 | public bool IsInvisible { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/ShadowCameraEditor/ShadowCameraFileHeader.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.ShadowCameraEditor 2 | { 3 | /* HEADER : SIZE=0x18 4 | 0x0 = magic 5 | 0x4 = magic 6 | 0x8 = stageId int 7 | 0xC = 8 | 0x10 = 9 | 0x14 = NumberOfCameras int 10 | */ 11 | public class ShadowCameraFileHeader 12 | { 13 | public int magic_00; 14 | public int magic_04; 15 | public int stageId; 16 | public int unknown_0C; 17 | public int unknown_10; 18 | public int numberOfCameras; 19 | 20 | public ShadowCameraFileHeader(int magic_00, int magic_04, int stageId, int unknown_0C, int unknown_10, int numberOfCameras) 21 | { 22 | this.magic_00 = magic_00; 23 | this.magic_04 = magic_04; 24 | this.stageId = stageId; 25 | this.unknown_0C = unknown_0C; 26 | this.unknown_10 = unknown_10; 27 | this.numberOfCameras = numberOfCameras; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /HeroesPowerPlant/CollisionEditor/CLFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace HeroesPowerPlant.CollisionEditor 5 | { 6 | public class CLFile 7 | { 8 | public UInt32 numBytes; 9 | public UInt32 pointQuadtree; 10 | public UInt32 pointTriangle; 11 | public UInt32 pointVertex; 12 | public float quadCenterX; 13 | public float quadCenterY; 14 | public float quadCenterZ; 15 | public float quadLength; 16 | public UInt16 basePower; 17 | public UInt16 numTriangles; 18 | public UInt16 numVertices; 19 | public UInt16 numQuadnodes; 20 | 21 | public List CLQuadNodeList = new List(); 22 | public Triangle[] CLTriangleArray; 23 | public VertexColoredNormalized[] CLVertexArray; 24 | public byte MaxDepth; 25 | 26 | public CLFile(byte MaxDepth) 27 | { 28 | this.MaxDepth = MaxDepth; 29 | } 30 | 31 | public List MeshTypeList; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List15/Object1540_EggHammer.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1540_EggHammer : SetObjectHeroes 4 | { 5 | public enum EEnemyType : byte 6 | { 7 | Normal = 0, 8 | Helmet = 1 9 | } 10 | 11 | [MiscSetting] 12 | public EEnemyType EnemyType { get; set; } 13 | [MiscSetting] 14 | public EAppear Appear { get; set; } 15 | [MiscSetting] 16 | public float MoveSpeed { get; set; } 17 | [MiscSetting] 18 | public float MoveRange { get; set; } 19 | [MiscSetting] 20 | public float ScopeRange { get; set; } 21 | [MiscSetting] 22 | public float ScopeOffset { get; set; } 23 | [MiscSetting] 24 | public int AttackInterval { get; set; } 25 | [MiscSetting] 26 | public float WeaponSpeed { get; set; } 27 | [MiscSetting] 28 | public float FallDistance { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List03/Object03EA_CityLaser.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object03EA_CityLaser : SetObjectShadow 6 | { 7 | [MiscSetting] 8 | public EYesNo HurtPlayer { get; set; } 9 | [MiscSetting] 10 | public float DetectRadius { get; set; } 11 | [MiscSetting] 12 | public float Delay { get; set; } 13 | 14 | public override void Draw(SharpRenderer renderer) 15 | { 16 | base.Draw(renderer); 17 | if (isSelected) 18 | renderer.DrawSphereTrigger(CreateTriggerTransformMatrix(), isSelected, new Color4(1f, 0.75f, 0.79f, 0.5f)); 19 | } 20 | 21 | private Matrix CreateTriggerTransformMatrix() 22 | { 23 | Matrix triggerTransformMatrix = Matrix.Scaling(DetectRadius * 15); 24 | triggerTransformMatrix *= DefaultTransformMatrix(); 25 | return triggerTransformMatrix; 26 | } 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Shared/RemoteControl.cs: -------------------------------------------------------------------------------- 1 | using HeroesPowerPlant.RemoteControl.Shared; 2 | using System; 3 | using System.Diagnostics; 4 | 5 | namespace HeroesPowerPlant.Shared 6 | { 7 | public static class RemoteControl 8 | { 9 | private static Client Client; 10 | 11 | /// 12 | /// Forces the game to reload collision. 13 | /// 14 | public static void LoadCollision(string fileNameWithoutExtension) 15 | { 16 | if (TryConnectToGame()) 17 | Client.LoadCollision(fileNameWithoutExtension, 1000); 18 | } 19 | 20 | private static bool TryConnectToGame() 21 | { 22 | try 23 | { 24 | if (Client == null || !Client.IsConnected()) 25 | Client = new Client(Process.GetProcessesByName("tsonic_win")[0]); 26 | 27 | return true; 28 | } 29 | catch (Exception) 30 | { 31 | return false; 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /HeroesPowerPlant/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/SetObjectHeroes.cs: -------------------------------------------------------------------------------- 1 | using HeroesPowerPlant.Shared.Utilities; 2 | using SharpDX; 3 | using System.IO; 4 | 5 | namespace HeroesPowerPlant.LayoutEditor 6 | { 7 | public class SetObjectHeroes : SetObject 8 | { 9 | public override void SetMiscSettings(byte[] miscSettings) 10 | { 11 | using var reader = new EndianBinaryReader(new MemoryStream(miscSettings), Endianness.Big); 12 | ReadMiscSettings(reader); 13 | } 14 | 15 | public override void CreateTransformMatrix() 16 | { 17 | transformMatrix = DefaultTransformMatrix(); 18 | CreateBoundingBox(); 19 | } 20 | 21 | public Matrix DefaultTransformMatrix(float yAdd = 0) => 22 | Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y) + yAdd) * 23 | Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * 24 | Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * 25 | Matrix.Translation(Position); 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07DF_LightspeedFirewall.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object07DF_LightspeedFirewall : SetObjectShadow 7 | { 8 | //ElecFireWall(SearchRange, InitialY) 9 | 10 | [MiscSetting] 11 | public float Scale_X { get; set; } 12 | [MiscSetting] 13 | public float Scale_Y { get; set; } 14 | [MiscSetting] 15 | public float Scale_Z { get; set; } 16 | [MiscSetting] 17 | public float SearchRange { get; set; } 18 | [MiscSetting, Description("Move object starting point/appearance on the Y axis this amount.\n Animates to original position on detect")] 19 | public float Initial_Y { get; set; } 20 | 21 | public override void CreateTransformMatrix() 22 | { 23 | transformMatrix = Matrix.Scaling(Scale_X, Scale_Y, Scale_Z); 24 | transformMatrix *= DefaultTransformMatrix(); 25 | CreateBoundingBox(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List18/Object189E_ARKDriftingPlat1.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object189E_ARKDriftingPlat1 : SetObjectShadow 4 | { 5 | public enum EType : int 6 | { 7 | Burst, 8 | Hover 9 | } 10 | 11 | //FootingBreak(Type{Burst,Hover}, WaitSec, HoverLength point, HoverSec, MoveLengthX point, MoveLengthY point, MoveLengthZ point, MoveSec) 12 | [MiscSetting] 13 | public EType PlatformType { get; set; } 14 | [MiscSetting] 15 | public float ExplosionDelay { get; set; } 16 | [MiscSetting] 17 | public float HoverLength { get; set; } 18 | [MiscSetting] 19 | public float HoverSec { get; set; } 20 | [MiscSetting] 21 | public float TranslationX { get; set; } 22 | [MiscSetting] 23 | public float TranslationY { get; set; } 24 | [MiscSetting] 25 | public float TranslationZ { get; set; } 26 | [MiscSetting] 27 | public float TravelTime { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectEntry.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class ObjectEntry 4 | { 5 | public byte List; 6 | public byte Type; 7 | public string Name; 8 | public string DebugName; 9 | public string ModelMiscSetting; 10 | public string[][] ModelNames; 11 | public bool HasMiscSettings; 12 | 13 | public static bool AlternateFormat = false; 14 | public static bool UseDebugNames = false; 15 | 16 | private string ToStringFormat => AlternateFormat ? "{2} [{1, 2:X2}][{0, 2:X2}]" : "{0, 2:X2} {1, 2:X2} {2}"; 17 | 18 | public string GetName() 19 | { 20 | if (!(UseDebugNames || string.IsNullOrEmpty(Name)) || (UseDebugNames && string.IsNullOrEmpty(DebugName))) 21 | return Name; 22 | if (!string.IsNullOrEmpty(DebugName)) 23 | return DebugName; 24 | return "Unknown/Unused"; 25 | } 26 | 27 | public override string ToString() => string.Format(ToStringFormat, List, Type, GetName()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List25/Object2593_SetGenerator.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object2593_SetGenerator : SetObjectShadow 6 | { 7 | // AKA EnemySpawner 8 | //SetGenerator(ComId, delay, scoreId) 9 | 10 | [MiscSetting, Description("Set an enemy to have a LinkID, then reference that LinkID to select that enemy.")] 11 | public int EnemyToSpawnLinkID { get; set; } 12 | 13 | [MiscSetting, Description("LinkID to watch for to start spawning enemies. Often activated by Trigger [00 50] of type LinkIDTrigger.")] 14 | public int LinkIDToStart { get; set; } 15 | 16 | [MiscSetting, Description("0 is unlimited, Set to cap number of respawns")] 17 | public int NumberOfTimesToRespawn { get; set; } 18 | 19 | [MiscSetting] 20 | public float WaitTimeUntilNextRespawn { get; set; } 21 | 22 | [MiscSetting, Description("Purpose unknown, name from DOL params for this object")] 23 | public int ScoreId { get; set; } 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0010_Cannon.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0010_Cannon : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public short SpeedElevation { get; set; } 7 | [MiscSetting] 8 | public short SpeedAzimuth { get; set; } 9 | [MiscSetting] 10 | public short SpeedNoControlTime { get; set; } 11 | [MiscSetting] 12 | public short SpeedPower { get; set; } 13 | 14 | [MiscSetting] 15 | public short FlyElevation { get; set; } 16 | [MiscSetting] 17 | public short FlyAzimuth { get; set; } 18 | [MiscSetting] 19 | public short FlyNoControlTime { get; set; } 20 | [MiscSetting] 21 | public short FlyPower { get; set; } 22 | 23 | [MiscSetting] 24 | public short PowerElevation { get; set; } 25 | [MiscSetting] 26 | public short PowerAzimuth { get; set; } 27 | [MiscSetting] 28 | public short PowerNoControlTime { get; set; } 29 | [MiscSetting] 30 | public short PowerPower { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D2_ColorSwitch.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object07D2_ColorSwitch : SetObjectShadow 4 | { 5 | //ElecPanel(Color, Type, Accell, MoveVectorX, MoveVectorY, MoveVectorZ) 6 | //Enums Color{Red, Yellow, Green, Blue}, Type{Switch, Move} 7 | 8 | public enum EColor : int 9 | { 10 | Red, 11 | Yellow, 12 | Green, 13 | Blue 14 | } 15 | 16 | public enum EPanelType : int 17 | { 18 | Switch, 19 | Move 20 | } 21 | 22 | [MiscSetting] 23 | public EColor Color { get; set; } 24 | [MiscSetting] 25 | public EPanelType PanelType { get; set; } 26 | [MiscSetting] 27 | public float Acceleration { get; set; } 28 | [MiscSetting] 29 | public float MoveVectorX { get; set; } 30 | [MiscSetting] 31 | public float MoveVectorY { get; set; } 32 | [MiscSetting] 33 | public float MoveVectorZ { get; set; } 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object0836_RollCircle.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0836_RollCircle : SetObjectShadow 6 | { 7 | public enum EModel : int 8 | { 9 | Big, 10 | Small, 11 | Head 12 | } 13 | 14 | //Tornado Flying Objects 15 | //RollCircle 16 | [MiscSetting] 17 | public EModel Model { get; set; } 18 | [MiscSetting, Description("Number of objects orbiting")] 19 | public int NumberOfObjects { get; set; } 20 | [MiscSetting, Description("m")] 21 | public float Radius { get; set; } 22 | [MiscSetting, Description("deg/sec")] 23 | public float CircleSpeed { get; set; } 24 | [MiscSetting, Description("deg/sec")] 25 | public float ObjAngSpd_X { get; set; } 26 | [MiscSetting, Description("deg/sec")] 27 | public float ObjAngSpd_Y { get; set; } 28 | [MiscSetting, Description("deg/sec")] 29 | public float ObjAngSpd_Z { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Shared/ReadWriteCommon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace HeroesPowerPlant 4 | { 5 | public class ReadWriteCommon 6 | { 7 | public static int[] Range(int a) 8 | { 9 | int[] b = new int[a]; 10 | 11 | for (int i = 0; i < a; i++) 12 | { 13 | b[i] = i; 14 | } 15 | 16 | return b; 17 | } 18 | 19 | public static ushort[] Range(ushort a) 20 | { 21 | ushort[] b = new ushort[a]; 22 | 23 | for (ushort i = 0; i < a; i++) 24 | { 25 | b[i] = i; 26 | } 27 | 28 | return b; 29 | } 30 | 31 | public static float BAMStoDegrees(float bams) 32 | { 33 | return bams * (180f / 32768f); 34 | } 35 | 36 | public static float BAMStoRadians(float bams) 37 | { 38 | return (float)(bams * (Math.PI / 32768f)); 39 | } 40 | 41 | public static int DegreesToBAMS(float degrees) 42 | { 43 | return (int)(degrees * 32768f / 180f); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0008_Pulley.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0008_Pulley : SetObjectShadow 6 | { 7 | // Real name UpDownReel / UD_REEL::length,angle,power 8 | 9 | public override void CreateTransformMatrix() 10 | { 11 | // function 800c9ed4 | RotationTemplateGen 12 | var shift = MathUtil.Pi / 180f; 13 | transformMatrix = 14 | Matrix.RotationX(0f) * 15 | Matrix.RotationY(Rotation.Y * shift) * // UpDownReel only uses Y for model 16 | Matrix.RotationZ(0f) * 17 | Matrix.Translation(Position); 18 | Matrix.Translation(Position); 19 | CreateBoundingBox(); 20 | } 21 | 22 | [MiscSetting] 23 | public float StartingLength { get; set; } 24 | [MiscSetting] 25 | public float EndingLength { get; set; } 26 | [MiscSetting] 27 | public float LetGoAngle { get; set; } 28 | [MiscSetting] 29 | public float LetGoLaunchForce { get; set; } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0031_Case.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object0031_Case : SetObjectHeroes 7 | { 8 | public enum EDirection : byte 9 | { 10 | Up = 0, 11 | Down = 1, 12 | } 13 | 14 | public override void CreateTransformMatrix() 15 | { 16 | transformMatrix = Matrix.Scaling((ScaleX + 20f) * 0.05f, (ScaleY + 20f) * 0.05f, (ScaleZ + 20f) * 0.05f) * Matrix.RotationX(Direction == EDirection.Down ? MathUtil.Pi : 0) * DefaultTransformMatrix(); 17 | CreateBoundingBox(); 18 | } 19 | 20 | [MiscSetting] 21 | public float ScaleX { get; set; } 22 | [MiscSetting] 23 | public float ScaleY { get; set; } 24 | [MiscSetting] 25 | public float ScaleZ { get; set; } 26 | [MiscSetting, Description("Doesn't use actual Link ID. Use this one.")] 27 | public byte LinkID { get; set; } 28 | [MiscSetting] 29 | public EDirection Direction { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/SetObjectShadow.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.IO; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class SetObjectShadow : SetObject 7 | { 8 | public override void SetMiscSettings(byte[] miscSettings) 9 | { 10 | using var reader = new BinaryReader(new MemoryStream(miscSettings)); 11 | ReadMiscSettings(reader, miscSettings.Length); 12 | } 13 | 14 | public virtual void ReadMiscSettings(BinaryReader reader, int count) 15 | { 16 | ReadMiscSettings(reader); 17 | } 18 | 19 | public override void CreateTransformMatrix() 20 | { 21 | transformMatrix = DefaultTransformMatrix(); 22 | CreateBoundingBox(); 23 | } 24 | 25 | protected Matrix DefaultTransformMatrix(float yAddDeg = 0) => 26 | Matrix.RotationZ(MathUtil.DegreesToRadians(Rotation.Z)) * 27 | Matrix.RotationX(MathUtil.DegreesToRadians(Rotation.X)) * 28 | Matrix.RotationY(MathUtil.DegreesToRadians(Rotation.Y + yAddDeg)) * 29 | Matrix.Translation(Position); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Other/SASetObject.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System; 3 | 4 | namespace HeroesPowerPlant.Other 5 | { 6 | public class SASetObject 7 | { 8 | public byte Type; 9 | public byte Flags; 10 | public Vector3 Rotation; 11 | public Vector3 Position; 12 | public Vector3 Misc; 13 | 14 | public SASetObject(byte[] file, int address) 15 | { 16 | Type = file[address]; 17 | Flags = file[address + 1]; 18 | Rotation = new Vector3( 19 | BitConverter.ToInt16(file, address + 2), 20 | BitConverter.ToInt16(file, address + 4), 21 | BitConverter.ToInt16(file, address + 6)); 22 | Position = new Vector3( 23 | BitConverter.ToSingle(file, address + 8), 24 | BitConverter.ToSingle(file, address + 12), 25 | BitConverter.ToSingle(file, address + 16)); 26 | Misc = new Vector3( 27 | BitConverter.ToSingle(file, address + 20), 28 | BitConverter.ToSingle(file, address + 24), 29 | BitConverter.ToSingle(file, address + 28)); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/Models/Box.obj: -------------------------------------------------------------------------------- 1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware 2 | # File Created: 05.05.2018 15:40:13 3 | 4 | mtllib Box.mtl 5 | 6 | # 7 | # object Box001 8 | # 9 | 10 | v -0.5000 -0.5000 -0.5000 11 | v 0.5000 -0.5000 -0.5000 12 | v 0.5000 -0.5000 0.5000 13 | v -0.5000 -0.5000 0.5000 14 | v 0.5000 0.5000 0.5000 15 | v 0.5000 0.5000 -0.5000 16 | v -0.5000 0.5000 -0.5000 17 | v -0.5000 0.5000 0.5000 18 | # 8 vertices 19 | 20 | vn 0.0000 -1.0000 -0.0000 21 | vn 0.0000 1.0000 -0.0000 22 | vn 0.0000 0.0000 1.0000 23 | vn 1.0000 0.0000 -0.0000 24 | vn 0.0000 0.0000 -1.0000 25 | vn -1.0000 0.0000 -0.0000 26 | # 6 vertex normals 27 | 28 | vt 1.0000 1.0000 0.0000 29 | vt 0.0000 1.0000 0.0000 30 | vt 0.0000 0.0000 0.0000 31 | vt 1.0000 0.0000 0.0000 32 | # 4 texture coords 33 | 34 | g Box001 35 | usemtl wire_008110135 36 | s 2 37 | f 1/1/1 2/2/1 3/3/1 38 | f 3/3/1 4/4/1 1/1/1 39 | s 4 40 | f 5/4/2 6/1/2 7/2/2 41 | f 7/2/2 8/3/2 5/4/2 42 | s 8 43 | f 3/4/3 5/1/3 8/2/3 44 | f 8/2/3 4/3/3 3/4/3 45 | s 16 46 | f 2/4/4 6/1/4 5/2/4 47 | f 5/2/4 3/3/4 2/4/4 48 | s 32 49 | f 1/4/5 7/1/5 6/2/5 50 | f 6/2/5 2/3/5 1/4/5 51 | s 64 52 | f 4/4/6 8/1/6 7/2/6 53 | f 7/2/6 1/3/6 4/4/6 54 | # 12 faces 55 | 56 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // O código foi gerado por uma ferramenta. 4 | // Versão de Tempo de Execução:4.0.30319.42000 5 | // 6 | // As alterações ao arquivo poderão causar comportamento incorreto e serão perdidas se 7 | // o código for gerado novamente. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace HeroesPowerPlant.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.1.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object003X_UnusedMiscByteScaleType.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object003X_UnusedMiscByteScaleType : SetObjectShadow 7 | { 8 | // Fire(ScaleX, ScaleY, ScaleZ) 9 | // Probably late in development changed to hardcoded fire scale (applies to multiple objects) 10 | // OR oversight and forgot to read from params 11 | // Still documenting this as some objects have misc bytes, even if unused 12 | // In the future a Gecko code might re-enable the object to read these. 13 | 14 | [MiscSetting, Description("These fields are unused. A gecko code may make them usable.")] 15 | public float ScaleX { get; set; } 16 | [MiscSetting] 17 | public float ScaleY { get; set; } 18 | [MiscSetting] 19 | public float ScaleZ { get; set; } 20 | 21 | public override void CreateTransformMatrix() 22 | { 23 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ); 24 | transformMatrix *= DefaultTransformMatrix(); 25 | CreateBoundingBox(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object138B_MeteorsHolder.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object138B_MeteorsHolder : SetObjectShadow 6 | { 7 | //MeteorsHolder(MOVE_SPD m/s, DIRECTION_X deg, DIRECTION_Y deg, ROT_SPD_X deg/s, ROT_SPD_Z deg/s, ROT_SPD_Y deg/s, LIFETIME s, METEOR_S) 8 | 9 | [MiscSetting, Description("m")] 10 | public float MaxTravelDistance { get; set; } 11 | 12 | [MiscSetting, Description("m/s")] 13 | public float MoveSpeed { get; set; } 14 | 15 | [MiscSetting, Description("deg")] 16 | public float Direction_X { get; set; } 17 | 18 | [MiscSetting, Description("deg")] 19 | public float Direction_Y { get; set; } 20 | 21 | [MiscSetting, Description("deg/s")] 22 | public float RotSpd_X { get; set; } 23 | 24 | [MiscSetting, Description("deg/s")] 25 | public float RotSpd_Z { get; set; } 26 | 27 | [MiscSetting, Description("deg/s")] 28 | public float RotSpd_Y { get; set; } 29 | 30 | [MiscSetting, Description("s\n Time until meteor explodes")] 31 | public float Lifetime { get; set; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0002_WideSpring.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0002_WideSpring : Object0001_SpringShadow 6 | { 7 | // Previously known as WideSpring, official name is LongSpring 8 | public override void CreateTransformMatrix() 9 | { 10 | // function 800c9ed4 | RotationTemplateGen 11 | var shift = MathUtil.Pi / 180f; 12 | // X = +45 degree before any calculation 13 | 14 | // not YZX, YXZ, ZXY, ZYX, XZY, XYZ, 15 | 16 | // NOT correct 17 | // Z is not first param? 18 | transformMatrix = 19 | Matrix.RotationZ(Rotation.Z * shift) * 20 | Matrix.RotationX((Rotation.X * shift) + 45f) * 21 | Matrix.RotationY(Rotation.Y * shift) * 22 | /* Matrix.RotationY(Rotation.Y * shift) * 23 | Matrix.RotationX((Rotation.X * shift) + 45f) * 24 | Matrix.RotationZ(Rotation.Z * shift) **/ 25 | 26 | Matrix.Translation(Position); 27 | CreateBoundingBox(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List15/Object1590_RhinoLiner.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1590_RhinoLiner : SetObjectHeroes 4 | { 5 | public enum EEnemyType : byte 6 | { 7 | Standard = 0, 8 | Attack = 1 9 | } 10 | 11 | public enum EPathType : byte 12 | { 13 | Standard = 0, 14 | Loop = 1 15 | } 16 | 17 | public enum EIronBallType : byte 18 | { 19 | Homing = 0, 20 | NotHoming = 1 21 | } 22 | 23 | [MiscSetting] 24 | public EEnemyType EnemyType { get; set; } 25 | [MiscSetting] 26 | public EPathType PathType { get; set; } 27 | [MiscSetting] 28 | public EIronBallType IronBallType { get; set; } 29 | [MiscSetting] 30 | public float WeaponSpeed { get; set; } 31 | [MiscSetting] 32 | public int AttackInterval { get; set; } 33 | [MiscSetting] 34 | public float MoveSpeedMin { get; set; } 35 | [MiscSetting] 36 | public float MoveSpeed { get; set; } 37 | [MiscSetting] 38 | public float MoveSpeedMax { get; set; } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Tools/txdgen_1.0/LICENSES/libsquish/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006 Simon Brown si@sjbrown.co.uk 2 | Copyright (c) 2007 Ignacio Castano icastano@nvidia.com 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included 13 | in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 19 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 21 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List01/Object0182_Whale.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0182_Whale : SetObjectHeroes 6 | { 7 | private Matrix triggerMatrix; 8 | 9 | public override void CreateTransformMatrix() 10 | { 11 | base.CreateTransformMatrix(); 12 | 13 | triggerMatrix = Matrix.Scaling(TriggerSize) * Matrix.Translation(TriggerX, TriggerY, TriggerZ); 14 | } 15 | 16 | public override void Draw(SharpRenderer renderer) 17 | { 18 | base.Draw(renderer); 19 | 20 | if (isSelected) 21 | renderer.DrawSphereTrigger(triggerMatrix, true); 22 | } 23 | 24 | [MiscSetting] 25 | public byte WhaleType { get; set; } 26 | [MiscSetting] 27 | public short TriggerSize { get; set; } 28 | [MiscSetting] 29 | public float WhaleScale { get; set; } 30 | [MiscSetting] 31 | public float ArchRadius { get; set; } 32 | [MiscSetting] 33 | public float TriggerX { get; set; } 34 | [MiscSetting] 35 | public float TriggerY { get; set; } 36 | [MiscSetting] 37 | public float TriggerZ { get; set; } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /HeroesPowerPlant/Resources/SharpDX/Shader_Collision.hlsl: -------------------------------------------------------------------------------- 1 | 2 | cbuffer data :register(b0) 3 | { 4 | float4x4 viewProjection; 5 | float4 ambientColor; 6 | float4 lightDirection; 7 | float4 lightDirection2; 8 | }; 9 | 10 | struct VertexShaderInput 11 | { 12 | float4 position : POSITION; 13 | float3 normal : NORMAL; 14 | float4 color : COLOR; 15 | }; 16 | 17 | struct VertexShaderOutput 18 | { 19 | float4 position : SV_POSITION; 20 | float3 normal : NORMAL; 21 | float4 color : COLOR0; 22 | float4 color2 : COLOR1; 23 | float4 lightDirection : POSITION1; 24 | float4 lightDirection2 : POSITION2; 25 | }; 26 | 27 | VertexShaderOutput VS(VertexShaderInput input) 28 | { 29 | VertexShaderOutput output = (VertexShaderOutput)0; 30 | 31 | output.position = mul(viewProjection, input.position); 32 | output.normal = input.normal; 33 | output.color = input.color; 34 | output.color2 = ambientColor; 35 | output.lightDirection = lightDirection; 36 | output.lightDirection2 = lightDirection2; 37 | 38 | return output; 39 | } 40 | 41 | float4 PS(VertexShaderOutput input) : SV_Target 42 | { 43 | return saturate(dot(input.normal, input.lightDirection) + dot(input.normal, input.lightDirection2)) * input.color + input.color2; 44 | // return saturate(0.75F + dot(input.normal, lightDirection.xyz)) * input.color; 45 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0091_BkLarva.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0091_BkLarva : SetObjectShadow 4 | { 5 | public enum EAppear : int 6 | { 7 | NORMAL, 8 | DROP 9 | } 10 | 11 | // EnemyBase 12 | [MiscSetting(0)] 13 | public float MoveRange { get; set; } 14 | [MiscSetting(1)] 15 | public float SearchRange { get; set; } 16 | [MiscSetting(2)] 17 | public float SearchAngle { get; set; } 18 | [MiscSetting(3)] 19 | public float SearchWidth { get; set; } 20 | [MiscSetting(4)] 21 | public float SearchHeight { get; set; } 22 | [MiscSetting(5)] 23 | public float SearchHeightOffset { get; set; } 24 | [MiscSetting(6)] 25 | public float MoveSpeedRatio { get; set; } 26 | // end EnemyBase 27 | 28 | [MiscSetting(7)] 29 | public int NumberOfLarva { get; set; } 30 | [MiscSetting(8)] 31 | public float AppearRange { get; set; } 32 | [MiscSetting(9)] 33 | public EAppear AppearType { get; set; } 34 | [MiscSetting(10)] 35 | public float Offset_Y { get; set; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List15/Object15_KlagenCameron.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object15_KlagenCameron : SetObjectHeroes 6 | { 7 | public enum EEnemyType : byte 8 | { 9 | Normal = 0, 10 | Golden = 1 11 | } 12 | 13 | public enum EAppear : byte 14 | { 15 | Idle = 0, 16 | Walking = 1, 17 | } 18 | 19 | public override void CreateTransformMatrix() 20 | { 21 | transformMatrix = DefaultTransformMatrix(MathUtil.Pi); 22 | CreateBoundingBox(); 23 | } 24 | 25 | [MiscSetting] 26 | public EEnemyType EnemyType { get; set; } 27 | [MiscSetting] 28 | public EAppear Appear { get; set; } 29 | [MiscSetting] 30 | public float MoveRange { get; set; } 31 | [MiscSetting] 32 | public float ScopeRange { get; set; } 33 | [MiscSetting] 34 | public float ScopeOffset { get; set; } 35 | [MiscSetting] 36 | public short Unknown { get; set; } 37 | [MiscSetting] 38 | public short AttackInterval { get; set; } 39 | [MiscSetting] 40 | public float AttackSpeed { get; set; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/Triggers/Object020C_TriggerKaos.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object020C_TriggerKaos : SetObjectHeroes 6 | { 7 | public override bool IsTrigger() => true; 8 | 9 | private BoundingSphere sphereBound; 10 | 11 | public override void CreateTransformMatrix() 12 | { 13 | transformMatrix = Matrix.Scaling(Scale) * DefaultTransformMatrix(); 14 | sphereBound = new BoundingSphere(Position, Scale); 15 | boundingBox = BoundingBox.FromSphere(sphereBound); 16 | } 17 | 18 | public override void Draw(SharpRenderer renderer) 19 | { 20 | renderer.DrawSphereTrigger(transformMatrix, isSelected); 21 | } 22 | 23 | public override bool TriangleIntersection(Ray r, float initialDistance, out float distance) 24 | { 25 | return r.Intersects(ref sphereBound, out distance); 26 | } 27 | 28 | [MiscSetting] 29 | public float Scale { get; set; } 30 | [MiscSetting] 31 | public byte KaosType { get; set; } 32 | [MiscSetting] 33 | public byte Param2 { get; set; } 34 | [MiscSetting] 35 | public float Param3 { get; set; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /HeroesPowerPlant/ShadowCameraEditor/ShadowCameraMode.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.ShadowCameraEditor 2 | { 3 | 4 | /* 5 | 0 = PJSCamera::CameraModeGeneral 6 | 1 = PJSCamera::CameraModeFree 7 | 2 = PJSCamera::CameraModeTestPlayer 8 | 3 = PJSCamera::CameraModeTestPlayerNoRot 9 | 4 = BROKEN/REMOVED CODE/UNUSED 10 | 5 = PJSCamera::CameraModeSetEditor 11 | 6 = PJSCamera::CameraModeSetCamEdit 12 | 7 = PJSCamera::CameraModeFixEye 13 | 8 = PJSCamera::CameraModeFixLook 14 | 9 = BROKEN/REMOVED CODE/UNUSED 15 | 10 = PJSCamera::CameraModeGeneral (its zoomed in more?) 16 | 11 = PJSCamera::CameraModeLookFront 17 | 12 = PJSCamera::CameraModeFixEye2 18 | 13 = PJSCamera::CameraModeFixLook2 19 | 14 = PJSCamera::CameraModeFixLookChar (partner?) 20 | */ 21 | public enum ShadowCameraMode 22 | { 23 | General = 0, 24 | Free = 1, 25 | TestPlayer = 2, 26 | TestPlayerNoRot = 3, 27 | SetEditor = 5, 28 | SetCamEdit = 6, 29 | FixEye = 7, 30 | FixLook = 8, 31 | General_withCamDistCamHeight = 10, 32 | LookFront = 11, 33 | FixEye2 = 12, 34 | FixLook2 = 13, 35 | FixLookChar = 14 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object0016_LaserFence.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0016_LaserFence : SetObjectHeroes 6 | { 7 | public enum ELaserFenceType : int 8 | { 9 | Fixed = 0, 10 | Intermittent = 1, 11 | Switch = 2, 12 | Scan = 3, 13 | Enemy = 4 14 | } 15 | 16 | [MiscSetting] 17 | public ELaserFenceType LaserFenceType { get; set; } 18 | [MiscSetting] 19 | public float Length { get; set; } 20 | [MiscSetting] 21 | public float Width { get; set; } 22 | [MiscSetting, Browsable(false)] 23 | public int Setting4 { get; set; } 24 | 25 | private const string desc = "Interval, SwitchID, Speed and EnemyID are actually the same setting. Which one is used depends on LaserFenceType."; 26 | 27 | [Description(desc)] public int Interval { get => Setting4; set => Setting4 = value; } 28 | [Description(desc)] public int SwitchID { get => Setting4; set => Setting4 = value; } 29 | [Description(desc)] public int Speed { get => Setting4; set => Setting4 = value; } 30 | [Description(desc)] public int EnemyID { get => Setting4; set => Setting4 = value; } 31 | } 32 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object11_FloatingPlatform.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object11_FloatingPlatform : SetObjectHeroes 6 | { 7 | public enum EPlatformType : byte 8 | { 9 | Fixed = 0, 10 | Moving = 1, 11 | Alternate = 2, 12 | Disappear = 3 13 | } 14 | 15 | [MiscSetting(1), Description("Disappear mode is unused. Delay can be negative to make the platform faster.")] 16 | public EPlatformType PlatformType { get; set; } 17 | [MiscSetting(2, underlyingType: MiscSettingUnderlyingType.Byte)] 18 | public bool AlternateModel { get; set; } 19 | [MiscSetting(3)] 20 | public short UnknownAlternateRange0 { get; set; } 21 | [MiscSetting(4)] 22 | public short UnknownAlternateRange1 { get; set; } 23 | [MiscSetting(5)] 24 | public short XOffset { get; set; } 25 | [MiscSetting(6)] 26 | public short YOffset { get; set; } 27 | [MiscSetting(7)] 28 | public short ZOffset { get; set; } 29 | [MiscSetting(8)] 30 | public short TimeCycleFrame { get; set; } 31 | [MiscSetting(9)] 32 | public byte DisappearLinkID { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object007A_EggShadowAndroid.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object007A_EggShadowAndroid : SetObjectShadow 4 | { 5 | public enum EAppear : int 6 | { 7 | STAND, 8 | OFFSET 9 | } 10 | 11 | // EnemyBase 12 | [MiscSetting(0)] 13 | public float MoveRange { get; set; } 14 | [MiscSetting(1)] 15 | public float SearchRange { get; set; } 16 | [MiscSetting(2)] 17 | public float SearchAngle { get; set; } 18 | [MiscSetting(3)] 19 | public float SearchWidth { get; set; } 20 | [MiscSetting(4)] 21 | public float SearchHeight { get; set; } 22 | [MiscSetting(5)] 23 | public float SearchHeightOffset { get; set; } 24 | [MiscSetting(6)] 25 | public float MoveSpeedRatio { get; set; } 26 | 27 | // end EnemyBase 28 | 29 | [MiscSetting(7)] 30 | public EAppear AppearType { get; set; } 31 | [MiscSetting(8)] 32 | public float OffsetPos_X { get; set; } 33 | [MiscSetting(9)] 34 | public float OffsetPos_Y { get; set; } 35 | [MiscSetting(10)] 36 | public float OffsetPos_Z { get; set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List13/Object13EF_SecurityLaser.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object13EF_SecurityLaser : SetObjectShadow 4 | { 5 | public enum ELaserType : int 6 | { 7 | DoNotGoThroughObjectsOnCollide_With_CollideEffect, //Normal 8 | GoThroughObjects_Without_CollideEffect, //Fixed 9 | GoThroughObjects_With_CollideEffect //FixedWEffect 10 | } 11 | 12 | //SetSecurityLaser(_t, model, length, rot time(sec), rot Y(deg), move sec, type) 13 | //enum: Normal, Fixed, Fixed w/Eff 14 | [MiscSetting] 15 | public int Model { get; set; } 16 | [MiscSetting] 17 | public float Length { get; set; } 18 | [MiscSetting] 19 | public float RotTime { get; set; } 20 | [MiscSetting] 21 | public float Rot_Y { get; set; } 22 | [MiscSetting] 23 | public float MoveSec { get; set; } 24 | [MiscSetting] 25 | public float Translate_X { get; set; } 26 | [MiscSetting] 27 | public float Translate_Y { get; set; } 28 | [MiscSetting] 29 | public float Translate_Z { get; set; } 30 | [MiscSetting] 31 | public ELaserType LaserType { get; set; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/EditBSPName.cs: -------------------------------------------------------------------------------- 1 | using HeroesPowerPlant.Shared.IO.Config; 2 | using System; 3 | using System.Windows.Forms; 4 | 5 | namespace HeroesPowerPlant.LevelEditor 6 | { 7 | public partial class EditBSPName : Form 8 | { 9 | public EditBSPName(string oldName) 10 | { 11 | InitializeComponent(); 12 | if (HPPConfig.GetInstance().LegacyWindowPriorityBehavior) 13 | TopMost = true; 14 | else 15 | TopMost = false; 16 | textBox1.Text = oldName; 17 | } 18 | 19 | public static string GetName(string oldName) 20 | { 21 | EditBSPName edit = new EditBSPName(oldName); 22 | edit.ShowDialog(); 23 | 24 | if (edit.OKed) 25 | { 26 | return edit.textBox1.Text; 27 | } 28 | else 29 | { 30 | return oldName; 31 | } 32 | } 33 | 34 | private bool OKed = false; 35 | 36 | private void button1_Click(object sender, EventArgs e) 37 | { 38 | OKed = true; 39 | Close(); 40 | } 41 | 42 | private void button2_Click(object sender, EventArgs e) 43 | { 44 | Close(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0011_HintBall.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0011_HintBall : SetObjectShadow 6 | { 7 | [MiscSetting] 8 | public int AudioBranchID { get; set; } 9 | [MiscSetting] 10 | public EAudioBranchType AudioBranchType { get; set; } 11 | [MiscSetting] 12 | public float Float_02 { get; set; } 13 | [MiscSetting] 14 | public float Float_03 { get; set; } 15 | [MiscSetting] 16 | public int Int_04 { get; set; } 17 | 18 | public override void ReadMiscSettings(BinaryReader reader, int count) 19 | { 20 | AudioBranchID = reader.ReadInt32(); 21 | AudioBranchType = (EAudioBranchType)reader.ReadInt32(); 22 | Float_02 = reader.ReadSingle(); 23 | Float_03 = reader.ReadSingle(); 24 | Int_04 = reader.ReadInt32(); 25 | } 26 | 27 | public override void WriteMiscSettings(BinaryWriter writer) 28 | { 29 | writer.Write(AudioBranchID); 30 | writer.Write((int)AudioBranchType); 31 | writer.Write(Float_02); 32 | writer.Write(Float_03); 33 | writer.Write(Int_04); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object0834_Tornado.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0834_Tornado : SetObjectShadow 6 | { 7 | public enum ESpinDirection : int 8 | { 9 | Left, 10 | Right 11 | } 12 | 13 | //Tornado 14 | [MiscSetting] 15 | public ESpinDirection SpinDirection { get; set; } 16 | [MiscSetting, Description("m/s")] 17 | public float SpinningSpeed { get; set; } 18 | [MiscSetting, Description("m/s")] 19 | public float UpSpeed { get; set; } 20 | [MiscSetting, Description("m")] 21 | public float Cylinder_Radius { get; set; } 22 | [MiscSetting, Description("m")] 23 | public float Cylinder_Height { get; set; } 24 | [MiscSetting, Description("m")] 25 | public float Cylinder_Offset_Y { get; set; } 26 | [MiscSetting, Description("deg")] 27 | public float Launch_X { get; set; } 28 | [MiscSetting, Description("deg")] 29 | public float Launch_Y { get; set; } 30 | [MiscSetting, Description("m/s")] 31 | public float Launch_Speed { get; set; } 32 | [MiscSetting, Description("sec")] 33 | public float NoControlSec { get; set; } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List07/Object07D3_RisingLaserBar.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object07D3_RisingLaserBar : SetObjectShadow 6 | { 7 | //ElecBar (scale,offset,Task,Gadget,mat1,mat2) 8 | 9 | [MiscSetting(0), Description("UpperWay = Y axis++\nSideWay = Z axis--")] 10 | public EDirection TravelDirection { get; set; } 11 | 12 | [MiscSetting(1)] 13 | public float BarWidth { get; set; } 14 | 15 | [MiscSetting(2), Description("Starts at object placement, goes up")] 16 | public float TravelDistance { get; set; } 17 | 18 | [MiscSetting(3), Description("How long it takes to reach the top, smaller = faster")] 19 | public float TravelTime { get; set; } 20 | 21 | [MiscSetting(4), Description("Time to wait to spawn a new bar, also applies to multiples")] 22 | public float SpawnBarTime { get; set; } 23 | 24 | [MiscSetting(5), Description("Time to spend fading in/out; Applies to both")] 25 | public float FadeTime { get; set; } 26 | 27 | [MiscSetting(6), Description("Valid float between 0-1")] 28 | public float Synchronize { get; set; } 29 | 30 | [MiscSetting(7)] 31 | public int NumberOfBars { get; set; } 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List00/Object00_Weight.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using System.ComponentModel; 3 | 4 | namespace HeroesPowerPlant.LayoutEditor 5 | { 6 | public class Object00_Weight : SetObjectHeroes 7 | { 8 | public enum EWeightType : byte 9 | { 10 | Repeat = 0, 11 | Shadow = 1, 12 | Laser = 2, 13 | RepeatSwitch = 3, 14 | ShadowSwitch = 4, 15 | LaserSwitch = 5 16 | } 17 | 18 | public override void CreateTransformMatrix() 19 | { 20 | transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ) * DefaultTransformMatrix(); 21 | CreateBoundingBox(); 22 | } 23 | 24 | [MiscSetting] 25 | public EWeightType WeightType { get; set; } 26 | [MiscSetting(2)] 27 | public byte LinkID { get; set; } 28 | [MiscSetting(3)] 29 | public short Height { get; set; } 30 | [MiscSetting(4)] 31 | public float ScaleX { get; set; } 32 | [MiscSetting(8)] 33 | public float ScaleY { get; set; } 34 | [MiscSetting(5)] 35 | public float ScaleZ { get; set; } 36 | [MiscSetting(6), Description("In frames")] 37 | public short UpWaitTime { get; set; } 38 | [MiscSetting(7), Description("In frames")] 39 | public short DownWaitTime { get; set; } 40 | } 41 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace HeroesPowerPlant 5 | { 6 | static class Program 7 | { 8 | public static MainForm.MainForm MainForm; 9 | 10 | /// 11 | /// Ponto de entrada principal para o aplicativo. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); 17 | 18 | Application.EnableVisualStyles(); 19 | Application.SetCompatibleTextRenderingDefault(false); 20 | 21 | if (!SharpDevice.IsDirectX11Supported()) 22 | { 23 | MessageBox.Show("DirectX11 feature level 11.0 is required to run Heroes Power Plant. Maximum supported feature level is " + SharpDevice.GetSupportedFeatureLevel().ToString() + ". Please update your DirectX."); 24 | return; 25 | } 26 | 27 | MainForm = new MainForm.MainForm(); 28 | 29 | Application.Run(MainForm); 30 | 31 | try 32 | { 33 | } 34 | catch (Exception ex) 35 | { 36 | MessageBox.Show($"Unhandled Exception in Power Plant: {ex.Message} {ex.InnerException} {ex.StackTrace}"); 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List11/Object1181_Celestial.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1181_Celestial : SetObjectHeroes 6 | { 7 | public override void CreateTransformMatrix() 8 | { 9 | transformMatrix = Matrix.Scaling(Scale + 1f) * DefaultTransformMatrix(); 10 | 11 | CreateBoundingBox(); 12 | } 13 | 14 | public override void Draw(SharpRenderer renderer) 15 | { 16 | if (isSelected) 17 | renderData.Color = renderer.selectedObjectColor; 18 | else 19 | renderData.Color = Vector4.One; 20 | 21 | renderer.Device.SetCullModeNone(); 22 | renderer.Device.SetDepthStateNone(); 23 | renderer.Device.SetBlendStateAdditive(); 24 | renderer.Device.ApplyRasterState(); 25 | renderer.Device.UpdateAllStates(); 26 | base.Draw(renderer); 27 | } 28 | 29 | [MiscSetting] 30 | public int CelestialType { get; set; } 31 | [MiscSetting] 32 | public float SpeedX { get; set; } 33 | [MiscSetting] 34 | public float SpeedY { get; set; } 35 | [MiscSetting] 36 | public float SpeedZ { get; set; } 37 | [MiscSetting] 38 | public float Scale { get; set; } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HeroesPowerPlant/SharpDX/SharpSubSet.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | using SharpDX.Direct3D11; 3 | 4 | namespace HeroesPowerPlant 5 | { 6 | /// 7 | /// Describe a mesh subset 8 | /// 9 | public class SharpSubSet 10 | { 11 | /// 12 | /// Diffuse map name 13 | /// 14 | public string DiffuseMapName { get; set; } 15 | 16 | /// 17 | /// Diffuse map 18 | /// 19 | public ShaderResourceView DiffuseMap { get; set; } 20 | 21 | /// 22 | /// Diffuse Color (RGBA) 23 | /// 24 | public Vector4 DiffuseColor { get; set; } 25 | 26 | /// 27 | /// Index Start inside IndexBuffer 28 | /// 29 | public int StartIndex { get; set; } 30 | 31 | /// 32 | /// Number of indices to draw 33 | /// 34 | public int IndexCount { get; set; } 35 | 36 | public SharpSubSet(int StartIndex, int IndexCount, ShaderResourceView DiffuseMap, string DiffuseMapName = "") 37 | { 38 | this.StartIndex = StartIndex; 39 | this.IndexCount = IndexCount; 40 | this.DiffuseMap = DiffuseMap; 41 | this.DiffuseMapName = DiffuseMapName; 42 | 43 | DiffuseColor = Vector4.One; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List13/Object1305_EggFleetDoor.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object1305_EggFleetDoor : SetObjectHeroes 6 | { 7 | private Matrix triggerMatrix; 8 | 9 | public override void CreateTransformMatrix() 10 | { 11 | base.CreateTransformMatrix(); 12 | 13 | triggerMatrix = Matrix.Scaling(TriggerSizeX, TriggerSizeY, TriggerSizeZ) * 14 | Matrix.RotationY(TriggerRotY) * 15 | Matrix.Translation(TriggerX, TriggerY, TriggerZ); 16 | 17 | CreateBoundingBox(); 18 | } 19 | 20 | public override void Draw(SharpRenderer renderer) 21 | { 22 | base.Draw(renderer); 23 | 24 | if (isSelected) 25 | renderer.DrawCubeTrigger(triggerMatrix, true); 26 | } 27 | 28 | [MiscSetting] 29 | public float TriggerX { get; set; } 30 | [MiscSetting] 31 | public float TriggerY { get; set; } 32 | [MiscSetting] 33 | public float TriggerZ { get; set; } 34 | [MiscSetting] 35 | public short TriggerSizeX { get; set; } 36 | [MiscSetting] 37 | public short TriggerSizeY { get; set; } 38 | [MiscSetting] 39 | public short TriggerSizeZ { get; set; } 40 | [MiscSetting] 41 | public short TriggerRotY { get; set; } 42 | } 43 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesHeroes/List09/Object0913_RainCollision.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0913_RainCollision : SetObjectHeroes 4 | { 5 | [MiscSetting] 6 | public float Scale { get; set; } 7 | [MiscSetting] 8 | public byte RainID_1 { get; set; } 9 | [MiscSetting] 10 | public byte RainID_2 { get; set; } 11 | [MiscSetting] 12 | public byte RainID_3 { get; set; } 13 | [MiscSetting] 14 | public byte RainID_4 { get; set; } 15 | [MiscSetting] 16 | public byte RainID_5 { get; set; } 17 | [MiscSetting] 18 | public byte RainID_6 { get; set; } 19 | [MiscSetting] 20 | public byte RainID_7 { get; set; } 21 | [MiscSetting] 22 | public byte RainID_8 { get; set; } 23 | [MiscSetting] 24 | public byte RainID_9 { get; set; } 25 | [MiscSetting] 26 | public byte RainID_10 { get; set; } 27 | [MiscSetting] 28 | public byte RainID_11 { get; set; } 29 | [MiscSetting] 30 | public byte RainID_12 { get; set; } 31 | [MiscSetting] 32 | public byte RainID_13 { get; set; } 33 | [MiscSetting] 34 | public byte RainID_14 { get; set; } 35 | [MiscSetting] 36 | public byte RainID_15 { get; set; } 37 | [MiscSetting] 38 | public byte RainID_16 { get; set; } 39 | } 40 | } -------------------------------------------------------------------------------- /HeroesPowerPlant/ConfigEditor/EntryRenderer.cs: -------------------------------------------------------------------------------- 1 | using SharpDX; 2 | 3 | namespace HeroesPowerPlant.ConfigEditor 4 | { 5 | public class EntryRenderer 6 | { 7 | private Matrix world; 8 | private DefaultRenderData renderData = new DefaultRenderData(); 9 | 10 | public EntryRenderer(Vector3 Position, int Rotation, Vector3 v) 11 | { 12 | NewMatrix(Position, Rotation); 13 | renderData.Color = new Vector4(v, 0.6f); 14 | } 15 | 16 | public void NewMatrix(Vector3 Position, int Rotation) 17 | { 18 | world = Matrix.Scaling(20f, 20f, 30f) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation)) * Matrix.Translation(Position); 19 | } 20 | 21 | public void Render(SharpRenderer renderer) 22 | { 23 | renderData.worldViewProjection = world * renderer.viewProjection; 24 | 25 | renderer.Device.SetFillModeSolid(); 26 | renderer.Device.SetCullModeNormal(); 27 | renderer.Device.SetBlendStateAlphaBlend(); 28 | renderer.Device.ApplyRasterState(); 29 | renderer.Device.UpdateAllStates(); 30 | 31 | renderer.Device.UpdateData(renderer.basicBuffer, renderData); 32 | renderer.Device.DeviceContext.VertexShader.SetConstantBuffer(0, renderer.basicBuffer); 33 | renderer.basicShader.Apply(); 34 | 35 | renderer.Pyramid.Draw(renderer.Device); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0066_GUNBigfoot.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0066_GUNBigfoot : SetObjectShadow 4 | { 5 | public enum EAppear : int 6 | { 7 | WAIT_CROUCH, 8 | HOVERING, 9 | DROP, 10 | ACT_ATTACKING, 11 | ZUTTO_HOVERING 12 | } 13 | 14 | public enum EWeapon : int 15 | { 16 | VULCAN, 17 | MISSILE 18 | } 19 | 20 | // EnemyBase 21 | [MiscSetting(0)] 22 | public float MoveRange { get; set; } 23 | [MiscSetting(1)] 24 | public float SearchRange { get; set; } 25 | [MiscSetting(2)] 26 | public float SearchAngle { get; set; } 27 | [MiscSetting(3)] 28 | public float SearchWidth { get; set; } 29 | [MiscSetting(4)] 30 | public float SearchHeight { get; set; } 31 | [MiscSetting(5)] 32 | public float SearchHeightOffset { get; set; } 33 | [MiscSetting(6)] 34 | public float MoveSpeedRatio { get; set; } 35 | 36 | // end EnemyBase 37 | 38 | [MiscSetting(7)] 39 | public EAppear AppearType { get; set; } 40 | [MiscSetting(8)] 41 | public EWeapon WeaponType { get; set; } 42 | [MiscSetting(9)] 43 | public float OffsetPos_Y { get; set; } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object008C_BkGiant.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object008C_BkGiant : SetObjectShadow 4 | { 5 | public enum EWeapon : int 6 | { 7 | BLACK_SWORD, 8 | DARK_HAMMER, 9 | BIG_BARREL 10 | } 11 | 12 | public enum EAppear : int 13 | { 14 | WAIT, 15 | DROP 16 | } 17 | 18 | // EnemyBase 19 | [MiscSetting(0)] 20 | public float MoveRange { get; set; } 21 | [MiscSetting(1)] 22 | public float SearchRange { get; set; } 23 | [MiscSetting(2)] 24 | public float SearchAngle { get; set; } 25 | [MiscSetting(3)] 26 | public float SearchWidth { get; set; } 27 | [MiscSetting(4)] 28 | public float SearchHeight { get; set; } 29 | [MiscSetting(5)] 30 | public float SearchHeightOffset { get; set; } 31 | [MiscSetting(6)] 32 | public float MoveSpeedRatio { get; set; } 33 | // end EnemyBase 34 | [MiscSetting(7)] 35 | public EAppear AppearType { get; set; } 36 | [MiscSetting(8)] 37 | public EWeapon WeaponType { get; set; } 38 | [MiscSetting(9)] 39 | public float OffsetPos_Y { get; set; } 40 | [MiscSetting(10)] 41 | public ENoYes CanBlockShots { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List17/Object1770_GUNCamera.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object1770_GUNCamera : SetObjectShadow 4 | { 5 | //SetWatchCamera(posX, posY, posZ, angX, angY, angZ, width, height, depth, lookPosX, lookPosY, lookPosZ, lookAngX, lookAngY, lookAngZ) 6 | [MiscSetting] 7 | public float PosX { get; set; } 8 | [MiscSetting] 9 | public float PosY { get; set; } 10 | [MiscSetting] 11 | public float PosZ { get; set; } 12 | [MiscSetting] 13 | public float AngX { get; set; } 14 | [MiscSetting] 15 | public float AngY { get; set; } 16 | [MiscSetting] 17 | public float AngZ { get; set; } 18 | [MiscSetting] 19 | public float Detect_X { get; set; } 20 | [MiscSetting] 21 | public float Detect_Y { get; set; } 22 | [MiscSetting] 23 | public float Detect_Z { get; set; } 24 | [MiscSetting] 25 | public float LookPosX { get; set; } 26 | [MiscSetting] 27 | public float LookPosY { get; set; } 28 | [MiscSetting] 29 | public float LookPosZ { get; set; } 30 | [MiscSetting] 31 | public float LookAngX { get; set; } 32 | [MiscSetting] 33 | public float LookAngY { get; set; } 34 | [MiscSetting] 35 | public float LookAngZ { get; set; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List08/Object0899_BlackTankCommandCollision.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object0899_BlackTankCommandCollision : SetObjectShadow 6 | { 7 | public enum EAction : int 8 | { 9 | Move, 10 | Stop, 11 | Accelerate, 12 | SetPos 13 | } 14 | 15 | // Same as EscapePodCommandCollision 16 | [MiscSetting] 17 | public float DetectX { get; set; } 18 | [MiscSetting] 19 | public float DetectY { get; set; } 20 | [MiscSetting] 21 | public float DetectZ { get; set; } 22 | [MiscSetting, Description("Move - Use to cancel a Stop command with param0 set to 0\nStop - param0 amount of seconds to be stopped (int), 0 is indefinite (Move needed)\nAccelerate - param0 amount of seconds to reach speed in param1; param1 speed/travel rate, larger is faster\nSetPos - param0 spline index; param1 position in percentage of spline (0.0 = start, 1.0 = end)")] 23 | public EAction ActionID { get; set; } 24 | [MiscSetting, Description("Known types (values unknown): no timer, route, Not in use, speed, rate(0.0-1.0), type")] 25 | public float ActionParam0 { get; set; } 26 | [MiscSetting, Description("Known types (values unknown): no timer, route, Not in use, speed, rate(0.0-1.0), type")] 27 | public float ActionParam1 { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0092_BkChaos.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0092_BkChaos : SetObjectShadow 4 | { 5 | public enum EState : int 6 | { 7 | BrokenUp, 8 | Complete 9 | } 10 | 11 | // EnemyBase 12 | [MiscSetting(0)] 13 | public float MoveRange { get; set; } 14 | [MiscSetting(1)] 15 | public float SearchRange { get; set; } 16 | [MiscSetting(2)] 17 | public float SearchAngle { get; set; } 18 | [MiscSetting(3)] 19 | public float SearchWidth { get; set; } 20 | [MiscSetting(4)] 21 | public float SearchHeight { get; set; } 22 | [MiscSetting(5)] 23 | public float SearchHeightOffset { get; set; } 24 | 25 | // end EnemyBase 26 | 27 | [MiscSetting(6)] 28 | public float Health { get; set; } 29 | [MiscSetting(7)] 30 | public EState StartingState { get; set; } 31 | [MiscSetting(8)] 32 | public int NumberOfChibi { get; set; } 33 | [MiscSetting(9)] 34 | public float BrokenPieceFlyDistance { get; set; } 35 | [MiscSetting(10)] 36 | public float BrokenPieceFlyOffset { get; set; } 37 | [MiscSetting(11)] 38 | public float CombineStartTime { get; set; } 39 | [MiscSetting(12)] 40 | public float CombineTime { get; set; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List17/Object17D4_BAGunShip.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace HeroesPowerPlant.LayoutEditor 4 | { 5 | public class Object11D4_BAGunShip : SetObjectShadow 6 | { 7 | public enum EBAGunShipAttack : int 8 | { 9 | NONE, 10 | ATTACK, 11 | ATTACK2 = 5 12 | } 13 | 14 | //radius, height, attack, ComID, delay, interval 15 | 16 | [MiscSetting] 17 | public float DetectRangeXZ { get; set; } //radius 18 | [MiscSetting] 19 | public float DetectRangeY { get; set; } //height 20 | [MiscSetting] 21 | public float TimeUntilTakeOff { get; set; } //delay 22 | 23 | [MiscSetting] 24 | public EBAGunShipAttack Attack { get; set; } //attack 25 | 26 | [MiscSetting, Description("Always 0 in original objects, purpose unknown")] 27 | public int int4 { get; set; } 28 | 29 | [MiscSetting, Description("Enemy w/LinkID to spawn")] 30 | public int LinkID_EnemySpawning { get; set; } //ComID 31 | 32 | [MiscSetting, Description("Number of times to re-drop enemy from LinkID_EnemySpawning")] 33 | public int NumberOfDrops { get; set; } 34 | 35 | [MiscSetting, Description("Always 0 in original objects, purpose unknown")] 36 | public int int7 { get; set; } 37 | 38 | [MiscSetting] 39 | public float AttackInterval { get; set; } //interval 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/Templates/Template.cs: -------------------------------------------------------------------------------- 1 | using Heroes.SDK.Custom; 2 | using Heroes.SDK.Definitions.Enums; 3 | using System; 4 | using System.Linq; 5 | using System.Reflection; 6 | 7 | namespace HeroesPowerPlant.LayoutEditor 8 | { 9 | public class Template 10 | { 11 | public Stage Stage; 12 | public string Team; 13 | public string Name; 14 | public string Text; 15 | public byte[] MiscSettings; 16 | 17 | public void SetTeam(string v) 18 | { 19 | switch (v.ToLower()) 20 | { 21 | case "pb": 22 | case "db": 23 | Team = "All"; 24 | break; 25 | case "p1": 26 | Team = "Sonic"; 27 | break; 28 | case "p2": 29 | Team = "Dark"; 30 | break; 31 | case "p3": 32 | Team = "Rose"; 33 | break; 34 | case "p4": 35 | Team = "Chaotix"; 36 | break; 37 | case "p5": 38 | Team = "SuperHard"; 39 | break; 40 | } 41 | } 42 | 43 | public void SetLevel(string fileName) 44 | { 45 | Stage = Extensions.StageFromFileNamePrefix(fileName); 46 | } 47 | 48 | public override string ToString() 49 | { 50 | return $"{Stage} - {Team} - {Name}"; 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LayoutEditor/SetObjects/ObjectClassesShadow/List00/Object0078_EggPierrot.cs: -------------------------------------------------------------------------------- 1 | namespace HeroesPowerPlant.LayoutEditor 2 | { 3 | public class Object0078_EggPierrot : SetObjectShadow 4 | { 5 | public enum EAppear : int 6 | { 7 | WANDER, 8 | OFFSET 9 | } 10 | 11 | // EnemyBase 12 | [MiscSetting(0)] 13 | public float MoveRange { get; set; } 14 | [MiscSetting(1)] 15 | public float SearchRange { get; set; } 16 | [MiscSetting(2)] 17 | public float SearchAngle { get; set; } 18 | [MiscSetting(3)] 19 | public float SearchWidth { get; set; } 20 | [MiscSetting(4)] 21 | public float SearchHeight { get; set; } 22 | [MiscSetting(5)] 23 | public float SearchHeightOffset { get; set; } 24 | [MiscSetting(6)] 25 | public float MoveSpeedRatio { get; set; } 26 | 27 | // end EnemyBase 28 | 29 | [MiscSetting(7)] 30 | public EAppear AppearType { get; set; } 31 | [MiscSetting(8)] 32 | public int UnknownInt { get; set; } //8 Needs Research, found 0/1 but no apparent behavior 33 | [MiscSetting(9)] 34 | public float BombTime { get; set; } //9 BakudanTime 35 | [MiscSetting(10)] 36 | public float OffsetPos_X { get; set; } 37 | [MiscSetting(11)] 38 | public float OffsetPos_Y { get; set; } 39 | [MiscSetting(12)] 40 | public float OffsetPos_Z { get; set; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /HeroesPowerPlant/LevelEditor/Models/Structures/ModelConverterDataCollada.cs: -------------------------------------------------------------------------------- 1 | using Collada141; 2 | using SharpDX; 3 | using System.Collections.Generic; 4 | 5 | namespace HeroesPowerPlant.LevelEditor 6 | { 7 | public class ModelConverterDataCollada 8 | { 9 | public string ObjectName; 10 | 11 | public List PositionVertexList = new List(); 12 | public List TexCoordList = new List(); 13 | public List VColorList = new List(); 14 | public List TriangleListList = new List(); 15 | 16 | public Matrix TransformMatrix = new Matrix(); 17 | 18 | public void GetMatrix(matrix m) 19 | { 20 | TransformMatrix = new Matrix 21 | { 22 | M11 = (float)m.Values[0], 23 | M21 = (float)m.Values[1], 24 | M31 = (float)m.Values[2], 25 | M41 = (float)m.Values[3], 26 | M12 = (float)m.Values[4], 27 | M22 = (float)m.Values[5], 28 | M32 = (float)m.Values[6], 29 | M42 = (float)m.Values[7], 30 | M13 = (float)m.Values[8], 31 | M23 = (float)m.Values[9], 32 | M33 = (float)m.Values[10], 33 | M43 = (float)m.Values[11], 34 | M14 = (float)m.Values[12], 35 | M24 = (float)m.Values[13], 36 | M34 = (float)m.Values[14], 37 | M44 = (float)m.Values[15] 38 | }; 39 | } 40 | } 41 | } 42 | --------------------------------------------------------------------------------