├── .gitignore ├── AForge.Imaging.dll ├── AForge.Math.dll ├── Core ├── Core.csproj ├── CoreException.cs ├── CoreTracer.cs ├── DebugConsole │ ├── DebugConsole.cs │ ├── FieldInvocation.cs │ └── MethodInvocation.cs ├── Factory │ ├── ClassGenerator.cs │ ├── TdfXmlConverter.cs │ ├── TypeInstancePair.cs │ └── XmlXmlConverter.cs ├── Helpers.cs ├── Input │ ├── InputManager.cs │ └── MdxInput.cs ├── MapValidator.cs ├── Networks │ └── XboxFTP.cs ├── Pool │ ├── Pool.cs │ ├── PoolException.cs │ ├── TagAlreadyExistsException.cs │ └── TagNotFoundException.cs ├── Project │ └── ProjectManager.cs ├── Prometheus.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── Radiosity │ ├── Console │ │ ├── ConsoleWriter.cs │ │ └── WinConsole.cs │ ├── PhotonMapping │ │ ├── HeapSort.cs │ │ ├── PhotonMap.cs │ │ ├── QuickSort.cs │ │ └── Vector3.cs │ ├── Radiosity.cs │ ├── Radiosity.save.cs │ ├── Radiosity.static.cs │ ├── RadiosityException.cs │ ├── TextureMapping │ │ ├── ExposureMapOperator.cs │ │ ├── LinearToneMapper.cs │ │ ├── Reinhard5ToneMapOperator.cs │ │ ├── ReinhardToneMapOperator.cs │ │ └── TextureMapping.cs │ └── Utils │ │ └── LightmapUtils.cs ├── Rendering │ ├── Camera │ │ ├── Camera.cs │ │ ├── CameraStopStyle.cs │ │ ├── CameraTranslationPlane.cs │ │ ├── FrustumPlane.cs │ │ └── RunningAvg.cs │ ├── RenderCore.cs │ ├── RenderState.cs │ ├── SceneState.cs │ └── ScreenCapture.cs ├── Resources │ ├── 3ds │ │ └── prom_logo.max │ ├── X │ │ ├── prom_logo.X │ │ └── sand.bmp │ ├── shaders │ │ └── deferred_shading.fx │ └── textures │ │ ├── sand.bmp │ │ ├── sand.dds │ │ └── sand.tif ├── Settings.cs └── Tools │ ├── PTABuilder.cs │ └── TagListCompiler.cs ├── Halo 2 ├── Compiler │ ├── Classes │ │ ├── Class.cs │ │ ├── ClassManager.cs │ │ ├── Element.cs │ │ ├── ElementType.cs │ │ └── ElementWrapper.cs │ └── Data │ │ ├── AlignmentConstants.cs │ │ ├── CacheFileSound.cs │ │ ├── Coconuts.cs │ │ ├── Globals.cs │ │ ├── ResourceBlock.cs │ │ ├── Tag.cs │ │ └── UnicodeStringList.cs ├── Halo 2.csproj ├── Platforms │ ├── Shared │ │ └── SharedMaps.cs │ └── Xbox │ │ ├── Halo2XboxGameDefinition.cs │ │ ├── Halo2XboxMap.cs │ │ ├── MapFileList.cs │ │ └── ScriptEngine.cs ├── Properties │ └── AssemblyInfo.cs ├── Resources │ ├── Classes │ │ ├── ai_dialogue_globals.class │ │ ├── ai_mission_dialogue.class │ │ ├── antenna.class │ │ ├── biped.class │ │ ├── bitmap.class │ │ ├── breakable_surface.class │ │ ├── camera_track.class │ │ ├── cellular_automata.class │ │ ├── cellular_automata2d.class │ │ ├── character.class │ │ ├── chocolate_mountain.class │ │ ├── cloth.class │ │ ├── collision_model.class │ │ ├── colony.class │ │ ├── color_table.class │ │ ├── contrail.class │ │ ├── crate.class │ │ ├── creature.class │ │ ├── damage_effect.class │ │ ├── decal.class │ │ ├── decorator_set.class │ │ ├── decorators.class │ │ ├── detail_object_collection.class │ │ ├── device.class │ │ ├── device_control.class │ │ ├── device_light_fixture.class │ │ ├── device_machine.class │ │ ├── dialogue.class │ │ ├── effect.class │ │ ├── equipment.class │ │ ├── garbage.class │ │ ├── globals.class │ │ ├── hud_globals.class │ │ ├── hud_message_text.class │ │ ├── hud_number.class │ │ ├── item.class │ │ ├── item_collection.class │ │ ├── lens_flare.class │ │ ├── light.class │ │ ├── light_volume.class │ │ ├── liquid.class │ │ ├── material_effects.class │ │ ├── material_physics.class │ │ ├── meter.class │ │ ├── model.class │ │ ├── model_animation_graph.class │ │ ├── multilingual_unicode_string_list.class │ │ ├── multiplayer_globals.class │ │ ├── multiplayer_scenario_description.class │ │ ├── multiplayer_variant_settings_interface_definition.class │ │ ├── new_hud_definition.class │ │ ├── object.class │ │ ├── particle.class │ │ ├── particle_model.class │ │ ├── particle_physics.class │ │ ├── patchy_fog.class │ │ ├── physics.class │ │ ├── physics_model.class │ │ ├── pixel_shader.class │ │ ├── planar_fog.class │ │ ├── point_physics.class │ │ ├── projectile.class │ │ ├── render_model.class │ │ ├── scenario.class │ │ ├── scenario_structure_bsp.class │ │ ├── scenario_structure_lightmap.class │ │ ├── scenery.class │ │ ├── screen_effect.class │ │ ├── shader.class │ │ ├── shader_light_response.class │ │ ├── shader_pass.class │ │ ├── shader_template.class │ │ ├── sky.class │ │ ├── sound.class │ │ ├── sound_cache_file_gestalt.class │ │ ├── sound_classes.class │ │ ├── sound_dialogue_constants.class │ │ ├── sound_effect_collection.class │ │ ├── sound_effect_template.class │ │ ├── sound_environment.class │ │ ├── sound_looping.class │ │ ├── sound_mix.class │ │ ├── sound_scenery.class │ │ ├── stereo_system.class │ │ ├── style.class │ │ ├── text_value_pair_definition.class │ │ ├── unit.class │ │ ├── user_interface_globals_definition.class │ │ ├── user_interface_list_skin_definition.class │ │ ├── user_interface_screen_widget_definition.class │ │ ├── user_interface_shared_globals_definition.class │ │ ├── vehicle.class │ │ ├── vehicle_collection.class │ │ ├── vertex_shader.class │ │ ├── weapon.class │ │ ├── weather_system.class │ │ └── wind.class │ ├── halo2xbox-paidcontent.pta │ └── halo2xbox.pta └── Tags │ ├── Classes │ ├── ai_dialogue_globals.cs │ ├── ai_mission_dialogue.cs │ ├── antenna.cs │ ├── biped.cs │ ├── bitmap.cs │ ├── breakable_surface.cs │ ├── camera_track.cs │ ├── cellular_automata.cs │ ├── cellular_automata2d.cs │ ├── character.cs │ ├── chocolate_mountain.cs │ ├── cloth.cs │ ├── collision_model.cs │ ├── colony.cs │ ├── color_table.cs │ ├── contrail.cs │ ├── crate.cs │ ├── creature.cs │ ├── damage_effect.cs │ ├── decal.cs │ ├── decorator_set.cs │ ├── decorators.cs │ ├── detail_object_collection.cs │ ├── device.cs │ ├── device_control.cs │ ├── device_light_fixture.cs │ ├── device_machine.cs │ ├── dialogue.cs │ ├── effect.cs │ ├── equipment.cs │ ├── garbage.cs │ ├── globals.cs │ ├── hud_globals.cs │ ├── hud_message_text.cs │ ├── hud_number.cs │ ├── item.cs │ ├── item_collection.cs │ ├── lens_flare.cs │ ├── light.cs │ ├── light_volume.cs │ ├── liquid.cs │ ├── material_effects.cs │ ├── material_physics.cs │ ├── meter.cs │ ├── model.cs │ ├── model_animation_graph.cs │ ├── multilingual_unicode_string_list.cs │ ├── multiplayer_globals.cs │ ├── multiplayer_scenario_description.cs │ ├── multiplayer_variant_settings_interface_definition.cs │ ├── new_hud_definition.cs │ ├── object.cs │ ├── particle.cs │ ├── particle_model.cs │ ├── particle_physics.cs │ ├── patchy_fog.cs │ ├── physics.cs │ ├── physics_model.cs │ ├── pixel_shader.cs │ ├── planar_fog.cs │ ├── point_physics.cs │ ├── projectile.cs │ ├── render_model.cs │ ├── scenario.cs │ ├── scenario_structure_bsp.cs │ ├── scenario_structure_lightmap.cs │ ├── scenery.cs │ ├── screen_effect.cs │ ├── shader.cs │ ├── shader_light_response.cs │ ├── shader_pass.cs │ ├── shader_template.cs │ ├── sky.cs │ ├── sound.cs │ ├── sound_cache_file_gestalt.cs │ ├── sound_classes.cs │ ├── sound_dialogue_constants.cs │ ├── sound_effect_collection.cs │ ├── sound_effect_template.cs │ ├── sound_environment.cs │ ├── sound_looping.cs │ ├── sound_mix.cs │ ├── sound_scenery.cs │ ├── stereo_system.cs │ ├── style.cs │ ├── text_value_pair_definition.cs │ ├── unit.cs │ ├── user_interface_globals_definition.cs │ ├── user_interface_list_skin_definition.cs │ ├── user_interface_screen_widget_definition.cs │ ├── user_interface_shared_globals_definition.cs │ ├── vehicle.cs │ ├── vehicle_collection.cs │ ├── vertex_shader.cs │ ├── weapon.cs │ ├── weather_system.cs │ └── wind.cs │ ├── Fields │ ├── Angle.cs │ ├── AngleBounds.cs │ ├── ArgbColor.cs │ ├── BitmapData.cs │ ├── Block.cs │ ├── CharBlockIndex.cs │ ├── CharInteger.cs │ ├── Data.cs │ ├── Enum.cs │ ├── FixedLengthString.cs │ ├── Flags.cs │ ├── FractionBounds.cs │ ├── LongBlockIndex.cs │ ├── LongInteger.cs │ ├── LongerFixedLengthString.cs │ ├── Pad.cs │ ├── Point2D.cs │ ├── PredictedResource.cs │ ├── Real.cs │ ├── RealArgbColor.cs │ ├── RealBounds.cs │ ├── RealEulerAngles2D.cs │ ├── RealEulerAngles3D.cs │ ├── RealFraction.cs │ ├── RealPlane2D.cs │ ├── RealPlane3D.cs │ ├── RealPoint2D.cs │ ├── RealPoint3D.cs │ ├── RealQuaternion.cs │ ├── RealRgbColor.cs │ ├── RealVector2D.cs │ ├── RealVector3D.cs │ ├── Rectangle2D.cs │ ├── ResourceBlock.cs │ ├── ResourceBlockInverted.cs │ ├── RgbColor.cs │ ├── ShortBlockIndex.cs │ ├── ShortInteger.cs │ ├── ShortIntegerBounds.cs │ ├── Skip.cs │ ├── StringId.cs │ ├── TagReference.cs │ ├── TagSignature.cs │ └── VariableLengthString.cs │ ├── Halo2TypeTable.cs │ └── Xml │ ├── ai_dialogue_globals.xml │ ├── ai_mission_dialogue.xml │ ├── antenna.xml │ ├── biped.xml │ ├── bitmap.xml │ ├── breakable_surface.xml │ ├── camera_track.xml │ ├── cellular_automata.xml │ ├── cellular_automata2d.xml │ ├── character.xml │ ├── chocolate_mountain.xml │ ├── cloth.xml │ ├── collision_model.xml │ ├── colony.xml │ ├── color_table.xml │ ├── contrail.xml │ ├── crate.xml │ ├── creature.xml │ ├── damage_effect.xml │ ├── decal.xml │ ├── decorator_set.xml │ ├── decorators.xml │ ├── detail_object_collection.xml │ ├── device.xml │ ├── device_control.xml │ ├── device_light_fixture.xml │ ├── device_machine.xml │ ├── dialogue.xml │ ├── effect.xml │ ├── equipment.xml │ ├── garbage.xml │ ├── globals.xml │ ├── hud_globals.xml │ ├── hud_message_text.xml │ ├── hud_number.xml │ ├── item.xml │ ├── item_collection.xml │ ├── lens_flare.xml │ ├── light.xml │ ├── light_volume.xml │ ├── liquid.xml │ ├── material_effects.xml │ ├── material_physics.xml │ ├── meter.xml │ ├── model.xml │ ├── model_animation_graph.xml │ ├── multilingual_unicode_string_list.xml │ ├── multiplayer_globals.xml │ ├── multiplayer_scenario_description.xml │ ├── multiplayer_variant_settings_interface_definition.xml │ ├── new_hud_definition.xml │ ├── object.xml │ ├── particle.xml │ ├── particle_model.xml │ ├── particle_physics.xml │ ├── patchy_fog.xml │ ├── physics.xml │ ├── physics_model.xml │ ├── pixel_shader.xml │ ├── planar_fog.xml │ ├── point_physics.xml │ ├── projectile.xml │ ├── render_model.xml │ ├── scenario.xml │ ├── scenario_structure_bsp.xml │ ├── scenario_structure_lightmap.xml │ ├── scenery.xml │ ├── screen_effect.xml │ ├── shader.xml │ ├── shader_light_response.xml │ ├── shader_pass.xml │ ├── shader_template.xml │ ├── sky.xml │ ├── sound.xml │ ├── sound_cache_file_gestalt.xml │ ├── sound_classes.xml │ ├── sound_dialogue_constants.xml │ ├── sound_effect_collection.xml │ ├── sound_effect_template.xml │ ├── sound_environment.xml │ ├── sound_looping.xml │ ├── sound_mix.xml │ ├── sound_scenery.xml │ ├── stereo_system.xml │ ├── style.xml │ ├── text_value_pair_definition.xml │ ├── unit.xml │ ├── user_interface_globals_definition.xml │ ├── user_interface_list_skin_definition.xml │ ├── user_interface_screen_widget_definition.xml │ ├── user_interface_shared_globals_definition.xml │ ├── vehicle.xml │ ├── vehicle_collection.xml │ ├── vertex_shader.xml │ ├── weapon.xml │ ├── weather_system.xml │ └── wind.xml ├── Halo ├── Compiler │ ├── BitmapPixel.cs │ ├── BspMagic.cs │ ├── IndexMagic.cs │ ├── MapBuildVersion.cs │ ├── MapFormat.cs │ ├── MapUsage.cs │ ├── Predictor.cs │ ├── Tag.cs │ ├── TagLibrary.cs │ └── XPE │ │ ├── Cxpe.cs │ │ └── Xpe.cs ├── Controls │ ├── ARGBColor.Designer.cs │ ├── ARGBColor.cs │ ├── ARGBColor.resx │ ├── Angle.Designer.cs │ ├── Angle.cs │ ├── Angle.resx │ ├── Block.Designer.cs │ ├── Block.cs │ ├── Block.resx │ ├── CharInteger.Designer.cs │ ├── CharInteger.cs │ ├── CharInteger.resx │ ├── Enum.Designer.cs │ ├── Enum.cs │ ├── Enum.resx │ ├── FixedLengthString.Designer.cs │ ├── FixedLengthString.cs │ ├── FixedLengthString.resx │ ├── Flags.Designer.cs │ ├── Flags.cs │ ├── Flags.resx │ ├── LongBlockIndex.Designer.cs │ ├── LongBlockIndex.cs │ ├── LongBlockIndex.resx │ ├── LongInteger.Designer.cs │ ├── LongInteger.cs │ ├── LongInteger.resx │ ├── Point2D.Designer.cs │ ├── Point2D.cs │ ├── Point2D.resx │ ├── RGBColor.Designer.cs │ ├── RGBColor.cs │ ├── RGBColor.resx │ ├── Real.Designer.cs │ ├── Real.cs │ ├── Real.resx │ ├── RealARGBColor.Designer.cs │ ├── RealARGBColor.cs │ ├── RealARGBColor.resx │ ├── RealBounds.Designer.cs │ ├── RealBounds.cs │ ├── RealBounds.resx │ ├── RealEulerAngles2D.Designer.cs │ ├── RealEulerAngles2D.cs │ ├── RealEulerAngles2D.resx │ ├── RealEulerAngles3D.Designer.cs │ ├── RealEulerAngles3D.cs │ ├── RealEulerAngles3D.resx │ ├── RealFraction.Designer.cs │ ├── RealFraction.cs │ ├── RealFraction.resx │ ├── RealFractionBounds.Designer.cs │ ├── RealFractionBounds.cs │ ├── RealFractionBounds.resx │ ├── RealPlane2D.Designer.cs │ ├── RealPlane2D.cs │ ├── RealPlane2D.resx │ ├── RealPlane3D.Designer.cs │ ├── RealPlane3D.cs │ ├── RealPlane3D.resx │ ├── RealPoint2D.Designer.cs │ ├── RealPoint2D.cs │ ├── RealPoint2D.resx │ ├── RealPoint3D.Designer.cs │ ├── RealPoint3D.cs │ ├── RealPoint3D.resx │ ├── RealQuaternion.Designer.cs │ ├── RealQuaternion.cs │ ├── RealQuaternion.resx │ ├── RealRGBColor.Designer.cs │ ├── RealRGBColor.cs │ ├── RealRGBColor.resx │ ├── RealVector2D.Designer.cs │ ├── RealVector2D.cs │ ├── RealVector2D.resx │ ├── RealVector3D.Designer.cs │ ├── RealVector3D.cs │ ├── RealVector3D.resx │ ├── Rectangle2D.Designer.cs │ ├── Rectangle2D.cs │ ├── Rectangle2D.resx │ ├── ShortBlockIndex.Designer.cs │ ├── ShortBlockIndex.cs │ ├── ShortBlockIndex.resx │ ├── ShortBounds.Designer.cs │ ├── ShortBounds.cs │ ├── ShortBounds.resx │ ├── ShortInteger.Designer.cs │ ├── ShortInteger.cs │ ├── ShortInteger.resx │ ├── TagReference.Designer.cs │ ├── TagReference.cs │ └── TagReference.resx ├── Halo.csproj ├── HaloException.cs ├── Platforms │ ├── CE │ │ ├── HaloCEGameDefinition.cs │ │ ├── HaloCEMapFile.cs │ │ ├── MapFileList.cs │ │ └── ScriptEngine.cs │ ├── PC │ │ ├── HaloPCGameDefinition.cs │ │ ├── HaloPCMapFile.cs │ │ ├── MapFileList.cs │ │ └── ScriptEngine.cs │ ├── Shared │ │ ├── IndexItem.cs │ │ ├── PointerList.cs │ │ ├── SceneMenuDefinitions.cs │ │ ├── ShaderIndices.cs │ │ └── SimplePointer.cs │ └── Xbox │ │ ├── HaloXboxGameDefinition.cs │ │ ├── HaloXboxMapFile.cs │ │ ├── MapFileList.cs │ │ └── ScriptEngine.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── Resources │ ├── Scripting │ │ └── HaloPCScriptEngineDefinition.xml │ ├── Shaders │ │ ├── shader_environment.fx │ │ ├── shader_model.fx │ │ ├── shader_transparent_generic │ │ │ ├── generic_a.fx │ │ │ └── generic_b.fx │ │ ├── shader_transparent_glass.fx │ │ ├── shader_transparent_plasma.fx │ │ └── shader_transparent_water.fx │ ├── halo.cxpe │ ├── halopc.pta │ ├── halopc_bitmaps.pci │ ├── halopc_sounds.pci │ ├── haloxbox.pta │ └── texture_palette.bin └── Tags │ ├── Classes │ ├── actor.cs │ ├── actor_variant.cs │ ├── antenna.cs │ ├── biped.cs │ ├── bitmap.cs │ ├── camera_track.cs │ ├── color_table.cs │ ├── continuous_damage_effect.cs │ ├── contrail.cs │ ├── damage_effect.cs │ ├── decal.cs │ ├── detail_object_collection.cs │ ├── device.cs │ ├── device_control.cs │ ├── device_light_fixture.cs │ ├── device_machine.cs │ ├── dialogue.cs │ ├── effect.cs │ ├── equipment.cs │ ├── flag.cs │ ├── fog.cs │ ├── font.cs │ ├── garbage.cs │ ├── gbxmodel.cs │ ├── globals.cs │ ├── glow.cs │ ├── grenade_hud_interface.cs │ ├── hud_globals.cs │ ├── hud_message_text.cs │ ├── hud_number.cs │ ├── input_device_defaults.cs │ ├── item.cs │ ├── item_collection.cs │ ├── lens_flare.cs │ ├── light.cs │ ├── light_volume.cs │ ├── lightning.cs │ ├── material_effects.cs │ ├── meter.cs │ ├── model.cs │ ├── model_animations.cs │ ├── model_collision_geometry.cs │ ├── multiplayer_scenario_description.cs │ ├── object.cs │ ├── particle.cs │ ├── particle_system.cs │ ├── physics.cs │ ├── placeholder.cs │ ├── point_physics.cs │ ├── preferences_network_game.cs │ ├── projectile.cs │ ├── scenario.cs │ ├── scenario_structure_bsp.cs │ ├── scenery.cs │ ├── shader.cs │ ├── shader_environment.cs │ ├── shader_model.cs │ ├── shader_transparent_chicago.cs │ ├── shader_transparent_chicago_extended.cs │ ├── shader_transparent_generic.cs │ ├── shader_transparent_glass.cs │ ├── shader_transparent_meter.cs │ ├── shader_transparent_plasma.cs │ ├── shader_transparent_water.cs │ ├── sky.cs │ ├── sound.cs │ ├── sound_environment.cs │ ├── sound_looping.cs │ ├── sound_scenery.cs │ ├── spheroid.cs │ ├── string_list.cs │ ├── tag_collection.cs │ ├── testing.cs │ ├── ui_widget_collection.cs │ ├── ui_widget_definition.cs │ ├── unicode_string_list.cs │ ├── unit.cs │ ├── unit_hud_interface.cs │ ├── vehicle.cs │ ├── virtual_keyboard.cs │ ├── weapon.cs │ ├── weapon_hud_interface.cs │ ├── weather_particle_system.cs │ └── wind.cs │ ├── Extensions.cs │ ├── FieldControlTable.cs │ ├── Fields │ ├── Angle.cs │ ├── AngleBounds.cs │ ├── ArgbColor.cs │ ├── Block.cs │ ├── CharInteger.cs │ ├── Data.cs │ ├── Enum.cs │ ├── FixedLengthString.cs │ ├── Flags.cs │ ├── LongBlockIndex.cs │ ├── LongInteger.cs │ ├── Pad.cs │ ├── Point2D.cs │ ├── Real.cs │ ├── RealArgbColor.cs │ ├── RealBounds.cs │ ├── RealEulerAngles2D.cs │ ├── RealEulerAngles3D.cs │ ├── RealFraction.cs │ ├── RealFractionBounds.cs │ ├── RealPlane2D.cs │ ├── RealPlane3D.cs │ ├── RealPoint2D.cs │ ├── RealPoint3D.cs │ ├── RealQuaternion.cs │ ├── RealRgbColor.cs │ ├── RealVector2D.cs │ ├── RealVector3D.cs │ ├── Rectangle2D.cs │ ├── RgbColor.cs │ ├── ShortBlockIndex.cs │ ├── ShortBounds.cs │ ├── ShortInteger.cs │ ├── Skip.cs │ ├── TagReference.cs │ ├── TagSignature.cs │ └── VariableLengthString.cs │ ├── HaloTypeTable.cs │ ├── Implementations │ ├── bitmap.cs │ ├── gbxmodel.cs │ ├── globals.cs │ ├── item_collection.cs │ ├── lens_flare.cs │ ├── model.cs │ ├── model_collision_geometry.cs │ ├── object.cs │ ├── scenario.cs │ ├── scenario_structure_bsp.cs │ ├── shader.cs │ ├── shader_environment.cs │ ├── shader_model.cs │ ├── shader_transparent_chicago.cs │ ├── shader_transparent_chicago_extended.cs │ ├── shader_transparent_generic.cs │ ├── shader_transparent_glass.cs │ ├── shader_transparent_plasma.cs │ ├── shader_transparent_water.cs │ ├── sky.cs │ ├── sound.cs │ └── sound_looping.cs │ ├── TagDebug.cs │ └── Xml │ ├── actor.xml │ ├── actor_variant.xml │ ├── antenna.xml │ ├── biped.xml │ ├── bitmap.xml │ ├── camera_track.xml │ ├── color_table.xml │ ├── continuous_damage_effect.xml │ ├── contrail.xml │ ├── damage_effect.xml │ ├── decal.xml │ ├── detail_object_collection.xml │ ├── device.xml │ ├── device_control.xml │ ├── device_light_fixture.xml │ ├── device_machine.xml │ ├── dialogue.xml │ ├── effect.xml │ ├── equipment.xml │ ├── flag.xml │ ├── fog.xml │ ├── font.xml │ ├── garbage.xml │ ├── gbxmodel.xml │ ├── globals.xml │ ├── glow.xml │ ├── grenade_hud_interface.xml │ ├── hud_globals.xml │ ├── hud_message_text.xml │ ├── hud_number.xml │ ├── input_device_defaults.xml │ ├── item.xml │ ├── item_collection.xml │ ├── lens_flare.xml │ ├── light.xml │ ├── light_volume.xml │ ├── lightning.xml │ ├── material_effects.xml │ ├── meter.xml │ ├── model.xml │ ├── model_animations.xml │ ├── model_collision_geometry.xml │ ├── multiplayer_scenario_description.xml │ ├── object.xml │ ├── particle.xml │ ├── particle_system.xml │ ├── physics.xml │ ├── placeholder.xml │ ├── point_physics.xml │ ├── preferences_network_game.xml │ ├── projectile.xml │ ├── scenario.xml │ ├── scenario_structure_bsp.xml │ ├── scenery.xml │ ├── shader.xml │ ├── shader_environment.xml │ ├── shader_model.xml │ ├── shader_transparent_chicago.xml │ ├── shader_transparent_chicago_extended.xml │ ├── shader_transparent_generic.xml │ ├── shader_transparent_glass.xml │ ├── shader_transparent_meter.xml │ ├── shader_transparent_plasma.xml │ ├── shader_transparent_water.xml │ ├── sky.xml │ ├── sound.xml │ ├── sound_environment.xml │ ├── sound_looping.xml │ ├── sound_scenery.xml │ ├── spheroid.xml │ ├── string_list.xml │ ├── tag_collection.xml │ ├── testing.xml │ ├── ui_widget_collection.xml │ ├── ui_widget_definition.xml │ ├── unicode_string_list.xml │ ├── unit.xml │ ├── unit_hud_interface.xml │ ├── vehicle.xml │ ├── virtual_keyboard.xml │ ├── weapon.xml │ ├── weapon_hud_interface.xml │ ├── weather_particle_system.xml │ └── wind.xml ├── Interfaces ├── Alignment.cs ├── Compression.cs ├── Controls │ ├── ImageButton.cs │ ├── ToggleButton.cs │ └── TreeViewComboBox.cs ├── Conversion.cs ├── DebugConsole │ └── ConsoleAttribute.cs ├── DynamicInterface │ ├── RuntimeMenu │ │ ├── RuntimeMenuBuilder.cs │ │ ├── RuntimeMenuButton.cs │ │ ├── RuntimeMenuCheckbox.cs │ │ ├── RuntimeMenuCombobox.cs │ │ ├── RuntimeMenuLabel.cs │ │ ├── RuntimeMenuObject.cs │ │ ├── RuntimeMenuTextbox.cs │ │ └── RuntimeMenuType.cs │ └── SceneInstanceMenu │ │ ├── ISceneInstanceMenu.cs │ │ ├── ISceneInstanceProvider.cs │ │ ├── PaletteTarget.cs │ │ ├── SceneObject.cs │ │ └── ScenePalette.cs ├── Encryption.cs ├── EnumReader.cs ├── Factory │ ├── Accessors.cs │ ├── BlockCollection.cs │ ├── CommonTypes │ │ ├── BindingAngle1.cs │ │ ├── BindingAngle3.cs │ │ └── BindingVector3.cs │ ├── GlobalMethods.cs │ ├── IBinaryField.cs │ ├── IBlock.cs │ ├── IField.cs │ ├── IFieldCodeGenerator.cs │ ├── IStringField.cs │ └── StringOps.cs ├── Games │ ├── GameDefinition.cs │ ├── IMapCompiler.cs │ ├── IMapFile.cs │ ├── MapFileDefinition.cs │ ├── ObjectNotInPackCacheException.cs │ ├── PackCacheIndex.cs │ ├── PaletteDefinition.cs │ ├── ScenarioBase.cs │ ├── TypeTable.cs │ └── TypeTableEntry.cs ├── Helpers │ ├── DNB.cs │ └── Strings.cs ├── IO │ ├── ByteOrder.cs │ ├── EndianReader.cs │ ├── EndianSwap.cs │ ├── EndianWriter.cs │ ├── Int24.cs │ └── RIFF.cs ├── Interfaces.csproj ├── Libraries │ ├── ArchiveFileSystem │ │ ├── Archive.cs │ │ ├── EntryFilters │ │ │ ├── ContainsFilesFilter.cs │ │ │ ├── EntryTypeFilter.cs │ │ │ ├── ExtensionFilter.cs │ │ │ ├── HasDataFilter.cs │ │ │ ├── IEntryFilter.cs │ │ │ ├── NameFilter.cs │ │ │ └── OffsetFilter.cs │ │ ├── FileTable.cs │ │ ├── FileTableEntry.cs │ │ ├── FilteredTagArchive.cs │ │ └── SubStream.cs │ ├── DiskFileLibrary.cs │ ├── FileHierarchy.cs │ ├── RecycleBin.cs │ └── TagArchive.cs ├── NativeMethods.cs ├── Notes │ ├── Note.cs │ ├── NoteCollection.cs │ └── NoteEvent.cs ├── Output.cs ├── PMath.cs ├── Policies │ └── Singleton.cs ├── Pool │ ├── CompressionStyle.cs │ ├── ILibrary.cs │ ├── IPool.cs │ ├── Tag.cs │ ├── TagErrorEventArgs.cs │ ├── TagErrorEventHandler.cs │ ├── TagFile.cs │ ├── TagLocation.cs │ └── TagPath.cs ├── Project │ ├── ProjectFile.cs │ ├── ProjectTag.cs │ ├── ProjectTemplate.cs │ ├── ProjectVersion.cs │ ├── TemplateTag.cs │ ├── TemplateTagList.cs │ └── VersionDesignation.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── Reinterpret.cs ├── Rendering │ ├── CoordinateSystem.cs │ ├── Instancing │ │ ├── BillboardInstance.cs │ │ ├── DynamicObjectInstance.cs │ │ ├── DynamicObjects │ │ │ ├── DynamicColorRetrievalMethod.cs │ │ │ └── DynamicObjectColorProvider.cs │ │ ├── IInstancable.cs │ │ ├── Instance.cs │ │ ├── InstanceCollection.cs │ │ ├── ObjectInstance.cs │ │ ├── PartInstance.cs │ │ ├── ShaderPreviewInstance.cs │ │ ├── StateModifierInstance.cs │ │ ├── TexturePreviewInstance.cs │ │ ├── ViewerDistanceComparer.cs │ │ └── WorldInstance.cs │ ├── Interfaces │ │ ├── IBsp.cs │ │ ├── ICamera.cs │ │ ├── IDynamicObject.cs │ │ ├── IDynamicShader.cs │ │ ├── IEnvironment.cs │ │ ├── IEnvironmentProvider.cs │ │ ├── ILight.cs │ │ ├── IMaterial.cs │ │ ├── IModel.cs │ │ ├── IPhoton.cs │ │ ├── IRealColor.cs │ │ ├── IRenderStateModifier.cs │ │ ├── IRenderable.cs │ │ ├── IShader.cs │ │ ├── ITextureMap.cs │ │ ├── ITextureMapCollection.cs │ │ └── IToneMapOperator.cs │ ├── Lod.cs │ ├── MdxRender.cs │ ├── Primitives │ │ ├── Billboard.cs │ │ ├── BillboardType.cs │ │ ├── BoundingBox.cs │ │ ├── NodeTransform.cs │ │ ├── Ray.cs │ │ ├── RealColor.cs │ │ ├── Region.cs │ │ ├── SubMesh.cs │ │ └── Vertex.cs │ ├── Radiosity │ │ ├── Bounds.cs │ │ ├── Lights.cs │ │ ├── Material.cs │ │ ├── Photon.cs │ │ ├── RadiosityHelper.cs │ │ ├── RadiosityIntersection.cs │ │ ├── RadiosityModel.cs │ │ └── RadiosityStage.cs │ ├── RenderException.cs │ ├── SceneType.cs │ ├── Selection │ │ ├── ArcHandle.cs │ │ ├── ArcMode.cs │ │ ├── EditMode.cs │ │ ├── MultiSelectMode.cs │ │ ├── SelectBox2D.cs │ │ ├── SelectTool.cs │ │ ├── SelectionBox.cs │ │ └── TargetType.cs │ ├── Utilities │ │ ├── FPSCounter.cs │ │ └── HighResTimer.cs │ └── Wrappers │ │ ├── BindingTransform.cs │ │ ├── EnhancedMesh.cs │ │ ├── IBindingTransform.cs │ │ ├── Intersection.cs │ │ ├── ScreenBillboard.cs │ │ └── SimpleBitmapShader.cs ├── Resources │ ├── ctf.dds │ ├── ctf_vehicle.dds │ ├── koh.dds │ ├── oddball.dds │ ├── race.dds │ ├── race_vehicle.dds │ ├── sound_scenery.dds │ ├── teleporter_enter.dds │ ├── teleporter_exit.dds │ └── vegas_bank.dds ├── Scripting │ ├── Assembly │ │ ├── Compiled │ │ │ ├── CompiledScriptNode.cs │ │ │ └── NodeTreeDecompiler.cs │ │ ├── Nodes │ │ │ ├── Bsl │ │ │ │ ├── BslFunctionCallNode.cs │ │ │ │ └── BslGameGlobalReferenceNode.cs │ │ │ ├── GroupingNode.cs │ │ │ ├── NamespaceNode.cs │ │ │ ├── NodeBase.cs │ │ │ ├── Psl │ │ │ │ ├── ConstructNodes │ │ │ │ │ ├── ConditionalConstructNode.cs │ │ │ │ │ └── RandomizeConstructNode.cs │ │ │ │ ├── PslArrayElementReferenceNode.cs │ │ │ │ ├── PslArrayNode.cs │ │ │ │ ├── PslFunctionUsageNode.cs │ │ │ │ ├── PslGameGlobalReferenceNode.cs │ │ │ │ └── PslOperatorUsageNode.cs │ │ │ ├── ScriptCallNode.cs │ │ │ ├── ScriptNode.cs │ │ │ ├── ValueNodes │ │ │ │ ├── BlockReferenceValueNode.cs │ │ │ │ ├── BoolValueNode.cs │ │ │ │ ├── EnumerationValueNode.cs │ │ │ │ ├── LongValueNode.cs │ │ │ │ ├── RealValueNode.cs │ │ │ │ ├── ScriptReferenceValueNode.cs │ │ │ │ ├── ShortValueNode.cs │ │ │ │ ├── StringValueNode.cs │ │ │ │ ├── TagReferenceValueNode.cs │ │ │ │ ├── ValueNodeBase.cs │ │ │ │ └── VariableReferenceValueNode.cs │ │ │ └── VariableNode.cs │ │ ├── Processors │ │ │ ├── BslTreeInterpreter.cs │ │ │ ├── PslOutputGenerator.cs │ │ │ ├── SingleValueDiscrepancySearch.cs │ │ │ ├── TemplateVisitorProcessor.cs │ │ │ └── VisitorProcessorBase.cs │ │ └── ScriptingAssembly.cs │ ├── DynamicScriptProcessor.cs │ ├── EngineDefinition │ │ ├── Argument.cs │ │ ├── Function.cs │ │ ├── Global.cs │ │ ├── InternalFunction.cs │ │ ├── InternalGlobal.cs │ │ ├── Lookup │ │ │ ├── DecompilerLookup.cs │ │ │ ├── EditorLookup.cs │ │ │ └── ExpressionReferences.cs │ │ ├── Namespace.cs │ │ ├── ScriptEngineDefinition.cs │ │ └── Types │ │ │ ├── BlockReferenceType.cs │ │ │ ├── EnumerationType.cs │ │ │ ├── ExtendedTypeBase.cs │ │ │ └── TagReferenceType.cs │ ├── IScriptProcessor.cs │ ├── MapScenarioScriptingAssembly.cs │ ├── ScenarioInterface │ │ ├── ScenarioScript.cs │ │ └── ScenarioScriptGlobal.cs │ └── ScriptingStringOps.cs ├── Settings │ ├── Instance │ │ ├── IPersistable.cs │ │ ├── PersistableOption.cs │ │ ├── SettingsManager.cs │ │ └── TypeReflectionCache.cs │ ├── OptionsMerger.cs │ └── Static │ │ ├── OptionAttribute.cs │ │ ├── OptionManager.cs │ │ ├── OptionType.cs │ │ ├── Setting.cs │ │ ├── SettingsInterface.cs │ │ └── SettingsList.cs ├── SimpleContainers.cs ├── Sound │ ├── Codecs │ │ ├── ICodec.cs │ │ ├── PCM.cs │ │ └── XboxADPCM.cs │ ├── ISoundDataProvider.cs │ ├── Instancing │ │ ├── EnvironmentSoundInstance.cs │ │ └── SoundInstance.cs │ ├── MdxSound.cs │ ├── SoundSystemException.cs │ └── StreamingSoundBuffer.cs ├── TagEditor │ ├── ControlNamer.cs │ ├── FieldControl.Designer.cs │ ├── FieldControl.cs │ ├── FieldControl.resx │ ├── FieldControlBase.cs │ ├── FieldControlBase.resx │ ├── IBlockControl.cs │ ├── IBlockIndexControl.cs │ ├── IFieldControl.cs │ ├── IFieldControlContainer.cs │ └── ITagReferenceControl.cs ├── Textures │ ├── DXT.cs │ ├── DirectDrawPixelFormat.cs │ ├── DirectDrawPixelFormatFlags.cs │ ├── DirectDrawSurfaceCaps.cs │ ├── DirectDrawSurfaceCapsAFlags.cs │ ├── DirectDrawSurfaceCapsBFlags.cs │ ├── DirectDrawSurfaceDescription.cs │ ├── DirectDrawSurfaceDescriptionFlags.cs │ ├── DirectDrawSurfaceHeader.cs │ ├── Sampler.cs │ └── Swizzler.cs ├── UniqueStringCollection.cs ├── UnsafeMemory.cs └── UserInterface │ ├── IDocument.cs │ ├── IDocumentManager.cs │ ├── ISupportsUndoRedo.cs │ └── IUndoableAction.cs ├── Nini.dll ├── PrometheusMX.sln ├── PrometheusMX ├── Controls │ ├── BetterTreeView │ │ ├── BetterTreeNode.cs │ │ ├── BetterTreeView.cs │ │ └── DragHelper.cs │ ├── BlockContainer.ChildControls.cs │ ├── BlockContainer.Designer.cs │ ├── BlockContainer.cs │ ├── BlockContainer.resx │ ├── BusyIndicator.Designer.cs │ ├── BusyIndicator.cs │ ├── CheckList.Designer.cs │ ├── CheckList.cs │ ├── CheckList.resx │ ├── FloatingPanel.Designer.cs │ ├── FloatingPanel.cs │ ├── FloatingPanel.resx │ ├── ListEditor.Designer.cs │ ├── ListEditor.cs │ ├── ListEditor.resx │ ├── ListOutputListener.Designer.cs │ ├── ListOutputListener.cs │ ├── ListOutputListener.resx │ ├── MultiSourceTreeView │ │ ├── AlphabeticNodeSorter.cs │ │ ├── DefaultState.cs │ │ ├── MenuDefinition.cs │ │ ├── MenuGroup.cs │ │ ├── MultiSourceTreeNode.cs │ │ ├── MultiSourceTreeView.cs │ │ ├── NodeHierarchy.cs │ │ ├── NodeInfo.cs │ │ ├── NodeSource.cs │ │ ├── NodeState.cs │ │ ├── NodeStateSubscriber.cs │ │ └── NodeType.cs │ ├── NicktureBox.cs │ ├── PerformanceChart │ │ ├── PerfChart.Designer.cs │ │ ├── PerfChart.cs │ │ ├── PerfChart.resx │ │ └── PerfChartStyle.cs │ ├── RecycleBinBrowser.Designer.cs │ ├── RecycleBinBrowser.cs │ ├── RecycleBinBrowser.resx │ ├── ReferenceAnalyzer │ │ ├── ReferenceAnalyzerMode.cs │ │ ├── ReferenceChild.Designer.cs │ │ ├── ReferenceChild.cs │ │ ├── ReferenceChild.resx │ │ ├── ReferenceContainer.Designer.cs │ │ ├── ReferenceContainer.cs │ │ ├── ReferenceContainer.resx │ │ ├── ReferenceItem.Designer.cs │ │ ├── ReferenceItem.cs │ │ ├── ReferenceItem.resx │ │ └── ReferenceType.cs │ ├── ScriptEditor │ │ ├── PslDynamicSyntaxLanguage.cs │ │ ├── ScriptEditorControl.Designer.cs │ │ ├── ScriptEditorControl.cs │ │ └── ScriptEditorControl.resx │ ├── TagEditor │ │ ├── BlockContainerPanel.Designer.cs │ │ ├── BlockContainerPanel.cs │ │ ├── BlockContainerPanel.resx │ │ ├── FieldContainerBase.cs │ │ ├── FieldContainerLayout.cs │ │ ├── FieldContainerPanel.cs │ │ ├── FieldContainerPanel.resx │ │ ├── IDynamicContainer.cs │ │ ├── RegionContainer.Designer.cs │ │ ├── RegionContainer.cs │ │ ├── RegionContainer.resx │ │ ├── SectionContainer.cs │ │ ├── TagEditor.cs │ │ ├── TagEditor.resx │ │ ├── UndoManager.cs │ │ └── UndoableFieldEditAction.cs │ ├── TagExplorers │ │ ├── LibraryExplorer │ │ │ ├── ExtractionProgressPanel.Designer.cs │ │ │ ├── ExtractionProgressPanel.cs │ │ │ ├── ExtractionProgressPanel.resx │ │ │ ├── LibraryExplorer.Designer.cs │ │ │ ├── LibraryExplorer.Extraction.cs │ │ │ ├── LibraryExplorer.Menus.cs │ │ │ ├── LibraryExplorer.cs │ │ │ ├── LibraryExplorer.resx │ │ │ ├── Menus │ │ │ │ ├── AddFolderToProject.cs │ │ │ │ ├── AddTagToProject.cs │ │ │ │ ├── DebugInfo.cs │ │ │ │ ├── PreviewTag.cs │ │ │ │ ├── ReplaceInProject.cs │ │ │ │ ├── ViewScript.cs │ │ │ │ ├── ViewTag.cs │ │ │ │ └── ViewTagInformation.cs │ │ │ ├── NodeStates │ │ │ │ └── DocumentOpenState.cs │ │ │ ├── NodeTypes │ │ │ │ ├── ObjectView │ │ │ │ │ ├── HLTGroupNodeType.cs │ │ │ │ │ ├── HLTNodeType.cs │ │ │ │ │ ├── ObjectViewRootNodeType.cs │ │ │ │ │ ├── TagNodeType.cs │ │ │ │ │ ├── UnextractedHLTGroupNodeType.cs │ │ │ │ │ ├── UnextractedHLTNodeType.cs │ │ │ │ │ └── UnextractedObjectViewRootNodeType.cs │ │ │ │ └── TagView │ │ │ │ │ ├── AttachedScriptNodeType.cs │ │ │ │ │ ├── FileNodeType.cs │ │ │ │ │ ├── FolderNodeType.cs │ │ │ │ │ ├── ModelFileNodeType.cs │ │ │ │ │ ├── ObjectFileNodeType.cs │ │ │ │ │ ├── RootNodeType.cs │ │ │ │ │ ├── SbspFileNodeType.cs │ │ │ │ │ ├── ScenarioFileNodeType.cs │ │ │ │ │ ├── UnextractedFileNodeType.cs │ │ │ │ │ ├── UnextractedFolderNodeType.cs │ │ │ │ │ └── UnextractedRootNodeType.cs │ │ │ ├── TagArchiveNodeSource.cs │ │ │ └── TagArchiveObjectViewNodeSource.cs │ │ ├── OpenTagEventHandler.cs │ │ └── ProjectExplorer │ │ │ ├── DifferentialLibrary.cs │ │ │ ├── Menus │ │ │ ├── BrowseRecycleBin.cs │ │ │ ├── CopyFromGameArchive.cs │ │ │ ├── DebugInfo.cs │ │ │ ├── Edit.cs │ │ │ ├── EditGlobal.cs │ │ │ ├── EmptyRecyleBin.cs │ │ │ ├── Include.cs │ │ │ ├── PreviewTag.cs │ │ │ ├── Remove.cs │ │ │ ├── RemoveFolder.cs │ │ │ ├── RevertEssentalTag.cs │ │ │ └── SelectProjectTag.cs │ │ │ ├── MutuallyInclusiveLibrary.cs │ │ │ ├── NodeStates │ │ │ ├── RecycleBinContainsFilesState.cs │ │ │ └── ValidReferencedState.cs │ │ │ ├── NodeTypes │ │ │ ├── EssentialTagsRoot.cs │ │ │ ├── FolderNodeType.cs │ │ │ ├── GlobalTemplateTag.cs │ │ │ ├── ModelTag.cs │ │ │ ├── ObjectTag.cs │ │ │ ├── ProjectTemplateTag.cs │ │ │ ├── PropertiesRootNode.cs │ │ │ ├── RecycleBinRootNode.cs │ │ │ ├── RootNodeType.cs │ │ │ ├── SbspTag.cs │ │ │ ├── ScenarioTag.cs │ │ │ └── ValidReferencedTag.cs │ │ │ ├── ProjectExplorer.Designer.cs │ │ │ ├── ProjectExplorer.Menus.cs │ │ │ ├── ProjectExplorer.cs │ │ │ ├── ProjectExplorer.resx │ │ │ ├── ProjectNodeSource.cs │ │ │ └── ProjectReferencesLibrary.cs │ ├── TransparentPanel.cs │ └── UIHelpers.cs ├── Dialogs │ ├── BugReport.Designer.cs │ ├── BugReport.cs │ ├── BugReport.resx │ ├── CrashDialogForm.Designer.cs │ ├── CrashDialogForm.cs │ ├── CrashDialogForm.resx │ ├── GuerillaImport.Designer.cs │ ├── GuerillaImport.cs │ ├── GuerillaImport.resx │ ├── NewProjectDialog.Designer.cs │ ├── NewProjectDialog.cs │ ├── NewProjectDialog.resx │ ├── NoteManager.Designer.cs │ ├── NoteManager.cs │ ├── NoteManager.resx │ ├── OpenProjectDialog.Designer.cs │ ├── OpenProjectDialog.cs │ ├── OpenProjectDialog.resx │ ├── Options.Designer.cs │ ├── Options.cs │ ├── Options.resx │ ├── PrefabExport.Designer.cs │ ├── PrefabExport.cs │ ├── PrefabExport.resx │ ├── PrefabPackagerReview.Designer.cs │ ├── PrefabPackagerReview.cs │ ├── PrefabPackagerReview.resx │ ├── PrometheusGUI.Designer.cs │ ├── PrometheusGUI.Radiosity.cs │ ├── PrometheusGUI.Testing.cs │ ├── PrometheusGUI.cs │ ├── PrometheusGUI.resx │ ├── RadiosityOptions.Designer.cs │ ├── RadiosityOptions.cs │ ├── RadiosityOptions.resx │ ├── ReferenceAnalyzer.Designer.cs │ ├── ReferenceAnalyzer.cs │ ├── ReferenceAnalyzer.resx │ ├── RenderDebug.Designer.cs │ ├── RenderDebug.cs │ ├── RenderDebug.resx │ ├── TagBrowserDialog.Designer.cs │ ├── TagBrowserDialog.cs │ └── TagBrowserDialog.resx ├── Program.cs ├── PrometheusMX.csproj ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── BugWritingTips.ico │ ├── BugWritingTips.rtf │ ├── Scripting │ │ └── PSL.Lexer.xml │ └── defaultlayout.xml ├── SingleProcessInstance.cs ├── Testing │ ├── ActivateDebugConsole.cs │ ├── AdpcmDecoderTest.cs │ ├── ClusterTest.cs │ ├── CompilerTest.cs │ ├── ConvertHalo2Xmls.cs │ ├── CreatePTAFromOldTags.cs │ ├── DecompilerTest.cs │ ├── DynamicMenuTest.cs │ ├── ExportSingleTagTest.cs │ ├── FakeTest.cs │ ├── FileTableTest.cs │ ├── GenerateHalo2TagClasses.cs │ ├── GenerateHaloTagClass.cs │ ├── GenerateTagClasses.cs │ ├── GenerateTagList.cs │ ├── HPCCompilerTest.cs │ ├── ITest.cs │ ├── LoadTagTest.cs │ ├── MultiSourceTreeViewTest.cs │ ├── OpenMapTest.cs │ ├── OpenTestTag.cs │ ├── PTATest.cs │ ├── ProgressDialog.Designer.cs │ ├── ProgressDialog.cs │ ├── ProgressDialog.resx │ ├── ScratchPad.Designer.cs │ ├── ScratchPad.cs │ ├── ScratchPad.resx │ ├── ScriptEditorTest.cs │ ├── ScriptingDefinitionTools │ │ ├── DefinitionReader.cs │ │ ├── GUI.Designer.cs │ │ ├── GUI.cs │ │ └── GUI.resx │ ├── TagEditorTest.cs │ ├── TagLoadingTest.cs │ ├── TestController.cs │ └── TestInfo.cs ├── ThirdParty │ ├── CurtainForm.Designer.cs │ ├── CurtainForm.cs │ ├── CurtainForm.resx │ ├── ObjectListView.cs │ ├── StringHelper.cs │ └── VistaStyledControls.cs └── UserInterface │ └── DocumentManager.cs ├── XPTable.dll └── shared ├── Microsoft.DirectX.Direct3D.dll ├── Microsoft.DirectX.Direct3DX.dll ├── Microsoft.DirectX.DirectInput.dll ├── Microsoft.DirectX.DirectSound.dll └── Microsoft.DirectX.dll /AForge.Imaging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/AForge.Imaging.dll -------------------------------------------------------------------------------- /AForge.Math.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/AForge.Math.dll -------------------------------------------------------------------------------- /Core/CoreException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Core 4 | { 5 | /// 6 | /// Represents a fault in the Core functionality. 7 | /// 8 | public class CoreException : ApplicationException 9 | { 10 | public CoreException(string message, params object[] arguments) 11 | : base(String.Format(message, arguments)) 12 | { /* Lovely day out isn't it? */ } 13 | 14 | public CoreException(Exception innerException, string message, params object[] arguments) 15 | : base(String.Format(message, arguments), innerException) 16 | { /* Yes, it sure is... */ } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Core/CoreTracer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace Core 5 | { 6 | /// 7 | /// Provides methods to perform trace operations in a more simplified manner. (As well as speed things up a bit, and prevent "looking in". :P) 8 | /// 9 | public static class CoreTracer 10 | { 11 | /// 12 | /// Writes a message in its own line to the trace listeners. 13 | /// 14 | /// message or value to write 15 | public static void WriteLine(object value) 16 | { 17 | #if DEBUG 18 | Trace.WriteLine(value); 19 | #endif 20 | } 21 | 22 | /// 23 | /// Writes a formatted message in its own line to the trace listeners. 24 | /// 25 | /// message to write 26 | /// arguments in the message 27 | public static void WriteLine(string message, params object[] arguments) 28 | { 29 | #if DEBUG 30 | Trace.WriteLine(String.Format(message, arguments)); 31 | #endif 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Core/DebugConsole/DebugConsole.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/DebugConsole/DebugConsole.cs -------------------------------------------------------------------------------- /Core/Input/MdxInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | using Microsoft.DirectX.DirectInput; 4 | 5 | namespace Core.Input 6 | { 7 | public static class MdxInput 8 | { 9 | private static Device keyboard; 10 | private static Device mouse; 11 | 12 | /// 13 | /// Gets or sets the DirectInput keyboard device. 14 | /// 15 | public static Device Keyboard 16 | { 17 | get 18 | { return keyboard; } 19 | set 20 | { keyboard = value; } 21 | } 22 | 23 | /// 24 | /// Gets or sets the DirectInput mouse device. 25 | /// 26 | public static Device Mouse 27 | { 28 | get 29 | { return mouse; } 30 | set 31 | { mouse = value; } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Core/MapValidator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Interfaces.Games; 3 | 4 | namespace Core 5 | { 6 | public class MapValidator 7 | { 8 | public bool Validate(IMapFile map, MapFileDefinition definition) 9 | { 10 | byte[] checksum = map.CalculateChecksum(); 11 | ulong low = BitConverter.ToUInt64(checksum, 0); 12 | ulong high = BitConverter.ToUInt64(checksum, 8); 13 | 14 | // NOTE: We can also check the file size here as well, if we add 15 | // a property for it to the IMapFile interface. 16 | return (low == definition.LowChecksum && high == definition.HighChecksum); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Core/Pool/PoolException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Core.Pool 4 | { 5 | /// 6 | /// The exception that is thrown when an error occurs in the tag pool. 7 | /// 8 | public class PoolException : CoreException 9 | { 10 | public PoolException(string message, params object[] arguments) 11 | : base(message, arguments) 12 | { /* Fourth most intuitive class ever... */ } 13 | 14 | public PoolException(Exception innerException, string message, params object[] arguments) 15 | : base(innerException, String.Format(message, arguments)) 16 | { /* Fifth mo... No, wait... */ } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Core/Pool/TagAlreadyExistsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Core.Pool 4 | { 5 | /// 6 | /// The exception that is thrown when a tag already exists in a pool and thus cannot be created again. 7 | /// 8 | public class TagAlreadyExistsException : PoolException 9 | { 10 | public TagAlreadyExistsException(string message, params object[] arguments) 11 | : base(message, arguments) 12 | { /* Third most intuitive class ever... */ } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Core/Pool/TagNotFoundException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Core.Pool 4 | { 5 | /// 6 | /// The exception that is thrown when a tag is attempted to be loaded, but cannot be found. 7 | /// 8 | public class TagNotFoundException : PoolException 9 | { 10 | public TagNotFoundException(string message, params object[] arguments) 11 | : base(message, arguments) 12 | { /* Most... Intuitive... Class... Ever... */ } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Core/Radiosity/PhotonMapping/Vector3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using Microsoft.DirectX; 7 | using Core.Radiosity.PhotonMapping; 8 | 9 | namespace Core.Radiosity.PhotonMapping 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Core/Radiosity/TextureMapping/Reinhard5ToneMapOperator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Drawing; 5 | 6 | namespace Core.Radiosity.TextureMapping 7 | { 8 | class Reinhard5ToneMapOperator : Interfaces.Rendering.Interfaces.IToneMapOperator 9 | { 10 | #region IToneMapOperator Members 11 | 12 | public Bitmap CreateImage(double[, ,] HDRi, params object[] optionalsettings) 13 | { 14 | return null; 15 | } 16 | 17 | #endregion 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Core/Rendering/Camera/CameraStopStyle.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Core.Rendering.Camera 3 | { 4 | public enum CameraStopStyle : int 5 | { 6 | BounceBack, 7 | Instant, 8 | Glide 9 | } 10 | } -------------------------------------------------------------------------------- /Core/Rendering/Camera/FrustumPlane.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | 4 | namespace Core.Rendering.Camera 5 | { 6 | internal class FrustumPlane 7 | { 8 | private Vector3 normal; 9 | private float distance; 10 | 11 | public Vector3 Normal 12 | { 13 | get { return normal; } 14 | set 15 | { 16 | normal = value; 17 | Normalize(); 18 | } 19 | } 20 | 21 | public float Distance 22 | { 23 | get { return distance; } 24 | set { distance = value; } 25 | } 26 | 27 | private void Normalize() 28 | { 29 | float denom = (float)(1 / Math.Sqrt((normal.X * normal.X) + (normal.Y * normal.Y) + (normal.Z * normal.Z))); 30 | normal.X = normal.X * denom; 31 | normal.Y = normal.Y * denom; 32 | normal.Z = normal.Z * denom; 33 | distance = distance * denom; 34 | } 35 | 36 | public float DistanceToPoint(Vector3 point) 37 | { 38 | float value = Vector3.Dot(normal, point) + distance; 39 | return value; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Core/Rendering/Camera/RunningAvg.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | 4 | namespace Core.Rendering.Camera 5 | { 6 | internal class RunningAvg 7 | { 8 | private static int BUF_SIZE = 10; 9 | private float[] m_Buffer = new float[BUF_SIZE]; 10 | private int m_Index = 0; 11 | private float m_Average = 0; 12 | public float Average 13 | { 14 | get { return m_Average; } 15 | } 16 | public float Update(float data_pt) 17 | { 18 | m_Average = 0; 19 | m_Buffer[m_Index] = data_pt; 20 | m_Index++; 21 | if ((m_Index % BUF_SIZE) == 0) 22 | m_Index = 0; 23 | 24 | for (int i = 0; i < BUF_SIZE; i++) 25 | m_Average += m_Buffer[i]; 26 | 27 | m_Average /= BUF_SIZE; 28 | 29 | return (m_Average); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Core/Rendering/RenderState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Core.Rendering 6 | { 7 | public enum RenderState 8 | { 9 | Textured, 10 | Wireframe, 11 | Overlay 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Core/Resources/3ds/prom_logo.max: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/Resources/3ds/prom_logo.max -------------------------------------------------------------------------------- /Core/Resources/X/sand.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/Resources/X/sand.bmp -------------------------------------------------------------------------------- /Core/Resources/textures/sand.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/Resources/textures/sand.bmp -------------------------------------------------------------------------------- /Core/Resources/textures/sand.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/Resources/textures/sand.dds -------------------------------------------------------------------------------- /Core/Resources/textures/sand.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Core/Resources/textures/sand.tif -------------------------------------------------------------------------------- /Halo 2/Compiler/Classes/Element.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Games.Halo2.Compiler.Classes 5 | { 6 | /// 7 | /// Represents a node element in a tag definition tree. 8 | /// 9 | [StructLayout(LayoutKind.Sequential)] 10 | public struct Element 11 | { 12 | public ElementType Type; 13 | public short Offset; 14 | public short Size; 15 | public byte Alignment; 16 | public short FirstChild; 17 | public short NextSibling; 18 | private uint hash; 19 | 20 | /// 21 | /// Returns true if this Element's hash evaluates to the given string. 22 | /// 23 | public bool HashCheck(string name) 24 | { 25 | return Djb2Hash(name) == hash; 26 | } 27 | 28 | private static uint Djb2Hash(string input) 29 | { 30 | uint hash = 5381; 31 | 32 | unchecked 33 | { 34 | foreach (char c in input) 35 | hash = ((hash << 5) + hash) ^ Convert.ToByte(c); 36 | } 37 | 38 | return hash; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Classes/ElementType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo2.Compiler.Classes 4 | { 5 | /// 6 | /// Specifies whether an Element is a base, block, a chunk of data, a string, or a tag reference. 7 | /// 8 | public enum ElementType : byte 9 | { 10 | Block, // element count, offset + magic 11 | TagData, // byte count, offset + magic 12 | StringID, // (short)index, (byte)0, (byte)size 13 | TagReference, // identifier 14 | ResourceBlock, // masked offset, size 15 | ResourceBlockInverted, // size, masked offset 16 | BitmapData, // offset, offset, offset, offset, offset, offset, size, size, size, size, size, size 17 | SelfReference, // identifier 18 | PredictedResource, // identifier 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Classes/ElementWrapper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo2.Compiler.Classes 4 | { 5 | public class ElementWrapper 6 | { 7 | private Element element; 8 | 9 | public ElementWrapper() 10 | { 11 | element = new Element(); 12 | } 13 | 14 | public ElementWrapper(Element source) 15 | { 16 | element = source; 17 | } 18 | 19 | public Element Element 20 | { 21 | get 22 | { return element; } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Data/AlignmentConstants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Games.Halo2.Compiler.Data 6 | { 7 | public static class AlignmentConstants 8 | { 9 | public const int PageAlignment = 0x200; 10 | public const int FileAlignment = 0x800; 11 | public const int MetaAlignment = 0x10; 12 | public const int BlockAlignment = 0x4; 13 | public const int StringAlignment = 0x80; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Data/CacheFileSound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Games.Halo2.Compiler.Data 5 | { 6 | [StructLayout(LayoutKind.Sequential)] 7 | public struct CacheFileSound 8 | { 9 | public short Flags; 10 | public byte Class; 11 | public byte SampleRate; 12 | public byte Channels; 13 | public byte Compression; 14 | public short PlaybackIndex; 15 | public short PitchRangeIndex; 16 | public byte PitchRangeCount; 17 | public sbyte ScaleIndex; 18 | public sbyte PromotionIndex; 19 | public sbyte CustomPlaybackIndex; 20 | public short ExtraInfoIndex; 21 | public int MaximumPlaybackTime; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Data/ResourceBlock.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Games.Halo2.Compiler.Data 5 | { 6 | [StructLayout(LayoutKind.Sequential)] 7 | public unsafe struct ResourceBlock 8 | { 9 | public int RawOffset; 10 | public int RawSize; 11 | public int SectionDataSize; 12 | public int ResourceDataSize; 13 | public int ResourceCount; 14 | public int ResourceOffset; 15 | public int SelfReferenceIdentifier; 16 | public short OwnerTagSectionOffset; 17 | private fixed byte a[6]; 18 | 19 | [StructLayout(LayoutKind.Sequential)] 20 | public struct Resource 21 | { 22 | public byte DataType; 23 | private fixed byte a[3]; 24 | public short PrimaryLocator; 25 | public short SecondaryLocator; 26 | public int ResourceDataSize; 27 | public int ResourceDataOffset; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Halo 2/Compiler/Data/UnicodeStringList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Games.Halo2.Compiler.Data 5 | { 6 | [StructLayout(LayoutKind.Sequential)] 7 | public unsafe struct UnicodeStringList 8 | { 9 | private fixed byte a[16]; 10 | public UnicodeStringReference Language0; 11 | public UnicodeStringReference Language1; 12 | public UnicodeStringReference Language2; 13 | public UnicodeStringReference Language3; 14 | public UnicodeStringReference Language4; 15 | public UnicodeStringReference Language5; 16 | public UnicodeStringReference Language6; 17 | public UnicodeStringReference Language7; 18 | public UnicodeStringReference Language8; 19 | 20 | [StructLayout(LayoutKind.Sequential)] 21 | public struct UnicodeStringReference 22 | { 23 | public short Index; 24 | public short Count; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Halo 2/Platforms/Xbox/ScriptEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Interfaces.Scripting; 3 | using Interfaces.Scripting.EngineDefinition; 4 | 5 | namespace Games.Halo2.Platforms.Xbox 6 | { 7 | public partial class Halo2XboxGameDefinition 8 | { 9 | public override ScriptEngineDefinition ScriptEngineDefinition 10 | { 11 | get { throw new NotImplementedException(); } 12 | } 13 | 14 | public override IScriptProcessor ScriptProcessor 15 | { 16 | get { throw new NotImplementedException(); } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/ai_dialogue_globals.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/ai_dialogue_globals.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/ai_mission_dialogue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/ai_mission_dialogue.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/antenna.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/antenna.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/biped.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/biped.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/bitmap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/bitmap.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/breakable_surface.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/breakable_surface.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/camera_track.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/camera_track.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/cellular_automata.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/cellular_automata.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/cellular_automata2d.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/cellular_automata2d.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/character.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/character.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/chocolate_mountain.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/chocolate_mountain.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/cloth.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/cloth.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/collision_model.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/collision_model.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/colony.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/colony.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/color_table.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/color_table.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/contrail.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/contrail.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/crate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/crate.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/creature.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/creature.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/damage_effect.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/damage_effect.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/decal.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/decal.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/decorator_set.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/decorator_set.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/decorators.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/decorators.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/detail_object_collection.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/detail_object_collection.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/device.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/device.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/device_control.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/device_control.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/device_light_fixture.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/device_light_fixture.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/device_machine.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/device_machine.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/dialogue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/dialogue.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/effect.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/effect.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/equipment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/equipment.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/garbage.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/garbage.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/globals.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/globals.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/hud_globals.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/hud_globals.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/hud_message_text.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/hud_message_text.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/hud_number.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/hud_number.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/item.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/item.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/item_collection.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/item_collection.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/lens_flare.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/lens_flare.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/light.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/light.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/light_volume.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/light_volume.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/liquid.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/liquid.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/material_effects.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/material_effects.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/material_physics.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/material_physics.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/meter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/meter.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/model.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/model.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/model_animation_graph.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/model_animation_graph.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/multilingual_unicode_string_list.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/multilingual_unicode_string_list.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/multiplayer_globals.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/multiplayer_globals.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/multiplayer_scenario_description.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/multiplayer_scenario_description.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/multiplayer_variant_settings_interface_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/multiplayer_variant_settings_interface_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/new_hud_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/new_hud_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/object.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/object.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/particle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/particle.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/particle_model.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/particle_model.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/particle_physics.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/particle_physics.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/patchy_fog.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/patchy_fog.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/physics.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/physics.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/physics_model.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/physics_model.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/pixel_shader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/pixel_shader.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/planar_fog.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/planar_fog.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/point_physics.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/point_physics.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/projectile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/projectile.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/render_model.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/render_model.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/scenario.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/scenario.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/scenario_structure_bsp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/scenario_structure_bsp.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/scenario_structure_lightmap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/scenario_structure_lightmap.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/scenery.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/scenery.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/screen_effect.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/screen_effect.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/shader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/shader.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/shader_light_response.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/shader_light_response.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/shader_pass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/shader_pass.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/shader_template.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/shader_template.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sky.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sky.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_cache_file_gestalt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_cache_file_gestalt.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_classes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_classes.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_dialogue_constants.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_dialogue_constants.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_effect_collection.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_effect_collection.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_effect_template.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_effect_template.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_environment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_environment.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_looping.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_looping.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_mix.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_mix.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/sound_scenery.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/sound_scenery.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/stereo_system.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/stereo_system.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/style.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/text_value_pair_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/text_value_pair_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/unit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/unit.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/user_interface_globals_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/user_interface_globals_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/user_interface_list_skin_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/user_interface_list_skin_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/user_interface_screen_widget_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/user_interface_screen_widget_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/user_interface_shared_globals_definition.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/user_interface_shared_globals_definition.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/vehicle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/vehicle.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/vehicle_collection.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/vehicle_collection.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/vertex_shader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/vertex_shader.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/weapon.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/weapon.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/weather_system.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/weather_system.class -------------------------------------------------------------------------------- /Halo 2/Resources/Classes/wind.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/Classes/wind.class -------------------------------------------------------------------------------- /Halo 2/Resources/halo2xbox-paidcontent.pta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/halo2xbox-paidcontent.pta -------------------------------------------------------------------------------- /Halo 2/Resources/halo2xbox.pta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo 2/Resources/halo2xbox.pta -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/camera_track.xml: -------------------------------------------------------------------------------- 1 | 2 | CameraTrack 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/colony.xml: -------------------------------------------------------------------------------- 1 | 2 | Colony 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/color_table.xml: -------------------------------------------------------------------------------- 1 | 2 | ColorTable 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/crate.xml: -------------------------------------------------------------------------------- 1 | 2 | Crate 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/device_light_fixture.xml: -------------------------------------------------------------------------------- 1 | 2 | DeviceLightFixture 3 | Halo2 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/equipment.xml: -------------------------------------------------------------------------------- 1 | 2 | Equipment 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/garbage.xml: -------------------------------------------------------------------------------- 1 | 2 | Garbage 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/hud_number.xml: -------------------------------------------------------------------------------- 1 | 2 | HudNumber 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/item_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | ItemCollection 3 | Halo2 4 | 5 | 6 | 7 | 8 | relatively how likely this item will be chosen 9 | 10 | 11 | which item to 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/multiplayer_scenario_description.xml: -------------------------------------------------------------------------------- 1 | 2 | MultiplayerScenarioDescription 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | this is the path to the directory containing the scenario tag file of the same name 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/pixel_shader.xml: -------------------------------------------------------------------------------- 1 | 2 | PixelShader 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/scenery.xml: -------------------------------------------------------------------------------- 1 | 2 | Scenery 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | stimulates? 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/sound.xml: -------------------------------------------------------------------------------- 1 | 2 | Sound 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/sound_dialogue_constants.xml: -------------------------------------------------------------------------------- 1 | 2 | SoundDialogueConstants 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/sound_scenery.xml: -------------------------------------------------------------------------------- 1 | 2 | SoundScenery 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/stereo_system.xml: -------------------------------------------------------------------------------- 1 | 2 | StereoSystem 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/user_interface_globals_definition.xml: -------------------------------------------------------------------------------- 1 | 2 | UserInterfaceGlobalsDefinition 3 | Halo2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/vehicle_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | VehicleCollection 3 | Halo2 4 | 5 | 6 | 7 | 8 | relatively how likely this vehicle will be chosen 9 | 10 | 11 | which vehicle to 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Halo 2/Tags/Xml/wind.xml: -------------------------------------------------------------------------------- 1 | 2 | Wind 3 | Halo2 4 | 5 | 6 | 7 | the wind magnitude in the weather region scales the wind between these bounds 8 | 9 | 10 | the wind direction varies inside a box defined by these angles on either side of the direction from the weather region. 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Halo/Compiler/BitmapPixel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo.Compiler 4 | { 5 | internal static class BitmapPixel 6 | { 7 | internal static byte BitmapBpp(short format) 8 | { 9 | switch (format) 10 | { 11 | case 0: 12 | case 1: 13 | case 2: 14 | return 8; 15 | case 3: 16 | return 16; 17 | case 4: 18 | case 5: 19 | throw new HaloException("Invalid bitmap format."); 20 | case 6: 21 | return 16; 22 | case 7: 23 | throw new HaloException("Invalid bitmap format."); 24 | case 8: 25 | case 9: 26 | return 16; 27 | case 10: 28 | case 11: 29 | return 32; 30 | case 12: 31 | case 13: 32 | throw new HaloException("Invalid bitmap format."); 33 | case 14: 34 | return 4; 35 | case 15: 36 | case 16: 37 | case 17: 38 | return 8; 39 | default: 40 | throw new HaloException("Unknown bitmap format."); 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Halo/Compiler/BspMagic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo.Compiler 4 | { 5 | public enum BspMagic : uint 6 | { 7 | Xbox = 0x819a6000, 8 | PC = 0x41b40000, 9 | CE = 0x41b40000 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Halo/Compiler/IndexMagic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo.Compiler 4 | { 5 | public enum IndexMagic : uint 6 | { 7 | Xbox = 0x803a6024, 8 | PC = 0x40440028, 9 | CE = 0x40440028 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Halo/Compiler/MapBuildVersion.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo.Compiler 4 | { 5 | public class MapBuildVersion 6 | { 7 | public const string Xbox = "01.10.12.2276"; 8 | public const string PC = "01.00.00.0564"; 9 | public const string CE = "01.00.00.0609"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Halo/Compiler/MapFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Games.Halo.Compiler 6 | { 7 | public enum MapFormat : int 8 | { 9 | Xbox = 5, 10 | PC = 7, 11 | CE = 609, 12 | Undefined = -1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Halo/Compiler/MapUsage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo.Compiler 4 | { 5 | public enum MapUsage : int 6 | { 7 | Campaign = 0, 8 | Multiplayer = 1, 9 | UI = 2 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Halo/Controls/Angle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Controls/Angle.cs -------------------------------------------------------------------------------- /Halo/Controls/FixedLengthString.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class FixedLengthString : FieldControl 8 | { 9 | private Tags.Fields.FixedLengthString value; 10 | 11 | public FixedLengthString() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.FixedLengthString; 24 | txtValue.DataBindings.Clear(); 25 | txtValue.DataBindings.Add(new Binding("Text", this.value, "Value")); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Halo/Controls/LongBlockIndex.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class LongBlockIndex : FieldControl 8 | { 9 | private Tags.Fields.LongBlockIndex value; 10 | 11 | public LongBlockIndex() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.LongBlockIndex; 24 | txtValue.DataBindings.Clear(); 25 | txtValue.DataBindings.Add(new Binding("Text", this.value, "Value")); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Halo/Controls/RGBColor.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RGBColor : FieldControl 8 | { 9 | private Tags.Fields.RGBColor value; 10 | 11 | public RGBColor() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RGBColor; 24 | 25 | txtRed.DataBindings.Clear(); 26 | txtGreen.DataBindings.Clear(); 27 | txtBlue.DataBindings.Clear(); 28 | 29 | txtRed.DataBindings.Add(new Binding("Text", this.value, "R")); 30 | txtGreen.DataBindings.Add(new Binding("Text", this.value, "G")); 31 | txtBlue.DataBindings.Add(new Binding("Text", this.value, "B")); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Halo/Controls/RealBounds.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealBounds : FieldControl 8 | { 9 | private Tags.Fields.RealBounds value; 10 | 11 | public RealBounds() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealBounds; 24 | 25 | txtLower.DataBindings.Clear(); 26 | txtUpper.DataBindings.Clear(); 27 | 28 | txtLower.DataBindings.Add(new Binding("Text", this.value, "Lower")); 29 | txtUpper.DataBindings.Add(new Binding("Text", this.value, "Upper")); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Halo/Controls/RealEulerAngles2D.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealEulerAngles2D : FieldControl 8 | { 9 | private Tags.Fields.RealEulerAngles2D value; 10 | 11 | public RealEulerAngles2D() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealEulerAngles2D; 24 | 25 | txtYaw.DataBindings.Clear(); 26 | txtPitch.DataBindings.Clear(); 27 | 28 | txtYaw.DataBindings.Add(new Binding("Text", this.value, "Y")); 29 | txtPitch.DataBindings.Add(new Binding("Text", this.value, "P")); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Halo/Controls/RealFraction.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealFraction : FieldControl 8 | { 9 | private Tags.Fields.RealFraction value; 10 | 11 | public RealFraction() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealFraction; 24 | txtValue.DataBindings.Clear(); 25 | txtValue.DataBindings.Add(new Binding("Text", this.value, "Value")); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Halo/Controls/RealFractionBounds.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealFractionBounds : FieldControl 8 | { 9 | private Tags.Fields.RealFractionBounds value; 10 | 11 | public RealFractionBounds() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealFractionBounds; 24 | 25 | txtLower.DataBindings.Clear(); 26 | txtUpper.DataBindings.Clear(); 27 | 28 | txtLower.DataBindings.Add(new Binding("Text", this.value, "Lower")); 29 | txtUpper.DataBindings.Add(new Binding("Text", this.value, "Upper")); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Halo/Controls/RealPlane2D.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealPlane2D : FieldControl 8 | { 9 | private Tags.Fields.RealPlane2D value; 10 | 11 | public RealPlane2D() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealPlane2D; 24 | 25 | txtI.DataBindings.Clear(); 26 | txtJ.DataBindings.Clear(); 27 | txtD.DataBindings.Clear(); 28 | 29 | txtI.DataBindings.Add(new Binding("Text", this.value, "I")); 30 | txtJ.DataBindings.Add(new Binding("Text", this.value, "J")); 31 | txtD.DataBindings.Add(new Binding("Text", this.value, "D")); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Halo/Controls/RealPlane3D.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealPlane3D : FieldControl 8 | { 9 | private Tags.Fields.RealPlane3D value; 10 | 11 | public RealPlane3D() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealPlane3D; 24 | 25 | txtI.DataBindings.Clear(); 26 | txtJ.DataBindings.Clear(); 27 | txtK.DataBindings.Clear(); 28 | txtD.DataBindings.Clear(); 29 | 30 | txtI.DataBindings.Add(new Binding("Text", this.value, "I")); 31 | txtJ.DataBindings.Add(new Binding("Text", this.value, "J")); 32 | txtK.DataBindings.Add(new Binding("Text", this.value, "K")); 33 | txtD.DataBindings.Add(new Binding("Text", this.value, "D")); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Halo/Controls/RealQuaternion.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealQuaternion : FieldControl 8 | { 9 | private Tags.Fields.RealQuaternion value; 10 | 11 | public RealQuaternion() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealQuaternion; 24 | 25 | txtI.DataBindings.Clear(); 26 | txtJ.DataBindings.Clear(); 27 | txtK.DataBindings.Clear(); 28 | txtW.DataBindings.Clear(); 29 | 30 | txtI.DataBindings.Add(new Binding("Text", this.value, "I")); 31 | txtJ.DataBindings.Add(new Binding("Text", this.value, "J")); 32 | txtK.DataBindings.Add(new Binding("Text", this.value, "K")); 33 | txtW.DataBindings.Add(new Binding("Text", this.value, "W")); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Halo/Controls/RealRGBColor.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealRGBColor : FieldControl 8 | { 9 | private Tags.Fields.RealRGBColor value; 10 | 11 | public RealRGBColor() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealRGBColor; 24 | 25 | txtRed.DataBindings.Clear(); 26 | txtGreen.DataBindings.Clear(); 27 | txtBlue.DataBindings.Clear(); 28 | 29 | txtRed.DataBindings.Add(new Binding("Text", this.value, "R")); 30 | txtGreen.DataBindings.Add(new Binding("Text", this.value, "G")); 31 | txtBlue.DataBindings.Add(new Binding("Text", this.value, "B")); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Halo/Controls/RealVector2D.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class RealVector2D : FieldControl 8 | { 9 | private Tags.Fields.RealVector2D value; 10 | 11 | public RealVector2D() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.RealVector2D; 24 | 25 | txtIValue.DataBindings.Clear(); 26 | txtJValue.DataBindings.Clear(); 27 | 28 | txtIValue.DataBindings.Add(new Binding("Text", this.value, "I")); 29 | txtJValue.DataBindings.Add(new Binding("Text", this.value, "K")); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Halo/Controls/Rectangle2D.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using Interfaces.Factory; 3 | using Interfaces.TagEditor; 4 | 5 | namespace Games.Halo.Controls 6 | { 7 | public partial class Rectangle2D : FieldControl 8 | { 9 | private Tags.Fields.Rectangle2D value; 10 | 11 | public Rectangle2D() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | public override bool BindSupported(IField field) 17 | { 18 | return (value.GetType() == field.GetType()); 19 | } 20 | 21 | public override void DataBind(IField value) 22 | { 23 | this.value = value as Tags.Fields.Rectangle2D; 24 | 25 | txtT.DataBindings.Clear(); 26 | txtB.DataBindings.Clear(); 27 | txtR.DataBindings.Clear(); 28 | txtL.DataBindings.Clear(); 29 | 30 | txtT.DataBindings.Add(new Binding("Text", this.value, "T")); 31 | txtB.DataBindings.Add(new Binding("Text", this.value, "B")); 32 | txtR.DataBindings.Add(new Binding("Text", this.value, "R")); 33 | txtL.DataBindings.Add(new Binding("Text", this.value, "L")); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Halo/HaloException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Games.Halo 4 | { 5 | /// 6 | /// The exception that is thrown when an error occurs in game-specific Halo processing. 7 | /// 8 | public class HaloException : ApplicationException 9 | { 10 | public HaloException(string message, params object[] arguments) 11 | : base(String.Format(message, arguments)) 12 | { /* I love this job. */ } 13 | 14 | public HaloException(Exception innerException, string message, params object[] arguments) 15 | : base(String.Format(message, arguments), innerException) 16 | { /* Don't you? */ } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Halo/Platforms/CE/ScriptEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Interfaces.Scripting; 3 | using Interfaces.Scripting.EngineDefinition; 4 | 5 | namespace Games.Halo.Platforms.CE 6 | { 7 | partial class HaloCEGameDefinition 8 | { 9 | public override ScriptEngineDefinition ScriptEngineDefinition 10 | { 11 | get { throw new NotImplementedException(); } 12 | } 13 | 14 | public override IScriptProcessor ScriptProcessor 15 | { 16 | get { throw new NotImplementedException(); } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Halo/Platforms/Shared/PointerList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Games.Halo.Platforms.Shared 5 | { 6 | public struct PointerList 7 | { 8 | public int Count; 9 | public ArrayList Locations; 10 | public ArrayList Destinations; 11 | 12 | public PointerList(ArrayList locs, ArrayList dests) 13 | { 14 | int lCount = locs.Count; 15 | int dCount = dests.Count; 16 | if (lCount != dCount) 17 | throw new Exception("PointerList location count and destination count did not match."); 18 | Count = lCount; 19 | Locations = locs; 20 | Destinations = dests; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Halo/Platforms/Shared/SceneMenuDefinitions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Interfaces.DynamicInterface.RuntimeMenu; 4 | using Interfaces.DynamicInterface.SceneInstanceMenu; 5 | 6 | namespace Games.Halo.Platforms.Shared 7 | { 8 | public static class SceneMenuDefinitions 9 | { 10 | // once the menus are initialized and displaying, we'll store definitions for how they should look here 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Halo/Platforms/Shared/SimplePointer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Games.Halo.Platforms.Shared 5 | { 6 | public struct SimplePointer 7 | { 8 | public int Location; 9 | public uint Offset; 10 | 11 | public SimplePointer(int location, uint offset) 12 | { 13 | Location = location; 14 | Offset = offset; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Halo/Platforms/Xbox/ScriptEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Interfaces.Scripting; 3 | using Interfaces.Scripting.EngineDefinition; 4 | 5 | namespace Games.Halo.Platforms.Xbox 6 | { 7 | partial class HaloXboxGameDefinition 8 | { 9 | public override ScriptEngineDefinition ScriptEngineDefinition 10 | { 11 | get { throw new NotImplementedException(); } 12 | } 13 | 14 | public override IScriptProcessor ScriptProcessor 15 | { 16 | get { throw new NotImplementedException(); } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Halo/Resources/Shaders/shader_transparent_generic/generic_b.fx: -------------------------------------------------------------------------------- 1 | // this file is part of a shader_tranaparent_generic shader generation method. 2 | // written by SwampFox 3 | 4 | return saturate(scratch_0); 5 | } 6 | 7 | technique GenericTransparent 8 | { 9 | pass generic 10 | { 11 | ZEnable = true; 12 | VertexShader = compile vs_1_1 genericVS_1_1(); 13 | PixelShader = compile ps_2_0 ps_transparent_generic(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Halo/Resources/halo.cxpe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/halo.cxpe -------------------------------------------------------------------------------- /Halo/Resources/halopc.pta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/halopc.pta -------------------------------------------------------------------------------- /Halo/Resources/halopc_bitmaps.pci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/halopc_bitmaps.pci -------------------------------------------------------------------------------- /Halo/Resources/halopc_sounds.pci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/halopc_sounds.pci -------------------------------------------------------------------------------- /Halo/Resources/haloxbox.pta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/haloxbox.pta -------------------------------------------------------------------------------- /Halo/Resources/texture_palette.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Halo/Resources/texture_palette.bin -------------------------------------------------------------------------------- /Halo/Tags/TagDebug.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using Games.Halo.Tags.Fields; 4 | 5 | namespace Games.Halo.Tags 6 | { 7 | public class TagDebug 8 | { 9 | public static bool EnableReadDebug = false; 10 | 11 | public static void CheckOffset(long actualPos, Block block, string collectionName) 12 | { 13 | /*Trace.WriteLine(string.Format("\r\nLoading {0} blocks: {1}", block.Count, collectionName)); 14 | if (block.Count != 0) 15 | { 16 | if (actualPos != block.Offset) 17 | { 18 | Trace.WriteLine(string.Format("{0} Out of Sync. Desired Offset: {1:X} Actual Offset: {2:X}", collectionName, block.Offset + 0x40, (int)actualPos)); 19 | throw new HaloException("{0} Out of Sync. Desired Offset: {1:X} Actual Offset: {2:X}", collectionName, block.Offset + 0x40, (int)actualPos); 20 | } 21 | }*/ 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/camera_track.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | CameraTrack 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/color_table.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ColorTable 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/device_control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | DeviceControl 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/device_light_fixture.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | DeviceLightFixture 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/equipment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Equipment 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/garbage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Garbage 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/hud_number.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | HudNumber 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/input_device_defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | InputDeviceDefaults 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/item_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ItemCollection 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | Relatively how likely this item will be chosen. 11 | 12 | 13 | Which item to . 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/material_effects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | MaterialEffects 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/multiplayer_scenario_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | MultiplayerScenarioDescription 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | This is the path to the directory containing the scenario tag file of the same name. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Placeholder 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/preferences_network_game.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PreferencesNetworkGame 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/scenery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Scenery 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/sound_scenery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SoundScenery 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/spheroid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Spheroid 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/string_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | StringList 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/tag_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TagCollection 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/ui_widget_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | UiWidgetCollection 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/unicode_string_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | UnicodeStringList 4 | Halo1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Halo/Tags/Xml/wind.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Wind 4 | Halo1 5 | 6 | 7 | 8 | The wind magnitude in the weather region scales the wind between these bounds. 9 | 10 | 11 | The wind direction varies inside a box defined by these angles on either side of the direction from the weather region.. 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Interfaces/Alignment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces 4 | { 5 | /// 6 | /// Provides methods to align data. 7 | /// 8 | public static class Alignment 9 | { 10 | public static int Align(int value, int alignment) 11 | { 12 | int padding = alignment - Math.Abs(value % alignment); 13 | if (padding == alignment) 14 | return value; 15 | else 16 | return value + padding; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Interfaces/Conversion.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces 4 | { 5 | /// 6 | /// Contains static methods to convert data types in special ways. 7 | /// 8 | public static class Conversion 9 | { 10 | /// 11 | /// Converts an unsigned integer to its signed equivilent by reference. 12 | /// 13 | public unsafe static int ToInt(uint value) 14 | { 15 | return *(int*)&value; 16 | } 17 | 18 | /// 19 | /// Converts a signed integer to its unsigned equivilent by reference. 20 | /// 21 | public unsafe static uint ToUInt(int value) 22 | { 23 | return *(uint*)&value; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/RuntimeMenu/RuntimeMenuCheckbox.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using DevComponents.DotNetBar; 4 | 5 | namespace Interfaces.DynamicInterface.RuntimeMenu 6 | { 7 | public class RuntimeMenuCheckbox : RuntimeMenuObject 8 | { 9 | private CheckBoxChangeEventHandler checkedChanged; 10 | 11 | public static implicit operator CheckBoxItem(RuntimeMenuCheckbox description) 12 | { 13 | CheckBoxItem checkbox = new CheckBoxItem(description.Name.Replace(" ", ""), description.Name); 14 | checkbox.Tooltip = description.ToolTip; 15 | 16 | if (description.checkedChanged != null) 17 | checkbox.CheckedChanged += description.checkedChanged; 18 | 19 | return checkbox; 20 | } 21 | 22 | public RuntimeMenuCheckbox(string name, string tooltip, bool beginsGroup, CheckBoxChangeEventHandler checkedChanged) 23 | : base(name, RuntimeMenuType.CheckBox, tooltip, null, beginsGroup) 24 | { 25 | this.checkedChanged = checkedChanged; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/RuntimeMenu/RuntimeMenuLabel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using DevComponents.DotNetBar; 4 | 5 | namespace Interfaces.DynamicInterface.RuntimeMenu 6 | { 7 | public class RuntimeMenuLabel : RuntimeMenuObject 8 | { 9 | public static implicit operator LabelItem(RuntimeMenuLabel description) 10 | { 11 | LabelItem label = new LabelItem(description.Name.Replace(" ", ""), description.Name); 12 | label.Image = description.Image; 13 | label.Tooltip = description.ToolTip; 14 | return label; 15 | } 16 | 17 | public RuntimeMenuLabel(string name, string tooltip, Image image) 18 | : base(name, RuntimeMenuType.Label, tooltip, image, false) 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/RuntimeMenu/RuntimeMenuTextbox.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using DevComponents.DotNetBar; 4 | 5 | namespace Interfaces.DynamicInterface.RuntimeMenu 6 | { 7 | public class RuntimeMenuTextbox : RuntimeMenuObject 8 | { 9 | private string value; 10 | private EventHandler valueChanged; 11 | 12 | public static implicit operator TextBoxItem(RuntimeMenuTextbox description) 13 | { 14 | TextBoxItem textbox = new TextBoxItem(description.Name.Replace(" ", ""), description.Name); 15 | textbox.Tooltip = description.ToolTip; 16 | textbox.TextBox.Text = description.value; 17 | 18 | if (description.valueChanged != null) 19 | textbox.TextBox.TextChanged += description.valueChanged; 20 | 21 | return textbox; 22 | } 23 | 24 | public RuntimeMenuTextbox(string name, string tooltip, bool beginsGroup, EventHandler valueChanged, string value) 25 | : base(name, RuntimeMenuType.TextBox, tooltip, null, beginsGroup) 26 | { 27 | this.value = value; 28 | this.valueChanged = valueChanged; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/RuntimeMenu/RuntimeMenuType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.DynamicInterface.RuntimeMenu 4 | { 5 | public enum RuntimeMenuType 6 | { 7 | Label = 0, 8 | Button, 9 | TextBox, 10 | ComboBox, 11 | CheckBox, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/SceneInstanceMenu/ISceneInstanceMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.DynamicInterface.SceneInstanceMenu 4 | { 5 | public interface ISceneInstanceMenu 6 | { 7 | ScenePalette[] Palettes 8 | { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/SceneInstanceMenu/ISceneInstanceProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.DynamicInterface.SceneInstanceMenu 4 | { 5 | public interface ISceneInstanceProvider 6 | { 7 | event EventHandler ObjectListModified; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/SceneInstanceMenu/PaletteTarget.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.DynamicInterface.SceneInstanceMenu 4 | { 5 | [Flags] 6 | public enum PaletteTarget 7 | { 8 | Campaign = 0x1, 9 | Multiplayer = 0x2, 10 | UI = 0x4, 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Interfaces/DynamicInterface/SceneInstanceMenu/SceneObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.DynamicInterface.SceneInstanceMenu 4 | { 5 | public class SceneObject 6 | { 7 | private int palette; 8 | private string objectName; 9 | 10 | public SceneObject(int palette, string objectName) 11 | { 12 | this.palette = palette; 13 | this.objectName = objectName; 14 | } 15 | 16 | public int PaletteID 17 | { 18 | get 19 | { return palette; } 20 | } 21 | 22 | public string ObjectName 23 | { 24 | get 25 | { return objectName; } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Interfaces/Factory/Accessors.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Factory 4 | { 5 | /// 6 | /// Represents the available set of property accessors. 7 | /// 8 | public enum Accessors 9 | { 10 | Get, 11 | Set, 12 | Both 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Interfaces/Factory/CommonTypes/BindingAngle1.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Factory.CommonTypes 2 | { 3 | public class BindingAngle1 4 | { 5 | private float yaw; 6 | 7 | public float Yaw 8 | { 9 | get { return yaw; } 10 | set { yaw = value; } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /Interfaces/Factory/CommonTypes/BindingAngle3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Factory.CommonTypes 4 | { 5 | public class BindingAngle3 6 | { 7 | private float pitch; 8 | private float roll; 9 | private float yaw; 10 | 11 | public event EventHandler RotationChanged; 12 | 13 | public float Pitch 14 | { 15 | get { return pitch; } 16 | set 17 | { 18 | pitch = value; 19 | } 20 | } 21 | public float Roll 22 | { 23 | get { return roll; } 24 | set 25 | { 26 | roll = value; 27 | } 28 | } 29 | public float Yaw 30 | { 31 | get { return yaw; } 32 | set 33 | { 34 | yaw = value; 35 | } 36 | } 37 | public void NotifyGui() 38 | { 39 | if (RotationChanged != null) RotationChanged(this, new EventArgs()); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Interfaces/Factory/CommonTypes/BindingVector3.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Factory.CommonTypes 2 | { 3 | public class BindingVector3 4 | { 5 | private float x; 6 | private float y; 7 | private float z; 8 | 9 | public float X 10 | { 11 | get { return x; } 12 | set { x = value; } 13 | } 14 | public float Y 15 | { 16 | get { return y; } 17 | set { y = value; } 18 | } 19 | public float Z 20 | { 21 | get { return z; } 22 | set { z = value; } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Interfaces/Factory/IBinaryField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.IO; 5 | 6 | namespace Interfaces.Factory 7 | { 8 | /// 9 | /// In addition to being a normal field, this interface exposes Read and Write Binary methods on an object. 10 | /// 11 | public interface IBinaryField : IField 12 | { 13 | void ReadBinary(BinaryReader reader); 14 | 15 | void WriteBinary(BinaryWriter writer); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Interfaces/Factory/IBlock.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System; 3 | 4 | namespace Interfaces.Factory 5 | { 6 | /// 7 | /// Represents a tag base and a block base. 8 | /// 9 | public interface IBlock 10 | { 11 | string[] TagReferenceList { get; } 12 | 13 | string BlockName { get; } 14 | //string BlockName(); 15 | event EventHandler BlockNameChanged; 16 | 17 | void Read(BinaryReader reader); 18 | void ReadChildData(BinaryReader reader); 19 | 20 | void Write(BinaryWriter writer); 21 | void WriteChildData(BinaryWriter writer); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Interfaces/Factory/IField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace Interfaces.Factory 5 | { 6 | /// 7 | /// Provides a base for a field in a Blam tag definition. 8 | /// 9 | public interface IField 10 | { 11 | void Read(BinaryReader reader); 12 | 13 | void Write(BinaryWriter writer); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Interfaces/Factory/IFieldCodeGenerator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.CodeDom; 3 | 4 | namespace Interfaces.Factory 5 | { 6 | public interface IFieldCodeGenerator 7 | { 8 | string Name { get; } 9 | 10 | CodeMemberField GeneratePrivateMember(); 11 | 12 | CodeMemberProperty GeneratePublicAccessors(); 13 | 14 | string GenerateMetadataInitializer(); 15 | 16 | CodeStatement GenerateConstructorLogic(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Interfaces/Factory/IStringField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.IO; 5 | 6 | namespace Interfaces.Factory 7 | { 8 | /// 9 | /// In addition to being a field, this interface exposes a ReadString and WriteString method on a type. 10 | /// 11 | public interface IStringField : IField 12 | { 13 | void ReadString(BinaryReader reader); 14 | 15 | void WriteString(BinaryWriter writer); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Interfaces/Games/IMapCompiler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using Interfaces.Pool; 4 | 5 | namespace Interfaces.Games 6 | { 7 | /// 8 | /// Provides a base for a map file compiler. 9 | /// 10 | public interface IMapCompiler 11 | { 12 | /// 13 | /// Adds a library to the list referenced at compile time. 14 | /// 15 | /// library to add 16 | void AddLibrary(ILibrary library); 17 | 18 | /// 19 | /// Removes a library from the list referenced at compile time. 20 | /// 21 | /// library to remove 22 | void RemoveLibrary(ILibrary library); 23 | 24 | /// 25 | /// Compiles a set of top-level tags into a cache file. 26 | /// 27 | /// top level tags to compile from 28 | /// stream to compile to. must exist already. 29 | void Compile(string[] topLevelTags, Stream output); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Interfaces/Games/MapFileDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Games 2 | { 3 | /// 4 | /// A definition of a mapfile and it's checksum. 5 | /// 6 | public class MapFileDefinition 7 | { 8 | private string filename; 9 | private ulong lowChecksum; 10 | private ulong highChecksum; 11 | private long fileSize; 12 | 13 | public string Filename 14 | { 15 | get { return filename; } 16 | } 17 | 18 | public ulong LowChecksum 19 | { 20 | get { return lowChecksum; } 21 | } 22 | 23 | public ulong HighChecksum 24 | { 25 | get { return highChecksum; } 26 | } 27 | 28 | public long FileSize 29 | { 30 | get { return fileSize; } 31 | } 32 | 33 | public MapFileDefinition(string filename, ulong lowChecksum, ulong highChecksum, long fileSize) 34 | { 35 | this.filename = filename; 36 | this.lowChecksum = lowChecksum; 37 | this.highChecksum = highChecksum; 38 | this.fileSize = fileSize; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Interfaces/Games/ObjectNotInPackCacheException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Games 4 | { 5 | /// 6 | /// The exception that is thrown when an object not located within a PackCacheIndex is attempted to be accessed. 7 | /// 8 | public class ObjectNotInPackCacheException : ApplicationException 9 | { 10 | public ObjectNotInPackCacheException(string objectName) 11 | : base("The object '" + objectName + "' could not be located in the proper pack cache index.") 12 | { } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Interfaces/IO/ByteOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.IO 4 | { 5 | /// 6 | /// Specifies a binary byte order to use when reading or writing values. 7 | /// 8 | public enum ByteOrder : sbyte 9 | { 10 | LittleEndian = 0, 11 | BigEndian 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/IO/Int24.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.IO 4 | { 5 | /// 6 | /// A dword comprised of one 24 bit integer and an 8 bit integer. 7 | /// 8 | public struct Int24 9 | { 10 | int iPart; 11 | byte bPart; 12 | 13 | public Int24(int dword) 14 | { 15 | iPart = dword & 0x00ffffff; 16 | bPart = (byte)((dword & 0xff000000) >> 24); 17 | } 18 | public Int24(int longInt, byte charInt) 19 | { 20 | iPart = longInt & 0x00ffffff; 21 | bPart = charInt; 22 | } 23 | 24 | public byte Byte 25 | { 26 | get { return bPart; } 27 | set { bPart = value; } 28 | } 29 | public int Integer 30 | { 31 | get { return iPart; } 32 | set { iPart = value & 0x00ffffff; } 33 | } 34 | public int DWord 35 | { 36 | get { return iPart | (bPart << 24); } 37 | set 38 | { 39 | iPart = value & 0x00ffffff; 40 | bPart = (byte)((value & 0xff000000) >> 24); 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Interfaces/Libraries/ArchiveFileSystem/EntryFilters/EntryTypeFilter.cs: -------------------------------------------------------------------------------- 1 | using Core.ArchiveFileSystem; 2 | 3 | namespace Core.Libraries.ArchiveFileSystem.EntryFilters 4 | { 5 | public class EntryTypeFilter : IEntryFilter 6 | { 7 | private EntryType entryType; 8 | public EntryType EntryType 9 | { 10 | get { return entryType; } 11 | } 12 | public EntryTypeFilter(EntryType entryType) 13 | { 14 | this.entryType = entryType; 15 | } 16 | public bool Match(FileTableEntry entry) 17 | { 18 | return entry.EntryType == entryType; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Interfaces/Libraries/ArchiveFileSystem/EntryFilters/ExtensionFilter.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using Core.ArchiveFileSystem; 3 | 4 | namespace Core.Libraries.ArchiveFileSystem.EntryFilters 5 | { 6 | public class ExtensionFilter : IEntryFilter 7 | { 8 | private string fileExtension; 9 | public string FileExtension 10 | { 11 | get { return fileExtension; } 12 | } 13 | public ExtensionFilter(string fileExtension) 14 | { 15 | this.fileExtension = fileExtension.ToLower(); 16 | } 17 | public bool Match(FileTableEntry entry) 18 | { 19 | return (Path.GetExtension(entry.Name).Trim('.').ToLower() == fileExtension) || fileExtension == "*"; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Interfaces/Libraries/ArchiveFileSystem/EntryFilters/IEntryFilter.cs: -------------------------------------------------------------------------------- 1 | using Core.ArchiveFileSystem; 2 | 3 | namespace Core.Libraries.ArchiveFileSystem.EntryFilters 4 | { 5 | /// 6 | /// Represents a condition that is used to filter FileTableEntry objects. 7 | /// 8 | public interface IEntryFilter 9 | { 10 | /// 11 | /// Returns a boolean indicating if the specified entry matches the filter's criteria. 12 | /// 13 | bool Match(FileTableEntry entry); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Interfaces/Libraries/ArchiveFileSystem/EntryFilters/NameFilter.cs: -------------------------------------------------------------------------------- 1 | using Core.ArchiveFileSystem; 2 | 3 | namespace Core.Libraries.ArchiveFileSystem.EntryFilters 4 | { 5 | public class NameFilter : IEntryFilter 6 | { 7 | private string name; 8 | public string Name 9 | { 10 | get { return name; } 11 | } 12 | public NameFilter(string name) 13 | { 14 | this.name = name.ToUpper(); 15 | } 16 | /// 17 | /// Returns a boolean indicating if the specified entry matches the name. 18 | /// 19 | public bool Match(FileTableEntry entry) 20 | { 21 | return entry.Name.ToUpper() == name; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Interfaces/Libraries/ArchiveFileSystem/EntryFilters/OffsetFilter.cs: -------------------------------------------------------------------------------- 1 | using Core.ArchiveFileSystem; 2 | 3 | namespace Core.Libraries.ArchiveFileSystem.EntryFilters 4 | { 5 | public class OffsetFilter : IEntryFilter 6 | { 7 | private int offset; 8 | 9 | public int Offset 10 | { 11 | get { return offset; } 12 | } 13 | 14 | public OffsetFilter(int offset) 15 | { 16 | this.offset = offset; 17 | } 18 | 19 | /// 20 | /// Returns a boolean indicating if the specified entry exists at the specified offset. 21 | /// 22 | public bool Match(FileTableEntry entry) 23 | { 24 | return entry.Offset == offset; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Interfaces/Notes/NoteEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Notes 6 | { 7 | /// 8 | /// Represents the method that will handle an event thrown by a note modifier. 9 | /// 10 | /// which note in the collection that is in question 11 | public delegate void NoteEvent(int index); 12 | } 13 | -------------------------------------------------------------------------------- /Interfaces/Policies/Singleton.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Policies 4 | { 5 | /// 6 | /// Represents a single, static instance of any class or structure that can be instanciated with no arguments. 7 | /// 8 | /// type of singleton to access 9 | public static class Singleton where T : new() 10 | { 11 | private static T instance = new T(); 12 | 13 | /// 14 | /// Gets the instance of the class or structure contained by this Singleton. 15 | /// 16 | public static T Instance 17 | { 18 | get 19 | { return instance; } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Interfaces/Pool/CompressionStyle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Pool 4 | { 5 | /// 6 | /// Represents available compression styles. 7 | /// 8 | public enum CompressionStyle : short 9 | { 10 | Store = 0, 11 | GZip 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/Pool/TagErrorEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Pool 4 | { 5 | /// 6 | /// Represents event data for a tag error event. 7 | /// 8 | public class TagErrorEventArgs : EventArgs 9 | { 10 | private string error = null; 11 | 12 | /// 13 | /// Creates a new instance of the TagErrorEventArgs class. 14 | /// 15 | /// 16 | public TagErrorEventArgs(string errorMessage) 17 | { error = errorMessage; } 18 | 19 | /// 20 | /// Gets the error message provided by the tag. 21 | /// 22 | public string ErrorMessage 23 | { 24 | get 25 | { return error; } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Interfaces/Pool/TagErrorEventHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Pool 6 | { 7 | /// 8 | /// Represents a method that will handle a tag error event. 9 | /// 10 | /// the object raising the event 11 | /// the event data 12 | public delegate void TagErrorEventHandler(object sender, TagErrorEventArgs e); 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/Pool/TagFile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Pool/TagFile.cs -------------------------------------------------------------------------------- /Interfaces/Pool/TagLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Pool 4 | { 5 | /// 6 | /// Lists the valid locations for a tag to reside. 7 | /// 8 | public enum TagLocation : byte 9 | { 10 | /// 11 | /// Scope should be determined by the Pool. (default) 12 | /// 13 | Auto = 0, 14 | /// 15 | /// Resides in the project folder. 16 | /// 17 | Project, 18 | /// 19 | /// Resides in a prefab archive. 20 | /// 21 | Prefab, 22 | /// 23 | /// Resides in a shared directory. 24 | /// 25 | Shared, 26 | /// 27 | /// Resides in a PTA. 28 | /// 29 | Archive 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Interfaces/Project/ProjectTag.cs: -------------------------------------------------------------------------------- 1 | namespace Core.Project 2 | { 3 | /// 4 | /// A tag inside a project file. 5 | /// 6 | public class ProjectTag 7 | { 8 | private string templateElement; 9 | private string filename; 10 | private string basePath; 11 | 12 | /// 13 | /// Gets the string identifier of the template element that this tag corresponds to. 14 | /// 15 | public string TemplateElement 16 | { 17 | get { return templateElement; } 18 | } 19 | 20 | /// 21 | /// Gets or sets the path of the tag. 22 | /// 23 | public string Path 24 | { 25 | get { return basePath.Trim('\\') + "\\" + filename; } 26 | set 27 | { 28 | basePath = System.IO.Path.GetDirectoryName(value); 29 | filename = System.IO.Path.GetFileName(value); 30 | } 31 | } 32 | 33 | public ProjectTag(string templateElement, string path) 34 | { 35 | this.templateElement = templateElement; 36 | Path = path; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Interfaces/Project/ProjectTemplate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Project 4 | { 5 | /// 6 | /// Defines the required tags that a project needs in order 7 | /// to compile to a specified format. 8 | /// 9 | public class ProjectTemplate 10 | { 11 | private string name; 12 | private TemplateTag[] tagSet; 13 | 14 | public string Name 15 | { 16 | get { return name; } 17 | } 18 | 19 | public TemplateTag[] TagSet 20 | { 21 | get { return tagSet; } 22 | } 23 | 24 | public ProjectTemplate(string name, params TemplateTag[] tagSet) 25 | { 26 | this.name = name; 27 | this.tagSet = tagSet; 28 | } 29 | 30 | public override string ToString() 31 | { 32 | return name; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Interfaces/Project/TemplateTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Project 4 | { 5 | /// 6 | /// A tag entry within a ProjectTemplate. 7 | /// 8 | public class TemplateTag 9 | { 10 | private string fileType; 11 | private string name; 12 | private string defaultFile; 13 | 14 | public string FileType 15 | { 16 | get { return fileType; } 17 | } 18 | 19 | public string Name 20 | { 21 | get { return name; } 22 | } 23 | 24 | public string DefaultFile 25 | { 26 | get { return defaultFile; } 27 | } 28 | 29 | public TemplateTag(string fileType, string name) : this(fileType, name, null) { ; } 30 | 31 | public TemplateTag(string fileType, string name, string defaultFile) 32 | { 33 | this.fileType = fileType; 34 | this.name = name; 35 | this.defaultFile = defaultFile; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Project/VersionDesignation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Core.Project 4 | { 5 | /// 6 | /// Represents the three version designations: alpha, beta, and release. 7 | /// 8 | public enum VersionDesignation 9 | { 10 | Alpha, 11 | Beta, 12 | Release 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Interfaces/Rendering/CoordinateSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering 4 | { 5 | /// 6 | /// Exposes the two coordinate systems. 7 | /// 8 | public enum CoordinateSystem 9 | { 10 | LeftHanded = 0, 11 | RightHanded 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Instancing/DynamicObjects/DynamicColorRetrievalMethod.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX.Direct3D; 3 | 4 | namespace Interfaces.Rendering.Instancing.DynamicObjects 5 | { 6 | /// 7 | /// Represents a method that retrieves a color from a dynamic object. 8 | /// 9 | public delegate ColorValue DynamicColorRetrievalMethod(int source, int permutation, float interpolator); 10 | } 11 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Instancing/IInstancable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Instancing 4 | { 5 | public interface IInstanceable 6 | { 7 | /// 8 | /// Gets an Instance that can in itself represent this entity. 9 | /// 10 | Instance Instance { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Instancing/ShaderPreviewInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using Microsoft.DirectX; 4 | using Interfaces.Rendering.Interfaces; 5 | using Interfaces.Rendering.Wrappers; 6 | using Interfaces.Rendering.Primitives; 7 | 8 | namespace Interfaces.Rendering.Instancing 9 | { 10 | public class ShaderPreviewInstance : Instance 11 | { 12 | public ShaderPreviewInstance(IShader shader) 13 | : base(null, Vector3.Empty, BoundingBox.WorldUnitOrigin) 14 | { 15 | entity = new ScreenBillboard(new Point(100, 100), 512, 512, shader); 16 | } 17 | public override void Render() 18 | { 19 | entity.Render(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IDynamicShader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX.Direct3D; 3 | 4 | namespace Interfaces.Rendering.Interfaces 5 | { 6 | public interface IDynamicShader : IShader 7 | { 8 | /// 9 | /// Gets the dynamic color source of this shader. 10 | /// 11 | int DynamicColorSource { get; } 12 | 13 | /// 14 | /// Sets the dynamic color for the shader. 15 | /// 16 | ColorValue DynamicColor { set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IEnvironmentProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Interfaces 4 | { 5 | public interface IEnvironmentProvider 6 | { 7 | /// 8 | /// Gets the current IEnvironment representing the world. 9 | /// 10 | IEnvironment Environment 11 | { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/ILight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Interfaces.Rendering.Primitives; 5 | 6 | namespace Interfaces.Rendering.Interfaces 7 | { 8 | /// 9 | /// Interface specification for light in scene. 10 | /// 11 | public interface ILight //: IRenderable 12 | { 13 | /// 14 | /// Generate a photon for the scene. 15 | /// 16 | /// A photon with the lights properties. 17 | IPhoton GeneratePhoton(); 18 | 19 | float Power { get; set; } 20 | int PhotonCount { get; set; } 21 | RealColor Color { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IMaterial.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using Interfaces.Rendering.Primitives; 7 | 8 | using Microsoft.DirectX; 9 | 10 | namespace Interfaces.Rendering.Interfaces 11 | { 12 | public interface IMaterial 13 | { 14 | // Halo1 stuff 15 | int DistantLightCount { get; set; } 16 | RealColor DistantLight1Color { get; set; } 17 | Vector3 DistantLight1Direction { get; set; } 18 | RealColor DistantLight2Color { get; set; } 19 | Vector3 DistantLight2Direction { get; set; } 20 | RealColor AmbientLight { get; set; } 21 | RealColor ReflectionTint { get; set; } 22 | RealColor ShadowColor { get; set; } 23 | Vector3 ShadowVector { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IRealColor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace Interfaces.Rendering.Interfaces 7 | { 8 | public interface IRealColor 9 | { 10 | float R { get; set; } 11 | float G { get; set; } 12 | float B { get; set; } 13 | float A { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IRenderStateModifier.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Interfaces 4 | { 5 | public interface IRenderStateModifier 6 | { 7 | /// 8 | /// Called before the scene is drawn to modify the render state. 9 | /// 10 | void ModifyStateBeforeScene(); 11 | 12 | /// 13 | /// Called after the scene is drawn to either further modify the state or to return it to its previous state. 14 | /// 15 | void ModifyStateAfterScene(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/ITextureMap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Interfaces 4 | { 5 | public interface ITextureMap 6 | { 7 | void SaveToRaw(string path, int ix); 8 | void SaveToTag(string taglocation); 9 | void SetPixel(float U, float V, float[] Colour, int radius); 10 | System.Drawing.Bitmap SaveToBitmap(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/ITextureMapCollection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Interfaces 4 | { 5 | public interface ITextureMapCollection 6 | { 7 | void AddTexture(ITextureMap texture); 8 | int Count { get; } 9 | int Radius { get; set; } 10 | void SaveAllRaw(string path); 11 | void SaveAllTag(string taglocation); 12 | ITextureMap this[int index] { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Interfaces/IToneMapOperator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Text; 5 | 6 | namespace Interfaces.Rendering.Interfaces 7 | { 8 | /// 9 | /// Interface for tonemap operators. Impelmentations 10 | /// of this interface should map continuous values to 11 | /// descrete values. 12 | /// 13 | public interface IToneMapOperator 14 | { 15 | /// 16 | /// Converts an HDR image to a descrete image. 17 | /// 18 | /// HDR image input. 19 | /// Settings for operator. 20 | /// Filtered image. 21 | Bitmap CreateImage(double[, ,] HDRi, params object[] optionalsettings); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Lod.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering 4 | { 5 | public enum LevelOfDetail 6 | { 7 | SuperLow = 0, 8 | Low = 1, 9 | Medium = 2, 10 | High = 3, 11 | SuperHigh = 4, 12 | CausesFires = 5, 13 | Cull = 6 14 | }; 15 | } -------------------------------------------------------------------------------- /Interfaces/Rendering/Primitives/BillboardType.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Rendering.Primitives 2 | { 3 | /// 4 | /// Indicates the type of billboard to create (textures). 5 | /// 6 | public enum BillboardType 7 | { 8 | CTF_Flag, 9 | CTF_Vehicle, 10 | Oddball, 11 | Race_Track, 12 | Race_Vehicle, 13 | Vegas_Bank, 14 | Teleport_From, 15 | Teleport_To, 16 | KOH, 17 | Sound_Scenery 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Primitives/NodeTransform.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | 4 | namespace Interfaces.Rendering.Primitives 5 | { 6 | public class NodeTransform 7 | { 8 | private Matrix absolute = Matrix.Identity; 9 | private Matrix relative = Matrix.Identity; 10 | private Vector3 finalNode = Vector3.Empty; 11 | 12 | public Matrix Absolute 13 | { 14 | get 15 | { return absolute; } 16 | set 17 | { absolute = value; } 18 | } 19 | 20 | public Matrix Relative 21 | { 22 | get 23 | { return relative; } 24 | set 25 | { relative = value; } 26 | } 27 | 28 | public Vector3 FinalNode 29 | { 30 | get 31 | { return finalNode; } 32 | set 33 | { finalNode = value; } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Primitives/Region.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Primitives 4 | { 5 | public enum Region 6 | { 7 | Right = 0, 8 | Left, 9 | Middle 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Primitives/SubMesh.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Rendering.Primitives 6 | { 7 | /// 8 | /// Represents a single subset of a mesh, usually dividing models into shader regions. 9 | /// 10 | public class SubMesh 11 | { 12 | private ushort index = 0; 13 | private ushort count = 0; 14 | private short shader = 0; 15 | 16 | public SubMesh(ushort index, ushort count, short shaderIndex) 17 | { 18 | this.index = index; 19 | this.count = count; 20 | this.shader = shaderIndex; 21 | } 22 | 23 | public ushort Index 24 | { 25 | get 26 | { return index; } 27 | set 28 | { index = value; } 29 | } 30 | 31 | public ushort Count 32 | { 33 | get 34 | { return count; } 35 | set 36 | { count = value; } 37 | } 38 | 39 | public short ShaderIndex 40 | { 41 | get 42 | { return shader; } 43 | set 44 | { shader = value; } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Interfaces/Rendering/RenderException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Rendering 6 | { 7 | /// 8 | /// Represents a fault in the Render functionality. 9 | /// 10 | public class RenderException : ApplicationException 11 | { 12 | public RenderException(string message, params object[] arguments) 13 | : base(String.Format(message, arguments)) 14 | { /* Lovely day out isn't it? */ } 15 | 16 | public RenderException(Exception innerException, string message, params object[] arguments) 17 | : base(String.Format(message, arguments), innerException) 18 | { /* Yes, it sure is... */ } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Interfaces/Rendering/SceneType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering 4 | { 5 | public enum SceneType 6 | { 7 | Bitmap, 8 | Effect, 9 | Model, 10 | Object, 11 | SBSP, 12 | Scenario, 13 | Shader, 14 | Other 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Selection/ArcMode.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Rendering.Selection 2 | { 3 | public enum ArcMode { Pitch, Roll, Yaw }; 4 | } -------------------------------------------------------------------------------- /Interfaces/Rendering/Selection/EditMode.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Rendering.Selection 2 | { 3 | public enum EditMode 4 | { 5 | NotSelected, 6 | Selected, 7 | IdleTranslate, 8 | IdleRotate, 9 | MoveXY, 10 | MoveYZ, 11 | MoveXZ, 12 | MoveDX, 13 | MoveDY, 14 | MoveDZ, 15 | Pitch, 16 | Roll, 17 | Yaw 18 | }; 19 | } -------------------------------------------------------------------------------- /Interfaces/Rendering/Selection/MultiSelectMode.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces.Rendering.Selection 2 | { 3 | public enum MultiSelectMode { Disabled, FindEnd, Active }; 4 | } 5 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Selection/TargetType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Rendering.Selection 4 | { 5 | public enum TargetType 6 | { 7 | None = 0, 8 | 9 | LevelMesh, 10 | Object, 11 | PlayerSpawn, 12 | NetgameFlag, 13 | NetgameEquipment, 14 | 15 | Custom = -1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Interfaces/Rendering/Wrappers/IBindingTransform.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Rendering/Wrappers/IBindingTransform.cs -------------------------------------------------------------------------------- /Interfaces/Resources/ctf.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/ctf.dds -------------------------------------------------------------------------------- /Interfaces/Resources/ctf_vehicle.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/ctf_vehicle.dds -------------------------------------------------------------------------------- /Interfaces/Resources/koh.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/koh.dds -------------------------------------------------------------------------------- /Interfaces/Resources/oddball.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/oddball.dds -------------------------------------------------------------------------------- /Interfaces/Resources/race.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/race.dds -------------------------------------------------------------------------------- /Interfaces/Resources/race_vehicle.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/race_vehicle.dds -------------------------------------------------------------------------------- /Interfaces/Resources/sound_scenery.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/sound_scenery.dds -------------------------------------------------------------------------------- /Interfaces/Resources/teleporter_enter.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/teleporter_enter.dds -------------------------------------------------------------------------------- /Interfaces/Resources/teleporter_exit.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/teleporter_exit.dds -------------------------------------------------------------------------------- /Interfaces/Resources/vegas_bank.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Interfaces/Resources/vegas_bank.dds -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Bsl/BslFunctionCallNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.Bsl 5 | { 6 | class BslFunctionCallNode : NodeBase 7 | { 8 | private short m_operationCode; 9 | 10 | public short OperationCode 11 | { 12 | get { return m_operationCode; } 13 | } 14 | 15 | public BslFunctionCallNode(short operationCode, List parameters) : base(parameters) 16 | { 17 | m_operationCode = operationCode; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | BslFunctionCallNode castNode = node as BslFunctionCallNode; 23 | if (castNode == null || castNode.m_children.Count != m_children.Count) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_operationCode == m_operationCode ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override void VisitThis(VisitorProcessorBase visitor) 29 | { 30 | visitor.ProcessNode(this); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/GroupingNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes 5 | { 6 | class GroupingNode : NodeBase 7 | { 8 | public GroupingNode(List children) : base(children) { } 9 | 10 | public override void VisitThis(VisitorProcessorBase visitor) 11 | { 12 | visitor.ProcessNode(this); 13 | } 14 | 15 | public static GroupingNode MakeGrouping(NodeBase expression) 16 | { 17 | GroupingNode group = expression as GroupingNode; 18 | if (group != null) 19 | return group; 20 | 21 | List expressions = new List(); 22 | expressions.Add(expression); 23 | return new GroupingNode(expressions); 24 | } 25 | 26 | public void Insert(int index, NodeBase child) 27 | { 28 | m_children.Insert(index, child); 29 | AssignChild(child); 30 | } 31 | 32 | /*public void AddChildren(List newChildren) 33 | { 34 | AssignAdditionalChildren(newChildren); 35 | m_children.AddRange(newChildren); 36 | }*/ 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Psl/ConstructNodes/RandomizeConstructNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.Psl.ConstructNodes 5 | { 6 | class RandomizeConstructNode : NodeBase 7 | { 8 | private short m_sleepTime; 9 | 10 | public RandomizeConstructNode(List expressionSets, short sleepTime) 11 | : base(expressionSets) 12 | { 13 | m_sleepTime = sleepTime; 14 | } 15 | 16 | public override void VisitThis(VisitorProcessorBase visitor) 17 | { 18 | visitor.ProcessNode(this); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Psl/PslArrayElementReferenceNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | 3 | namespace Interfaces.Scripting.Assembly.Nodes.Psl 4 | { 5 | class PslArrayElementReferenceNode : NodeBase 6 | { 7 | private VariableNode m_arrayVariable; 8 | private int m_index; 9 | 10 | public VariableNode ArrayVariable 11 | { 12 | get { return m_arrayVariable; } 13 | } 14 | 15 | public int Index 16 | { 17 | get { return m_index; } 18 | } 19 | 20 | public PslArrayNode ArrayNode 21 | { 22 | get { return m_arrayVariable.InitialisationExpression as PslArrayNode; } 23 | } 24 | 25 | public NodeBase Element 26 | { 27 | get { return ArrayNode.Elements[m_index]; } 28 | } 29 | 30 | public PslArrayElementReferenceNode(VariableNode arrayVariable, int index) 31 | : base(null) 32 | { 33 | m_arrayVariable = arrayVariable; 34 | m_index = index; 35 | } 36 | 37 | public override void VisitThis(VisitorProcessorBase visitor) 38 | { 39 | visitor.ProcessNode(this); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Psl/PslArrayNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.Psl 5 | { 6 | class PslArrayNode : NodeBase 7 | { 8 | private string m_name; 9 | private short m_typeIndex; 10 | 11 | public string Name 12 | { 13 | get { return m_name; } 14 | } 15 | 16 | public short TypeIndex 17 | { 18 | get { return m_typeIndex; } 19 | } 20 | 21 | public List Elements 22 | { 23 | get { return m_children; } 24 | } 25 | 26 | public PslArrayNode(short typeIndex, List elements) 27 | : this(null, typeIndex, elements) { } 28 | 29 | public PslArrayNode(string name, short typeIndex, List elements) : base(elements) 30 | { 31 | m_name = name; 32 | m_typeIndex = typeIndex; 33 | } 34 | 35 | public override void VisitThis(VisitorProcessorBase visitor) 36 | { 37 | visitor.ProcessNode(this); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Psl/PslGameGlobalReferenceNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.Psl 5 | { 6 | class PslGameGlobalReferenceNode : NodeBase 7 | { 8 | private Global m_global; 9 | 10 | public Global Global 11 | { 12 | get { return m_global; } 13 | } 14 | 15 | public PslGameGlobalReferenceNode(Global global) : base(null) 16 | { 17 | m_global = global; 18 | } 19 | 20 | public override void VisitThis(VisitorProcessorBase visitor) 21 | { 22 | visitor.ProcessNode(this); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/Psl/PslOperatorUsageNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | using Interfaces.Scripting.EngineDefinition; 4 | 5 | namespace Interfaces.Scripting.Assembly.Nodes.Psl 6 | { 7 | class PslOperatorUsageNode : NodeBase 8 | { 9 | private InternalFunction m_operator; 10 | 11 | public InternalFunction Operator 12 | { 13 | get { return m_operator; } 14 | } 15 | 16 | public List Operands 17 | { 18 | get { return m_children; } 19 | } 20 | 21 | public PslOperatorUsageNode(InternalFunction @operator, List operands) : base(operands) 22 | { 23 | m_operator = @operator; 24 | } 25 | 26 | public override void VisitThis(VisitorProcessorBase visitor) 27 | { 28 | visitor.ProcessNode(this); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ScriptCallNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Interfaces.Scripting.Assembly.Processors; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes 5 | { 6 | class ScriptCallNode : NodeBase 7 | { 8 | private ScriptNode m_script; 9 | 10 | public List Arguments 11 | { 12 | get { return m_children; } 13 | } 14 | 15 | public ScriptNode Script 16 | { 17 | get { return m_script; } 18 | } 19 | 20 | public ScriptCallNode(ScriptNode script, List arguments) : base(arguments) 21 | { 22 | m_script = script; 23 | } 24 | 25 | public override NodeComparison ShallowCompare(NodeBase node) 26 | { 27 | ScriptCallNode castNode = node as ScriptCallNode; 28 | if (castNode == null || castNode.m_children.Count != m_children.Count) 29 | return NodeComparison.Incompatible; 30 | return castNode.m_script == m_script ? NodeComparison.Equal : NodeComparison.Unequal; 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/BoolValueNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition.Types; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 5 | { 6 | class BoolValueNode : ValueNodeBase 7 | { 8 | private bool m_value; 9 | 10 | public bool Value 11 | { 12 | get { return m_value; } 13 | } 14 | 15 | public BoolValueNode(bool value) 16 | { 17 | m_value = value; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | BoolValueNode castNode = node as BoolValueNode; 23 | if (castNode == null) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_value == m_value ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override short TypeIndex 29 | { 30 | get { return (short)IntegralValueType.Bool; } 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/LongValueNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition.Types; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 5 | { 6 | class LongValueNode : ValueNodeBase 7 | { 8 | private int m_value; 9 | 10 | public int Value 11 | { 12 | get { return m_value; } 13 | } 14 | 15 | public LongValueNode(int value) 16 | { 17 | m_value = value; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | LongValueNode castNode = node as LongValueNode; 23 | if (castNode == null) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_value == m_value ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override short TypeIndex 29 | { 30 | get { return (short)IntegralValueType.Long; } 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/RealValueNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition.Types; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 5 | { 6 | class RealValueNode : ValueNodeBase 7 | { 8 | private float m_value; 9 | 10 | public float Value 11 | { 12 | get { return m_value; } 13 | } 14 | 15 | public RealValueNode(float value) 16 | { 17 | m_value = value; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | RealValueNode castNode = node as RealValueNode; 23 | if (castNode == null) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_value == m_value ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override short TypeIndex 29 | { 30 | get { return (short)IntegralValueType.Real; } 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/ShortValueNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition.Types; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 5 | { 6 | class ShortValueNode : ValueNodeBase 7 | { 8 | private short m_value; 9 | 10 | public short Value 11 | { 12 | get { return m_value; } 13 | } 14 | 15 | public ShortValueNode(short value) 16 | { 17 | m_value = value; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | ShortValueNode castNode = node as ShortValueNode; 23 | if (castNode == null) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_value == m_value ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override short TypeIndex 29 | { 30 | get { return (short)IntegralValueType.Short; } 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/StringValueNode.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Scripting.Assembly.Processors; 2 | using Interfaces.Scripting.EngineDefinition.Types; 3 | 4 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 5 | { 6 | class StringValueNode : ValueNodeBase 7 | { 8 | private string m_value; 9 | 10 | public string Value 11 | { 12 | get { return m_value; } 13 | } 14 | 15 | public StringValueNode(string value) 16 | { 17 | m_value = value; 18 | } 19 | 20 | public override NodeComparison ShallowCompare(NodeBase node) 21 | { 22 | StringValueNode castNode = node as StringValueNode; 23 | if (castNode == null) 24 | return NodeComparison.Incompatible; 25 | return castNode.m_value == m_value ? NodeComparison.Equal : NodeComparison.Unequal; 26 | } 27 | 28 | public override short TypeIndex 29 | { 30 | get { return (short)IntegralValueType.String; } 31 | } 32 | 33 | public override void VisitThis(VisitorProcessorBase visitor) 34 | { 35 | visitor.ProcessNode(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Interfaces/Scripting/Assembly/Nodes/ValueNodes/ValueNodeBase.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting.Assembly.Nodes.ValueNodes 3 | { 4 | abstract class ValueNodeBase : NodeBase 5 | { 6 | protected ValueNodeBase() : base(null) { } 7 | 8 | public abstract short TypeIndex { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Interfaces/Scripting/EngineDefinition/Argument.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace Interfaces.Scripting.EngineDefinition 4 | { 5 | public class Argument 6 | { 7 | private string m_name; 8 | private short m_type; 9 | private string m_description; 10 | 11 | [XmlAttribute()] 12 | public string Name 13 | { 14 | get { return m_name; } 15 | set { m_name = value; } 16 | } 17 | 18 | [XmlAttribute()] 19 | public short Type 20 | { 21 | get { return m_type; } 22 | set { m_type = value; } 23 | } 24 | 25 | public string Description 26 | { 27 | get { return m_description; } 28 | set { m_description = value; } 29 | } 30 | 31 | public Argument(string name, short type, string description) 32 | { 33 | m_name = name; 34 | m_type = type; 35 | m_description = description; 36 | } 37 | 38 | public Argument() { } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Interfaces/Scripting/EngineDefinition/InternalGlobal.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace Interfaces.Scripting.EngineDefinition 4 | { 5 | public class InternalGlobal 6 | { 7 | private string m_name; 8 | private short m_operationCode; 9 | private short m_type; 10 | 11 | [XmlAttribute()] 12 | public string Name 13 | { 14 | get { return m_name; } 15 | set { m_name = value; } 16 | } 17 | 18 | [XmlAttribute()] 19 | public short OperationCode 20 | { 21 | get { return m_operationCode; } 22 | set { m_operationCode = value; } 23 | } 24 | 25 | [XmlAttribute()] 26 | public short Type 27 | { 28 | get { return m_type; } 29 | set { m_type = value; } 30 | } 31 | 32 | public InternalGlobal(string name, short operationCode, short type) 33 | { 34 | m_name = name; 35 | m_operationCode = operationCode; 36 | m_type = type; 37 | } 38 | 39 | public InternalGlobal() { } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Interfaces/Scripting/EngineDefinition/Lookup/EditorLookup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Scripting.EngineDefinition.Lookup 6 | { 7 | public class EditorLookup 8 | { 9 | public EditorLookup(ScriptEngineDefinition definition) 10 | { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Interfaces/Scripting/EngineDefinition/Types/EnumerationType.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting.EngineDefinition.Types 3 | { 4 | public class EnumerationType : ExtendedTypeBase 5 | { 6 | private string[] m_values; 7 | 8 | public string[] Values 9 | { 10 | get { return m_values; } 11 | set { m_values = value; } 12 | } 13 | 14 | public EnumerationType(string name, short typeIndex, string[] values) : base(name, typeIndex, new short[0], null) 15 | { 16 | m_values = values; 17 | } 18 | 19 | public EnumerationType() { } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Interfaces/Scripting/EngineDefinition/Types/TagReferenceType.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting.EngineDefinition.Types 3 | { 4 | public class TagReferenceType : ExtendedTypeBase 5 | { 6 | private string[] m_tagTypes; 7 | 8 | public string[] TagTypes 9 | { 10 | get { return m_tagTypes; } 11 | set { m_tagTypes = value; } 12 | } 13 | 14 | public TagReferenceType(string name, short typeIndex, string[] tagTypes) : base(name, typeIndex, new short[0], null) 15 | { 16 | m_tagTypes = tagTypes; 17 | } 18 | 19 | public TagReferenceType() { } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Interfaces/Scripting/IScriptProcessor.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting 3 | { 4 | public interface IScriptProcessor 5 | { 6 | //string DecompileForMapScenario(TagFile scenarioTag, IMapFile map) where T : ScenarioBase; 7 | string DecompileForMapScenario(MapScenarioScriptingAssembly assembly); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Interfaces/Scripting/MapScenarioScriptingAssembly.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Games; 2 | 3 | namespace Interfaces.Scripting 4 | { 5 | public class MapScenarioScriptingAssembly 6 | { 7 | private ScenarioBase m_scenario; 8 | private IMapFile m_mapFile; 9 | 10 | public ScenarioBase Scenario 11 | { 12 | get { return m_scenario; } 13 | } 14 | 15 | public IMapFile MapFile 16 | { 17 | get { return m_mapFile; } 18 | } 19 | 20 | public MapScenarioScriptingAssembly(ScenarioBase scenario, IMapFile mapFile) 21 | { 22 | m_scenario = scenario; 23 | m_mapFile = mapFile; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Interfaces/Scripting/ScenarioInterface/ScenarioScript.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting.ScenarioInterface 3 | { 4 | public class ScenarioScript 5 | { 6 | private string m_name; 7 | private short m_scriptType; 8 | private short m_returnType; 9 | private short m_rootExpressionIndex; 10 | 11 | public string Name 12 | { 13 | get { return m_name; } 14 | } 15 | 16 | public short ScriptType 17 | { 18 | get { return m_scriptType; } 19 | } 20 | 21 | public short ReturnType 22 | { 23 | get { return m_returnType; } 24 | } 25 | 26 | public short RootExpressionIndex 27 | { 28 | get { return m_rootExpressionIndex; } 29 | } 30 | 31 | public ScenarioScript(string name, short scriptType, short returnType, short rootExpressionIndex) 32 | { 33 | m_name = name; 34 | m_scriptType = scriptType; 35 | m_returnType = returnType; 36 | m_rootExpressionIndex = rootExpressionIndex; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Interfaces/Scripting/ScenarioInterface/ScenarioScriptGlobal.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Interfaces.Scripting.ScenarioInterface 3 | { 4 | public class ScenarioScriptGlobal 5 | { 6 | private string m_name; 7 | private short m_Type; 8 | private short m_initialisationExpressionIndex; 9 | 10 | public string Name 11 | { 12 | get { return m_name; } 13 | } 14 | 15 | public short Type 16 | { 17 | get { return m_Type; } 18 | } 19 | 20 | public short InitialisationExpressionIndex 21 | { 22 | get { return m_initialisationExpressionIndex; } 23 | } 24 | 25 | public ScenarioScriptGlobal(string name, short type, short initialisationExpressionIndex) 26 | { 27 | m_name = name; 28 | m_Type = type; 29 | m_initialisationExpressionIndex = initialisationExpressionIndex; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Interfaces/Scripting/ScriptingStringOps.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | 4 | namespace Interfaces.Scripting 5 | { 6 | public static class ScriptingStringOps 7 | { 8 | /// 9 | /// Formats a BSL string as a PSL string for the given map. 10 | /// 11 | public static string ToPslFormatting(string input, string mapName) 12 | { 13 | // fix this so it detects a change from number/mapname to letter or backwards, not just one way. 14 | StringBuilder sb = new StringBuilder(); 15 | 16 | string[] parts = input.Split('_'); 17 | foreach (string part in parts) 18 | { 19 | char initialCharacter = part[0]; 20 | if (Char.IsDigit(initialCharacter) || part == mapName) 21 | sb.Append("_"); 22 | sb.Append(Char.ToUpper(initialCharacter)); 23 | sb.Append(part.Substring(1)); 24 | } 25 | 26 | return sb.ToString(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Interfaces/Settings/Instance/IPersistable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Settings 6 | { 7 | /// 8 | /// Enables a class to interface with the OptionsManager to persist its data. 9 | /// 10 | public interface IPersistable 11 | { 12 | string InstanceName { get; } 13 | void Load(); 14 | void Save(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Interfaces/Settings/Static/OptionType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.Options 6 | { 7 | public enum OptionType 8 | { 9 | CameraSensitivity, 10 | CameraZPitching, 11 | CameraSpeed, 12 | CameraStopStyle, 13 | CameraNearPlane, 14 | CameraFarPlane 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Interfaces/SimpleContainers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | 4 | namespace Interfaces 5 | { 6 | public static class SimpleContainers 7 | { 8 | public struct Vector3D 9 | { 10 | public float X, Y, Z; 11 | 12 | public Vector3D(Vector3 input) 13 | { 14 | X = input.X; 15 | Y = input.Y; 16 | Z = input.Z; 17 | } 18 | 19 | public Vector3 Vector3 20 | { 21 | get 22 | { return new Vector3(X, Y, Z); } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Interfaces/Sound/ISoundDataProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Sound 4 | { 5 | /// 6 | /// Exposes a method on an object to provide sound chunks to a StreamingSoundBuffer. 7 | /// 8 | public interface ISoundDataProvider 9 | { 10 | /// 11 | /// Gets a buffer of PCM waveform data to play. 12 | /// 13 | /// PCM buffer of bytes to play, or an empty array if none are left. may NOT return null 14 | byte[] GetNextChunk(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Interfaces/Sound/Instancing/EnvironmentSoundInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.DirectX.DirectSound; 5 | 6 | namespace Interfaces.Sound.Instancing 7 | { 8 | /// 9 | /// A sound instance which will play with no defined position. 10 | /// 11 | public class EnvironmentSoundInstance : SoundInstance 12 | { 13 | public EnvironmentSoundInstance(Device device, WaveFormat format, ISoundDataProvider provider) 14 | : base(device, format, provider) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Interfaces/Sound/Instancing/SoundInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.DirectX.DirectSound; 5 | 6 | namespace Interfaces.Sound.Instancing 7 | { 8 | /// 9 | /// The abstract base class from which all sound instances must inherit. 10 | /// 11 | public abstract class SoundInstance : IDisposable 12 | { 13 | protected StreamingSoundBuffer buffer = null; 14 | 15 | public SoundInstance(Device device, WaveFormat format, ISoundDataProvider provider) 16 | { 17 | buffer = new StreamingSoundBuffer(device, format, provider); 18 | } 19 | 20 | public virtual void Play() 21 | { 22 | buffer.Start(); 23 | } 24 | 25 | public virtual void Stop() 26 | { 27 | buffer.Stop(); 28 | } 29 | 30 | public virtual void Dispose() 31 | { 32 | buffer.Dispose(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Interfaces/Sound/MdxSound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.DirectX; 3 | using Microsoft.DirectX.DirectSound; 4 | 5 | namespace Interfaces.Sound 6 | { 7 | public static class MdxSound 8 | { 9 | private static Device device; 10 | 11 | /// 12 | /// Gets or sets the DirectX sound device. 13 | /// 14 | public static Device Device 15 | { 16 | get 17 | { return device; } 18 | set 19 | { device = value; } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Interfaces/Sound/SoundSystemException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Sound 4 | { 5 | /// 6 | /// The exception that is thrown when I mess up something to do with sounds. 7 | /// 8 | public class SoundSystemException : ApplicationException 9 | { 10 | public SoundSystemException(string message, params object[] arguments) 11 | : base(String.Format(message, arguments)) 12 | { /* Lovely day out isn't it? */ } 13 | 14 | public SoundSystemException(Exception innerException, string message, params object[] arguments) 15 | : base(String.Format(message, arguments), innerException) 16 | { /* Yes, it sure is... */ } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Interfaces/TagEditor/ControlNamer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows.Forms; 3 | 4 | namespace Interfaces.TagEditor 5 | { 6 | /// 7 | /// Automatically assigns unique names to controls. 8 | /// 9 | public class ControlNamer 10 | { 11 | private List controlList = new List(); 12 | public void AssignName(Control control) 13 | { 14 | string typeName = control.GetType().ToString(); 15 | if (typeName.IndexOf('.') > 0) typeName = typeName.Substring(typeName.LastIndexOf('.') + 1); 16 | if (!controlList.Contains(control)) 17 | { 18 | int typeCount = 0; 19 | foreach (Control c in controlList) 20 | if (c.GetType() == control.GetType()) 21 | typeCount++; 22 | control.Name = typeName + typeCount; 23 | controlList.Add(control); 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Interfaces/TagEditor/IBlockIndexControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.TagEditor 6 | { 7 | public interface IBlockIndexControl 8 | { 9 | string LinkedStructName { get; } 10 | void ConnectBlockControl(IBlockControl control); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Interfaces/TagEditor/IFieldControl.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using System.Xml; 3 | using Interfaces.Factory; 4 | 5 | namespace Interfaces.TagEditor 6 | { 7 | public interface IBoundPropertyCapable 8 | { 9 | string BoundPropertyName { get; set;} 10 | } 11 | /// 12 | /// Represents a FieldControl. 13 | /// 14 | public interface IFieldControl : IBoundPropertyCapable 15 | { 16 | //string BoundPropertyName { get; set; } 17 | string Title { get; set; } 18 | bool BindSupported(IField field); 19 | void DataBind(IField field); 20 | Binding[] GetDataBindings(); 21 | Binding[] GetDataBindings(Control control); 22 | void Configure(XmlNode valueNode); 23 | } 24 | } -------------------------------------------------------------------------------- /Interfaces/TagEditor/IFieldControlContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Windows.Forms; 4 | using System.Xml; 5 | using Interfaces.Factory; 6 | 7 | namespace Interfaces.TagEditor 8 | { 9 | /// 10 | /// Represents an object that contains FieldControl objects. 11 | /// 12 | public interface IFieldControlContainer 13 | { 14 | IFieldControl[] GetChildFields(int levels); 15 | IFieldControl[] GetChildFields(); 16 | void AddField(IFieldControl field); 17 | void AddFieldContainer(IFieldControlContainer controlContainer); 18 | } 19 | } -------------------------------------------------------------------------------- /Interfaces/TagEditor/ITagReferenceControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Interfaces.Pool; 5 | 6 | namespace Interfaces.TagEditor 7 | { 8 | public interface ITagReferenceControl 9 | { 10 | event OpenTagEventHandler OpenTag; 11 | } 12 | 13 | public delegate void OpenTagEventHandler(string relativePath); 14 | public delegate void OpenTagPathEventHandler(TagPath path); 15 | } 16 | -------------------------------------------------------------------------------- /Interfaces/Textures/DirectDrawPixelFormatFlags.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Textures 4 | { 5 | /// 6 | /// Represents the available set of direct draw pixel format descriptors. 7 | /// 8 | [Flags] 9 | public enum DirectDrawPixelFormatFlags 10 | { 11 | AlphaPixels = 0x1, 12 | AlphaPremultiplied = 0x8000, 13 | FourCC = 0x4, 14 | RGB = 0x40, 15 | AlphaOnly = 0x2, 16 | LuminosityOnly = 0x20000 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Interfaces/Textures/DirectDrawSurfaceCapsAFlags.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Textures 4 | { 5 | /// 6 | /// Represents the available set of direct draw surface caps 1 flags. 7 | /// 8 | [Flags] 9 | public enum DirectDrawSurfaceCapsAFlags 10 | { 11 | Complex = 0x8, 12 | Texture = 0x1000, 13 | MipMap = 0x400000 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Interfaces/Textures/DirectDrawSurfaceCapsBFlags.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Textures 4 | { 5 | /// 6 | /// Represents the available set of direct draw surface caps 2 flags. 7 | /// 8 | [Flags] 9 | public enum DirectDrawSurfaceCapsBFlags 10 | { 11 | CubeMap = 0x200, 12 | CubeFacePositiveX = 0x400, 13 | CubeFaceNegativeX = 0x800, 14 | CubeFacePositiveY = 0x1000, 15 | CubeFaceNegativeY = 0x2000, 16 | CubeFacePositiveZ = 0x4000, 17 | CubeFaceNegativeZ = 0x8000, 18 | Volume = 0x200000 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Interfaces/Textures/DirectDrawSurfaceDescriptionFlags.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Interfaces.Textures 4 | { 5 | /// 6 | /// Represents the available set of direct draw surface descriptors. 7 | /// 8 | [Flags] 9 | public enum DirectDrawSurfaceDescriptionFlags 10 | { 11 | Caps = 0x1, 12 | Height = 0x2, 13 | Width = 0x4, 14 | Pitch = 0x8, 15 | PixelFormat = 0x1000, 16 | MipMapCount = 0x20000, 17 | LinearSize = 0x80000, 18 | Depth = 0x800000 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Interfaces/UniqueStringCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Specialized; 2 | 3 | namespace Interfaces 4 | { 5 | public class UniqueStringCollection : StringCollection 6 | { 7 | public new void Add(string value) 8 | { 9 | if (value != null) 10 | if (value != "") 11 | if (!Contains(value)) base.Add(value); 12 | } 13 | public new void AddRange(string[] values) 14 | { 15 | foreach (string value in values) 16 | { 17 | Add(value); 18 | } 19 | } 20 | public string[] ToArray() 21 | { 22 | string[] values = new string[Count]; 23 | CopyTo(values, 0); 24 | return values; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Interfaces/UserInterface/ISupportsUndoRedo.cs: -------------------------------------------------------------------------------- 1 | namespace Interfaces 2 | { 3 | /// 4 | /// Provides an interface for a class to support undo and redo functionality. 5 | /// 6 | public interface ISupportsUndoRedo 7 | { 8 | void Undo(); 9 | void Redo(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Interfaces/UserInterface/IUndoableAction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Interfaces.UserInterface 6 | { 7 | /// 8 | /// Represents an action that can be undone/redone. 9 | /// 10 | public interface IUndoableAction 11 | { 12 | /// 13 | /// Signifies that when this action is undone or redone, the document will be in a clean state. 14 | /// 15 | bool CleanPoint { get; set; } 16 | 17 | /// 18 | /// Undoes the action. 19 | /// 20 | void Undo(); 21 | 22 | /// 23 | /// Redoes the action. 24 | /// 25 | void Redo(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Nini.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/Nini.dll -------------------------------------------------------------------------------- /PrometheusMX/Controls/BusyIndicator.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Prometheus.Controls.TagExplorers 2 | { 3 | partial class BusyIndicator 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | components = new System.ComponentModel.Container(); 32 | } 33 | 34 | #endregion 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /PrometheusMX/Controls/MultiSourceTreeView/DefaultState.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | 3 | namespace Prometheus.Controls 4 | { 5 | public class DefaultState : NodeState 6 | { 7 | public DefaultState(Bitmap icon) 8 | : this(icon, icon) { ; } 9 | 10 | public DefaultState(Bitmap collpasedIcon, Bitmap expandedIcon) 11 | : this(collpasedIcon, expandedIcon, Color.Empty, Color.Empty) { ; } 12 | 13 | public DefaultState(Bitmap collapsedIcon, Bitmap expandedIcon, 14 | Color foregroundColor, Color backgroundColor) 15 | : base("default", collapsedIcon, expandedIcon, foregroundColor, backgroundColor) { ; } 16 | 17 | /// 18 | /// Determines the initial state that subscribers of this state will be in. 19 | /// 20 | protected override bool DetermineState(NodeInfo info) 21 | { 22 | return true; // This is the default state and will always be active. 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/ReferenceAnalyzer/ReferenceAnalyzerMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Prometheus.Controls.ReferenceAnalyzer 6 | { 7 | /// 8 | /// Enumerates the available analyzer modes. 9 | /// 10 | public enum ReferenceAnalyzerMode : sbyte 11 | { 12 | Tag = 0, 13 | Object 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PrometheusMX/Controls/ReferenceAnalyzer/ReferenceContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace Prometheus.Controls.ReferenceAnalyzer 10 | { 11 | public partial class ReferenceContainer : UserControl 12 | { 13 | public ReferenceContainer() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public void AddItem(ReferenceItem item) 19 | { 20 | item.Dock = DockStyle.Top; 21 | ipContainer.Controls.Add(item); 22 | if (CountChanged != null) 23 | CountChanged(this, EventArgs.Empty); 24 | } 25 | 26 | public void ClearItems() 27 | { 28 | ipContainer.Controls.Clear(); 29 | if (CountChanged != null) 30 | CountChanged(this, EventArgs.Empty); 31 | } 32 | 33 | public int Count 34 | { 35 | get 36 | { return ipContainer.Controls.Count; } 37 | } 38 | 39 | public event EventHandler CountChanged; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PrometheusMX/Controls/ReferenceAnalyzer/ReferenceType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Prometheus.Controls.ReferenceAnalyzer 4 | { 5 | /// 6 | /// Exposes missing reference types. 7 | /// 8 | public enum ReferenceType : sbyte 9 | { 10 | Direct = 0, 11 | Recursive, 12 | Invalid = -1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagEditor/IDynamicContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | using Interfaces.TagEditor; 6 | using Prometheus.Controls.TagEditor; 7 | 8 | namespace Prometheus.Controls.TagEditor 9 | { 10 | public delegate void DynamicContainerDelegate(IDynamicContainer container, ContainerGlobals globals); 11 | /// 12 | /// An interface defining the minimum requirements for an on-the-fly-loading container. 13 | /// 14 | public interface IDynamicContainer : Interfaces.TagEditor.IFieldControlContainer 15 | { 16 | ContainerGlobals Globals { get; set;} 17 | event DynamicContainerDelegate PerformingLoad; 18 | 19 | BlockContainerPanel FieldPanel { get; set;} 20 | IBlockControl Block { get; } 21 | IDynamicContainer Parent { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/Menus/DebugInfo.cs: -------------------------------------------------------------------------------- 1 | #if DEBUG 2 | using System.Windows.Forms; 3 | using DevComponents.DotNetBar; 4 | using Prometheus.Properties; 5 | 6 | namespace Prometheus.Controls.TagExplorers 7 | { 8 | public partial class LibraryExplorer 9 | { 10 | private MenuDefinition debugInfo; 11 | 12 | private void SetupDebugInfo() 13 | { 14 | debugInfo = new MenuDefinition(debugGroup, "View Debug Info", infoHandler); 15 | debugInfo.ToolTipText = "For developer use only!"; 16 | debugInfo.Icon = Resources.debug_next16; 17 | } 18 | 19 | private void infoHandler(MultiSourceTreeNode node, NodeInfo info) 20 | { 21 | string nodeInfoText = "Node Entry Information
"; 22 | foreach (NodeInfo entry in node.InfoEntries) 23 | { 24 | nodeInfoText += entry.NodeType + " - " + entry.Identifier + "
"; 25 | } 26 | nodeInfoText += "
Selected type: " + info.NodeType; 27 | MessageBoxEx.Show(nodeInfoText, "Debug", MessageBoxButtons.OK, MessageBoxIcon.Information); 28 | } 29 | } 30 | } 31 | #endif -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/Menus/ViewScript.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Pool; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class LibraryExplorer 7 | { 8 | private MenuDefinition viewScript; 9 | 10 | private void SetupViewScript() 11 | { 12 | viewScript = new MenuDefinition(viewEditGroup, "&View Script", viewScript_click); 13 | viewScript.DynamicTooltipCallback = delegate 14 | { 15 | return "Opens the script in the Script Editor." + GetReadOnlyFooter(); 16 | }; 17 | viewScript.Icon = Resources.document_view16; 18 | viewScript.BeginGroup = true; 19 | viewScript.MenuItemTest = documentOpenedTest; 20 | } 21 | 22 | private void viewScript_click(MultiSourceTreeNode node, NodeInfo info) 23 | { 24 | if (ViewScript != null) 25 | ViewScript(this, new OpenTagEventArgs(new TagPath(info.Identifier, currentGame.GameID, TagLocation.Archive))); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/Menus/ViewTag.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Pool; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class LibraryExplorer 7 | { 8 | private MenuDefinition viewTag; 9 | 10 | private void SetupViewTag() 11 | { 12 | viewTag = new MenuDefinition(viewEditGroup, "&View Tag", viewTagInTagEditor_click); 13 | viewTag.DynamicTooltipCallback = delegate 14 | { 15 | return "Opens the tag in the Tag Editor." + GetReadOnlyFooter(); 16 | }; 17 | viewTag.Icon = Resources.document_view16; 18 | viewTag.BeginGroup = true; 19 | viewTag.MenuItemTest = documentOpenedTest; 20 | } 21 | 22 | private void viewTagInTagEditor_click(MultiSourceTreeNode node, NodeInfo info) 23 | { 24 | if (ViewTaginTagEditor != null) 25 | ViewTaginTagEditor(this, new OpenTagEventArgs(new TagPath(node.InfoEntries[0].Identifier, currentGame.GameID, TagLocation.Archive))); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/NodeTypes/TagView/ModelFileNodeType.cs: -------------------------------------------------------------------------------- 1 | namespace Prometheus.Controls.TagExplorers.Library 2 | { 3 | public class ModelFileNodeType : FileNodeType 4 | { 5 | public ModelFileNodeType() : base("modelfile", 2, 1, false) { ; } 6 | } 7 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/NodeTypes/TagView/ObjectFileNodeType.cs: -------------------------------------------------------------------------------- 1 | namespace Prometheus.Controls.TagExplorers.Library 2 | { 3 | public class ObjectFileNodeType : FileNodeType 4 | { 5 | public ObjectFileNodeType() : base("objectfile", 2, 1, false) { ; } 6 | } 7 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/LibraryExplorer/NodeTypes/TagView/SbspFileNodeType.cs: -------------------------------------------------------------------------------- 1 | namespace Prometheus.Controls.TagExplorers.Library 2 | { 3 | public class SbspFileNodeType : FileNodeType 4 | { 5 | public SbspFileNodeType() : base("sbspfile", 2, 1, false) { ; } 6 | } 7 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/OpenTagEventHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Interfaces.Pool; 5 | 6 | namespace Prometheus.Controls.TagExplorers 7 | { 8 | /// 9 | /// Represents a method that handles opening a tag. 10 | /// 11 | public delegate void OpenTagHandler(object sender, OpenTagEventArgs e); 12 | 13 | /// 14 | /// Provides data for an event that signals the opening of a tag. 15 | /// 16 | public class OpenTagEventArgs : EventArgs 17 | { 18 | private TagPath tagPath; 19 | 20 | /// 21 | /// The TagPath at which the tag is located. 22 | /// 23 | public TagPath TagPath 24 | { 25 | get { return tagPath; } 26 | } 27 | 28 | public OpenTagEventArgs(TagPath tagPath) 29 | { 30 | this.tagPath = tagPath; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/CopyFromGameArchive.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Pool; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class ProjectExplorer 7 | { 8 | private MenuDefinition copyFromGameArchive; 9 | 10 | private void SetupCopyFromGameArchive() 11 | { 12 | copyFromGameArchive = new MenuDefinition( 13 | referenceManagementGroup, "&Copy from Game Archive", extractFromGameArchive); 14 | copyFromGameArchive.ToolTipText = "Attempts to replace the missing file with a matching tag in the Game Archive."; 15 | copyFromGameArchive.Icon = Resources.document_add16; 16 | } 17 | 18 | private void extractFromGameArchive(MultiSourceTreeNode node, NodeInfo info) 19 | { 20 | TagPath path = new TagPath(info.Identifier, projectManager.GameID, TagLocation.Archive); 21 | AddGameTagToProject(path); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/Edit.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Pool; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class ProjectExplorer 7 | { 8 | private MenuDefinition edit; 9 | 10 | private void SetupEdit() 11 | { 12 | edit = new MenuDefinition(viewEditGroup, "&Edit Tag", editTag); 13 | edit.Icon = Resources.document_edit16; 14 | edit.BeginGroup = true; 15 | edit.ToolTipText = "Opens the tag in the Tag Editor for editing."; 16 | edit.MenuItemTest = documentOpenedTest; 17 | } 18 | 19 | private void editTag(MultiSourceTreeNode node, NodeInfo info) 20 | { 21 | if (EditTag != null) 22 | EditTag(this, new OpenTagEventArgs(new TagPath(info.Identifier, projectManager.GameID, TagLocation.Project))); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/EditGlobal.cs: -------------------------------------------------------------------------------- 1 | using Interfaces.Pool; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class ProjectExplorer 7 | { 8 | private MenuDefinition editGlobal; 9 | 10 | private void SetupEditGlobal() 11 | { 12 | editGlobal = new MenuDefinition(viewEditGroup, "&Edit Tag", editGlobalTag); 13 | editGlobal.Icon = Resources.document_edit16; 14 | editGlobal.ToolTipText = "Opens the tag in the Tag Editor for editing.

Note: This tag exists in the Game Archive and, if saved, will be copied to the local project folder and added to the project references

The default Essential Tag will be replaced with the local copy."; 15 | editGlobal.MenuItemTest = documentOpenedTest; 16 | } 17 | 18 | private void editGlobalTag(MultiSourceTreeNode node, NodeInfo info) 19 | { 20 | if (EditTag != null) 21 | EditTag(this, new OpenTagEventArgs(new TagPath(info.Identifier, projectManager.GameID, TagLocation.Archive))); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/Include.cs: -------------------------------------------------------------------------------- 1 | using Prometheus.Properties; 2 | 3 | namespace Prometheus.Controls.TagExplorers 4 | { 5 | public partial class ProjectExplorer 6 | { 7 | private MenuDefinition include; 8 | 9 | private void SetupInclude() 10 | { 11 | include = new MenuDefinition(referenceManagementGroup, "&Include in Project", includeInProject); 12 | include.Icon = Resources.document_add16; 13 | include.ToolTipText = "Adds the tag to the Project References.

Only referenced tags are included in the map file when you compile your project."; 14 | } 15 | 16 | private void includeInProject(MultiSourceTreeNode node, NodeInfo info) 17 | { 18 | projectManager.Project.AddTagReference(info.Identifier); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/Remove.cs: -------------------------------------------------------------------------------- 1 | using Prometheus.Properties; 2 | 3 | namespace Prometheus.Controls.TagExplorers 4 | { 5 | public partial class ProjectExplorer 6 | { 7 | private MenuDefinition remove; 8 | 9 | private void SetupRemove() 10 | { 11 | remove = new MenuDefinition(referenceManagementGroup, "&Remove from Project", removeFromProject); 12 | remove.Icon = Resources.undo16; 13 | remove.ToolTipText = "Removes the tag from the Project References.

Note: The tag will not be deleted from the project folder, and will still show up as an unreferenced file.

If you wish to re-add it to the project, simply right click the file and choose Include in Project"; 14 | } 15 | 16 | private void removeFromProject(MultiSourceTreeNode node, NodeInfo info) 17 | { 18 | projectManager.Project.RemoveTagReference(info.Identifier); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/RemoveFolder.cs: -------------------------------------------------------------------------------- 1 | using Prometheus.Properties; 2 | 3 | namespace Prometheus.Controls.TagExplorers 4 | { 5 | public partial class ProjectExplorer 6 | { 7 | private MenuDefinition removeFolder; 8 | 9 | private void SetupRemoveFolder() 10 | { 11 | removeFolder = new MenuDefinition(referenceManagementGroup, "&Remove from Project", removeFolderFromProject); 12 | removeFolder.Icon = Resources.undo16; 13 | removeFolder.ToolTipText = "Removes the folder and all tags that it contains from the Project References."; 14 | } 15 | 16 | private void removeFolderFromProject(MultiSourceTreeNode node, NodeInfo info) 17 | { 18 | // Get a list of all files in this folder. 19 | projectManager.Project.RemoveFolderReference(info.Identifier); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/Menus/SelectProjectTag.cs: -------------------------------------------------------------------------------- 1 | using DevComponents.DotNetBar; 2 | using Prometheus.Properties; 3 | 4 | namespace Prometheus.Controls.TagExplorers 5 | { 6 | public partial class ProjectExplorer 7 | { 8 | private MenuDefinition selectProjectTag; 9 | 10 | private void SetupSelectProjectTag() 11 | { 12 | selectProjectTag = new MenuDefinition(referenceManagementGroup, "&Select Project Tag", selectProjectTag_click); 13 | selectProjectTag.Icon = Resources.arrow_left_green16; 14 | selectProjectTag.ToolTipText = "Browse for a tag to replace the default Essential Tag reference."; 15 | } 16 | 17 | private void selectProjectTag_click(MultiSourceTreeNode node, NodeInfo info) 18 | { 19 | MessageBoxEx.Show("Not yet implemented."); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/NodeTypes/ModelTag.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Prometheus.Controls.TagExplorers.Project 4 | { 5 | public class ModelTag : TagNode 6 | { 7 | public ModelTag() : base("modeltag", 2, 1, false) { ; } 8 | } 9 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/NodeTypes/ObjectTag.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Prometheus.Controls.TagExplorers.Project 4 | { 5 | public class ObjectTag : TagNode 6 | { 7 | public ObjectTag() : base("objecttag", 2, 1, false) { ; } 8 | } 9 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/NodeTypes/SbspTag.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Prometheus.Controls.TagExplorers.Project 4 | { 5 | public class SbspTag : TagNode 6 | { 7 | public SbspTag() : base("sbsptag", 2, 1, false) { ; } 8 | } 9 | } -------------------------------------------------------------------------------- /PrometheusMX/Controls/TagExplorers/ProjectExplorer/NodeTypes/ScenarioTag.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Prometheus.Controls.TagExplorers.Project 4 | { 5 | public class ScenarioTag : TagNode 6 | { 7 | public ScenarioTag() : base("scenariotag", 2, 1, false) { ; } 8 | } 9 | } -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/BugReport.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/PrometheusMX/Dialogs/BugReport.Designer.cs -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/GuerillaImport.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace Prometheus.Dialogs 10 | { 11 | public partial class GuerillaImport : DevComponents.DotNetBar.Office2007Form 12 | { 13 | public GuerillaImport() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | private void bxCancel_Click(object sender, EventArgs e) 19 | { 20 | Close(); 21 | } 22 | 23 | private void bxClearTags_Click(object sender, EventArgs e) 24 | { 25 | lbTags.Items.Clear(); 26 | } 27 | 28 | private void bxRemoveTag_Click(object sender, EventArgs e) 29 | { 30 | if (lbTags.Items.Count > 0 && lbTags.SelectedIndex != -1) 31 | lbTags.Items.RemoveAt(lbTags.SelectedIndex); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/NewProjectDialog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/PrometheusMX/Dialogs/NewProjectDialog.cs -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/Options.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/PrometheusMX/Dialogs/Options.Designer.cs -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/PrometheusGUI.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/PrometheusMX/Dialogs/PrometheusGUI.Designer.cs -------------------------------------------------------------------------------- /PrometheusMX/Dialogs/RenderDebug.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | using Interfaces.Rendering; 9 | 10 | namespace Prometheus.Dialogs 11 | { 12 | public partial class RenderDebug : Form 13 | { 14 | public RenderDebug() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void numericUpDownActiveCluster_ValueChanged(object sender, EventArgs e) 20 | { 21 | //GrenDebugger.DebugClusterIndex = (int)numericUpDownActiveCluster.Value; 22 | } 23 | 24 | private void checkBoxLockVis_CheckedChanged(object sender, EventArgs e) 25 | { 26 | MdxRender.bLockVis = checkBoxLockVis.Checked; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /PrometheusMX/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PrometheusMX/Resources/BugWritingTips.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/PrometheusMX/Resources/BugWritingTips.ico -------------------------------------------------------------------------------- /PrometheusMX/Testing/ActivateDebugConsole.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using CDebug = Core.Radiosity.ConsoleDebug; 3 | 4 | namespace Prometheus.Testing 5 | { 6 | [TestInfo("JamesD", "Activate Debug Console", 7 | "Display the console window error // debug lines write out to.")] 8 | public class ActivateDebugConsole : ITest 9 | { 10 | public void PerformTest() 11 | { 12 | Console.SetError(new CDebug.ConsoleWriter(Console.Error, CDebug.ConsoleColor.White, 13 | CDebug.ConsoleFlashMode.NoFlashing, false)); 14 | CDebug.WinConsole.Initialize(); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/ClusterTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Prometheus.Dialogs; 5 | 6 | namespace Prometheus.Testing 7 | { 8 | [TestInfoAttribute("Grenadiac", "Cluster Debugger", 9 | "Interactive Cluster Visualization and Debugging")] 10 | class ClusterTest : ITest 11 | { 12 | public void PerformTest() 13 | { 14 | RenderDebug dlg = new RenderDebug(); 15 | dlg.Show(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /PrometheusMX/Testing/ConvertHalo2Xmls.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Windows.Forms; 3 | using Core.Factory; 4 | 5 | namespace Prometheus.Testing 6 | { 7 | [TestInfo("SwampFox", "Create Halo 2 XML Definitions", 8 | "Converts odd-formatted XML definitions into Prom-formatted XML tagdef files.")] 9 | public class ConvertHalo2Xmls : ITest 10 | { 11 | public void PerformTest() 12 | { 13 | FolderBrowserDialog fbd = new FolderBrowserDialog(); 14 | fbd.SelectedPath = Application.StartupPath; 15 | fbd.Description = "Choose the folder where the source XML files are located."; 16 | if (fbd.ShowDialog() == DialogResult.OK) 17 | { 18 | string newPath = fbd.SelectedPath + "\\output\\"; 19 | if (!Directory.Exists(newPath)) 20 | Directory.CreateDirectory(newPath); 21 | XmlXmlConverter.ConvertFolder(fbd.SelectedPath, newPath, "Halo2"); 22 | MessageBox.Show("Finished.", "Xml->Xml Converter", MessageBoxButtons.OK, MessageBoxIcon.Information); 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/DynamicMenuTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | using Interfaces.DynamicInterface.RuntimeMenu; 4 | using DevComponents.DotNetBar; 5 | 6 | namespace Prometheus.Testing 7 | { 8 | [TestInfo("SwampFox", "Dynamic Menu", "Tests the dynamic menu builder.")] 9 | public class DynamicMenuTest : ITest 10 | { 11 | public void PerformTest() 12 | { 13 | MessageBox.Show("Since this UI library is real hard to understand fully, there is no real test here. I couldn't replicate a scenario in which a single buttonitem or itemcontainer could be drawn."); 14 | } 15 | 16 | private static readonly RuntimeMenuButton myButton = new RuntimeMenuButton("Test Button", "Clicking on this button should bring up a little message.", global::Prometheus.Properties.Resources.about16, false, new EventHandler(ShowMessageBox)); 17 | 18 | private static void ShowMessageBox(object sender, EventArgs e) 19 | { 20 | MessageBox.Show("Here's your message."); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /PrometheusMX/Testing/GenerateHalo2TagClasses.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Windows.Forms; 3 | 4 | namespace Prometheus.Testing 5 | { 6 | [TestInfo("SwampFox", "Generate Halo 2 Tag Classes", 7 | "Creates Tag Loader classes from a set of XML tagdef files (for Halo 2).")] 8 | public class GenerateHalo2TagClasses : ITest 9 | { 10 | public void PerformTest() 11 | { 12 | FolderBrowserDialog fbd = new FolderBrowserDialog(); 13 | fbd.SelectedPath = Application.StartupPath; 14 | fbd.Description = "Choose the folder where the XML files are located."; 15 | if (fbd.ShowDialog() == DialogResult.OK) 16 | { 17 | string newPath = fbd.SelectedPath + "\\output\\"; 18 | if (!Directory.Exists(newPath)) Directory.CreateDirectory(newPath); 19 | foreach (string file in Directory.GetFiles(fbd.SelectedPath)) 20 | { 21 | string fileName = Path.GetFileNameWithoutExtension(file) + ".cs"; 22 | Core.Prometheus.Instance.GenerateClass("halo2xbox", file, newPath + fileName); 23 | } 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/GenerateHaloTagClass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | #if DEBUG 5 | namespace Prometheus.Testing 6 | { 7 | [TestInfo("SwampFox", "Generate Halo Tag Class Definition", 8 | "Prompts to open an XML file containing a Halo tag definition and then builds a C# tag class definition from it.")] 9 | public class GenerateHaloTagClassTest : ITest 10 | { 11 | public void PerformTest() 12 | { 13 | OpenFileDialog ofd = new OpenFileDialog(); 14 | SaveFileDialog sfd = new SaveFileDialog(); 15 | sfd.Title = "Save As C# File"; 16 | ofd.Title = "Select XML"; 17 | ofd.Filter = "XML File|*.xml|C# File|*.cs|All Files|*.*"; 18 | ofd.FilterIndex = 1; 19 | sfd.Filter = "XML File|*.xml|C# File|*.cs|All Files|*.*"; 20 | sfd.FilterIndex = 2; 21 | if (ofd.ShowDialog() == DialogResult.OK) 22 | if (sfd.ShowDialog() == DialogResult.OK) 23 | Core.Prometheus.Instance.GenerateClass("halopc", ofd.FileName, sfd.FileName); 24 | } 25 | } 26 | } 27 | #endif 28 | -------------------------------------------------------------------------------- /PrometheusMX/Testing/GenerateTagClasses.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Windows.Forms; 3 | 4 | namespace Prometheus.Testing 5 | { 6 | [TestInfo("Project Tools", "Generate Tag Classes", 7 | "Creates Tag Loader classes from a set of XML tagdef files.")] 8 | public class GenerateTagClasses : ITest 9 | { 10 | public void PerformTest() 11 | { 12 | FolderBrowserDialog fbd = new FolderBrowserDialog(); 13 | fbd.SelectedPath = Application.StartupPath; 14 | fbd.Description = "Choose the folder where the XML files are located."; 15 | if (fbd.ShowDialog() == DialogResult.OK) 16 | { 17 | string newPath = fbd.SelectedPath + "\\output\\"; 18 | if (!Directory.Exists(newPath)) Directory.CreateDirectory(newPath); 19 | foreach (string file in Directory.GetFiles(fbd.SelectedPath)) 20 | { 21 | string fileName = Path.GetFileNameWithoutExtension(file) + ".cs"; 22 | Core.Prometheus.Instance.GenerateClass("halopc", file, newPath + fileName); 23 | } 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/ITest.cs: -------------------------------------------------------------------------------- 1 | namespace Prometheus.Testing 2 | { 3 | /// 4 | /// Provides a base for creating tests within Prometheus. 5 | /// These tests are automatically instanciated and added to the UI at runtime. 6 | /// 7 | public interface ITest 8 | { 9 | /// 10 | /// The code to be tested is placed inside this method. 11 | /// 12 | void PerformTest(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /PrometheusMX/Testing/MultiSourceTreeViewTest.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Windows.Forms; 3 | using Prometheus.Controls.TagExplorers; 4 | 5 | namespace Prometheus.Testing 6 | { 7 | [TestInfo("MonoxideC", "MultiSourceTreeView Test", 8 | "Tests opening an ILibrary in a MultiSourceTreeView control.")] 9 | public class MultiSourceTreeViewTest : ITest 10 | { 11 | public void PerformTest() 12 | { 13 | LibraryExplorer explorer = new LibraryExplorer(); 14 | explorer.Dock = DockStyle.Fill; 15 | 16 | Form frm = new Form(); 17 | frm.Controls.Add(explorer); 18 | frm.ShowDialog(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/OpenMapTest.cs: -------------------------------------------------------------------------------- 1 | //using System.Windows.Forms; 2 | 3 | //namespace Prometheus.Testing 4 | //{ 5 | // [TestInfoAttribute("ViperNeo", "Open Map File", 6 | // "Prompts for a map file, and tests opening it.
Note: this is hardcoded for the second loaded GameDefinition")] 7 | // public class OpenMapTest : ITest 8 | // { 9 | // public void PerformTest() 10 | // { 11 | // OpenFileDialog ofd = new OpenFileDialog(); 12 | // if (ofd.ShowDialog() == DialogResult.OK) 13 | // { 14 | // Core.Prometheus.Instance.Games[0].MapFile.Load(ofd.FileName,null); 15 | // } 16 | // } 17 | // } 18 | //} -------------------------------------------------------------------------------- /PrometheusMX/Testing/ProgressDialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace Prometheus.Testing 10 | { 11 | public partial class ProgressDialog : Form 12 | { 13 | public string Info1 14 | { 15 | get { return lblInfo1.Text; } 16 | set { lblInfo1.Text = value; } 17 | } 18 | public string Info2 19 | { 20 | get { return lblInfo2.Text; } 21 | set { lblInfo2.Text = value; } 22 | } 23 | public int Value 24 | { 25 | get { return pgbProgress.Value; } 26 | set { pgbProgress.Value = value; } 27 | } 28 | public int Maximum 29 | { 30 | get { return pgbProgress.Maximum; } 31 | set { pgbProgress.Maximum = value; } 32 | } 33 | public int Minimum 34 | { 35 | get { return pgbProgress.Minimum; } 36 | set { pgbProgress.Minimum = value; } 37 | } 38 | 39 | public ProgressDialog() 40 | { 41 | InitializeComponent(); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /PrometheusMX/Testing/ScriptEditorTest.cs: -------------------------------------------------------------------------------- 1 | using Prometheus.Controls.ScriptEditor; 2 | using Prometheus.Dialogs; 3 | 4 | namespace Prometheus.Testing 5 | { 6 | #if DEBUG 7 | /*[TestInfo("rec0", "Script Editor", "Open's a script editor for Halo PC.")] 8 | public class ScriptEditorTest : ITest 9 | { 10 | public void PerformTest() 11 | { 12 | PrometheusGUI gui = (PrometheusGUI) PrometheusGUI.ActiveForm; 13 | ScriptEditorControl editor = new ScriptEditorControl(); 14 | editor.Create(Core.Prometheus.Instance.GetGameDefinitionByGameID("halo1pc")); 15 | gui.AddControlToFileTabs(editor); 16 | } 17 | }*/ 18 | #endif 19 | } 20 | -------------------------------------------------------------------------------- /PrometheusMX/Testing/ScriptingDefinitionTools/GUI.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace Prometheus.Testing.ScriptingDefinitionTools 4 | { 5 | [TestInfo("rec0", "Scripting Definition Tools", 6 | "Tools for extraction of script definitions etc.")] 7 | public partial class GUI : Form, ITest 8 | { 9 | public GUI() 10 | { 11 | InitializeComponent(); 12 | } 13 | 14 | public void PerformTest() 15 | { 16 | Show(); 17 | } 18 | 19 | private void btnToolExe_Click(object sender, System.EventArgs e) 20 | { 21 | 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /XPTable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/XPTable.dll -------------------------------------------------------------------------------- /shared/Microsoft.DirectX.Direct3D.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/shared/Microsoft.DirectX.Direct3D.dll -------------------------------------------------------------------------------- /shared/Microsoft.DirectX.Direct3DX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/shared/Microsoft.DirectX.Direct3DX.dll -------------------------------------------------------------------------------- /shared/Microsoft.DirectX.DirectInput.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/shared/Microsoft.DirectX.DirectInput.dll -------------------------------------------------------------------------------- /shared/Microsoft.DirectX.DirectSound.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/shared/Microsoft.DirectX.DirectSound.dll -------------------------------------------------------------------------------- /shared/Microsoft.DirectX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HaloMods/Prometheus/961e52aa27b4b30c4f2afc0e0cc78218b05c7f7f/shared/Microsoft.DirectX.dll --------------------------------------------------------------------------------