├── test
├── HaroohiePals.Gui.Test
│ └── Usings.cs
├── HaroohiePals.NitroKart.NUnitTests
│ ├── Usings.cs
│ └── HaroohiePals.NitroKart.NUnitTest.csproj
├── HaroohiePals.Actions.Test
│ └── Usings.cs
├── HaroohiePals.MarioKart.Test
│ ├── Usings.cs
│ └── HaroohiePals.MarioKart.Test.csproj
├── HaroohiePals.MarioKartToolbox.Test
│ └── Usings.cs
├── HaroohiePals.NitroKart.Actions.Test
│ ├── Usings.cs
│ └── HaroohiePals.NitroKart.Actions.Test.csproj
├── HaroohiePals.Nitro.NitroSystem.Test
│ ├── Assets
│ │ ├── ermii.nsbmd
│ │ ├── imd
│ │ │ ├── cube.nsbmd
│ │ │ ├── tex
│ │ │ │ ├── pal.nsbtx
│ │ │ │ ├── cube_nopow2.nsbtx
│ │ │ │ ├── pal_nomerge.nsbtx
│ │ │ │ └── tex_combined.nsbtx
│ │ │ └── mat
│ │ │ │ ├── cube_wire.nsbmd
│ │ │ │ ├── cube_no1dot.nsbmd
│ │ │ │ ├── cube_nofarclip.nsbmd
│ │ │ │ ├── cube_shininess.nsbmd
│ │ │ │ ├── cube_nodepthdecal.nsbmd
│ │ │ │ └── cube_noxludepth.nsbmd
│ │ ├── course_model.nsbmd
│ │ ├── course_model.nsbtx
│ │ └── ita
│ │ │ ├── animtest.nsbta
│ │ │ ├── dgc_sky.nsbta
│ │ │ ├── BlackHole.nsbta
│ │ │ ├── desert_gc.nsbta
│ │ │ ├── patapata_gc.nsbta
│ │ │ └── animtest_aligned.nsbta
│ └── G3d
│ │ └── Binary
│ │ ├── NsbtxTest.cs
│ │ ├── NsbmdTest.cs
│ │ └── NsbtaTest.cs
├── HaroohiePals.IO.Test
│ ├── IOUtilTests.cs
│ └── HaroohiePals.IO.Test.csproj
└── HaroohiePals.Nitro.Test
│ └── Card
│ └── KeyTransformTest.cs
├── docs
└── assets
│ └── img
│ ├── icon.png
│ ├── nkm_2d_view.png
│ ├── nkm_3d_view.png
│ └── nkm_camera_preview.png
├── src
├── HaroohiePals.MarioKart
│ ├── MapData
│ │ ├── IMapData.cs
│ │ ├── IRoutePoint.cs
│ │ ├── IPoint.cs
│ │ ├── IRotatedPoint.cs
│ │ ├── IMapDataCollection.cs
│ │ ├── IMapDataEntry.cs
│ │ ├── WeakMapDataReference.cs
│ │ └── UnresolvedBinaryMapDataReference.cs
│ └── HaroohiePals.MarioKart.csproj
├── HaroohiePals.NitroKart
│ ├── Rom
│ │ ├── FileToAddInfo.cs
│ │ ├── ReadOverlayFilesResult.cs
│ │ ├── MkdsRomProject.cs
│ │ └── NdsRomInfo.cs
│ ├── Race
│ │ ├── CameraMode.cs
│ │ ├── RaceConfig.cs
│ │ ├── CameraParams.cs
│ │ ├── RaceMode.cs
│ │ └── RaceDisplayMode.cs
│ ├── MapObj
│ │ ├── Common
│ │ │ ├── ItemboxQuestionAnimationFrame.cs
│ │ │ ├── ItemboxBoxAnimationFrame.cs
│ │ │ ├── ItemboxShadowType.cs
│ │ │ └── ItemboxLogicPart.cs
│ │ ├── IMkdsMapObjDatabase.cs
│ │ ├── MkdsMapObjInfo.cs
│ │ ├── Obstacles
│ │ │ └── KoopaBlockLogicPart.cs
│ │ ├── Enemies
│ │ │ ├── TrafficLogicPart.cs
│ │ │ └── TrafficParams.cs
│ │ └── MapObjAttribute.cs
│ ├── MapData
│ │ ├── MkdsCameIntroCamera.cs
│ │ ├── MkdsMapObjectGroup.cs
│ │ ├── MkdsAreaType.cs
│ │ ├── MkdsAreaShapeType.cs
│ │ ├── MkdsCameraType.cs
│ │ ├── Binary
│ │ │ ├── NkmdEpat.cs
│ │ │ ├── NkmdIpat.cs
│ │ │ └── NkmdIpatEpatEntry.cs
│ │ └── Intermediate
│ │ │ └── Sections
│ │ │ └── MobjSettings
│ │ │ ├── CowSettings.cs
│ │ │ ├── MoveTreeSettings.cs
│ │ │ ├── KoopaBlockSettings.cs
│ │ │ ├── GearSettings.cs
│ │ │ ├── FlipperSettings.cs
│ │ │ ├── DossunSettings.cs
│ │ │ ├── SnowmanSettings.cs
│ │ │ ├── MoveItemboxSettings.cs
│ │ │ └── SanboSettings.cs
│ ├── Course
│ │ ├── MkdsFolderCourse.cs
│ │ └── IMkdsCourse.cs
│ └── MkdsContext.cs
├── HaroohiePals.Gui
│ ├── ImGuiIconGlyph.cs
│ ├── Resources
│ │ ├── Icons
│ │ │ ├── Redo_16x.png
│ │ │ ├── Undo_16x.png
│ │ │ ├── Folder_16x.png
│ │ │ ├── Document_16x.png
│ │ │ ├── ExportFile_16x.png
│ │ │ ├── ImportFile_16x.png
│ │ │ └── VSO_RecycleBin_16x.png
│ │ └── Fonts
│ │ │ ├── fa-solid-900.ttf
│ │ │ └── Roboto-Regular.ttf
│ ├── View
│ │ ├── Modal
│ │ │ ├── MessageModalButtonsType.cs
│ │ │ ├── IModalService.cs
│ │ │ └── ModalService.cs
│ │ ├── IView.cs
│ │ ├── ImSequencer
│ │ │ ├── ImSequencerCustomDraw.cs
│ │ │ └── ImSequencerOptions.cs
│ │ ├── UpdateArgs.cs
│ │ ├── PropertyGrid
│ │ │ ├── IPropertyEditor.cs
│ │ │ ├── PropertyGridFlags.cs
│ │ │ ├── PropertyEditorContext.cs
│ │ │ ├── PropertyInfoEqualityComparer.cs
│ │ │ └── PropertyGridItem.cs
│ │ ├── Toolbar
│ │ │ └── ToolbarItem.cs
│ │ ├── WindowContentView.cs
│ │ ├── Tree
│ │ │ └── TreeNode.cs
│ │ ├── DockSpaceView.cs
│ │ └── Menu
│ │ │ └── MenuUtil.cs
│ ├── ImGuiFont.cs
│ ├── Util.cs
│ ├── ImRect.cs
│ ├── ImGuiGameWindowSettings.cs
│ └── Win32Util.cs
├── HaroohiePals.Gui.Viewport
│ ├── ImGuizmoMode.cs
│ ├── SelectionHandle.cs
│ ├── ImGuizmoConfirmAction.cs
│ ├── GizmoTool.cs
│ ├── GizmoRotateScaleMode.cs
│ ├── Projection
│ │ ├── IProjection.cs
│ │ └── PerspectiveProjection.cs
│ ├── IViewportCollision.cs
│ ├── Framebuffers
│ │ ├── IPickableFramebufferProvider.cs
│ │ └── IGLFramebufferProvider.cs
│ ├── Resources
│ │ └── Shaders
│ │ │ ├── idBlit.vert
│ │ │ └── idBlit.frag
│ ├── ImGuizmoMoveType.cs
│ ├── ViewportKeyBindings.cs
│ ├── PickingResult.cs
│ ├── RenderGroupScenePerspective.cs
│ ├── ImGuizmoOperation.cs
│ ├── RenderGroupSceneTopDown.cs
│ └── ViewportScene.cs
├── HaroohiePals.IO
│ ├── Endianness.cs
│ ├── Reference
│ │ ├── IRestorableReference.cs
│ │ ├── IReferenceSerializer.cs
│ │ ├── IReferenceResolver.cs
│ │ ├── IReferenceResolverCollection.cs
│ │ ├── IReferenceSerializerCollection.cs
│ │ ├── ReferenceResolveException.cs
│ │ ├── IReferenceableExtensions.cs
│ │ ├── ReferenceSerializationException.cs
│ │ ├── RestorableReference.cs
│ │ └── ReferenceHolder.cs
│ ├── Serialization
│ │ ├── Fx16Attribute.cs
│ │ ├── Fx32Attribute.cs
│ │ ├── IgnoreAttribute.cs
│ │ ├── ConstantAttribute.cs
│ │ ├── ChunkSizeAttribute.cs
│ │ ├── AlignAttribute.cs
│ │ ├── FieldAlignmentAttribute.cs
│ │ ├── ArraySizeAttribute.cs
│ │ ├── TypeAttribute.cs
│ │ └── ReferenceAttribute.cs
│ ├── Archive
│ │ ├── ArcFile.cs
│ │ ├── IReadOnlyArchive.cs
│ │ └── ArcEntry.cs
│ ├── HaroohiePals.IO.csproj
│ └── Compression
│ │ └── ICompressionAlgorithm.cs
├── HaroohiePals.Validation
│ ├── ErrorLevel.cs
│ ├── IValidator.cs
│ ├── IValidationRule.cs
│ ├── UnfixableValidationErrorException.cs
│ ├── HaroohiePals.Validation.csproj
│ └── Validator.cs
├── HaroohiePals.MarioKartToolbox
│ ├── Resources
│ │ ├── Icons
│ │ │ ├── main.ico
│ │ │ ├── main.png
│ │ │ ├── main128.png
│ │ │ ├── main32.png
│ │ │ ├── Model3D_16x.png
│ │ │ ├── ImageStack_16x.png
│ │ │ └── TrafficCone_16x.png
│ │ └── Shaders
│ │ │ ├── fogPass.vert
│ │ │ ├── kclOctreeCube.frag
│ │ │ ├── kclPrism.vert
│ │ │ └── kclOctreeCube.vert
│ ├── Application
│ │ ├── Settings
│ │ │ ├── GameSettings.cs
│ │ │ ├── CourseEditorSettings.cs
│ │ │ ├── AppearanceSettings.cs
│ │ │ ├── DiscordSettings.cs
│ │ │ ├── KeyBindingSettings.cs
│ │ │ ├── IApplicationSettingsService.cs
│ │ │ ├── ApplicationSettings.cs
│ │ │ ├── ShortcutKeyBindingSettings.cs
│ │ │ ├── ViewportSettings.cs
│ │ │ ├── ViewportKeyBindingSettings.cs
│ │ │ └── ViewportColorSettings.cs
│ │ ├── Discord
│ │ │ ├── RichPresenceApplicationState.cs
│ │ │ └── IApplicationDiscordRichPresenceService.cs
│ │ └── Clipboard
│ │ │ ├── IMapDataClipboard.cs
│ │ │ ├── IMapDataClipboardSerializer.cs
│ │ │ ├── ListMapDataClipboard.cs
│ │ │ ├── Json
│ │ │ ├── UnresolvedWeakJsonMapDataReference.cs
│ │ │ └── UnresolvedWeakJsonReference.cs
│ │ │ └── MapDataClipboardSerializationResult.cs
│ ├── AssemblyInfo.cs
│ ├── Gui
│ │ ├── ViewModel
│ │ │ ├── RomExplorer
│ │ │ │ └── RomExplorerRomType.cs
│ │ │ └── CourseEditor
│ │ │ │ ├── CourseEditorRequestableAction.cs
│ │ │ │ ├── ArchiveTreeViewPaneViewModel.cs
│ │ │ │ └── MapDataGeneratorSettings.cs
│ │ └── View
│ │ │ ├── CourseEditor
│ │ │ ├── CameraPreviewMode.cs
│ │ │ ├── CameraPreviewViewportMode.cs
│ │ │ ├── CameraPreviewSettings.cs
│ │ │ ├── MapDataTreeNode.cs
│ │ │ └── ICourseEditorViewFactory.cs
│ │ │ ├── RomExplorer
│ │ │ └── MkdsCourseListViewItem.cs
│ │ │ ├── PropertyGrid
│ │ │ └── MapDataReferenceEditMode.cs
│ │ │ └── Main
│ │ │ └── IMainWindowFactory.cs
│ ├── KCollision
│ │ ├── MkdsCollisionLightId.cs
│ │ ├── MkdsColTypeInfo.cs
│ │ ├── MkdsCollisionVariant.cs
│ │ ├── MkdsKclPrism.cs
│ │ └── MkdsCollisionType.cs
│ ├── OpenGL
│ │ ├── RenderGroups
│ │ │ ├── MapData
│ │ │ │ └── IColoredRenderGroup.cs
│ │ │ ├── PlaneGridRenderGroup.cs
│ │ │ └── KCollision
│ │ │ │ └── KclViewerContext.cs
│ │ └── Renderers
│ │ │ └── IRendererFactory.cs
│ └── Infrastructure
│ │ └── Discord
│ │ └── IDiscordRichPresenceService.cs
├── HaroohiePals.Nitro
│ ├── Fs
│ │ ├── NameTableEntryType.cs
│ │ ├── DirectoryTableEntry.cs
│ │ └── FatEntry.cs
│ ├── Card
│ │ ├── NdsRomOverlayTableEntryFlags.cs
│ │ ├── NdsRomNitroFooter.cs
│ │ └── NdsBannerHeader.cs
│ ├── EndianBinaryReaderExtensions.cs
│ ├── HaroohiePals.Nitro.csproj
│ ├── BinaryBlockHeader.cs
│ ├── EndianBinaryWriterExtensions.cs
│ ├── G3
│ │ └── NitroVertexData.cs
│ └── Gx
│ │ └── Enums.cs
├── HaroohiePals.Actions
│ ├── IAction.cs
│ ├── IAtomicActionBuilder.cs
│ ├── HaroohiePals.Actions.csproj
│ ├── BatchAction.cs
│ └── SetArrayItemAction.cs
├── HaroohiePals.Graphics3d
│ ├── TextureFilterMode.cs
│ ├── TextureWrapMode.cs
│ ├── HaroohiePals.Graphics3d.csproj
│ └── Texture.cs
├── HaroohiePals.Core
│ ├── HaroohiePals.Core.csproj
│ └── ComponentModel
│ │ ├── PrettyArrayTypeConverter.cs
│ │ └── NestedAttribute.cs
├── HaroohiePals.Graphics3d.OpenGL.Renderers
│ ├── Resources
│ │ ├── Models
│ │ │ ├── arrow.png
│ │ │ ├── test.png
│ │ │ ├── boxText.png
│ │ │ ├── uvgrid.png
│ │ │ └── quad.obj
│ │ └── Shaders
│ │ │ └── line.frag
│ ├── ArrowRenderer.cs
│ ├── CircleRenderer.cs
│ ├── BoxRenderer.cs
│ ├── DotRenderer.cs
│ ├── VertexData.cs
│ ├── InstancedPointGlData.cs
│ └── RendererUtil.cs
├── HaroohiePals.Nitro.NitroSystem
│ ├── G3d
│ │ ├── Animation
│ │ │ ├── AnimationStep.cs
│ │ │ ├── VisibilityAnimationResult.cs
│ │ │ ├── JointAnimationResultFlag.cs
│ │ │ ├── MaterialAnimationResultFlag.cs
│ │ │ ├── AnimationStepExtensions.cs
│ │ │ └── JointAnimationResult.cs
│ │ ├── SbcCallbackTiming.cs
│ │ ├── G3dConfig.cs
│ │ ├── Binary
│ │ │ ├── Animation
│ │ │ │ ├── JointAnimation
│ │ │ │ │ ├── G3dJointAnimationFlags.cs
│ │ │ │ │ └── Nsbca.cs
│ │ │ │ ├── TextureSrtAnimation
│ │ │ │ │ └── G3dTextureSrtAnimationFlags.cs
│ │ │ │ ├── G3dAnimation.cs
│ │ │ │ └── TexturePatternAnimation
│ │ │ │ │ ├── TexturePatternFrameValue.cs
│ │ │ │ │ └── Nsbtp.cs
│ │ │ ├── Model
│ │ │ │ ├── G3dShapeFlags.cs
│ │ │ │ ├── PaletteDictionaryData.cs
│ │ │ │ ├── G3dMaterialFlags.cs
│ │ │ │ ├── G3dEnvelopeMatrices.cs
│ │ │ │ ├── PaletteToMaterialDictionaryData.cs
│ │ │ │ ├── TextureToMaterialDictionaryData.cs
│ │ │ │ ├── TextureDictionaryData.cs
│ │ │ │ └── G3dPaletteInfo.cs
│ │ │ ├── OffsetDictionaryData.cs
│ │ │ ├── G3dDictionaryPatriciaTreeNode.cs
│ │ │ ├── G3dDictionaryEntry.cs
│ │ │ └── IG3dDictionaryData.cs
│ │ ├── G3dRenderObjectFlag.cs
│ │ ├── MaterialTextureInfo.cs
│ │ ├── SbcCommand.cs
│ │ ├── G3dRenderStateFlag.cs
│ │ └── Intermediate
│ │ │ └── Model
│ │ │ ├── ImdBoxTest.cs
│ │ │ ├── ImdOutputInfo.cs
│ │ │ └── ImdTexPalette.cs
│ ├── Snd
│ │ └── Player
│ │ │ ├── WaveArcLink.cs
│ │ │ ├── Work.cs
│ │ │ └── SharedWork.cs
│ ├── HaroohiePals.Nitro.NitroSystem.csproj
│ └── G2d
│ │ └── Intermediate
│ │ ├── Extr.cs
│ │ ├── Link.cs
│ │ └── Cmnt.cs
├── HaroohiePals.Graphics
│ ├── Svg
│ │ └── SvgColor.cs
│ ├── Origin.cs
│ ├── HaroohiePals.Graphics.csproj
│ └── Rgba8Bitmap.cs
├── HaroohiePals.MarioKartToolbox.CommandLineInterface
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Program.cs
│ └── HaroohiePals.MarioKartToolbox.CommandLineInterface.csproj
├── HaroohiePals.Math
│ ├── Transform.cs
│ └── HaroohiePals.Mathematics.csproj
├── HaroohiePals.Sound
│ └── HaroohiePals.Sound.csproj
├── HaroohiePals.NitroKart.Validation
│ ├── Course
│ │ ├── IMkdsCourseValidatorFactory.cs
│ │ ├── MkdsRequiredMapObjFileValidationError.cs
│ │ └── MkdsCourseMapDataValidationRule.cs
│ ├── MapData
│ │ ├── IMkdsMapDataValidatorFactory.cs
│ │ ├── Sections
│ │ │ ├── MobjSettings
│ │ │ │ ├── MkdsMobjSettingsValidationError.cs
│ │ │ │ └── IMkdsMobjSettingsValidationRule.cs
│ │ │ ├── MkdsPointWifiCoordOutOfRangeValidationError.cs
│ │ │ ├── MkdsMapDataEntryValidationRule.cs
│ │ │ ├── MkdsCheckPointValidationRule.cs
│ │ │ ├── MkdsCannonPointValidationRule.cs
│ │ │ ├── MkdsEnemyPointValidationRule.cs
│ │ │ ├── MkdsItemPointValidationRule.cs
│ │ │ ├── MkdsAreaValidationRule.cs
│ │ │ ├── MkdsMapObjectTimeTrialVisibleValidationError.cs
│ │ │ ├── MkdsCameraValidationRule.cs
│ │ │ ├── MkdsRespawnPointValidationRule.cs
│ │ │ └── MkdsPointWifiCoordOutOfRangeValidationRule.cs
│ │ └── MkdsMapDataValidatorFactory.cs
│ └── HaroohiePals.NitroKart.Validation.csproj
├── HaroohiePals.KclViewer
│ ├── Program.cs
│ └── Files
│ │ ├── kclOctreeCube.frag
│ │ ├── kclPrism.vert
│ │ └── kclOctreeCube.vert
├── HaroohiePals.KCollision
│ ├── Formats
│ │ ├── Mk7Kcl.cs
│ │ ├── SmgKcl.cs
│ │ ├── MkwiiKcl.cs
│ │ ├── Sm3dlKcl.cs
│ │ ├── FloatKclPrism.cs
│ │ ├── Fx32KclPrism.cs
│ │ └── Sm64dsKclPrism.cs
│ └── HaroohiePals.KCollision.csproj
├── HaroohiePals.Graphics3d.OpenGL
│ ├── GLVertexAttribIAttribute.cs
│ ├── GLVertexAttribAttribute.cs
│ └── HaroohiePals.Graphics3d.OpenGL.csproj
├── HaroohiePals.NitroKart.Extensions
│ └── HaroohiePals.NitroKart.Extensions.csproj
├── HaroohiePals.Nitro.JNLib.Spl
│ ├── FloatHelper.cs
│ ├── HaroohiePals.Nitro.JNLib.Spl.csproj
│ └── Emitter
│ │ ├── FieldGravityParams.cs
│ │ ├── FieldRandomParams.cs
│ │ ├── FieldMagnetParams.cs
│ │ └── FieldConvergenceParams.cs
├── HaroohiePals.MarioKart.Actions
│ └── HaroohiePals.MarioKart.Actions.csproj
├── HaroohiePals.Nitro.G3.OpenGL
│ └── HaroohiePals.Nitro.G3.OpenGL.csproj
├── HaroohiePals.MarioKart.Validation
│ ├── HaroohiePals.MarioKart.Validation.csproj
│ └── MapData
│ │ └── RequiredMapDataEntryReferenceValidationError.cs
├── HaroohiePals.Nitro.NitroSystem.G3d.OpenGL
│ ├── GLG3dModelManager.cs
│ └── GLG3dModelShader.cs
└── HaroohiePals.NitroKart.Actions
│ ├── HaroohiePals.NitroKart.Actions.csproj
│ └── SetMkdsCourseCollisionAction.cs
└── .github
└── workflows
└── dotnet-build-test.yml
/test/HaroohiePals.Gui.Test/Usings.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/HaroohiePals.NitroKart.NUnitTests/Usings.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/HaroohiePals.Actions.Test/Usings.cs:
--------------------------------------------------------------------------------
1 | global using Xunit;
--------------------------------------------------------------------------------
/test/HaroohiePals.MarioKart.Test/Usings.cs:
--------------------------------------------------------------------------------
1 | global using NUnit.Framework;
--------------------------------------------------------------------------------
/test/HaroohiePals.MarioKartToolbox.Test/Usings.cs:
--------------------------------------------------------------------------------
1 | global using NUnit.Framework;
--------------------------------------------------------------------------------
/test/HaroohiePals.NitroKart.Actions.Test/Usings.cs:
--------------------------------------------------------------------------------
1 | global using NUnit.Framework;
--------------------------------------------------------------------------------
/docs/assets/img/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/docs/assets/img/icon.png
--------------------------------------------------------------------------------
/docs/assets/img/nkm_2d_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/docs/assets/img/nkm_2d_view.png
--------------------------------------------------------------------------------
/docs/assets/img/nkm_3d_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/docs/assets/img/nkm_3d_view.png
--------------------------------------------------------------------------------
/docs/assets/img/nkm_camera_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/docs/assets/img/nkm_camera_preview.png
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IMapData.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKart.MapData;
2 |
3 | public interface IMapData
4 | {
5 | }
6 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Rom/FileToAddInfo.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Rom;
2 |
3 | record FileToAddInfo(string Name, byte[] Data);
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/ImGuiIconGlyph.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui;
2 |
3 | public sealed record ImGuiIconGlyph(byte[] ImageBytes, char CodePoint, int Size);
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/ImGuizmoMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport;
2 |
3 | public enum ImGuizmoMode
4 | {
5 | Local,
6 | World
7 | };
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/Redo_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/Redo_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/Undo_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/Undo_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/Folder_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/Folder_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/SelectionHandle.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport
2 | {
3 | public record SelectionHandle(object Object, int SubIndex = -1);
4 | }
5 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Fonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Fonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/Document_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/Document_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Endianness.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO
2 | {
3 | public enum Endianness
4 | {
5 | BigEndian,
6 | LittleEndian
7 | }
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Validation/ErrorLevel.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Validation;
2 |
3 | public enum ErrorLevel
4 | {
5 | Warning,
6 | Error,
7 | Fatal
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/ExportFile_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/ExportFile_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/ImportFile_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/ImportFile_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Resources/Icons/VSO_RecycleBin_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Gui/Resources/Icons/VSO_RecycleBin_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main.ico
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main.png
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Race/CameraMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Race;
2 |
3 | public enum CameraMode
4 | {
5 | Normal,
6 | DoubleTop,
7 | DoubleBottom
8 | }
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ermii.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ermii.nsbmd
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/ImGuizmoConfirmAction.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport;
2 |
3 | public enum ImGuizmoConfirmAction
4 | {
5 | MouseUp,
6 | MouseClickOrEnter
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Reference/IRestorableReference.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Reference;
2 |
3 | public interface IRestorableReference
4 | {
5 | public void Restore();
6 | }
7 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IRoutePoint.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKart.MapData;
2 |
3 | public interface IRoutePoint : IPoint
4 | {
5 | double Radius { get; set; }
6 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main128.png
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/main32.png
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Race/RaceConfig.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Race;
2 |
3 | public record RaceConfig(int DriverCount, RaceMode Mode, RaceDisplayMode DisplayMode);
4 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro/Fs/NameTableEntryType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.Fs;
2 |
3 | public enum NameTableEntryType
4 | {
5 | EndOfDirectory,
6 | File,
7 | Directory
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/Common/ItemboxQuestionAnimationFrame.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapObj.Common;
2 |
3 | record ItemboxQuestionAnimationFrame(double Sin, double Cos);
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/cube.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/cube.nsbmd
--------------------------------------------------------------------------------
/src/HaroohiePals.Actions/IAction.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Actions;
2 |
3 | public interface IAction
4 | {
5 | bool IsCreateDelete { get; }
6 | void Undo();
7 | void Do();
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d/TextureFilterMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics3d
2 | {
3 | public enum TextureFilterMode
4 | {
5 | Nearest,
6 | Linear
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/Model3D_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/Model3D_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Race/CameraParams.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Race;
2 |
3 | internal record struct CameraParams(double Distance, double Elevation, double MaxTargetElevation);
4 |
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/course_model.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/course_model.nsbmd
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/course_model.nsbtx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/course_model.nsbtx
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/pal.nsbtx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/pal.nsbtx
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/animtest.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/animtest.nsbta
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/dgc_sky.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/dgc_sky.nsbta
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/ImageStack_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/ImageStack_16x.png
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Icons/TrafficCone_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.MarioKartToolbox/Resources/Icons/TrafficCone_16x.png
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/BlackHole.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/BlackHole.nsbta
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/desert_gc.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/desert_gc.nsbta
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/patapata_gc.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/patapata_gc.nsbta
--------------------------------------------------------------------------------
/src/HaroohiePals.Core/HaroohiePals.Core.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/arrow.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/test.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/Modal/MessageModalButtonsType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.View.Modal;
2 |
3 | public enum MessageModalButtonsType
4 | {
5 | None = 0,
6 | Ok = 1,
7 | YesNo = 2
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IPoint.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Mathematics;
2 |
3 | namespace HaroohiePals.MarioKart.MapData;
4 |
5 | public interface IPoint
6 | {
7 | Vector3d Position { get; set; }
8 | }
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_wire.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_wire.nsbmd
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/boxText.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/boxText.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/uvgrid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/uvgrid.png
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/GizmoTool.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport;
2 |
3 | public enum GizmoTool
4 | {
5 | Pointer,
6 | Translate,
7 | Rotate,
8 | Scale,
9 | Draw
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/IView.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Windowing.Common;
2 |
3 | namespace HaroohiePals.Gui.View;
4 |
5 | public interface IView
6 | {
7 | bool Draw();
8 | void Update(UpdateArgs args) { }
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/MkdsCameIntroCamera.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapData;
2 |
3 | public enum MkdsCameIntroCamera : byte
4 | {
5 | No = 0,
6 | Top = 1,
7 | Bottom = 2
8 | }
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_no1dot.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_no1dot.nsbmd
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/cube_nopow2.nsbtx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/cube_nopow2.nsbtx
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/pal_nomerge.nsbtx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/pal_nomerge.nsbtx
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/tex_combined.nsbtx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/tex/tex_combined.nsbtx
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/animtest_aligned.nsbta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/ita/animtest_aligned.nsbta
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_nofarclip.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_nofarclip.nsbmd
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_shininess.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_shininess.nsbmd
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_nodepthdecal.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_nodepthdecal.nsbmd
--------------------------------------------------------------------------------
/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_noxludepth.nsbmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaroohiePals/MarioKartToolbox/HEAD/test/HaroohiePals.Nitro.NitroSystem.Test/Assets/imd/mat/cube_noxludepth.nsbmd
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d/TextureWrapMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics3d
2 | {
3 | public enum TextureWrapMode
4 | {
5 | Clamp,
6 | Repeat,
7 | MirroredRepeat
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/GizmoRotateScaleMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport;
2 |
3 | public enum GizmoRotateScaleMode
4 | {
5 | IndividualOrigins,
6 | MedianPoint,
7 | MedianPointTranslateOnly
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IRotatedPoint.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Mathematics;
2 |
3 | namespace HaroohiePals.MarioKart.MapData;
4 |
5 | public interface IRotatedPoint : IPoint
6 | {
7 | Vector3d Rotation { get; set; }
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/GameSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct GameSettings()
4 | {
5 | public string Language = "English";
6 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("HaroohiePals.MarioKartToolbox.Test")]
4 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/ViewModel/RomExplorer/RomExplorerRomType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.ViewModel.RomExplorer;
2 |
3 | enum RomExplorerRomType
4 | {
5 | NdsRom,
6 | DiskRom
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Animation/AnimationStep.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Animation;
2 |
3 | public enum AnimationStep
4 | {
5 | Step1 = 0,
6 | Step2 = 1,
7 | Step4 = 2
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Actions/IAtomicActionBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Actions;
2 |
3 | public interface IAtomicActionBuilder
4 | {
5 | void Cancel();
6 | void Commit();
7 | IAtomicActionBuilder Do(IAction action);
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/Common/ItemboxBoxAnimationFrame.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapObj.Common;
2 |
3 | record ItemboxBoxAnimationFrame(double Sin, double Cos, double ScaleY, double FieldC, double Field10);
4 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/View/CourseEditor/CameraPreviewMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.View.CourseEditor;
2 |
3 | enum CameraPreviewMode
4 | {
5 | Edit,
6 | AnimReplay,
7 | AnimIntro
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/View/RomExplorer/MkdsCourseListViewItem.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.View.RomExplorer;
2 |
3 | record MkdsCourseListViewItem(string Name, string Path, string FileName, string Type);
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics/Svg/SvgColor.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics.Svg
2 | {
3 | public static class SvgColor
4 | {
5 | public static string FromRgb(byte r, byte g, byte b) => $"rgb({r},{g},{b})";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Reference/IReferenceSerializer.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Reference;
2 |
3 | public interface IReferenceSerializer where TRef : IReferenceable
4 | {
5 | TId Serialize(Reference reference);
6 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Race/RaceMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Race;
2 |
3 | public enum RaceMode
4 | {
5 | GrandPrix,
6 | TimeAttack,
7 | MiniGame,
8 | Versus,
9 | MissionRun,
10 | Net
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/View/CourseEditor/CameraPreviewViewportMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.View.CourseEditor;
2 |
3 | enum CameraPreviewViewportMode
4 | {
5 | SingleScreen,
6 | DualScreen
7 | }
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/Projection/IProjection.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Mathematics;
2 |
3 | namespace HaroohiePals.Gui.Viewport.Projection;
4 |
5 | public interface IProjection
6 | {
7 | Matrix4 GetProjectionMatrix(ViewportContext context);
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/ImSequencer/ImSequencerCustomDraw.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.View.ImSequencer;
2 |
3 | record struct ImSequencerCustomDraw(int Index, ImRect CustomRect, ImRect LegendRect, ImRect ClippingRect, ImRect LegendClippingRect);
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/CourseEditorSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct CourseEditorSettings()
4 | {
5 | public bool AutoFixInvalidNkmReferences = true;
6 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/SbcCallbackTiming.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.G3d;
2 |
3 | public enum SbcCallbackTiming
4 | {
5 | None = 0,
6 | TimingA = 1,
7 | TimingB = 2,
8 | TimingC = 3
9 | }
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Validation/IValidator.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Validation;
2 |
3 | public interface IValidator
4 | {
5 | List> Rules { get; set; }
6 | IReadOnlyList Validate(TObj obj);
7 | }
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/ArrowRenderer.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics3d.OpenGL.Renderers;
2 |
3 | public class ArrowRenderer : DotRenderer
4 | {
5 | public ArrowRenderer() : base(50f, Resources.Models.ArrowTexture) { }
6 | }
7 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/UpdateArgs.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.View;
2 |
3 | ///
4 | /// View update arguments
5 | ///
6 | /// Seconds elapsed since the last frame
7 | public record UpdateArgs(double Time);
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/KCollision/MkdsCollisionLightId.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.KCollision;
2 |
3 | public enum MkdsCollisionLightId : int
4 | {
5 | Light0,
6 | Light1,
7 | Light2,
8 | Light3
9 | }
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/Snd/Player/WaveArcLink.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.Snd.Player
2 | {
3 | internal class WaveArcLink
4 | {
5 | public Swar WaveArc;
6 | public WaveArcLink Next;
7 | }
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro/Card/NdsRomOverlayTableEntryFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.Card;
4 |
5 | [Flags]
6 | public enum NdsRomOverlayTableEntryFlags : byte
7 | {
8 | Compressed = 1,
9 | AuthenticationCode = 2
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/AppearanceSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct AppearanceSettings()
4 | {
5 | public string Theme = "Dark";
6 | public float UiScale = 1f;
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/View/PropertyGrid/MapDataReferenceEditMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.View.PropertyGrid;
2 |
3 | internal enum MapDataReferenceEditMode
4 | {
5 | None,
6 | Clear,
7 | UpdateAdd,
8 | Pick
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/OpenGL/RenderGroups/MapData/IColoredRenderGroup.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 |
3 | namespace HaroohiePals.MarioKartToolbox.OpenGL.RenderGroups.MapData;
4 |
5 | interface IColoredRenderGroup
6 | {
7 | Color Color { get; set; }
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/MkdsMapObjectGroup.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapData;
2 |
3 | public enum MkdsMapObjectGroup : ushort
4 | {
5 | Ambient,
6 | Common,
7 | Obstacle,
8 | Scenery,
9 | Enemy,
10 | Boss
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/IViewportCollision.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Mathematics;
2 |
3 | namespace HaroohiePals.Gui.Viewport;
4 |
5 | public interface IViewportCollision
6 | {
7 | bool FindIntersection(Vector3d start, Vector3d end, out Vector3d intersection);
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Gui/ViewModel/CourseEditor/CourseEditorRequestableAction.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Gui.ViewModel.CourseEditor;
2 |
3 | enum CourseEditorRequestableAction
4 | {
5 | None,
6 | Insert,
7 | SelectAll
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Reference/IReferenceResolver.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Reference;
2 |
3 | public interface IReferenceResolver where T : IReferenceable
4 | {
5 | Reference Resolve(Reference reference, Reference.RemoveReferenceFunc removeFunc);
6 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/KCollision/MkdsColTypeInfo.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.KCollision;
2 |
3 | public record MkdsColTypeInfo(MkdsCollisionType Type, bool IsFloor, bool IsWall, bool IgnoreDrivers,
4 | bool IgnoreItems, string[] Variants);
5 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/MkdsAreaType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapData;
2 |
3 | public enum MkdsAreaType : byte
4 | {
5 | Type0,
6 | Camera,
7 | MissionEnd,
8 | ClipArea,
9 | EnemyRecalculation,
10 | MissionRivalPass
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Race/RaceDisplayMode.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.Race;
2 |
3 | public enum RaceDisplayMode
4 | {
5 | Default,
6 | Title,
7 | Replay,
8 | CourseIntro,
9 | MgIntro,
10 | Award,
11 | StaffRoll
12 | }
13 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Rom/ReadOverlayFilesResult.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Nitro.Fs;
2 | using System.Collections.Generic;
3 |
4 | namespace HaroohiePals.NitroKart.Rom;
5 |
6 | record ReadOverlayFilesResult(IReadOnlyList FatEntries, IReadOnlyList FileData);
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/CircleRenderer.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics3d.OpenGL.Renderers;
2 |
3 | public class CircleRenderer() : MeshRenderer(Resources.Models.QuadObj, null, Resources.Shaders.CircleVertex,
4 | Resources.Shaders.CircleFragment, true, true);
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Discord/RichPresenceApplicationState.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Discord;
2 |
3 | enum RichPresenceApplicationState
4 | {
5 | Idle,
6 | CourseEditor,
7 | CharacterKartEditor,
8 | RomExplorer
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/G3dConfig.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.G3d;
2 |
3 | public static class G3dConfig
4 | {
5 | public const int MaxJointCount = 64;
6 | public const int MaxMaterialCount = 64;
7 | public const int MaxShpCount = 64;
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Actions/HaroohiePals.Actions.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | disable
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Reference/IReferenceResolverCollection.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Reference;
2 |
3 | public interface IReferenceResolverCollection
4 | {
5 | Reference Resolve(Reference reference, Reference.RemoveReferenceFunc removeFunc)
6 | where T : IReferenceable;
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/MkdsAreaShapeType.cs:
--------------------------------------------------------------------------------
1 | using System.Xml.Serialization;
2 |
3 | namespace HaroohiePals.NitroKart.MapData;
4 |
5 | public enum MkdsAreaShapeType : byte
6 | {
7 | [XmlEnum("box")]
8 | Box = 0,
9 |
10 | [XmlEnum("cylinder")]
11 | Cylinder = 1
12 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox.CommandLineInterface/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "HaroohiePals.MarioKartToolbox.CommandLineInterface": {
4 | "commandName": "Project",
5 | "commandLineArgs": "create testfiles/rom.nds romproj -o testfiles/proj"
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Validation/IValidationRule.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Validation;
2 |
3 | public interface IValidationRule
4 | {
5 | string Name { get; }
6 | }
7 |
8 | public interface IValidationRule : IValidationRule
9 | {
10 | IReadOnlyList Validate(TObj obj);
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Validation/UnfixableValidationErrorException.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Validation;
2 |
3 | public class UnfixableValidationErrorException : Exception
4 | {
5 | public UnfixableValidationErrorException() : base("This validation error doesn't provide a fix.")
6 | {
7 |
8 | }
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/DiscordSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct DiscordSettings()
4 | {
5 | public bool EnableRichPresence = true;
6 | public bool ShowRomTitle = true;
7 | public bool ShowCourseName = true;
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/Framebuffers/IPickableFramebufferProvider.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport.Framebuffers;
2 |
3 | public interface IPickableFramebufferProvider : IGLFramebufferProvider
4 | {
5 | uint GetPickingId(int x, int y);
6 | uint[] GetPickingIds(int x, int y, int width, int height);
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IMapDataCollection.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO.Reference;
2 | using System.Collections;
3 |
4 | namespace HaroohiePals.MarioKart.MapData;
5 |
6 | public interface IMapDataCollection : IEnumerable
7 | {
8 | void ResolveReferences(IReferenceResolverCollection resolverCollection);
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Math/Transform.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Mathematics;
2 |
3 | namespace HaroohiePals.Mathematics;
4 |
5 | public record struct Transform(Vector3d Translation, Vector3d Rotation, Vector3d Scale)
6 | {
7 | public static readonly Transform Identity = new(Vector3d.Zero, Vector3d.Zero, Vector3d.One);
8 | }
9 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/Framebuffers/IGLFramebufferProvider.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Graphics3d.OpenGL;
2 |
3 | namespace HaroohiePals.Gui.Viewport.Framebuffers;
4 |
5 | public interface IGLFramebufferProvider : IDisposable
6 | {
7 | void BeginRendering(int width, int height);
8 | GLTexture EndRendering();
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/PropertyGrid/IPropertyEditor.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 |
3 | namespace HaroohiePals.Gui.View.PropertyGrid;
4 |
5 | public interface IPropertyEditor
6 | {
7 | bool IsEditorForProperty(PropertyInfo propertyInfo);
8 |
9 | bool Draw(string label, PropertyEditorContext context);
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Animation/VisibilityAnimationResult.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Animation;
2 |
3 | public sealed class VisibilityAnimationResult
4 | {
5 | public bool IsVisible;
6 |
7 | public void Clear()
8 | {
9 | IsVisible = false;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics/Origin.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics
2 | {
3 | public enum XOrigin
4 | {
5 | Left = 0,
6 | Center = 1,
7 | Right = 2
8 | }
9 |
10 | public enum YOrigin
11 | {
12 | Top = 0,
13 | Center = 1,
14 | Bottom = 2
15 | }
16 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/Fx16Attribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
6 | public sealed class Fx16Attribute : Attribute
7 | {
8 | public Fx16Attribute() { }
9 | }
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/Fx32Attribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
6 | public sealed class Fx32Attribute : Attribute
7 | {
8 | public Fx32Attribute() { }
9 | }
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Discord/IApplicationDiscordRichPresenceService.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Discord;
2 |
3 | interface IApplicationDiscordRichPresenceService
4 | {
5 | void SetGameName(string gameName);
6 | void SetApplicationState(RichPresenceApplicationState state);
7 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/IgnoreAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
6 | public sealed class IgnoreAttribute : Attribute
7 | {
8 | public IgnoreAttribute() { }
9 | }
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/IMapDataEntry.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO.Reference;
2 |
3 | namespace HaroohiePals.MarioKart.MapData;
4 |
5 | public interface IMapDataEntry
6 | {
7 | void ResolveReferences(IReferenceResolverCollection resolverCollection);
8 | void ReleaseReferences();
9 | IMapDataEntry Clone();
10 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/KCollision/MkdsCollisionVariant.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.KCollision;
2 |
3 | public enum MkdsCollisionVariant : int
4 | {
5 | Variant0,
6 | Variant1,
7 | Variant2,
8 | Variant3,
9 | Variant4,
10 | Variant5,
11 | Variant6,
12 | Variant7
13 | }
14 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Sound/HaroohiePals.Sound.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Animation/JointAnimation/G3dJointAnimationFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary.Animation.JointAnimation;
4 |
5 | [Flags]
6 | public enum G3dJointAnimationFlags
7 | {
8 | Interpolation = 0x01,
9 | EndToStartInterpolation = 0x02
10 | }
11 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart.Validation/Course/IMkdsCourseValidatorFactory.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.NitroKart.Course;
2 | using HaroohiePals.Validation;
3 |
4 | namespace HaroohiePals.NitroKart.Validation.Course;
5 |
6 | public interface IMkdsCourseValidatorFactory
7 | {
8 | IValidator CreateMkdsCourseValidator();
9 | }
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/ImGuiFont.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui;
2 |
3 | public sealed record ImGuiFont(byte[] Data, float Size)
4 | {
5 | public static readonly ImGuiFont Default = new ImGuiFont(Resources.Fonts.Roboto_Regular, 15f);
6 | public static readonly ImGuiFont DefaultIconFont = new ImGuiFont(Resources.Fonts.fa_solid_900, 16f);
7 | }
8 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/IMkdsMapObjDatabase.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.NitroKart.MapData;
2 | using System.Collections.Generic;
3 |
4 | namespace HaroohiePals.NitroKart.MapObj;
5 |
6 | public interface IMkdsMapObjDatabase
7 | {
8 | IReadOnlyList GetAll();
9 | MkdsMapObjInfo GetById(MkdsMapObjectId id);
10 | }
11 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d/HaroohiePals.Graphics3d.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Model/G3dShapeFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary.Model;
4 |
5 | [Flags]
6 | public enum G3dShapeFlags : uint
7 | {
8 | UseNormal = 0x00000001,
9 | UseColor = 0x00000002,
10 | UseTexCoord = 0x00000004,
11 | UseRestoreMtx = 0x00000008
12 | };
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/KeyBindingSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct KeyBindingSettings()
4 | {
5 | public ShortcutKeyBindingSettings Shortcuts = new();
6 | public ViewportKeyBindingSettings Viewport = new();
7 | public GizmoKeyBindingSettings Gizmo = new();
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart.Validation/MapData/IMkdsMapDataValidatorFactory.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.NitroKart.MapData.Intermediate;
2 | using HaroohiePals.Validation;
3 |
4 | namespace HaroohiePals.NitroKart.Validation.MapData;
5 |
6 | public interface IMkdsMapDataValidatorFactory
7 | {
8 | IValidator CreateMkdsMapDataValidator();
9 | }
10 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/Common/ItemboxShadowType.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace HaroohiePals.NitroKart.MapObj.Common;
8 |
9 | public enum ItemboxShadowType : short
10 | {
11 | Shadow2d,
12 | Shadow3d,
13 | None
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Archive/ArcFile.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Archive
2 | {
3 | public class ArcFile : ArcEntry
4 | {
5 | public ArcFile(string name, ArcDirectory parent, byte[] data)
6 | : base(name, parent)
7 | {
8 | Data = data;
9 | }
10 |
11 | public byte[] Data { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Animation/TextureSrtAnimation/G3dTextureSrtAnimationFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary.Animation.TextureSrtAnimation;
4 |
5 | [Flags]
6 | public enum G3dTextureSrtAnimationFlags : byte
7 | {
8 | Interpolation = 0x01,
9 | EndToStartInterpolation = 0x02
10 | }
11 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/PropertyGrid/PropertyGridFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Gui.View.PropertyGrid;
4 |
5 | [Flags]
6 | public enum PropertyGridFlags : int
7 | {
8 | None = 0,
9 | ShowCategories = 1,
10 | SortProperty = 2,
11 | SortPropertyDescending = 4,
12 | SortCategory = 8,
13 | SortCategoryDescending = 16,
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.KclViewer/Program.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Gui.View.Modal;
2 | using HaroohiePals.KclViewer.Gui;
3 |
4 | namespace HaroohiePals.KclViewer;
5 |
6 | static class Program
7 | {
8 | private static void Main(string[] args)
9 | {
10 | var modalService = new ModalService();
11 | new KclViewerWindow(modalService).Run();
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/MkdsMapObjInfo.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.NitroKart.MapData;
2 |
3 | namespace HaroohiePals.NitroKart.MapObj;
4 |
5 | public record MkdsMapObjInfo(MkdsMapObjectId Id, string Name, string Description, string[] RequiredFiles, bool IsTimeTrialVisible = true, bool IsPathRequired = false)
6 | {
7 | public override string ToString() => $"{Name}";
8 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/Resources/Shaders/idBlit.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | uniform mat4 projMtxScreenQuad;
4 | uniform vec2 viewportSize;
5 |
6 | layout(location = 0) in vec2 aPos;
7 |
8 | out vec2 texCoord;
9 |
10 | void main()
11 | {
12 | gl_Position = projMtxScreenQuad * vec4(aPos * viewportSize, 0, 1);
13 | texCoord = vec2(aPos.x, 1.0 - aPos.y);
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Rom/MkdsRomProject.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace HaroohiePals.NitroKart.Rom;
8 |
9 | public class MkdsRomProject
10 | {
11 | public string Name { get; set; }
12 | public NdsRomInfo RomInfo { get; set; } = new();
13 | }
14 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Shaders/fogPass.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | uniform mat4 projMtxScreenQuad;
4 | uniform vec2 viewportSize;
5 |
6 | layout(location = 0) in vec2 aPos;
7 |
8 | out vec2 texCoord;
9 |
10 | void main()
11 | {
12 | gl_Position = projMtxScreenQuad * vec4(aPos * viewportSize, 0, 1);
13 | texCoord = vec2(aPos.x, 1.0 - aPos.y);
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/G3dRenderObjectFlag.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d;
4 |
5 | [Flags]
6 | public enum G3dRenderObjectFlag
7 | {
8 | Record = 0x00000001,
9 | NoGeCmd = 0x00000002,
10 | SkipSbcDraw = 0x00000004,
11 | SkipSbcMtxCalc = 0x00000008,
12 | HintObsolete = 0x00000010
13 | };
14 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/BoxRenderer.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Graphics3d.OpenGL.Renderers;
2 |
3 | public class BoxRenderer(bool gpuFixWorkaround = false) : MeshRenderer(Resources.Models.CubeObj,
4 | Resources.Models.BoxTexture,
5 | Resources.Shaders.BoxVertex,
6 | gpuFixWorkaround ? Resources.Shaders.BoxIntelFragment : Resources.Shaders.BoxFragment,
7 | false);
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/WeakMapDataReference.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO.Reference;
2 |
3 | namespace HaroohiePals.MarioKart.MapData;
4 |
5 | public class WeakMapDataReference : Reference
6 | where T : IReferenceable, IMapDataEntry
7 | {
8 | public override bool IsResolved => false;
9 |
10 | public WeakMapDataReference(T target) : base(target, null) { }
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Infrastructure/Discord/IDiscordRichPresenceService.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Infrastructure.Discord;
2 |
3 | interface IDiscordRichPresenceService
4 | {
5 | bool IsEnabled { get; }
6 |
7 | void EnableRichPresence();
8 | void DisableRichPresence();
9 | void SetDetails(string details);
10 | void SetState(string state);
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/MaterialTextureInfo.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Graphics3d;
2 | using HaroohiePals.Nitro.G3;
3 |
4 | namespace HaroohiePals.Nitro.NitroSystem.G3d;
5 |
6 | public sealed class MaterialTextureInfo
7 | {
8 | public double MagW;
9 | public double MagH;
10 |
11 | public GxTexImageParam TexImageParam;
12 |
13 | public Texture Texture;
14 | }
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/Course/MkdsFolderCourse.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO.Archive;
2 |
3 | namespace HaroohiePals.NitroKart.Course;
4 |
5 | public class MkdsFolderCourse : MkdsBinaryCourse
6 | {
7 | public MkdsFolderCourse(string mainPath, string texPath, string courseMapPath)
8 | : base(new DiskArchive(mainPath), texPath == null ? null : new DiskArchive(texPath), courseMapPath) { }
9 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.KCollision/Formats/Mk7Kcl.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.KCollision.Formats
4 | {
5 | public class Mk7Kcl : FloatKartKcl
6 | {
7 | public Mk7Kcl(byte[] data)
8 | : this(new MemoryStream(data, false)) { }
9 |
10 | public Mk7Kcl(Stream stream)
11 | : base(stream, Endianness.LittleEndian) { }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.KCollision/Formats/SmgKcl.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.KCollision.Formats
4 | {
5 | public class SmgKcl : FloatPlatformerKcl
6 | {
7 | public SmgKcl(byte[] data)
8 | : this(new MemoryStream(data, false)) { }
9 |
10 | public SmgKcl(Stream stream)
11 | : base(stream, Endianness.BigEndian) { }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Animation/JointAnimationResultFlag.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Animation;
4 |
5 | [Flags]
6 | public enum JointAnimationResultFlag
7 | {
8 | ScaleOne = 0x01,
9 | RotationZero = 0x02,
10 | TranslationZero = 0x04,
11 | ScaleEx0One = 0x08,
12 | ScaleEx1One = 0x10,
13 | MayaSsc = 0x20
14 | }
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/Common/ItemboxLogicPart.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapObj.Common;
2 |
3 | class ItemboxLogicPart : LogicPart
4 | {
5 | public ItemboxLogicPart(MkdsContext context)
6 | : base(context, LogicPartType.Type0)
7 | {
8 | }
9 |
10 | protected override void Update(Itembox instance)
11 | => instance.Update();
12 | }
13 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/ImSequencer/ImSequencerOptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Gui.View.ImSequencer;
4 |
5 | [Flags]
6 | public enum ImSequencerOptions
7 | {
8 | EditNone = 0,
9 | EditStartEnd = 1 << 1,
10 | ChangeFrame = 1 << 3,
11 | Add = 1 << 4,
12 | Delete = 1 << 5,
13 | CopyPaste = 1 << 6,
14 | EditAll = EditStartEnd | ChangeFrame
15 | }
16 |
--------------------------------------------------------------------------------
/src/HaroohiePals.KCollision/Formats/MkwiiKcl.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.KCollision.Formats
4 | {
5 | public class MkwiiKcl : FloatKartKcl
6 | {
7 | public MkwiiKcl(byte[] data)
8 | : this(new MemoryStream(data, false)) { }
9 |
10 | public MkwiiKcl(Stream stream)
11 | : base(stream, Endianness.BigEndian) { }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapObj/Obstacles/KoopaBlockLogicPart.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapObj.Obstacles;
2 |
3 | sealed class KoopaBlockLogicPart : LogicPart
4 | {
5 | public KoopaBlockLogicPart(MkdsContext context)
6 | : base(context, LogicPartType.Type0) { }
7 |
8 | protected override void Update(KoopaBlock instance)
9 | => instance.Update();
10 | }
11 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/PropertyGrid/PropertyEditorContext.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Actions;
2 | using System.Collections.Generic;
3 |
4 | namespace HaroohiePals.Gui.View.PropertyGrid;
5 |
6 | public class PropertyEditorContext
7 | {
8 | public PropertyGridView Widget;
9 | public PropertyGridItem Property;
10 | public List TempActions;
11 | public bool ApplyEdits = false;
12 | }
13 |
--------------------------------------------------------------------------------
/src/HaroohiePals.KCollision/Formats/Sm3dlKcl.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.KCollision.Formats
4 | {
5 | public class Sm3dlKcl : FloatPlatformerKcl
6 | {
7 | public Sm3dlKcl(byte[] data)
8 | : this(new MemoryStream(data, false)) { }
9 |
10 | public Sm3dlKcl(Stream stream)
11 | : base(stream, Endianness.LittleEndian) { }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/MkdsCameraType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.NitroKart.MapData;
2 |
3 | public enum MkdsCameraType : ushort
4 | {
5 | FixedLookAtDriver = 0,
6 | RouteLookAtDriver = 1,
7 | FixedLookAtTargets = 2,
8 | RouteLookAtTargets = 3,
9 | IntroBottomPlaceholder = 4,
10 | FollowDriverA = 5,
11 | FollowDriverB = 6,
12 | IntroMg = 7,
13 | MrFinish = 8
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/ImGuizmoMoveType.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Gui.Viewport;
2 |
3 | enum ImGuizmoMoveType : int
4 | {
5 | None,
6 | MoveX,
7 | MoveY,
8 | MoveZ,
9 | MoveYZ,
10 | MoveZX,
11 | MoveXY,
12 | MoveScreen,
13 | RotateX,
14 | RotateY,
15 | RotateZ,
16 | RotateScreen,
17 | ScaleX,
18 | ScaleY,
19 | ScaleZ,
20 | ScaleXYZ
21 | }
22 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/Modal/IModalService.cs:
--------------------------------------------------------------------------------
1 | #nullable enable
2 |
3 | using System.Collections.Generic;
4 |
5 | namespace HaroohiePals.Gui.View.Modal;
6 |
7 | public interface IModalService
8 | {
9 | bool IsAnyModalOpen { get; }
10 | void ShowModal(ModalView modal);
11 | void HideModal(ModalView modal);
12 | IReadOnlyCollection GetAllModals();
13 | void Cleanup();
14 | }
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Clipboard/IMapDataClipboard.cs:
--------------------------------------------------------------------------------
1 | #nullable enable
2 | using HaroohiePals.MarioKart.MapData;
3 | using System.Collections.Generic;
4 |
5 | namespace HaroohiePals.MarioKartToolbox.Application.Clipboard;
6 |
7 | interface IMapDataClipboard
8 | {
9 | void SetContents(IEnumerable entries);
10 | IReadOnlyCollection GetContents();
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui.Viewport/Resources/Shaders/idBlit.frag:
--------------------------------------------------------------------------------
1 | #version 400 core
2 |
3 | uniform usampler2DMS idBufferTex;
4 | uniform vec2 viewportSize;
5 |
6 | in vec2 texCoord;
7 |
8 | out uvec4 outPickingId;
9 |
10 | void main()
11 | {
12 | ivec2 intTexCoord = ivec2(int(viewportSize.x * texCoord.x), int(viewportSize.y * texCoord.y));
13 |
14 | outPickingId = texelFetch(idBufferTex, intTexCoord, 0);
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Validation/HaroohiePals.Validation.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL/GLVertexAttribIAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Graphics3d.OpenGL
4 | {
5 | [AttributeUsage(AttributeTargets.Field)]
6 | public sealed class GLVertexAttribIAttribute : Attribute
7 | {
8 | public readonly int Index;
9 |
10 | public GLVertexAttribIAttribute(int index)
11 | {
12 | Index = index;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics/HaroohiePals.Graphics.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Animation/MaterialAnimationResultFlag.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Animation;
4 |
5 | [Flags]
6 | public enum MaterialAnimationResultFlag
7 | {
8 | TextureMatrixScaleOne = 0x01,
9 | TextureMatrixRotationZero = 0x02,
10 | TextureMatrixTranslationZero = 0x04,
11 | TextureMatrixSet = 0x08,
12 | TextureMatrixMult = 0x10,
13 | Wireframe = 0x20
14 | };
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Reference/IReferenceSerializerCollection.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.IO.Reference;
2 |
3 | public interface IReferenceSerializerCollection
4 | {
5 | TId Serialize(Reference reference)
6 | where TRef : IReferenceable;
7 |
8 | TId SerializeOrDefault(Reference reference, TId defaultValue)
9 | where TRef : IReferenceable;
10 |
11 | bool CanSerialize();
12 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/ConstantAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
6 | public sealed class ConstantAttribute : Attribute
7 | {
8 | public object Value { get; }
9 |
10 | public ConstantAttribute(object value)
11 | {
12 | Value = value;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Math/HaroohiePals.Mathematics.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart.Extensions/HaroohiePals.NitroKart.Extensions.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | disable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/Toolbar/ToolbarItem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Gui.View.Toolbar;
4 |
5 | public class ToolbarItem
6 | {
7 | public ToolbarItem(char icon, string label, Action action)
8 | {
9 | Icon = icon;
10 | Label = label;
11 | Action = action;
12 | }
13 |
14 | public char Icon;
15 | public string Label;
16 | public Action Action;
17 | public bool Enabled = true;
18 | }
19 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/ChunkSizeAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
6 | public sealed class ChunkSizeAttribute : Attribute
7 | {
8 | public int Difference { get; }
9 |
10 | public ChunkSizeAttribute(int difference = 0)
11 | {
12 | Difference = difference;
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/IApplicationSettingsService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
4 |
5 | interface IApplicationSettingsService
6 | {
7 | public delegate void SetDelegate(ref ApplicationSettings settings);
8 |
9 | event EventHandler ApplicationSettingsChanged;
10 |
11 | ref readonly ApplicationSettings Settings { get; }
12 |
13 | void Set(SetDelegate setFunc);
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/Binary/NkmdEpat.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.NitroKart.MapData.Binary
4 | {
5 | public class NkmdEpat : NkmdSection
6 | {
7 | public const uint EPATSignature = 0x54415045;
8 |
9 | public NkmdEpat()
10 | : base(EPATSignature, true) { }
11 |
12 | public NkmdEpat(EndianBinaryReaderEx er)
13 | : base(er, EPATSignature, true) { }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart/MapData/Binary/NkmdIpat.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.NitroKart.MapData.Binary
4 | {
5 | public class NkmdIpat : NkmdSection
6 | {
7 | public const uint IPATSignature = 0x54415049;
8 |
9 | public NkmdIpat()
10 | : base(IPATSignature, true) { }
11 |
12 | public NkmdIpat(EndianBinaryReaderEx er)
13 | : base(er, IPATSignature, true) { }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Core/ComponentModel/PrettyArrayTypeConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 | using System.Globalization;
4 |
5 | namespace HaroohiePals.Core.ComponentModel
6 | {
7 | public class PrettyArrayTypeConverter : ArrayConverter
8 | {
9 | public override object ConvertTo(
10 | ITypeDescriptorContext context, CultureInfo culture, object value, Type destType)
11 | {
12 | return "";
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Core/ComponentModel/NestedAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Core.ComponentModel
4 | {
5 | public enum NestType
6 | {
7 | None,
8 | Nested,
9 | Category
10 | }
11 |
12 | public class NestedAttribute : Attribute
13 | {
14 | public NestedAttribute(NestType type)
15 | {
16 | NestType = type;
17 | }
18 |
19 | public NestType NestType { get; set; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Animation/G3dAnimation.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Nitro.NitroSystem.G3d.Animation;
2 | using HaroohiePals.Nitro.NitroSystem.G3d.Binary.Model;
3 |
4 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary;
5 |
6 | public abstract class G3dAnimation
7 | {
8 | public G3dAnimationHeader Header;
9 | public ushort NrFrames;
10 |
11 | public abstract void InitializeAnimationObject(G3dAnimationObject animationObject, G3dModel model);
12 | }
13 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Application/Settings/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.MarioKartToolbox.Application.Settings;
2 |
3 | record struct ApplicationSettings()
4 | {
5 | public DiscordSettings Discord = new();
6 | public GameSettings Game = new();
7 | public AppearanceSettings Appearance = new();
8 | public ViewportSettings Viewport = new();
9 | public KeyBindingSettings KeyBindings = new();
10 | public CourseEditorSettings CourseEditor = new();
11 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/OpenGL/Renderers/IRendererFactory.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Graphics3d.OpenGL.Renderers;
2 |
3 | namespace HaroohiePals.MarioKartToolbox.OpenGL.Renderers;
4 |
5 | interface IRendererFactory
6 | {
7 | MeshRenderer CreateCircleRenderer();
8 | MeshRenderer CreateBoxRenderer();
9 | MeshRenderer CreateBoxAreaRenderer(bool render2d);
10 | MeshRenderer CreateCylinderAreaRenderer(bool render2d);
11 | MeshRenderer CreateKartRenderer(bool render2d);
12 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.JNLib.Spl/FloatHelper.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.JNLib.Spl
2 | {
3 | internal static class FloatHelper
4 | {
5 | public static byte ToByte(double x, string fieldName = "")
6 | {
7 | int result = (int)System.Math.Round(x * 256);
8 | if (result < 0 || result >= 256)
9 | throw new Exception($"{fieldName} out of range (0 <= x <= 0.99609375)");
10 | return (byte)result;
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Graphics3d.OpenGL.Renderers/Resources/Models/quad.obj:
--------------------------------------------------------------------------------
1 | # Blender 3.1.0
2 | # www.blender.org
3 | mtllib quad.mtl
4 | o Cube.001
5 | v 1.000000 -0.000000 -1.000000
6 | v -1.000000 -0.000000 -1.000000
7 | v 1.000000 -0.000000 1.000000
8 | v -1.000000 -0.000000 1.000000
9 | vn -0.0000 1.0000 -0.0000
10 | vt 1.000000 1.000000
11 | vt 0.000000 1.000000
12 | vt 1.000000 0.000000
13 | vt 0.000000 0.000000
14 | s 0
15 | usemtl Material.001
16 | f 3/3/1 1/1/1 2/2/1
17 | f 3/3/1 2/2/1 4/4/1
18 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/Util.cs:
--------------------------------------------------------------------------------
1 | using OpenTK.Graphics.OpenGL4;
2 | using System.Diagnostics;
3 |
4 | namespace HaroohiePals.Gui
5 | {
6 | internal static class Util
7 | {
8 | [Conditional("DEBUG")]
9 | public static void CheckGLError(string title)
10 | {
11 | var error = GL.GetError();
12 | if (error != ErrorCode.NoError)
13 | {
14 | Debug.Print($"{title}: {error}");
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/HaroohiePals.KclViewer/Files/kclOctreeCube.frag:
--------------------------------------------------------------------------------
1 | #version 400 core
2 |
3 | layout (location = 0) out vec4 FragColor;
4 | layout (location = 1) out uvec4 outPickingId;
5 |
6 | in vec4 vertexColor;
7 | flat in uint pickingId;
8 |
9 | void main()
10 | {
11 | FragColor = vertexColor;
12 |
13 | outPickingId.r = pickingId & 0xFFu;
14 | outPickingId.g = (pickingId >> 8) & 0xFFu;
15 | outPickingId.b = (pickingId >> 16) & 0xFFu;
16 | outPickingId.a = (pickingId >> 24) & 0xFFu;
17 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart.Validation/Course/MkdsRequiredMapObjFileValidationError.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Validation;
2 |
3 | namespace HaroohiePals.NitroKart.Validation.Course;
4 |
5 | public class MkdsRequiredMapObjFileValidationError : ValidationError
6 | {
7 | public MkdsRequiredMapObjFileValidationError(IValidationRule rule, string fileName, object source)
8 | : base(rule, ErrorLevel.Error, $"Missing Required MapObj File: {fileName}", source, false)
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/HaroohiePals.IO/Serialization/AlignAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.IO.Serialization
4 | {
5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Class | AttributeTargets.Struct, Inherited = true, AllowMultiple = false)]
6 | public sealed class AlignAttribute : Attribute
7 | {
8 | public int Alignment { get; }
9 |
10 | public AlignAttribute(int alignment)
11 | {
12 | Alignment = alignment;
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.KCollision/HaroohiePals.KCollision.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | disable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Model/PaletteDictionaryData.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary.Model;
4 |
5 | public sealed class PaletteDictionaryData : IG3dDictionaryData
6 | {
7 | public static ushort DataSize => 4;
8 |
9 | public void Read(EndianBinaryReaderEx er) => er.ReadObject(this);
10 | public void Write(EndianBinaryWriterEx er) => er.WriteObject(this);
11 |
12 | public ushort Offset;
13 | public ushort Flags;
14 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/HaroohiePals.MarioKart.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | disable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKart/MapData/UnresolvedBinaryMapDataReference.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO.Reference;
2 |
3 | namespace HaroohiePals.MarioKart.MapData;
4 |
5 | public class UnresolvedBinaryMapDataReference : Reference
6 | where T : IReferenceable, IMapDataEntry
7 | {
8 | public override bool IsResolved => false;
9 |
10 | public int UnresolvedId { get; }
11 |
12 | public UnresolvedBinaryMapDataReference(int unresolvedId)
13 | {
14 | UnresolvedId = unresolvedId;
15 | }
16 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/Resources/Shaders/kclOctreeCube.frag:
--------------------------------------------------------------------------------
1 | #version 400 core
2 |
3 | layout (location = 0) out vec4 FragColor;
4 | layout (location = 1) out uvec4 outPickingId;
5 |
6 | in vec4 vertexColor;
7 | flat in uint pickingId;
8 |
9 | void main()
10 | {
11 | FragColor = vertexColor;
12 |
13 | outPickingId.r = pickingId & 0xFFu;
14 | outPickingId.g = (pickingId >> 8) & 0xFFu;
15 | outPickingId.b = (pickingId >> 16) & 0xFFu;
16 | outPickingId.a = (pickingId >> 24) & 0xFFu;
17 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Animation/AnimationStepExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Animation;
4 |
5 | public static class AnimationStepExtensions
6 | {
7 | public static int GetStepSize(this AnimationStep step) => step switch
8 | {
9 | AnimationStep.Step1 => 1,
10 | AnimationStep.Step2 => 2,
11 | AnimationStep.Step4 => 4,
12 | _ => throw new ArgumentOutOfRangeException(nameof(step), step, null)
13 | };
14 | }
15 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/Binary/Animation/TexturePatternAnimation/TexturePatternFrameValue.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.Nitro.NitroSystem.G3d.Binary.Animation.TexturePatternAnimation;
4 |
5 | public sealed class TexturePatternFrameValue
6 | {
7 | public TexturePatternFrameValue(EndianBinaryReaderEx er)
8 | {
9 | er.ReadObject(this);
10 | }
11 |
12 | public ushort FrameNumber;
13 | public byte TextureIndex;
14 | public byte PaletteIndex;
15 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro.NitroSystem/G3d/SbcCommand.cs:
--------------------------------------------------------------------------------
1 | namespace HaroohiePals.Nitro.NitroSystem.G3d;
2 |
3 | public enum SbcCommand : byte
4 | {
5 | Nop = 0x00,
6 | Return = 0x01,
7 | Node = 0x02,
8 | Matrix = 0x03,
9 | Material = 0x04,
10 | Shape = 0x05,
11 | NodeDescription = 0x06,
12 | Billboard = 0x07,
13 | BillboardY = 0x08,
14 | NodeMix = 0x09,
15 | CallDisplayList = 0x0A,
16 | PosScale = 0x0B,
17 | EnvironmentMap = 0x0C,
18 | ProjectionMap = 0x0D
19 | }
20 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Nitro/Fs/DirectoryTableEntry.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.IO;
2 |
3 | namespace HaroohiePals.Nitro.Fs;
4 |
5 | public sealed class DirectoryTableEntry
6 | {
7 | public DirectoryTableEntry() { }
8 |
9 | public DirectoryTableEntry(EndianBinaryReaderEx er)
10 | => er.ReadObject(this);
11 |
12 | public void Write(EndianBinaryWriterEx er)
13 | => er.WriteObject(this);
14 |
15 | public uint EntryStart;
16 | public ushort EntryFileId;
17 | public ushort ParentId;
18 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.MarioKartToolbox/KCollision/MkdsKclPrism.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.KCollision;
2 |
3 | namespace HaroohiePals.MarioKartToolbox.KCollision;
4 |
5 | public class MkdsKclPrism : MkdsKclAttributeAdapter
6 | {
7 | private KclPrism _prism;
8 |
9 | public MkdsKclPrism(KclPrism prism)
10 | {
11 | _prism = prism;
12 | }
13 |
14 | public override MkdsKclPrismAttribute Attribute
15 | {
16 | get => _prism.Attribute;
17 | set => _prism.Attribute = value;
18 | }
19 | }
--------------------------------------------------------------------------------
/src/HaroohiePals.NitroKart.Validation/MapData/Sections/MobjSettings/MkdsMobjSettingsValidationError.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Validation;
2 |
3 | namespace HaroohiePals.NitroKart.Validation.MapData.Sections.MobjSettings;
4 |
5 | internal class MkdsMobjSettingsValidationError : ValidationError
6 | {
7 | public MkdsMobjSettingsValidationError(IValidationRule rule, string message, object source)
8 | : base(rule, ErrorLevel.Error, $"Invalid MapObj Setting: {message}", source, false)
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/HaroohiePals.Gui/View/WindowContentView.cs:
--------------------------------------------------------------------------------
1 | using HaroohiePals.Gui.View.Menu;
2 | using System.Collections.Generic;
3 |
4 | namespace HaroohiePals.Gui.View;
5 |
6 | public abstract class WindowContentView : IView
7 | {
8 | ///
9 | /// Menu entries to merge on top of the base menu entries
10 | ///
11 | public virtual IReadOnlyCollection