├── Application ├── Application.csproj ├── Lang │ ├── ResGen.exe │ ├── resource.fr-FR.resx │ └── resource.resx ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ ├── Settings.cs │ └── Settings.settings ├── Resources │ ├── 14_layer_deletelayer.png │ ├── 420__Pixel_Art__Icons_for_RPG_by_Ails.png │ ├── Copy.bmp │ ├── Copy.png │ ├── CreateWall.png │ ├── Cut.png │ ├── Delete_.png │ ├── EditTable.bmp │ ├── Edit_UndoHS.bmp │ ├── Find.bmp │ ├── LoadWarning.rtf │ ├── Open.bmp │ ├── Open.png │ ├── Paste.bmp │ ├── Paste.png │ ├── Python.xshd │ ├── PythonConsole16x16.png │ ├── PythonConsole32x32.png │ ├── PythonScript16x16.png │ ├── PythonScript32x32.png │ ├── Redo.png │ ├── Revert.png │ ├── RolledBack.bmp │ ├── Run.png │ ├── Save.bmp │ ├── Save.png │ ├── Undo.png │ ├── WordWrap.png │ ├── agt_back.png │ ├── agt_forward.png │ ├── agt_stop.png │ ├── bookmark_add.png │ ├── cancel.png │ ├── checkedbox.png │ ├── checkedbox1.png │ ├── clear-filter.png │ ├── configure_toolbars.png │ ├── cut-2.bmp │ ├── delete.png │ ├── deletecell.png │ ├── down.png │ ├── edit_add.png │ ├── edit_remove.png │ ├── editclear.png │ ├── emptybox.png │ ├── fileexport.png │ ├── filter-icons3.png │ ├── filter.png │ ├── find.png │ ├── insertcell.png │ ├── insertcell1.png │ ├── ipy.ico │ ├── move_task_down.png │ ├── move_task_up.png │ ├── next.png │ ├── py.ico │ ├── pycon.ico │ ├── quick_restart.png │ ├── reload_all_tabs.png │ ├── search.png │ ├── sort-ascending.png │ ├── sort-descending.png │ ├── special_paste.png │ ├── tesv_ico.ico │ ├── up.png │ ├── warning.ico │ └── xdays.png ├── TranslateUI │ ├── Localization.cs │ ├── Tools │ │ ├── ResEx │ │ │ ├── Extended.Common.dll │ │ │ ├── ResEx.chm │ │ │ ├── ResEx.exe │ │ │ ├── ResEx.exe.config │ │ │ ├── ResExSetup1.2.exe │ │ │ └── ResExSetup1.5Beta.exe │ │ └── xmlDbEditor │ │ │ ├── xmlDbEditor.exe │ │ │ └── xmlDbEditor.pdb │ └── TranslateUIGlobalization.cs ├── UI │ ├── Controls │ │ └── CustomTreeView.cs │ ├── Docking │ │ ├── BaseDockContent.Designer.cs │ │ ├── BaseDockContent.cs │ │ ├── BaseDockContent.resx │ │ ├── FullRecordEditor.Designer.cs │ │ ├── FullRecordEditor.cs │ │ ├── FullRecordEditor.resx │ │ ├── HtmlContent.Designer.cs │ │ ├── HtmlContent.cs │ │ ├── HtmlContent.resx │ │ ├── InterpreterConsole.Designer.cs │ │ ├── InterpreterConsole.cs │ │ ├── InterpreterConsole.resx │ │ ├── OutputTextContent.Designer.cs │ │ ├── OutputTextContent.cs │ │ ├── OutputTextContent.resx │ │ ├── PluginTreeContent.Designer.cs │ │ ├── PluginTreeContent.cs │ │ ├── PluginTreeContent.resx │ │ ├── RecordSearchForm.Designer.cs │ │ ├── RecordSearchForm.cs │ │ ├── RecordSearchForm.resx │ │ ├── RichTextContent.Designer.cs │ │ ├── RichTextContent.cs │ │ ├── RichTextContent.resx │ │ ├── SubrecordListContent.Designer.cs │ │ ├── SubrecordListContent.cs │ │ └── SubrecordListContent.resx │ ├── Forms │ │ ├── AddMasterForm.cs │ │ ├── AddMasterForm.designer.cs │ │ ├── AddMasterForm.resx │ │ ├── BatchEditRecords.Designer.cs │ │ ├── BatchEditRecords.cs │ │ ├── BatchEditRecords.resx │ │ ├── CompressSettings.Designer.cs │ │ ├── CompressSettings.cs │ │ ├── CompressSettings.resx │ │ ├── DataEdit.cs │ │ ├── DataEdit.designer.cs │ │ ├── DataEdit.resx │ │ ├── GroupEditor.cs │ │ ├── GroupEditor.designer.cs │ │ ├── GroupEditor.resx │ │ ├── HeaderEditor.cs │ │ ├── HeaderEditor.designer.cs │ │ ├── HeaderEditor.resx │ │ ├── HexDataEdit.cs │ │ ├── HexDataEdit.designer.cs │ │ ├── HexDataEdit.resx │ │ ├── InputBox.Designer.cs │ │ ├── InputBox.cs │ │ ├── InputBox.resx │ │ ├── LoadSettings.Designer.cs │ │ ├── LoadSettings.cs │ │ ├── LoadSettings.resx │ │ ├── MainView.Search.cs │ │ ├── MainView.Spells.cs │ │ ├── MainView.cs │ │ ├── MainView.designer.cs │ │ ├── MainView.resx │ │ ├── MediumLevelRecordEditor.cs │ │ ├── MediumLevelRecordEditor.designer.cs │ │ ├── MediumLevelRecordEditor.resx │ │ ├── MultilineStringEditor.Designer.cs │ │ ├── MultilineStringEditor.cs │ │ ├── MultilineStringEditor.resx │ │ ├── NewMediumLevelRecordEditor.cs │ │ ├── NewMediumLevelRecordEditor.designer.cs │ │ ├── NewMediumLevelRecordEditor.resx │ │ ├── RecordColumnSelect.Designer.cs │ │ ├── RecordColumnSelect.cs │ │ ├── RecordColumnSelect.resx │ │ ├── SearchFilterAdvanced.Designer.cs │ │ ├── SearchFilterAdvanced.cs │ │ ├── SearchFilterAdvanced.resx │ │ ├── SearchFilterBasic.Designer.cs │ │ ├── SearchFilterBasic.cs │ │ ├── SearchFilterBasic.resx │ │ ├── SearchForm.cs │ │ ├── SearchForm.designer.cs │ │ ├── SearchForm.resx │ │ ├── StringsEditor.Designer.cs │ │ ├── StringsEditor.cs │ │ └── StringsEditor.resx │ ├── Hosting │ │ ├── ConsoleOptions.cs │ │ ├── IronPythonConsole.xaml │ │ ├── IronPythonConsole.xaml.cs │ │ └── ScriptSupport.cs │ ├── MruStripMenu.cs │ ├── ObjectControls │ │ ├── PluginTreeView.Designer.cs │ │ ├── PluginTreeView.cs │ │ ├── PluginTreeView.resx │ │ ├── RecordEditor.Designer.cs │ │ ├── RecordEditor.cs │ │ ├── RecordEditor.resx │ │ ├── RecordSearch.Designer.cs │ │ ├── RecordSearch.cs │ │ ├── RecordSearch.resx │ │ ├── SubrecordEditor.Designer.cs │ │ ├── SubrecordEditor.cs │ │ ├── SubrecordEditor.resx │ │ ├── SubrecordListEditor.Designer.cs │ │ ├── SubrecordListEditor.cs │ │ └── SubrecordListEditor.resx │ ├── RecordBuilder.cs │ ├── RecordControls │ │ ├── BaseElement.Designer.cs │ │ ├── BaseElement.cs │ │ ├── BaseElement.resx │ │ ├── FlagsElement.Designer.cs │ │ ├── FlagsElement.cs │ │ ├── FlagsElement.resx │ │ ├── FormIDElement.Designer.cs │ │ ├── FormIDElement.cs │ │ ├── FormIDElement.resx │ │ ├── HexElement.Designer.cs │ │ ├── HexElement.cs │ │ ├── HexElement.resx │ │ ├── IElementControl.cs │ │ ├── IGroupedElementControl.cs │ │ ├── IOuterElementControl.cs │ │ ├── ITextElementControl.cs │ │ ├── LStringElement.Designer.cs │ │ ├── LStringElement.cs │ │ ├── LStringElement.resx │ │ ├── OptionalElement.Designer.cs │ │ ├── OptionalElement.cs │ │ ├── OptionalElement.resx │ │ ├── OptionsElement.Designer.cs │ │ ├── OptionsElement.cs │ │ ├── OptionsElement.resx │ │ ├── RepeatingElement.Designer.cs │ │ ├── RepeatingElement.cs │ │ ├── RepeatingElement.resx │ │ ├── TextElement.Designer.cs │ │ ├── TextElement.cs │ │ └── TextElement.resx │ ├── Rendering │ │ ├── HtmlRenderer.cs │ │ ├── RTFRenderer.cs │ │ └── StringRenderer.cs │ ├── SelectionContext.cs │ ├── Services │ │ ├── Options.cs │ │ ├── PluginBase.cs │ │ ├── PluginEngine.cs │ │ ├── PluginStore.cs │ │ ├── Scripting.cs │ │ └── Settings.cs │ └── Spells.cs ├── Vendor │ ├── Controls │ │ ├── CheckedComboBox.cs │ │ ├── CustomComboBox.cs │ │ ├── CustomComboBox.resx │ │ ├── FlagComboBox.Designer.cs │ │ ├── FlagComboBox.cs │ │ ├── History.cs │ │ ├── OldNewEvent.cs │ │ ├── PopupControl.cs │ │ ├── RichTextBoxEx.cs │ │ ├── ballontooltip.cs │ │ ├── ballontooltip.resx │ │ ├── bindinglistview.cs │ │ ├── bindinglistview.resx │ │ ├── nativemethods.cs │ │ ├── objectbindinglistview.cs │ │ ├── objectbindinglistview.resx │ │ ├── virtuallistview.cs │ │ └── virtuallistview.resx │ ├── HexBox │ │ ├── ByteCollection.cs │ │ ├── DataBlock.cs │ │ ├── DataMap.cs │ │ ├── Design │ │ │ └── HexFontEditor.cs │ │ ├── DynamicByteProvider.cs │ │ ├── FileByteProvider.cs │ │ ├── HexBox.cs │ │ ├── IByteProvider.cs │ │ └── NativeMethods.cs │ ├── ObjectListView │ │ ├── CellEditing │ │ │ ├── CellEditKeyEngine.cs │ │ │ ├── CellEditors.cs │ │ │ └── EditorRegistry.cs │ │ ├── CustomDictionary.xml │ │ ├── DataListView.cs │ │ ├── DataTreeListView.cs │ │ ├── DragDrop │ │ │ ├── DragSource.cs │ │ │ ├── DropSink.cs │ │ │ └── OLVDataObject.cs │ │ ├── FastDataListView.cs │ │ ├── FastObjectListView.cs │ │ ├── Filtering │ │ │ ├── Cluster.cs │ │ │ ├── ClusteringStrategy.cs │ │ │ ├── ClustersFromGroupsStrategy.cs │ │ │ ├── DateTimeClusteringStrategy.cs │ │ │ ├── FilterMenuBuilder.cs │ │ │ ├── Filters.cs │ │ │ ├── FlagClusteringStrategy.cs │ │ │ ├── ICluster.cs │ │ │ ├── IClusteringStrategy.cs │ │ │ └── TextMatchFilter.cs │ │ ├── FullClassDiagram.cd │ │ ├── Implementation │ │ │ ├── Attributes.cs │ │ │ ├── Comparers.cs │ │ │ ├── DataSourceAdapter.cs │ │ │ ├── Delegates.cs │ │ │ ├── Enums.cs │ │ │ ├── Events.cs │ │ │ ├── GroupingParameters.cs │ │ │ ├── Groups.cs │ │ │ ├── Munger.cs │ │ │ ├── NativeMethods.cs │ │ │ ├── NullableDictionary.cs │ │ │ ├── OLVListItem.cs │ │ │ ├── OLVListSubItem.cs │ │ │ ├── OlvListViewHitTestInfo.cs │ │ │ ├── TreeDataSourceAdapter.cs │ │ │ ├── VirtualGroups.cs │ │ │ └── VirtualListDataSource.cs │ │ ├── OLVColumn.cs │ │ ├── ObjectListView.DesignTime.cs │ │ ├── ObjectListView.FxCop │ │ ├── ObjectListView.cs │ │ ├── ObjectListView.cs.bak │ │ ├── ObjectListView.shfb │ │ ├── ObjectListView2005.csproj │ │ ├── ObjectListView2008.csproj │ │ ├── ObjectListView2010.csproj │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── Rendering │ │ │ ├── Adornments.cs │ │ │ ├── Decorations.cs │ │ │ ├── Overlays.cs │ │ │ ├── Renderers.cs │ │ │ ├── Styles.cs │ │ │ └── TreeRenderer.cs │ │ ├── Resources │ │ │ ├── clear-filter.png │ │ │ ├── clear-filter1.png │ │ │ ├── coffee.jpg │ │ │ ├── filter-icons3.png │ │ │ ├── filter-icons31.png │ │ │ ├── filter.png │ │ │ ├── filter1.png │ │ │ ├── sort-ascending.png │ │ │ ├── sort-ascending1.png │ │ │ ├── sort-descending.png │ │ │ └── sort-descending1.png │ │ ├── SubControls │ │ │ ├── GlassPanelForm.cs │ │ │ ├── HeaderControl.cs │ │ │ ├── ToolStripCheckedListBox.cs │ │ │ └── ToolTipControl.cs │ │ ├── TreeListView.cs │ │ ├── Utilities │ │ │ ├── ColumnSelectionForm.Designer.cs │ │ │ ├── ColumnSelectionForm.cs │ │ │ ├── ColumnSelectionForm.resx │ │ │ ├── Generator.cs │ │ │ ├── OLVExporter.cs │ │ │ └── TypedObjectListView.cs │ │ ├── VirtualObjectListView.cs │ │ └── olv-keyfile.snk │ └── RTFLib │ │ ├── GDF │ │ ├── GDFBuilder.UnWrapped.cs │ │ ├── GDFBuilder.cs │ │ ├── GDFCell.cs │ │ ├── GDFDisplayBox.cs │ │ ├── GDFDisplayBox.designer.cs │ │ ├── GDFDisplayBox.resx │ │ ├── GDFPage.cs │ │ ├── GDFPageManager.cs │ │ ├── GDFRow.cs │ │ └── Tokenizer │ │ │ └── RTFBuilderParser.cs │ │ └── RTF │ │ ├── IRTFCell.cs │ │ ├── IRTFRow.cs │ │ ├── IRtfProcessor.cs │ │ ├── RTFAlignment.cs │ │ ├── RTFBorderSide.cs │ │ ├── RTFBuilder.RTFFonts.cs │ │ ├── RTFBuilder.RTFFormatWrap.cs │ │ ├── RTFBuilder.RTFParaWrap.cs │ │ ├── RTFBuilder.UnWrapped.cs │ │ ├── RTFBuilder.cs │ │ ├── RTFBuilderbase.cs │ │ ├── RTFCell.cs │ │ ├── RTFCellDefinition.cs │ │ ├── RTFCellDefinitionBuilder.cs │ │ ├── RTFFont.cs │ │ ├── RTFImage.cs │ │ ├── RTFRow.cs │ │ ├── RTFRowDefinition.cs │ │ └── RTFUtil.cs └── app.config ├── Domain ├── Data │ ├── DomainDefinition.cs │ ├── RecordStructure.xsc │ ├── RecordStructure.xsd │ ├── RecordStructure.xss │ ├── Strings │ │ ├── LocalizedString.cs │ │ ├── LocalizedStringDict.cs │ │ ├── LocalizedStringFormat.cs │ │ └── LocalizedStrings.cs │ └── Structure │ │ ├── CondType.cs │ │ ├── Conditional.cs │ │ ├── ElementBase.cs │ │ ├── ElementGroup.cs │ │ ├── ElementStructure.cs │ │ ├── ElementValueType.cs │ │ ├── RecordStructure.cs │ │ ├── SubrecordBase.cs │ │ ├── SubrecordGroup.cs │ │ ├── SubrecordStructure.cs │ │ └── Xml │ │ ├── ElementBase.cs │ │ ├── ElementGroup.cs │ │ ├── Group.cs │ │ ├── RecordXmlException.cs │ │ ├── Records.cs │ │ ├── RecordsRecord.cs │ │ ├── Subrecord.cs │ │ └── SubrecordElement.cs ├── Domain.csproj ├── Model │ ├── BaseRecord.cs │ ├── BatchCondElementType.cs │ ├── BatchCondRecordType.cs │ ├── BatchCriteria.cs │ ├── BatchCriteriaSettings.cs │ ├── BatchElement.cs │ ├── BatchSubrecord.cs │ ├── ColumnCriteria.cs │ ├── ColumnElement.cs │ ├── ColumnSettings.cs │ ├── ColumnSubrecord.cs │ ├── Delegates.cs │ ├── Element.cs │ ├── ElementAssignmentType.cs │ ├── FlagDefs.cs │ ├── GroupRecord.cs │ ├── IGroupRecord.cs │ ├── IRecord.cs │ ├── ISelectionContext.cs │ ├── Plugin.cs │ ├── PluginList.cs │ ├── Rec.cs │ ├── Record.cs │ ├── RecordChangeEventArgs.cs │ ├── SearchCondElementType.cs │ ├── SearchCondRecordType.cs │ ├── SearchCriteria.cs │ ├── SearchCriteriaList.cs │ ├── SearchCriteriaSettings.cs │ ├── SearchCriteriaXmlSettings.cs │ ├── SearchElement.cs │ ├── SearchElementXml.cs │ ├── SearchSubrecord.cs │ ├── SearchSubrecordXml.cs │ ├── SubRecord.cs │ └── TESParserException.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Rendering │ └── IRenderer.cs ├── Scripts │ ├── Keywords.cs │ ├── PyInterpreter.cs │ ├── ScriptCompiler.cs │ ├── Token.cs │ ├── TokenStream.cs │ └── TokenType.cs ├── Services │ ├── Alerts.cs │ ├── CloneTool.cs │ ├── Compressor.cs │ ├── Folders.cs │ ├── RecordLayout.cs │ ├── RecordsTrace.cs │ ├── SaveReadStream.cs │ └── Spells.cs ├── Settings.cs └── app.config ├── Framework ├── Collections │ ├── AdvancedList.cs │ ├── PropertyComparer.cs │ ├── PropertyComparerCollection.cs │ ├── ValueComparer.cs │ └── ordereddictionary.cs ├── EnumerableExtensions.cs ├── Extensions.cs ├── Framework.csproj ├── ICloneable.cs ├── IO │ └── inifile.cs ├── Pair.cs ├── Persistence │ ├── IPostSerializationCallback.cs │ ├── PersistContext.cs │ ├── PersistContextStates.cs │ ├── PersistObject.cs │ ├── PersistSurrogate.cs │ ├── PersistType.cs │ ├── PersistableAttribute.cs │ ├── SerializationInfoCache.cs │ ├── persistassist.cs │ └── serializationinfocachelist.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Settings.Designer.cs │ └── Settings.settings ├── Services │ ├── Encoding.cs │ ├── FontLangInfo.cs │ ├── Platform.cs │ └── PluginStore.cs ├── TypeConverter.cs └── app.config ├── Platform ├── x64 │ ├── ZLibMC.dll │ └── zlib1.dll └── x86 │ ├── ZLibMC.dll │ └── zlib1.dll ├── README.md ├── TESVsnip_LICENSE ├── TESVsnip_README.TXT ├── Vendor ├── IronPython-2.7.4 │ ├── IronPython.Modules.dll │ ├── IronPython.Modules.xml │ ├── IronPython.dll │ ├── IronPython.xml │ ├── License.StdLib.txt │ ├── License.html │ ├── License.rtf │ ├── License.txt │ ├── Microsoft.Dynamic.dll │ ├── Microsoft.Dynamic.xml │ ├── Microsoft.Scripting.Metadata.dll │ ├── Microsoft.Scripting.Metadata.xml │ ├── Microsoft.Scripting.dll │ ├── Microsoft.Scripting.xml │ └── Readme.html ├── ZLibMC │ ├── AssemblyInfo.cpp │ ├── ReadMe.txt │ ├── Stdafx.cpp │ ├── Stdafx.h │ ├── ZLibMC.cpp │ ├── ZLibMC.h │ ├── ZLibMC.vcxproj │ ├── ZLibMC.vcxproj.filters │ ├── app.ico │ ├── app.rc │ └── resource.h └── zlib-1.2.8 │ ├── CMakeLists.txt │ ├── ChangeLog │ ├── FAQ │ ├── INDEX │ ├── Makefile │ ├── Makefile.in │ ├── README │ ├── adler32.c │ ├── compress.c │ ├── configure │ ├── contrib │ ├── README.contrib │ ├── amd64 │ │ └── amd64-match.S │ ├── infback9 │ │ ├── README │ │ ├── infback9.c │ │ ├── infback9.h │ │ ├── inffix9.h │ │ ├── inflate9.h │ │ ├── inftree9.c │ │ └── inftree9.h │ ├── inflate86 │ │ ├── inffas86.c │ │ └── inffast.S │ ├── masmx64 │ │ ├── bld_ml64.bat │ │ ├── gvmat64.asm │ │ ├── inffas8664.c │ │ ├── inffasx64.asm │ │ └── readme.txt │ └── masmx86 │ │ ├── bld_ml32.bat │ │ ├── inffas32.asm │ │ ├── match686.asm │ │ └── readme.txt │ ├── crc32.c │ ├── crc32.h │ ├── deflate.c │ ├── deflate.h │ ├── doc │ ├── algorithm.txt │ ├── rfc1950.txt │ ├── rfc1951.txt │ ├── rfc1952.txt │ └── txtvsbin.txt │ ├── gzclose.c │ ├── gzguts.h │ ├── gzlib.c │ ├── gzread.c │ ├── gzwrite.c │ ├── infback.c │ ├── inffast.c │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.c │ ├── inflate.h │ ├── inftrees.c │ ├── inftrees.h │ ├── treebuild.xml │ ├── trees.c │ ├── trees.h │ ├── uncompr.c │ ├── win32 │ ├── DLL_FAQ.txt │ ├── Makefile.bor │ ├── Makefile.gcc │ ├── Makefile.msc │ ├── README-WIN32.txt │ ├── VisualC.txt │ ├── visualc9-x64 │ │ ├── README.txt │ │ ├── zlib-x64.vcxproj │ │ └── zlib.vcxproj.filters │ ├── visualc9-x86 │ │ ├── README.txt │ │ ├── zlib-x86.vcxproj │ │ └── zlib.vcxproj.filters │ ├── zlib.def │ └── zlib1.rc │ ├── zconf.h │ ├── zconf.h.cmakein │ ├── zconf.h.in │ ├── zlib.3 │ ├── zlib.3.pdf │ ├── zlib.h │ ├── zlib.map │ ├── zlib.pc.cmakein │ ├── zlib.pc.in │ ├── zlib2ansi │ ├── zutil.c │ └── zutil.h ├── build.bat ├── build.proj ├── build ├── assemblyinfo.cs ├── buildver.txt ├── tasks │ └── BuildTasks │ │ ├── BuildTasks.csproj │ │ ├── BuildTasks.sln │ │ ├── Main.cs │ │ └── Properties │ │ └── AssemblyInfo.cs ├── tesvsnip.buildtasks.dll ├── tesvsnip.common.targets └── tesvsnip.snk ├── changelog.rtf ├── conf ├── DockPanel.config ├── Domains.ini ├── Fallout3 │ └── RecordStructure.xml ├── FalloutNV │ └── RecordStructure.xml ├── Morrowind │ └── RecordStructure.xml ├── Oblivion │ └── RecordStructure.xml ├── RecordStructureFormat.txt ├── ScriptFunctions.xml ├── ScriptFunctionsFormat.txt ├── Skyrim │ └── RecordStructure.xml └── settings.xml ├── scripts ├── lib │ ├── HTML.py │ ├── Licence_CeCILL_V2-en.html │ ├── Licence_CeCILL_V2-fr.html │ └── markup.py ├── plugins │ ├── CopyTo.py │ ├── ExtractNPCs.py │ ├── ListItems.py │ ├── ModWeight.py │ └── shared │ │ ├── SelectItem.py │ │ ├── __init__.py │ │ ├── required.py │ │ └── util.py ├── renderer.css ├── renderer.py └── scripts.py ├── test ├── ipy.bat ├── startup.py ├── test1.py ├── test2.py ├── test3.py ├── test4.py ├── viewhtml.bat └── viewhtml │ ├── DualForm.Designer.cs │ ├── DualForm.cs │ ├── DualForm.resx │ ├── HtmlForm.Designer.cs │ ├── HtmlForm.cs │ ├── HtmlForm.resx │ ├── IBrowser.cs │ ├── MSHTMLView.Designer.cs │ ├── MSHTMLView.cs │ ├── MSHTMLView.resx │ ├── Program.cs │ ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings │ ├── viewhtml.csproj │ └── viewhtml.csproj.user ├── tesvsnip.sln └── thirdparty ├── HtmlRenderer.dll ├── ICSharpCode.AvalonEdit.dll ├── Ionic.Zlib.dll ├── MagicLibrary.dll ├── PythonConsoleControl.dll ├── WeifenLuo.WinFormsUI.Docking.dll └── msbuild.community.tasks.v1.3.0.528 ├── MSBuild.Community.Tasks.Targets ├── MSBuild.Community.Tasks.dll ├── MSBuild.Community.Tasks.pdb ├── MSBuild.Community.Tasks.xml └── MSBuild.Community.Tasks.xsd /Application/Lang/ResGen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Lang/ResGen.exe -------------------------------------------------------------------------------- /Application/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // Setting ComVisible to false makes the types in this assembly not visible 5 | // to COM components. If you need to access a type in this assembly from 6 | // COM, set the ComVisible attribute to true on that type. 7 | 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | 12 | [assembly: Guid("d27c32fe-f8b5-4e6e-becf-558e5d7524bb")] 13 | [assembly: AssemblyDescription("Low level plugin editor for Skyrim")] -------------------------------------------------------------------------------- /Application/Properties/Settings.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Configuration; 3 | 4 | namespace TESVSnip.Properties 5 | { 6 | // This class allows you to handle specific events on the settings class: 7 | // The SettingChanging event is raised before a setting's value is changed. 8 | // The PropertyChanged event is raised after a setting's value is changed. 9 | // The SettingsLoaded event is raised after the setting values are loaded. 10 | // The SettingsSaving event is raised before the setting values are saved. 11 | internal sealed partial class Settings 12 | { 13 | private void SettingChangingEventHandler(object sender, SettingChangingEventArgs e) 14 | { 15 | // Add code to handle the SettingChangingEvent event here. 16 | } 17 | 18 | private void SettingsSavingEventHandler(object sender, CancelEventArgs e) 19 | { 20 | // Add code to handle the SettingsSaving event here. 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Application/Resources/14_layer_deletelayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/14_layer_deletelayer.png -------------------------------------------------------------------------------- /Application/Resources/420__Pixel_Art__Icons_for_RPG_by_Ails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/420__Pixel_Art__Icons_for_RPG_by_Ails.png -------------------------------------------------------------------------------- /Application/Resources/Copy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Copy.bmp -------------------------------------------------------------------------------- /Application/Resources/Copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Copy.png -------------------------------------------------------------------------------- /Application/Resources/CreateWall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/CreateWall.png -------------------------------------------------------------------------------- /Application/Resources/Cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Cut.png -------------------------------------------------------------------------------- /Application/Resources/Delete_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Delete_.png -------------------------------------------------------------------------------- /Application/Resources/EditTable.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/EditTable.bmp -------------------------------------------------------------------------------- /Application/Resources/Edit_UndoHS.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Edit_UndoHS.bmp -------------------------------------------------------------------------------- /Application/Resources/Find.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Find.bmp -------------------------------------------------------------------------------- /Application/Resources/Open.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Open.bmp -------------------------------------------------------------------------------- /Application/Resources/Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Open.png -------------------------------------------------------------------------------- /Application/Resources/Paste.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Paste.bmp -------------------------------------------------------------------------------- /Application/Resources/Paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Paste.png -------------------------------------------------------------------------------- /Application/Resources/PythonConsole16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/PythonConsole16x16.png -------------------------------------------------------------------------------- /Application/Resources/PythonConsole32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/PythonConsole32x32.png -------------------------------------------------------------------------------- /Application/Resources/PythonScript16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/PythonScript16x16.png -------------------------------------------------------------------------------- /Application/Resources/PythonScript32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/PythonScript32x32.png -------------------------------------------------------------------------------- /Application/Resources/Redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Redo.png -------------------------------------------------------------------------------- /Application/Resources/Revert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Revert.png -------------------------------------------------------------------------------- /Application/Resources/RolledBack.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/RolledBack.bmp -------------------------------------------------------------------------------- /Application/Resources/Run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Run.png -------------------------------------------------------------------------------- /Application/Resources/Save.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Save.bmp -------------------------------------------------------------------------------- /Application/Resources/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Save.png -------------------------------------------------------------------------------- /Application/Resources/Undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/Undo.png -------------------------------------------------------------------------------- /Application/Resources/WordWrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/WordWrap.png -------------------------------------------------------------------------------- /Application/Resources/agt_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/agt_back.png -------------------------------------------------------------------------------- /Application/Resources/agt_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/agt_forward.png -------------------------------------------------------------------------------- /Application/Resources/agt_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/agt_stop.png -------------------------------------------------------------------------------- /Application/Resources/bookmark_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/bookmark_add.png -------------------------------------------------------------------------------- /Application/Resources/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/cancel.png -------------------------------------------------------------------------------- /Application/Resources/checkedbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/checkedbox.png -------------------------------------------------------------------------------- /Application/Resources/checkedbox1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/checkedbox1.png -------------------------------------------------------------------------------- /Application/Resources/clear-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/clear-filter.png -------------------------------------------------------------------------------- /Application/Resources/configure_toolbars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/configure_toolbars.png -------------------------------------------------------------------------------- /Application/Resources/cut-2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/cut-2.bmp -------------------------------------------------------------------------------- /Application/Resources/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/delete.png -------------------------------------------------------------------------------- /Application/Resources/deletecell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/deletecell.png -------------------------------------------------------------------------------- /Application/Resources/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/down.png -------------------------------------------------------------------------------- /Application/Resources/edit_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/edit_add.png -------------------------------------------------------------------------------- /Application/Resources/edit_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/edit_remove.png -------------------------------------------------------------------------------- /Application/Resources/editclear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/editclear.png -------------------------------------------------------------------------------- /Application/Resources/emptybox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/emptybox.png -------------------------------------------------------------------------------- /Application/Resources/fileexport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/fileexport.png -------------------------------------------------------------------------------- /Application/Resources/filter-icons3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/filter-icons3.png -------------------------------------------------------------------------------- /Application/Resources/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/filter.png -------------------------------------------------------------------------------- /Application/Resources/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/find.png -------------------------------------------------------------------------------- /Application/Resources/insertcell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/insertcell.png -------------------------------------------------------------------------------- /Application/Resources/insertcell1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/insertcell1.png -------------------------------------------------------------------------------- /Application/Resources/ipy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/ipy.ico -------------------------------------------------------------------------------- /Application/Resources/move_task_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/move_task_down.png -------------------------------------------------------------------------------- /Application/Resources/move_task_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/move_task_up.png -------------------------------------------------------------------------------- /Application/Resources/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/next.png -------------------------------------------------------------------------------- /Application/Resources/py.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/py.ico -------------------------------------------------------------------------------- /Application/Resources/pycon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/pycon.ico -------------------------------------------------------------------------------- /Application/Resources/quick_restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/quick_restart.png -------------------------------------------------------------------------------- /Application/Resources/reload_all_tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/reload_all_tabs.png -------------------------------------------------------------------------------- /Application/Resources/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/search.png -------------------------------------------------------------------------------- /Application/Resources/sort-ascending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/sort-ascending.png -------------------------------------------------------------------------------- /Application/Resources/sort-descending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/sort-descending.png -------------------------------------------------------------------------------- /Application/Resources/special_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/special_paste.png -------------------------------------------------------------------------------- /Application/Resources/tesv_ico.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/tesv_ico.ico -------------------------------------------------------------------------------- /Application/Resources/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/up.png -------------------------------------------------------------------------------- /Application/Resources/warning.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/warning.ico -------------------------------------------------------------------------------- /Application/Resources/xdays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Resources/xdays.png -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/ResEx/Extended.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/ResEx/Extended.Common.dll -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/ResEx/ResEx.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/ResEx/ResEx.chm -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/ResEx/ResEx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/ResEx/ResEx.exe -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/ResEx/ResExSetup1.2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/ResEx/ResExSetup1.2.exe -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/ResEx/ResExSetup1.5Beta.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/ResEx/ResExSetup1.5Beta.exe -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/xmlDbEditor/xmlDbEditor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/xmlDbEditor/xmlDbEditor.exe -------------------------------------------------------------------------------- /Application/TranslateUI/Tools/xmlDbEditor/xmlDbEditor.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/TranslateUI/Tools/xmlDbEditor/xmlDbEditor.pdb -------------------------------------------------------------------------------- /Application/TranslateUI/TranslateUIGlobalization.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.TranslateUI 2 | { 3 | using System.Globalization; 4 | using System.Resources; 5 | using System.Threading; 6 | using System.Windows.Forms; 7 | 8 | public static class TranslateUiGlobalization 9 | { 10 | public static string CultureCode = string.Empty; 11 | 12 | private static string resourcesPath = string.Empty; 13 | 14 | public static ResourceManager ResManager { get; private set; } 15 | 16 | /// 17 | /// Globalize Application 18 | /// 19 | public static void GlobalizeApp() 20 | { 21 | SetCulture(); 22 | SetResource(); 23 | } 24 | 25 | /// 26 | /// Set Culture 27 | /// 28 | private static void SetCulture() 29 | { 30 | CultureInfo objCi = new CultureInfo(CultureCode); 31 | Thread.CurrentThread.CurrentCulture = objCi; 32 | Thread.CurrentThread.CurrentUICulture = objCi; 33 | } 34 | 35 | /// 36 | /// Set Resource from file 37 | /// 38 | private static void SetResource() 39 | { 40 | resourcesPath = System.IO.Path.Combine(Application.StartupPath, "Lang"); 41 | ResManager = null; 42 | ResManager = ResourceManager.CreateFileBasedResourceManager("resource", resourcesPath, null); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Application/UI/Docking/BaseDockContent.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using System; 4 | using System.ComponentModel; 5 | 6 | using WeifenLuo.WinFormsUI.Docking; 7 | 8 | public partial class BaseDockContent : DockContent 9 | { 10 | public BaseDockContent() 11 | { 12 | this.InitializeComponent(); 13 | } 14 | 15 | private void closeToolStripMenuItem_Click(object sender, EventArgs e) 16 | { 17 | Close(); 18 | } 19 | 20 | private void closeToolStripMenuItem_DropDownOpening(object sender, EventArgs e) 21 | { 22 | } 23 | 24 | private void dockAsTabbedDocumentToolStripMenuItem_Click(object sender, EventArgs e) 25 | { 26 | DockState = DockState.Document; 27 | } 28 | 29 | private void dockingMenuStrip_Opening(object sender, CancelEventArgs e) 30 | { 31 | this.closeToolStripMenuItem.Enabled = CloseButton; 32 | this.floatToolStripMenuItem.Enabled = DockState != DockState.Float && IsDockStateValid(DockState.Float); 33 | this.dockAsTabbedDocumentToolStripMenuItem.Enabled = DockState == DockState.Float && IsDockStateValid(DockState.Document); 34 | } 35 | 36 | private void floatToolStripMenuItem_Click(object sender, EventArgs e) 37 | { 38 | DockState = DockState.Float; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Application/UI/Docking/FullRecordEditor.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using TESVSnip.UI.ObjectControls; 4 | 5 | partial class FullRecordEditor 6 | { 7 | /// 8 | /// Required designer variable. 9 | /// 10 | private System.ComponentModel.IContainer components = null; 11 | 12 | /// 13 | /// Clean up any resources being used. 14 | /// 15 | /// true if managed resources should be disposed; otherwise, false. 16 | protected override void Dispose(bool disposing) 17 | { 18 | if (disposing && (this.components != null)) 19 | { 20 | this.components.Dispose(); 21 | } 22 | base.Dispose(disposing); 23 | } 24 | 25 | #region Windows Form Designer generated code 26 | 27 | /// 28 | /// Required method for Designer support - do not modify 29 | /// the contents of this method with the code editor. 30 | /// 31 | private void InitializeComponent() 32 | { 33 | this.panelRecordEditor = new RecordEditor(); 34 | this.SuspendLayout(); 35 | // 36 | // panelRecordEditor 37 | // 38 | this.panelRecordEditor.Dock = System.Windows.Forms.DockStyle.Fill; 39 | this.panelRecordEditor.Location = new System.Drawing.Point(0, 0); 40 | this.panelRecordEditor.Name = "panelRecordEditor"; 41 | this.panelRecordEditor.Record = null; 42 | this.panelRecordEditor.Size = new System.Drawing.Size(692, 384); 43 | this.panelRecordEditor.TabIndex = 0; 44 | // 45 | // FullRecordEditor 46 | // 47 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 48 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 49 | this.ClientSize = new System.Drawing.Size(692, 384); 50 | this.Controls.Add(this.panelRecordEditor); 51 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; 52 | this.Name = "FullRecordEditor"; 53 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 54 | this.Text = "Full Record Editor"; 55 | this.DockStateChanged += new System.EventHandler(this.FullRecordEditor_DockStateChanged); 56 | this.ResumeLayout(false); 57 | 58 | } 59 | 60 | #endregion 61 | 62 | private RecordEditor panelRecordEditor; 63 | } 64 | } -------------------------------------------------------------------------------- /Application/UI/Docking/FullRecordEditor.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using System; 4 | 5 | using TESVSnip.Domain.Model; 6 | using TESVSnip.Properties; 7 | 8 | public partial class FullRecordEditor : BaseDockContent 9 | { 10 | public FullRecordEditor() 11 | { 12 | this.InitializeComponent(); 13 | } 14 | 15 | public FullRecordEditor(Record rec) 16 | : this() 17 | { 18 | this.Record = rec; 19 | } 20 | 21 | public Record Record 22 | { 23 | get 24 | { 25 | return this.panelRecordEditor.Record; 26 | } 27 | 28 | set 29 | { 30 | this.panelRecordEditor.Record = value; 31 | this.UpdateTitle(); 32 | } 33 | } 34 | 35 | private void FullRecordEditor_DockStateChanged(object sender, EventArgs e) 36 | { 37 | this.UpdateTitle(); 38 | } 39 | 40 | private void UpdateTitle() 41 | { 42 | if (this.panelRecordEditor.Record != null) 43 | { 44 | if (Pane == null || Pane.IsFloat) 45 | { 46 | Text = string.Format("{0} - [{1:X8}] {2}", Resources.FullRecordEditorTitle, this.panelRecordEditor.Record.FormID, this.panelRecordEditor.Record.DescriptiveName); 47 | } 48 | else 49 | { 50 | Text = string.Format("[{0:X8}] {1}", this.panelRecordEditor.Record.FormID, this.panelRecordEditor.Record.DescriptiveName); 51 | } 52 | } 53 | else 54 | { 55 | Text = Resources.FullRecordEditorTitle; 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Application/UI/Docking/InterpreterConsole.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows.Forms; 3 | using PythonConsoleControl; 4 | using TESVSnip.UI.Hosting; 5 | 6 | namespace TESVSnip.UI.Docking 7 | { 8 | using System; 9 | 10 | using TESVSnip.Domain.Model; 11 | 12 | public partial class InterpreterConsole : BaseDockContent 13 | { 14 | private TESVSnip.UI.Hosting.IronPythonConsole pythonConsole; 15 | public InterpreterConsole() 16 | { 17 | pythonConsole = new IronPythonConsole(); 18 | this.InitializeComponent(); 19 | this.elementHost1.Child = pythonConsole; 20 | } 21 | 22 | public IronPythonConsole InnerView 23 | { 24 | get { return pythonConsole; } 25 | } 26 | 27 | public PythonConsole Console 28 | { 29 | get { return pythonConsole.consoleControl.Console; } 30 | } 31 | 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Application/UI/Docking/OutputTextContent.cs: -------------------------------------------------------------------------------- 1 | using System.Text.RegularExpressions; 2 | 3 | namespace TESVSnip.UI.Docking 4 | { 5 | using System.Windows.Forms; 6 | 7 | using TESVSnip.Domain.Model; 8 | using TESVSnip.Framework.Services; 9 | using TESVSnip.Properties; 10 | 11 | public partial class OutputTextContent : BaseDockContent 12 | { 13 | System.Text.RegularExpressions.Regex reWhiteSpace = new Regex("\r?\n"); 14 | public OutputTextContent() 15 | { 16 | this.InitializeComponent(); 17 | } 18 | 19 | public System.Windows.Forms.TextBox TextBox 20 | { 21 | get 22 | { 23 | return this.textBox; 24 | } 25 | } 26 | 27 | public void UpdateText(string text) 28 | { 29 | this.textBox.Text = reWhiteSpace.Replace(text, "\r\n"); 30 | } 31 | 32 | public void SetText(string text) 33 | { 34 | this.textBox.Text = reWhiteSpace.Replace(text, "\r\n"); 35 | } 36 | 37 | public void ClearText() 38 | { 39 | this.textBox.Text = ""; 40 | } 41 | 42 | public void AppendText(string text) 43 | { 44 | this.textBox.AppendText( reWhiteSpace.Replace(text, "\r\n") ); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Application/UI/Docking/PluginTreeContent.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using TESVSnip.UI.ObjectControls; 4 | 5 | using WeifenLuo.WinFormsUI.Docking; 6 | 7 | public partial class PluginTreeContent : DockContent 8 | { 9 | public PluginTreeContent() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | public PluginTreeView PluginTree 15 | { 16 | get 17 | { 18 | return this.pluginTreeControl; 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Application/UI/Docking/RecordSearchForm.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using System; 4 | 5 | using TESVSnip.Domain.Model; 6 | 7 | public partial class RecordSearchForm : BaseDockContent 8 | { 9 | public RecordSearchForm() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | internal void ReferenceSearch(uint formid) 15 | { 16 | this.subrecordPanel.ReferenceSearch(formid); 17 | } 18 | 19 | internal void SetSearchCriteria(SearchCriteriaSettings settings, bool doSearch) 20 | { 21 | this.subrecordPanel.SetSearchCriteria(settings, doSearch); 22 | } 23 | 24 | private void RecordSearchForm_Load(object sender, EventArgs e) 25 | { 26 | } 27 | 28 | private void RecordSearchForm_Shown(object sender, EventArgs e) 29 | { 30 | this.subrecordPanel.FocusText(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Application/UI/Docking/RichTextContent.cs: -------------------------------------------------------------------------------- 1 | using TESVSnip.UI.Rendering.Extensions; 2 | 3 | namespace TESVSnip.UI.Docking 4 | { 5 | using System.Windows.Forms; 6 | 7 | using RTF; 8 | 9 | using TESVSnip.Domain.Model; 10 | using TESVSnip.Framework.Services; 11 | using TESVSnip.Properties; 12 | 13 | public partial class RichTextContent : BaseDockContent 14 | { 15 | public RichTextContent() 16 | { 17 | this.InitializeComponent(); 18 | } 19 | 20 | public RichTextBox RtfInfo 21 | { 22 | get 23 | { 24 | return this.rtfInfo; 25 | } 26 | } 27 | 28 | public void UpdateRecord(BaseRecord sc) 29 | { 30 | if (sc == null) 31 | { 32 | this.UpdateText(string.Empty); 33 | return; 34 | } 35 | 36 | FontLangInfo defLang; 37 | if (!Encoding.TryGetFontInfo(Domain.Properties.Settings.Default.LocalizationName, out defLang)) 38 | { 39 | defLang = new FontLangInfo(1252, 1033, 0); 40 | } 41 | 42 | var rb = new RTFBuilder(RTFFont.Arial, 16, defLang.lcid, defLang.charset); 43 | sc.GetFormattedHeader(rb); 44 | sc.GetFormattedData(rb); 45 | this.rtfInfo.Rtf = rb.ToString(); 46 | } 47 | 48 | public void UpdateRtf(string rtfText) 49 | { 50 | this.rtfInfo.Rtf = rtfText; 51 | } 52 | 53 | public void UpdateText(string text) 54 | { 55 | this.rtfInfo.Text = text; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Application/UI/Docking/SubrecordListContent.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Docking 2 | { 3 | using TESVSnip.UI.ObjectControls; 4 | 5 | using WeifenLuo.WinFormsUI.Docking; 6 | 7 | public partial class SubrecordListContent : DockContent 8 | { 9 | public SubrecordListContent() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | public SubrecordListEditor SubrecordList 15 | { 16 | get 17 | { 18 | return this.subrecordPanel; 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Application/UI/Forms/AddMasterForm.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Forms 2 | { 3 | using System; 4 | using System.IO; 5 | using System.Windows.Forms; 6 | 7 | public partial class AddMasterForm : Form 8 | { 9 | public AddMasterForm() 10 | { 11 | this.InitializeComponent(); 12 | this.ofdChooseMaster.InitialDirectory = Path.GetFullPath("data"); 13 | this.ofdChooseMaster.FileName = "skyrim.esm"; 14 | this.ofdChooseMaster.Filter = "Masters or Plugins (*.esm,*.esp)|*.esm;*.esp|Masters(*.esm)|*.esm|Plugins (*.esp)|*.esp"; 15 | } 16 | 17 | public string MasterName 18 | { 19 | get 20 | { 21 | return this.tbxMaster.Text; 22 | } 23 | } 24 | 25 | private void butChooseMaster_Click(object sender, EventArgs e) 26 | { 27 | if (this.ofdChooseMaster.ShowDialog() == DialogResult.OK) 28 | { 29 | this.tbxMaster.Text = Path.GetFileName(this.ofdChooseMaster.FileName); 30 | } 31 | } 32 | 33 | private void butOK_Click(object sender, EventArgs e) 34 | { 35 | DialogResult = DialogResult.OK; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Application/UI/Forms/DataEdit.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Forms 2 | { 3 | using System; 4 | using System.Windows.Forms; 5 | 6 | using TESVSnip.Properties; 7 | 8 | internal partial class DataEdit : Form 9 | { 10 | public static bool Canceled; 11 | 12 | public static byte[] result; 13 | 14 | public static string resultName; 15 | 16 | public DataEdit(string RecName, byte[] data) 17 | { 18 | this.InitializeComponent(); 19 | Icon = Resources.tesv_ico; 20 | Text += RecName; 21 | this.tbName.Text = RecName; 22 | Text += " (string mode)"; 23 | string s = string.Empty; 24 | foreach (byte b in data) 25 | { 26 | s += (char)b; 27 | } 28 | 29 | this.tbEdit.Text = s; 30 | Canceled = true; 31 | } 32 | 33 | private void bCancel_Click(object sender, EventArgs e) 34 | { 35 | Canceled = true; 36 | Close(); 37 | } 38 | 39 | private void bSave_Click(object sender, EventArgs e) 40 | { 41 | Canceled = false; 42 | result = new byte[this.tbEdit.Text.Length + 1]; 43 | for (int i = 0; i < this.tbEdit.Text.Length; i++) 44 | { 45 | result[i] = (byte)this.tbEdit.Text[i]; 46 | } 47 | 48 | result[this.tbEdit.Text.Length] = 0; 49 | resultName = this.tbName.Text; 50 | Close(); 51 | } 52 | 53 | private void tbName_KeyPress(object sender, KeyPressEventArgs e) 54 | { 55 | if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && !char.IsLetter(e.KeyChar) && e.KeyChar != '_') 56 | { 57 | e.Handled = true; 58 | } 59 | } 60 | 61 | private void tbName_Leave(object sender, EventArgs e) 62 | { 63 | if (this.tbName.Text.Length < 4) 64 | { 65 | this.tbName.Text = this.tbName.Text.PadRight(4, '_'); 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Application/UI/Forms/InputBox.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Forms 2 | { 3 | using System.Windows.Forms; 4 | 5 | public partial class InputBox : Form 6 | { 7 | public InputBox() 8 | { 9 | this.InitializeComponent(); 10 | } 11 | 12 | public InputBox(string label) 13 | : this() 14 | { 15 | this.Label = label; 16 | } 17 | 18 | public InputBox(string label, string caption) 19 | : this(label) 20 | { 21 | Text = caption; 22 | } 23 | 24 | public InputBox(string label, string value, string caption) 25 | : this(label, caption) 26 | { 27 | this.Value = value; 28 | } 29 | 30 | public string Caption 31 | { 32 | get 33 | { 34 | return Text; 35 | } 36 | 37 | set 38 | { 39 | Text = value; 40 | } 41 | } 42 | 43 | public string Label 44 | { 45 | get 46 | { 47 | return this.label1.Text; 48 | } 49 | 50 | set 51 | { 52 | this.label1.Text = value; 53 | } 54 | } 55 | 56 | public string Value 57 | { 58 | get 59 | { 60 | return this.textBox1.Text; 61 | } 62 | 63 | set 64 | { 65 | this.textBox1.Text = value; 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Application/UI/Forms/MultilineStringEditor.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.Forms 2 | { 3 | using System; 4 | using System.Windows.Forms; 5 | 6 | public partial class MultilineStringEditor : Form 7 | { 8 | public MultilineStringEditor() 9 | { 10 | this.InitializeComponent(); 11 | } 12 | 13 | public MultilineStringEditor(string text) 14 | { 15 | this.Text = text; 16 | this.InitializeComponent(); 17 | } 18 | 19 | public new string Text { get; set; } 20 | 21 | private void MultilineStringEditor_Load(object sender, EventArgs e) 22 | { 23 | this.textBox1.Text = this.Text; 24 | } 25 | 26 | private void btnClose_Click(object sender, EventArgs e) 27 | { 28 | DialogResult = DialogResult.Cancel; 29 | Close(); 30 | } 31 | 32 | private void btnOK_Click(object sender, EventArgs e) 33 | { 34 | this.Text = this.textBox1.Text; 35 | DialogResult = DialogResult.OK; 36 | Close(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Application/UI/Hosting/ConsoleOptions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Joe Moorhouse 2 | 3 | using System.ComponentModel; 4 | using System.Windows.Media; 5 | using ICSharpCode.AvalonEdit; 6 | using PythonConsoleControl; 7 | 8 | namespace TESVSnip.UI.Hosting 9 | { 10 | public class ConsoleOptions 11 | { 12 | TextEditor textEditor; 13 | PythonConsolePad pad; 14 | 15 | public ConsoleOptions(PythonConsolePad pad) 16 | { 17 | this.textEditor = pad.Control; 18 | this.pad = pad; 19 | } 20 | 21 | [DefaultValue(false)] 22 | public bool ShowSpaces 23 | { 24 | get { return textEditor.TextArea.Options.ShowSpaces; } 25 | set { textEditor.TextArea.Options.ShowSpaces = value; } 26 | } 27 | 28 | [DefaultValue(false)] 29 | public bool ShowTabs 30 | { 31 | get { return textEditor.TextArea.Options.ShowTabs; } 32 | set { textEditor.TextArea.Options.ShowTabs = value; } 33 | } 34 | 35 | [DefaultValue(false)] 36 | public bool AllowScrollBelowDocument 37 | { 38 | get { return textEditor.TextArea.Options.AllowScrollBelowDocument; } 39 | set { textEditor.TextArea.Options.AllowScrollBelowDocument = value; } 40 | } 41 | 42 | [DefaultValue("Consolas")] 43 | public string FontFamily 44 | { 45 | get { return textEditor.TextArea.FontFamily.ToString(); } 46 | set { textEditor.TextArea.FontFamily = new FontFamily(value); } 47 | } 48 | 49 | [DefaultValue(12.0)] 50 | public double FontSize 51 | { 52 | get { return textEditor.TextArea.FontSize; } 53 | set { textEditor.TextArea.FontSize = value; } 54 | } 55 | 56 | [DefaultValue(false)] 57 | public bool FullAutocompletion 58 | { 59 | get { return pad.Console.AllowFullAutocompletion; } 60 | set { pad.Console.AllowFullAutocompletion = value; } 61 | } 62 | 63 | [DefaultValue(true)] 64 | public bool CtrlSpaceAutocompletion 65 | { 66 | get { return pad.Console.AllowCtrlSpaceAutocompletion; } 67 | set { pad.Console.AllowCtrlSpaceAutocompletion = value; } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /Application/UI/Hosting/ScriptSupport.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Windows.Forms; 7 | using TESVSnip.UI.Docking; 8 | using TESVSnip.UI.Forms; 9 | 10 | namespace TESVSnip.UI.Hosting 11 | { 12 | public static class ScriptSupport 13 | { 14 | public static void SendStatusText(string text) 15 | { 16 | TESVSnip.UI.Forms.MainView.PostStatusText(text); 17 | } 18 | 19 | public static void SendStatusText(string text, Color color) 20 | { 21 | TESVSnip.UI.Forms.MainView.PostStatusText(text, color); 22 | } 23 | 24 | public static OutputTextContent CreateTextWindow(string name) 25 | { 26 | var form = Application.OpenForms.OfType().FirstOrDefault() as MainView; 27 | if (form != null) 28 | { 29 | return form.GetOrCreateWindowByName(name); 30 | } 31 | return null; 32 | } 33 | 34 | public static TESVSnip.Domain.Model.Plugin CreateNewPlugin() 35 | { 36 | var form = Application.OpenForms.OfType().FirstOrDefault() as MainView; 37 | if (form != null) 38 | { 39 | return form.NewPlugin(); 40 | } 41 | return null; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Application/UI/RecordControls/BaseElement.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.RecordControls 2 | { 3 | partial class BaseElement 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 && (this.components != null)) 17 | { 18 | this.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 | this.components = new System.ComponentModel.Container(); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BaseElement)); 33 | this.Error = new System.Windows.Forms.ErrorProvider(this.components); 34 | this.ToolTip = new System.Windows.Forms.ToolTip(this.components); 35 | ((System.ComponentModel.ISupportInitialize)(this.Error)).BeginInit(); 36 | this.SuspendLayout(); 37 | // 38 | // Error 39 | // 40 | this.Error.ContainerControl = this; 41 | // 42 | // BaseElement 43 | // 44 | resources.ApplyResources(this, "$this"); 45 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 46 | this.MinimumSize = new System.Drawing.Size(204, 20); 47 | this.Name = "BaseElement"; 48 | this.Enter += new System.EventHandler(this.BaseElement_Enter); 49 | ((System.ComponentModel.ISupportInitialize)(this.Error)).EndInit(); 50 | this.ResumeLayout(false); 51 | 52 | } 53 | 54 | #endregion 55 | 56 | protected System.Windows.Forms.ErrorProvider Error; 57 | protected System.Windows.Forms.ToolTip ToolTip; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Application/UI/RecordControls/IElementControl.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.RecordControls 2 | { 3 | using System; 4 | 5 | using Domain.Data.Structure; 6 | using TESVSnip.Domain.Model; 7 | 8 | internal interface IElementControl 9 | { 10 | event EventHandler DataChanged; 11 | 12 | bool Changed { get; set; } 13 | 14 | ArraySegment Data { get; set; } 15 | 16 | ElementStructure Element { get; set; } 17 | 18 | dFormIDLookupR formIDLookup { get; set; } 19 | 20 | dFormIDScanRec formIDScan { get; set; } 21 | 22 | dLStringLookup strIDLookup { get; set; } 23 | 24 | void CommitChanges(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Application/UI/RecordControls/IGroupedElementControl.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.RecordControls 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | internal interface IGroupedElementControl : IElementControl 7 | { 8 | IList> Elements { get; } 9 | } 10 | } -------------------------------------------------------------------------------- /Application/UI/RecordControls/IOuterElementControl.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.RecordControls 2 | { 3 | internal interface IOuterElementControl : IElementControl 4 | { 5 | IElementControl InnerControl { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /Application/UI/RecordControls/ITextElementControl.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.UI.RecordControls 2 | { 3 | using System.Windows.Forms; 4 | 5 | internal interface ITextElementControl : IElementControl 6 | { 7 | Label Label { get; } 8 | 9 | Label LabelType { get; } 10 | 11 | TextBoxBase TextBox { get; } 12 | } 13 | } -------------------------------------------------------------------------------- /Application/UI/Services/PluginBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Microsoft.Scripting; 4 | 5 | namespace TESVSnip.UI.Services 6 | { 7 | public class PluginBase : IDisposable 8 | { 9 | public PluginBase() 10 | { 11 | SupportGlobal = true; 12 | } 13 | 14 | public PluginBase(string name) 15 | : this() 16 | { 17 | this.Name = name; 18 | this.DisplayName = name; 19 | } 20 | 21 | public PluginBase(string name, string displayname) 22 | : this(name) 23 | { 24 | this.DisplayName = displayname; 25 | } 26 | 27 | public PluginBase(string name, string displayname, bool supportSelection) 28 | : this(name, displayname) 29 | { 30 | this.SupportsSelection = supportSelection; 31 | this.SupportGlobal = !supportSelection; 32 | } 33 | public PluginBase(string name, string displayname, bool supportSelection, bool supportGlobal) 34 | : this(name, displayname) 35 | { 36 | this.SupportsSelection = supportSelection; 37 | this.SupportGlobal = supportGlobal; 38 | } 39 | 40 | public string Name { get; protected set; } 41 | 42 | public string DisplayName { get; protected set; } 43 | 44 | public string ToolTipText { get; protected set; } 45 | 46 | public System.Drawing.Image DisplayImage { get; protected set; } 47 | 48 | public bool SupportsSelection { get; protected set; } 49 | 50 | public bool SupportGlobal { get; protected set; } 51 | 52 | public virtual bool IsValidSelection(IList records) 53 | { 54 | return false; 55 | } 56 | 57 | public virtual void Execute(IList records) 58 | { 59 | throw new InvalidImplementationException("Not Implemented"); 60 | } 61 | 62 | public void Dispose() 63 | { 64 | // Nothing to do 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Application/UI/Services/PluginStore.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace TESVSnip.UI.Services 4 | { 5 | public static class PluginStore 6 | { 7 | static readonly List PluginList = new List(); 8 | 9 | public static void Initialize() 10 | { 11 | RegisterPlugins(); 12 | } 13 | 14 | public static List Plugins 15 | { 16 | get { return PluginList; } 17 | } 18 | 19 | public static void RegisterPlugins() 20 | { 21 | 22 | } 23 | 24 | public static void AddPlugin(PluginBase plugin) 25 | { 26 | PluginList.Add(plugin); 27 | } 28 | 29 | public static void AddPlugins(IEnumerable plugins) 30 | { 31 | PluginList.AddRange(plugins); 32 | } 33 | 34 | public static void RemovePlugin(string name) 35 | { 36 | PluginList.RemoveAll(x => x.Name == name); 37 | } 38 | 39 | public static void Cleanup() 40 | { 41 | var plugins = PluginList.ToArray(); 42 | PluginList.Clear(); 43 | foreach (var plugin in plugins) 44 | { 45 | try { plugin.Dispose(); } 46 | catch{} 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Application/Vendor/Controls/FlagComboBox.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Windows.Controls 2 | { 3 | partial class FlagComboBox 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 | -------------------------------------------------------------------------------- /Application/Vendor/Controls/OldNewEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace TESVSnip.Windows.Controls 4 | { 5 | public class OldNewEventArgs : EventArgs 6 | { 7 | public OldNewEventArgs(T oldValue, T newValue) 8 | { 9 | OldValue = oldValue; 10 | NewValue = newValue; 11 | } 12 | 13 | public T OldValue { get; protected set; } 14 | 15 | public T NewValue { get; protected set; } 16 | } 17 | 18 | public delegate void OldNewEventHandler(object sender, OldNewEventArgs e); 19 | } -------------------------------------------------------------------------------- /Application/Vendor/Controls/ballontooltip.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/Controls/ballontooltip.cs -------------------------------------------------------------------------------- /Application/Vendor/Controls/ballontooltip.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | text/microsoft-resx 32 | 33 | 34 | 1.0.0.0 35 | 36 | 37 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 38 | 39 | 40 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 41 | 42 | 43 | -------------------------------------------------------------------------------- /Application/Vendor/HexBox/ByteCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | 3 | namespace Be.Windows.Forms 4 | { 5 | /// 6 | /// Represents a collection of bytes. 7 | /// 8 | internal class ByteCollection : CollectionBase 9 | { 10 | /// 11 | /// Initializes a new instance of ByteCollection class. 12 | /// 13 | public ByteCollection() 14 | { 15 | } 16 | 17 | /// 18 | /// Initializes a new instance of ByteCollection class. 19 | /// 20 | /// an array of bytes to add to collection 21 | public ByteCollection(byte[] bs) 22 | { 23 | AddRange(bs); 24 | } 25 | 26 | /// 27 | /// Gets or sets the value of a byte 28 | /// 29 | public byte this[int index] 30 | { 31 | get { return (byte) List[index]; } 32 | set { List[index] = value; } 33 | } 34 | 35 | /// 36 | /// Adds a range of bytes to the collection. 37 | /// 38 | /// the bytes to add 39 | public void AddRange(byte[] bs) 40 | { 41 | InnerList.AddRange(bs); 42 | } 43 | 44 | /// 45 | /// Removes a range of bytes from the collection. 46 | /// 47 | /// the index of the start byte 48 | /// the count of the bytes to remove 49 | public void RemoveRange(int index, int count) 50 | { 51 | InnerList.RemoveRange(index, count); 52 | } 53 | 54 | /// 55 | /// Inserts a range of bytes to the collection. 56 | /// 57 | /// the index of start byte 58 | /// an array of bytes to insert 59 | public void InsertRange(int index, byte[] bs) 60 | { 61 | InnerList.InsertRange(index, bs); 62 | } 63 | 64 | /// 65 | /// Gets all bytes in the array 66 | /// 67 | /// an array of bytes. 68 | public byte[] GetBytes() 69 | { 70 | var bytes = new byte[Count]; 71 | InnerList.CopyTo(0, bytes, 0, bytes.Length); 72 | return bytes; 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /Application/Vendor/HexBox/DataBlock.cs: -------------------------------------------------------------------------------- 1 | namespace Be.Windows.Forms 2 | { 3 | internal abstract class DataBlock 4 | { 5 | public abstract long Length { get; } 6 | 7 | public abstract void RemoveBytes(long position, long count); 8 | } 9 | } -------------------------------------------------------------------------------- /Application/Vendor/HexBox/Design/HexFontEditor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Drawing.Design; 5 | using System.Windows.Forms; 6 | using System.Windows.Forms.Design; 7 | 8 | namespace Be.Windows.Forms.Design 9 | { 10 | /// 11 | /// Display only fixed-piched fonts 12 | /// 13 | internal class HexFontEditor : FontEditor 14 | { 15 | private object value; 16 | 17 | /// 18 | /// Edits the value 19 | /// 20 | public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) 21 | { 22 | this.value = value; 23 | if (provider != null) 24 | { 25 | var service1 = (IWindowsFormsEditorService) provider.GetService(typeof (IWindowsFormsEditorService)); 26 | if (service1 != null) 27 | { 28 | var fontDialog = new FontDialog(); 29 | fontDialog.ShowApply = false; 30 | fontDialog.ShowColor = false; 31 | fontDialog.AllowVerticalFonts = false; 32 | fontDialog.AllowScriptChange = false; 33 | fontDialog.FixedPitchOnly = true; 34 | fontDialog.ShowEffects = false; 35 | fontDialog.ShowHelp = false; 36 | 37 | var font = value as Font; 38 | if (font != null) 39 | { 40 | fontDialog.Font = font; 41 | } 42 | if (fontDialog.ShowDialog() == DialogResult.OK) 43 | { 44 | this.value = fontDialog.Font; 45 | } 46 | 47 | fontDialog.Dispose(); 48 | } 49 | } 50 | 51 | value = this.value; 52 | this.value = null; 53 | return value; 54 | } 55 | 56 | public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) 57 | { 58 | return UITypeEditorEditStyle.Modal; 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /Application/Vendor/HexBox/HexBox.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/HexBox/HexBox.cs -------------------------------------------------------------------------------- /Application/Vendor/HexBox/IByteProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/HexBox/IByteProvider.cs -------------------------------------------------------------------------------- /Application/Vendor/HexBox/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Be.Windows.Forms 5 | { 6 | internal static class NativeMethods 7 | { 8 | // Caret definitions 9 | [DllImport("user32.dll", SetLastError = true)] 10 | [return: MarshalAs(UnmanagedType.Bool)] 11 | public static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight); 12 | 13 | [DllImport("user32.dll", SetLastError = true)] 14 | [return: MarshalAs(UnmanagedType.Bool)] 15 | public static extern bool ShowCaret(IntPtr hWnd); 16 | 17 | [DllImport("user32.dll", SetLastError = true)] 18 | [return: MarshalAs(UnmanagedType.Bool)] 19 | public static extern bool DestroyCaret(); 20 | 21 | [DllImport("user32.dll", SetLastError = true)] 22 | [return: MarshalAs(UnmanagedType.Bool)] 23 | public static extern bool SetCaretPos(int X, int Y); 24 | 25 | // Key definitions 26 | public const int WM_KEYDOWN = 0x100; 27 | public const int WM_KEYUP = 0x101; 28 | public const int WM_CHAR = 0x102; 29 | } 30 | } -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | br 6 | Canceled 7 | Center 8 | Color 9 | Colors 10 | f 11 | fmt 12 | g 13 | gdi 14 | hti 15 | i 16 | lightbox 17 | lv 18 | lvi 19 | lvsi 20 | m 21 | multi 22 | Munger 23 | n 24 | olv 25 | olvi 26 | p 27 | parms 28 | r 29 | Renderer 30 | s 31 | SubItem 32 | Unapply 33 | Unpause 34 | x 35 | y 36 | 37 | 38 | ComPlus 39 | 40 | 41 | 42 | 43 | OLV 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Filtering/ICluster.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * ICluster - A cluster is a group of objects that can be included or excluded as a whole 3 | * 4 | * Author: Phillip Piper 5 | * Date: 4-March-2011 11:59 pm 6 | * 7 | * Change log: 8 | * 2011-03-04 JPP - First version 9 | * 10 | * Copyright (C) 2011 Phillip Piper 11 | * 12 | * This program is free software: you can redistribute it and/or modify 13 | * it under the terms of the GNU General Public License as published by 14 | * the Free Software Foundation, either version 3 of the License, or 15 | * (at your option) any later version. 16 | * 17 | * This program is distributed in the hope that it will be useful, 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | * GNU General Public License for more details. 21 | * 22 | * You should have received a copy of the GNU General Public License 23 | * along with this program. If not, see . 24 | * 25 | * If you wish to use this code in a closed source application, please contact phillip_piper@bigfoot.com. 26 | */ 27 | 28 | using System; 29 | 30 | namespace BrightIdeasSoftware 31 | { 32 | /// 33 | /// A cluster is a like collection of objects that can be usefully filtered 34 | /// as whole using the filtering UI provided by the ObjectListView. 35 | /// 36 | public interface ICluster : IComparable 37 | { 38 | /// 39 | /// Gets or sets how many items belong to this cluster 40 | /// 41 | int Count { get; set; } 42 | 43 | /// 44 | /// Gets or sets the label that will be shown to the user to represent 45 | /// this cluster 46 | /// 47 | string DisplayLabel { get; set; } 48 | 49 | /// 50 | /// Gets or sets the actual data object that all members of this cluster 51 | /// have commonly returned. 52 | /// 53 | object ClusterKey { get; set; } 54 | } 55 | } -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Filtering/IClusteringStrategy.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * IClusterStrategy - Encapsulates the ability to create a list of clusters from an ObjectListView 3 | * 4 | * Author: Phillip Piper 5 | * Date: 4-March-2011 11:59 pm 6 | * 7 | * Change log: 8 | * 2011-03-04 JPP - First version 9 | * 10 | * Copyright (C) 2011 Phillip Piper 11 | * 12 | * This program is free software: you can redistribute it and/or modify 13 | * it under the terms of the GNU General Public License as published by 14 | * the Free Software Foundation, either version 3 of the License, or 15 | * (at your option) any later version. 16 | * 17 | * This program is distributed in the hope that it will be useful, 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | * GNU General Public License for more details. 21 | * 22 | * You should have received a copy of the GNU General Public License 23 | * along with this program. If not, see . 24 | * 25 | * If you wish to use this code in a closed source application, please contact phillip_piper@bigfoot.com. 26 | */ 27 | 28 | namespace BrightIdeasSoftware 29 | { 30 | /// 31 | /// Implementation of this interface control the selecting of cluster keys 32 | /// and how those clusters will be presented to the user 33 | /// 34 | public interface IClusteringStrategy 35 | { 36 | /// 37 | /// Gets or sets the column upon which this strategy will operate 38 | /// 39 | OLVColumn Column { get; set; } 40 | 41 | /// 42 | /// Get the cluster key by which the given model will be partitioned by this strategy 43 | /// 44 | /// 45 | /// 46 | object GetClusterKey(object model); 47 | 48 | /// 49 | /// Create a cluster to hold the given cluster key 50 | /// 51 | /// 52 | /// 53 | ICluster CreateCluster(object clusterKey); 54 | 55 | /// 56 | /// Gets the display label that the given cluster should use 57 | /// 58 | /// 59 | /// 60 | string GetClusterDisplayLabel(ICluster cluster); 61 | } 62 | } -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/ObjectListView.shfb: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | All ObjectListView appears in this namespace 8 | 9 | 10 | ObjectListViewDemo demonstrates helpful techniques when using an ObjectListView 11 | Summary, Parameter, Returns, AutoDocumentCtors, Namespace 12 | InheritedMembers, Protected, SealedProtected 13 | 14 | 15 | .\Help\ 16 | 17 | 18 | True 19 | True 20 | HtmlHelp1x 21 | True 22 | False 23 | 2.0.50727 24 | True 25 | False 26 | True 27 | False 28 | 29 | ObjectListView Reference 30 | Documentation 31 | en-US 32 | 33 | (c) Copyright 2006-2008 Phillip Piper All Rights Reserved 34 | phillip_piper@bigfoot.com 35 | 36 | 37 | Local 38 | Msdn 39 | Blank 40 | Prototype 41 | Guid 42 | CSharp 43 | False 44 | AboveNamespaces 45 | 46 | 47 | -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ObjectListView")] 8 | [assembly: AssemblyDescription("A much easier to use ListView and friends")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Bright Ideas Software")] 11 | [assembly: AssemblyProduct("ObjectListView")] 12 | [assembly: AssemblyCopyright("Copyright © 2006-2011")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("ef28c7a8-77ae-442d-abc3-bb023fa31e57")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Revision and Build Numbers 32 | // by using the '*' as shown below: 33 | [assembly: AssemblyVersion("2.5.0.*")] 34 | [assembly: AssemblyFileVersion("2.5.0.0")] 35 | [assembly: System.CLSCompliant(true)] 36 | -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/clear-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/clear-filter.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/clear-filter1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/clear-filter1.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/coffee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/coffee.jpg -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/filter-icons3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/filter-icons3.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/filter-icons31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/filter-icons31.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/filter.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/filter1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/filter1.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/sort-ascending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/sort-ascending.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/sort-ascending1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/sort-ascending1.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/sort-descending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/sort-descending.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/Resources/sort-descending1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/Resources/sort-descending1.png -------------------------------------------------------------------------------- /Application/Vendor/ObjectListView/olv-keyfile.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/ObjectListView/olv-keyfile.snk -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFBuilder.UnWrapped.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFBuilder.UnWrapped.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFBuilder.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFCell.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFCell.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFDisplayBox.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFDisplayBox.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFPage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFPage.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFPageManager.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFPageManager.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/GDF/GDFRow.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/GDF/GDFRow.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/IRTFCell.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace RTF 4 | { 5 | // ---------------------------------------------------------------------------------------- 6 | // _ ___ _..-._ Date: 12/11/08 23:32 7 | // \`.|\..----...-'` `-._.-'' _.-..' 8 | // / ' ` , __.-'' 9 | // )/` _/ \ `-_, / Solution: RTFLib 10 | // `-'" `"\_ ,_.-;_.-\_ ', Project : RTFLib 11 | // _.-'_./ {_.' ; / Author : Anton 12 | // {_.-``-' {_/ Assembly: 1.0.0.0 13 | // Copyright © 2005-2008, Rogue Trader/MWM 14 | // Project Item Name: IRTFCell.cs - Code 15 | // Purpose: Exposes an underlying RTFBuilderbase 16 | // ---------------------------------------------------------------------------------------- 17 | /// 18 | /// Exposes an underlying RTFBuilderbase 19 | /// 20 | public interface IBuilderContent : IDisposable 21 | { 22 | RTFBuilderbase Content { get; } 23 | } 24 | } -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/IRTFRow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace RTF 5 | { 6 | // ---------------------------------------------------------------------------------------- 7 | // _ ___ _..-._ Date: 12/11/08 23:33 8 | // \`.|\..----...-'` `-._.-'' _.-..' 9 | // / ' ` , __.-'' 10 | // )/` _/ \ `-_, / Solution: RTFLib 11 | // `-'" `"\_ ,_.-;_.-\_ ', Project : RTFLib 12 | // _.-'_./ {_.' ; / Author : Anton 13 | // {_.-``-' {_/ Assembly: 1.0.0.0 14 | // Copyright © 2005-2008, Rogue Trader/MWM 15 | // Project Item Name: IRTFRow.cs - Code 16 | // Purpose: Row Interface 17 | // ---------------------------------------------------------------------------------------- 18 | /// 19 | /// Row Interface 20 | /// 21 | public interface IRTFRow : IDisposable, IEnumerable 22 | { 23 | } 24 | } -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/IRtfProcessor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Application/Vendor/RTFLib/RTF/IRtfProcessor.cs -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/RTFAlignment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace RTF 4 | { 5 | [Flags] 6 | public enum RTFAlignment 7 | { 8 | None = 0, 9 | 10 | /// Content is vertically aligned at the bottom, and horizontally aligned at the center. 11 | /// 1 12 | BottomCenter = 512, 13 | 14 | /// Content is vertically aligned at the bottom, and horizontally aligned on the left. 15 | /// 1 16 | BottomLeft = 256, 17 | 18 | /// Content is vertically aligned at the bottom, and horizontally aligned on the right. 19 | /// 1 20 | BottomRight = 1024, 21 | 22 | /// Content is vertically aligned in the middle, and horizontally aligned at the center. 23 | /// 1 24 | MiddleCenter = 32, 25 | 26 | /// Content is vertically aligned in the middle, and horizontally aligned on the left. 27 | /// 1 28 | MiddleLeft = 16, 29 | 30 | /// Content is vertically aligned in the middle, and horizontally aligned on the right. 31 | /// 1 32 | MiddleRight = 64, 33 | 34 | /// Content is vertically aligned at the top, and horizontally aligned at the center. 35 | /// 1 36 | TopCenter = 2, 37 | 38 | /// Content is vertically aligned at the top, and horizontally aligned on the left. 39 | /// 1 40 | TopLeft = 1, 41 | 42 | /// Content is vertically aligned at the top, and horizontally aligned on the right. 43 | /// 1 44 | TopRight = 4 45 | } 46 | } -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/RTFBorderSide.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace RTF 4 | { 5 | [Flags] 6 | public enum RTFBorderSide 7 | { 8 | None = 0, 9 | Left = 0x01, 10 | Right = 0x02, 11 | Top = 0x04, 12 | Bottom = 0x08, 13 | Default = 0x0F, 14 | DoubleThickness = 0x10, 15 | DoubleBorder = 0x20 16 | } 17 | } -------------------------------------------------------------------------------- /Application/Vendor/RTFLib/RTF/RTFFont.cs: -------------------------------------------------------------------------------- 1 | namespace RTF 2 | { 3 | public enum RTFFont 4 | { 5 | Arial, 6 | ArialBlack, 7 | BookmanOldStyle, 8 | Broadway, 9 | CenturyGothic, 10 | Consolas, 11 | CordiaNew, 12 | CourierNew, 13 | FontTimesNewRoman, 14 | Garamond, 15 | Georgia, 16 | Impact, 17 | LucidaConsole, 18 | Symbol, 19 | WingDings, 20 | MSSansSerif 21 | } 22 | } -------------------------------------------------------------------------------- /Domain/Data/RecordStructure.xsc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Domain/Data/RecordStructure.xss: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Domain/Data/Strings/LocalizedString.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Strings 2 | { 3 | using System.ComponentModel; 4 | using System.Xml.Serialization; 5 | 6 | /// 7 | /// The localized string. 8 | /// 9 | [XmlType(AnonymousType = true)] 10 | public class LocalizedString 11 | { 12 | /// 13 | /// The id. 14 | /// 15 | [XmlAttribute] 16 | public uint ID = 0; 17 | 18 | /// 19 | /// The type. 20 | /// 21 | [XmlAttribute] 22 | [DefaultValue(LocalizedStringFormat.Base)] 23 | public LocalizedStringFormat Type = LocalizedStringFormat.Base; 24 | 25 | /// 26 | /// The value. 27 | /// 28 | [XmlText] 29 | public string Value; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Domain/Data/Strings/LocalizedStringDict.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Strings 2 | { 3 | using TESVSnip.Framework.Collections; 4 | 5 | /// 6 | /// The localized string dict. 7 | /// 8 | public class LocalizedStringDict : OrderedDictionary 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Domain/Data/Strings/LocalizedStringFormat.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Strings 2 | { 3 | /// 4 | /// The localized string format. 5 | /// 6 | public enum LocalizedStringFormat 7 | { 8 | /// 9 | /// The base. 10 | /// 11 | Base, 12 | 13 | /// 14 | /// The dl. 15 | /// 16 | DL, 17 | 18 | /// 19 | /// The il. 20 | /// 21 | IL, 22 | } 23 | } -------------------------------------------------------------------------------- /Domain/Data/Strings/LocalizedStrings.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Strings 2 | { 3 | using System.Xml.Serialization; 4 | 5 | /// 6 | /// The localized strings. 7 | /// 8 | [XmlRoot("Strings", Namespace = "", IsNullable = false)] 9 | public class LocalizedStrings 10 | { 11 | /// 12 | /// The strings. 13 | /// 14 | [XmlElement("String", typeof(LocalizedString))] 15 | public LocalizedString[] Strings; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Domain/Data/Structure/CondType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Structure 2 | { 3 | public enum CondType 4 | { 5 | None, 6 | 7 | Equal, 8 | 9 | Not, 10 | 11 | Greater, 12 | 13 | Less, 14 | 15 | GreaterEqual, 16 | 17 | LessEqual, 18 | 19 | StartsWith, 20 | 21 | EndsWith, 22 | 23 | Contains, 24 | 25 | Exists, 26 | 27 | Missing 28 | } 29 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Conditional.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Structure 2 | { 3 | public struct Conditional 4 | { 5 | public readonly ElementValueType type; 6 | 7 | public readonly object value; 8 | 9 | public Conditional(ElementValueType type, object value) 10 | { 11 | this.type = type; 12 | this.value = value; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/ElementGroup.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Structure 2 | { 3 | internal class ElementGroup : ElementBase 4 | { 5 | public readonly ElementBase[] elements; 6 | 7 | public ElementGroup(Xml.ElementGroup node, ElementBase[] items) 8 | : base(node) 9 | { 10 | this.elements = items; 11 | } 12 | 13 | public override bool IsGroup 14 | { 15 | get { return true; } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/ElementValueType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Data.Structure 2 | { 3 | public enum ElementValueType 4 | { 5 | String, 6 | 7 | Float, 8 | 9 | Int, 10 | 11 | Short, 12 | 13 | Byte, 14 | 15 | FormID, 16 | 17 | Blob, 18 | 19 | LString, 20 | 21 | BString, 22 | 23 | UShort, 24 | 25 | UInt, 26 | 27 | SByte, 28 | 29 | Str4, 30 | 31 | IString 32 | } 33 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/SubrecordGroup.cs: -------------------------------------------------------------------------------- 1 | using TESVSnip.Domain.Data.Structure.Xml; 2 | 3 | namespace TESVSnip.Domain.Data.Structure 4 | { 5 | internal class SubrecordGroup : SubrecordBase 6 | { 7 | public readonly SubrecordBase[] elements; 8 | 9 | public SubrecordGroup(Group node, SubrecordBase[] items) 10 | : base(node) 11 | { 12 | this.elements = items; 13 | } 14 | 15 | public override bool IsGroup 16 | { 17 | get { return true; } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Xml/ElementBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Diagnostics; 4 | using System.Xml.Serialization; 5 | 6 | namespace TESVSnip.Domain.Data.Structure.Xml 7 | { 8 | [Serializable] 9 | [DebuggerStepThrough] 10 | [DesignerCategory("code")] 11 | [XmlType(AnonymousType = true)] 12 | public abstract class ElementBase 13 | { 14 | /// 15 | /// The desc. 16 | /// 17 | /// 18 | /// 19 | [XmlAttribute] [DefaultValue("")] public string desc = string.Empty; 20 | 21 | /// 22 | /// The name. 23 | /// 24 | /// 25 | /// 26 | [XmlAttribute] [DefaultValue("")] public string name = string.Empty; 27 | 28 | /// 29 | /// The optional. 30 | /// 31 | /// 32 | /// 33 | [XmlAttribute] [DefaultValue(0)] public int optional; 34 | 35 | /// 36 | /// The repeat. 37 | /// 38 | /// 39 | /// 40 | [XmlAttribute] [DefaultValue(0)] public int repeat; 41 | 42 | /// 43 | /// The notininfo. 44 | /// 45 | /// 46 | /// 47 | [XmlAttribute] [DefaultValue(false)] public bool notininfo; 48 | } 49 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Xml/ElementGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.CodeDom.Compiler; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Diagnostics; 6 | using System.Linq; 7 | using System.Xml.Serialization; 8 | 9 | namespace TESVSnip.Domain.Data.Structure.Xml 10 | { 11 | /// 12 | /// The group. 13 | /// 14 | /// 15 | /// 16 | [GeneratedCode("xsd", "4.0.30319.1")] 17 | [Serializable] 18 | [DebuggerStepThrough] 19 | [DesignerCategory("code")] 20 | [XmlType(AnonymousType = true)] 21 | [XmlRoot(Namespace = "", IsNullable = false)] 22 | public class ElementGroup : ElementBase 23 | { 24 | ///// 25 | // [System.Xml.Serialization.XmlElementAttribute("Subrecord")] 26 | // public List Subrecords = new List(); 27 | ///// 28 | // [System.Xml.Serialization.XmlElementAttribute("Group")] 29 | // public List Groups = new List(); 30 | [XmlElement("Group", typeof (ElementGroup))] [XmlElement("Element", typeof (SubrecordElement))] public 31 | List Items = new List(); 32 | 33 | /// 34 | /// The id. 35 | /// 36 | /// 37 | /// 38 | [XmlAttribute] [DefaultValue("")] public string id = string.Empty; 39 | 40 | [XmlIgnore] 41 | public IEnumerable Groups 42 | { 43 | get { return this.Items.OfType(); } 44 | } 45 | 46 | [XmlIgnore] 47 | public IEnumerable Elements 48 | { 49 | get { return this.Items.OfType(); } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Xml/Group.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.CodeDom.Compiler; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.ComponentModel; 6 | using System.Diagnostics; 7 | using System.Linq; 8 | using System.Xml.Serialization; 9 | 10 | namespace TESVSnip.Domain.Data.Structure.Xml 11 | { 12 | /// 13 | /// The group. 14 | /// 15 | /// 16 | /// 17 | [GeneratedCode("xsd", "4.0.30319.1")] 18 | [Serializable] 19 | [DebuggerStepThrough] 20 | [DesignerCategory("code")] 21 | [XmlType(AnonymousType = true)] 22 | [XmlRoot(Namespace = "", IsNullable = false)] 23 | public class Group 24 | { 25 | ///// 26 | // [System.Xml.Serialization.XmlElementAttribute("Subrecord")] 27 | // public List Subrecords = new List(); 28 | ///// 29 | // [System.Xml.Serialization.XmlElementAttribute("Group")] 30 | // public List Groups = new List(); 31 | [XmlElement("Group", typeof (Group))] [XmlElement("Subrecord", typeof (Subrecord))] public ArrayList Items = 32 | new ArrayList(); 33 | 34 | /// 35 | /// The desc. 36 | /// 37 | /// 38 | /// 39 | [XmlAttribute] [DefaultValue("")] public string 40 | desc = string.Empty; 41 | 42 | /// 43 | /// The id. 44 | /// 45 | /// 46 | /// 47 | [XmlAttribute] [DefaultValue("")] public string id = string.Empty; 48 | 49 | /// 50 | /// The name. 51 | /// 52 | /// 53 | /// 54 | [XmlAttribute] [DefaultValue("")] public string name = string.Empty; 55 | 56 | /// 57 | /// The optional. 58 | /// 59 | /// 60 | /// 61 | [XmlAttribute] [DefaultValue(0)] public int optional; 62 | 63 | /// 64 | /// The repeat. 65 | /// 66 | /// 67 | /// 68 | [XmlAttribute] [DefaultValue(0)] public int repeat; 69 | 70 | [XmlIgnore] 71 | public IEnumerable Groups 72 | { 73 | get { return this.Items.OfType(); } 74 | } 75 | 76 | [XmlIgnore] 77 | public IEnumerable Subrecords 78 | { 79 | get { return this.Items.OfType(); } 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Xml/RecordXmlException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace TESVSnip.Domain.Data.Structure.Xml 4 | { 5 | internal class RecordXmlException : Exception 6 | { 7 | public RecordXmlException(string msg) 8 | : base(msg) 9 | { 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Domain/Data/Structure/Xml/Records.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.CodeDom.Compiler; 3 | using System.Collections; 4 | using System.ComponentModel; 5 | using System.Diagnostics; 6 | using System.Xml.Schema; 7 | using System.Xml.Serialization; 8 | 9 | namespace TESVSnip.Domain.Data.Structure.Xml 10 | { 11 | /// 12 | /// The records. 13 | /// 14 | /// 15 | /// 16 | [GeneratedCode("xsd", "4.0.30319.1")] 17 | [Serializable] 18 | [DebuggerStepThrough] 19 | [DesignerCategory("code")] 20 | [XmlType(AnonymousType = true)] 21 | [XmlRoot(Namespace = "", IsNullable = false)] 22 | public class Records 23 | { 24 | /// 25 | /// The items. 26 | /// 27 | /// 28 | /// 29 | [XmlElement("Group", typeof (Group))] [XmlElement("Record", typeof (RecordsRecord), Form = XmlSchemaForm.Unqualified)] [XmlElement("Subrecord", typeof (Subrecord))] public ArrayList Items = new ArrayList(); 30 | } 31 | } -------------------------------------------------------------------------------- /Domain/Model/BatchCondElementType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public enum BatchCondElementType 4 | { 5 | Set, 6 | 7 | Add, 8 | 9 | Subtract, 10 | 11 | Multiply, 12 | 13 | Divide, 14 | 15 | BitAnd, 16 | 17 | BitOr, 18 | 19 | Clear, 20 | } 21 | } -------------------------------------------------------------------------------- /Domain/Model/BatchCondRecordType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public enum BatchCondRecordType 4 | { 5 | NoAction, 6 | 7 | Create, 8 | 9 | Delete, 10 | } 11 | } -------------------------------------------------------------------------------- /Domain/Model/BatchCriteria.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public abstract class BatchCriteria 4 | { 5 | public bool Checked { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public abstract bool Evaluate(Record r); 10 | 11 | public abstract bool Evaluate(Record r, SubRecord sr); 12 | } 13 | } -------------------------------------------------------------------------------- /Domain/Model/BatchCriteriaSettings.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class BatchCriteriaSettings 6 | { 7 | public IEnumerable Items; 8 | 9 | public string Type; 10 | } 11 | } -------------------------------------------------------------------------------- /Domain/Model/BatchSubrecord.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | 7 | using Data.Structure; 8 | 9 | public class BatchSubrecord : BatchCriteria 10 | { 11 | public ICollection Children { get; set; } 12 | 13 | public SubrecordStructure Record { get; set; } 14 | 15 | public BatchCondRecordType Type { get; set; } 16 | 17 | public override bool Evaluate(Record r) 18 | { 19 | var sr = r.SubRecords.FirstOrDefault(x => x.Name == this.Record.name); 20 | return this.Evaluate(r, sr); 21 | } 22 | 23 | public override bool Evaluate(Record r, SubRecord sr) 24 | { 25 | if (this.Type == BatchCondRecordType.Create) 26 | { 27 | if (sr == null) 28 | { 29 | // guess the best insert location 30 | int idx = -1; 31 | var records = r.GetStructures(); 32 | RecordStructure rs; 33 | if (records.TryGetValue(r.Name, out rs)) 34 | { 35 | for (int i = Array.FindIndex(rs.subrecords, structure => structure.name == this.Record.name) - 1; i >= 0; --i) 36 | { 37 | var srsname = rs.subrecords[i].name; 38 | idx = r.SubRecords.IndexOf(r.SubRecords.FirstOrDefault(x => x.Name == srsname)); 39 | } 40 | } 41 | 42 | sr = new SubRecord(this.Record); 43 | if (idx < 0) 44 | { 45 | r.SubRecords.Add(sr); 46 | } 47 | else 48 | { 49 | r.SubRecords.Insert(idx + 1, sr); 50 | } 51 | } 52 | } 53 | else if (this.Type == BatchCondRecordType.Delete) 54 | { 55 | while (sr != null) 56 | { 57 | r.SubRecords.Remove(sr); 58 | sr = r.SubRecords.FirstOrDefault(x => x.Name == this.Record.name); 59 | } 60 | } 61 | 62 | return true; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /Domain/Model/ColumnCriteria.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public abstract class ColumnCriteria 4 | { 5 | public bool Checked { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /Domain/Model/ColumnElement.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using Data.Structure; 4 | 5 | public class ColumnElement : ColumnCriteria 6 | { 7 | public ColumnSubrecord Parent { get; set; } 8 | 9 | public ElementStructure Record { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Domain/Model/ColumnSettings.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class ColumnSettings 6 | { 7 | public IEnumerable Items; 8 | 9 | public string Type; 10 | } 11 | } -------------------------------------------------------------------------------- /Domain/Model/ColumnSubrecord.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections.Generic; 4 | 5 | using Data.Structure; 6 | 7 | public class ColumnSubrecord : ColumnCriteria 8 | { 9 | public ICollection Children { get; set; } 10 | 11 | public SubrecordStructure Record { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /Domain/Model/Delegates.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections.Generic; 4 | 5 | public delegate string dFormIDLookupI(uint id); 6 | 7 | public delegate string dLStringLookup(uint id); 8 | 9 | public delegate Record dFormIDLookupR(uint id); 10 | 11 | public delegate string dFormIDLookupS(string id); 12 | 13 | public delegate string[] dFormIDScan(string type); 14 | 15 | public delegate Record[] dFormIDScanR(string type); 16 | 17 | public delegate IEnumerable> dFormIDScanRec(string type); 18 | } -------------------------------------------------------------------------------- /Domain/Model/ElementAssignmentType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public enum ElementAssignmentType 4 | { 5 | Set, 6 | 7 | Add, 8 | 9 | Subtract, 10 | 11 | Multiply, 12 | 13 | Divide, 14 | 15 | BitAnd, 16 | 17 | BitOr, 18 | 19 | Clear, 20 | } 21 | } -------------------------------------------------------------------------------- /Domain/Model/FlagDefs.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | 5 | public static class FlagDefs 6 | { 7 | public static readonly string[] RecFlags1 = 8 | { 9 | "ESM file", null, null, null, null, "Deleted", "Constant/HiddenFromLocalMap/BorderRegion/HasTreeLOD", "Localized/IsPerch/AddOnLODObject/TurnOffFire/TreatSpellsAsPowers", "MustUpdateAnims/Inaccessible/DoesntLightWater", "HiddenFromLocalMap/StartsDead/MotionBlurCastsShadows", "PersistentReference/QuestItem/DisplaysInMainMenu", "Initially disabled" 10 | , "Ignored", null, null, "Visible when distant", "RandomAnimationStart/NeverFades/IsfullLOD", "Dangerous/OffLimits(Interior cell)/DoesntLightLandscape/HighDetailLOD/CanHoldNPC", "Compressed", "CantWait/HasCurrents", "IgnoreObjectInteraction" 11 | , null, null, "IsMarker", null, "Obstacle/NoAIAcquire", "NavMeshFilter", "NavMeshBoundingBox", "MustExitToTalk/ShowInWorldMap", "ChildCanUse/DontHavokSettle", "NavMeshGround NoRespawn", "MultiBound" 12 | }; 13 | 14 | public static string GetRecFlags1Desc(uint flags) 15 | { 16 | string desc = string.Empty; 17 | bool b = false; 18 | long brr; //brr = bit rotation result 19 | 20 | for (int i = 0; i < 32; i++) 21 | { 22 | brr = (int) (1 << i); 23 | if (brr < 0) //brr < 0 when 1 << 31 = overflow 24 | brr = Convert.ToInt64(0x80000000); //Header Flags : (REFR) MultiBound 0x80000000; 25 | if ((flags & brr) > 0) 26 | { 27 | if (b) desc += ", "; 28 | 29 | b = true; 30 | desc += RecFlags1[i] == null ? "Unknown (" + brr.ToString("x") + ")" : RecFlags1[i]; 31 | } 32 | } 33 | 34 | return desc; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Domain/Model/IGroupRecord.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | 6 | public interface IGroupRecord : IRecord 7 | { 8 | IList Records { get; } 9 | 10 | void AddRecord(BaseRecord br); 11 | 12 | void AddRecords(IEnumerable br); 13 | 14 | bool DeleteRecord(BaseRecord br); 15 | 16 | bool DeleteRecords(IEnumerable br); 17 | 18 | int IndexOf(BaseRecord br); 19 | 20 | void InsertRecord(int index, BaseRecord br); 21 | 22 | void InsertRecords(int index, IEnumerable br); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Domain/Model/IRecord.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | 5 | public interface IRecord : ICloneable 6 | { 7 | string DescriptiveName { get; } 8 | 9 | string Name { get; set; } 10 | 11 | BaseRecord Parent { get; } 12 | 13 | long Size { get; } 14 | 15 | long Size2 { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Domain/Model/ISelectionContext.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using TESVSnip.Framework; 4 | 5 | public interface ISelectionContext : ICloneable 6 | { 7 | Rec Record { get; set; } 8 | 9 | SubRecord SubRecord { get; set; } 10 | 11 | void Reset(); 12 | } 13 | } -------------------------------------------------------------------------------- /Domain/Model/Rec.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | using System.Runtime.Serialization; 5 | 6 | using TESVSnip.Framework.Persistence; 7 | 8 | [Persistable(Flags = PersistType.DeclaredOnly)] 9 | [Serializable] 10 | public abstract class Rec : BaseRecord 11 | { 12 | [Persistable] 13 | protected string descriptiveName; 14 | 15 | private BaseRecord parent; 16 | 17 | protected Rec() 18 | { 19 | } 20 | 21 | protected Rec(SerializationInfo info, StreamingContext context) 22 | : base(info, context) 23 | { 24 | } 25 | 26 | public override string DescriptiveName 27 | { 28 | get 29 | { 30 | return this.descriptiveName == null ? Name : (Name + this.descriptiveName); 31 | } 32 | 33 | // set { descriptiveName = value; } 34 | } 35 | 36 | public override BaseRecord Parent 37 | { 38 | get 39 | { 40 | return this.parent; 41 | } 42 | 43 | internal set 44 | { 45 | this.parent = value; 46 | } 47 | } 48 | 49 | public override void SetDescription(string value) 50 | { 51 | this.descriptiveName = value; 52 | } 53 | 54 | public override void UpdateShortDescription() 55 | { 56 | this.descriptiveName = string.Empty; 57 | } 58 | 59 | internal int CountRecords() 60 | { 61 | if (this is Record) 62 | { 63 | return 1; 64 | } 65 | 66 | int i = 1; 67 | foreach (Rec r2 in Records) 68 | { 69 | i += r2.CountRecords(); 70 | } 71 | 72 | return i; 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Domain/Model/RecordChangeEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | 5 | public class RecordChangeEventArgs : EventArgs 6 | { 7 | private readonly BaseRecord record; 8 | 9 | public RecordChangeEventArgs(BaseRecord rec) 10 | { 11 | this.record = rec; 12 | } 13 | 14 | public BaseRecord Record 15 | { 16 | get 17 | { 18 | return this.record; 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Domain/Model/SearchCondElementType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public enum SearchCondElementType 4 | { 5 | Equal, 6 | 7 | Not, 8 | 9 | Greater, 10 | 11 | Less, 12 | 13 | GreaterEqual, 14 | 15 | LessEqual, 16 | 17 | StartsWith, 18 | 19 | EndsWith, 20 | 21 | Contains, 22 | 23 | Exists, 24 | 25 | Missing 26 | } 27 | } -------------------------------------------------------------------------------- /Domain/Model/SearchCondRecordType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public enum SearchCondRecordType 4 | { 5 | Exists, 6 | 7 | Missing 8 | } 9 | } -------------------------------------------------------------------------------- /Domain/Model/SearchCriteria.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | public abstract class SearchCriteria 4 | { 5 | public bool Checked { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public abstract bool Match(Record r); 10 | 11 | public abstract bool Match(Record r, SubRecord sr); 12 | 13 | public abstract bool Match(Record r, SubRecord sr, Element se); 14 | } 15 | } -------------------------------------------------------------------------------- /Domain/Model/SearchCriteriaXmlSettings.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Xml.Serialization; 4 | 5 | [XmlType(AnonymousType = true)] 6 | public class SearchCriteriaXmlSettings 7 | { 8 | [XmlElement("Subrecord", typeof(SearchSubrecordXml))] 9 | [XmlElement("Element", typeof(SearchElementXml))] 10 | public object[] Items = new object[0]; 11 | 12 | [XmlAttribute] 13 | public string Name; 14 | 15 | [XmlAttribute] 16 | public string Type; 17 | 18 | public override string ToString() 19 | { 20 | return this.Name; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Domain/Model/SearchElementXml.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Xml.Serialization; 4 | 5 | [XmlType(AnonymousType = true)] 6 | public class SearchElementXml 7 | { 8 | [XmlAttribute] 9 | public string Element; 10 | 11 | [XmlAttribute] 12 | public string SubRecord; 13 | 14 | [XmlAttribute] 15 | public SearchCondElementType Type; 16 | 17 | [XmlText] 18 | public string Value; 19 | } 20 | } -------------------------------------------------------------------------------- /Domain/Model/SearchSubrecord.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | 6 | using Data.Structure; 7 | 8 | public class SearchSubrecord : SearchCriteria 9 | { 10 | public ICollection Children { get; set; } 11 | 12 | public SubrecordStructure Record { get; set; } 13 | 14 | public SearchCondRecordType Type { get; set; } 15 | 16 | public override bool Match(Record r) 17 | { 18 | var sr = r.SubRecords.FirstOrDefault(x => x.Name == this.Record.name); 19 | return this.Match(r, sr); 20 | } 21 | 22 | public override bool Match(Record r, SubRecord sr) 23 | { 24 | return this.Type == SearchCondRecordType.Exists ^ sr == null; 25 | } 26 | 27 | public override bool Match(Record r, SubRecord sr, Element se) 28 | { 29 | return false; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Domain/Model/SearchSubrecordXml.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System.Xml.Serialization; 4 | 5 | [XmlType(AnonymousType = true)] 6 | public class SearchSubrecordXml 7 | { 8 | [XmlAttribute] 9 | public string SubRecord; 10 | 11 | [XmlAttribute] 12 | public SearchCondRecordType Type; 13 | } 14 | } -------------------------------------------------------------------------------- /Domain/Model/TESParserException.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Model 2 | { 3 | using System; 4 | 5 | public class TESParserException : Exception 6 | { 7 | public TESParserException(string msg) 8 | : base(msg) 9 | { 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Domain/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // Setting ComVisible to false makes the types in this assembly not visible 5 | // to COM components. If you need to access a type in this assembly from 6 | // COM, set the ComVisible attribute to true on that type. 7 | 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | [assembly: Guid("1c0c9238-8730-46d5-977c-9ff6b60a213b")] 12 | [assembly: AssemblyDescription("ESM Model Format")] -------------------------------------------------------------------------------- /Domain/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | English 7 | 8 | 9 | False 10 | 11 | 12 | False 13 | 14 | 15 | False 16 | 17 | 18 | False 19 | 20 | 21 | False 22 | 23 | 24 | 0 25 | 26 | 27 | CELL;DIAL;IMAD;LAND;NAVI;NAVM;NPC_;REGN;WRLD;WTHR 28 | 29 | 30 | False 31 | 32 | 33 | True 34 | 35 | 36 | -------------------------------------------------------------------------------- /Domain/Rendering/IRenderer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using TESVSnip.Domain.Model; 3 | 4 | namespace TESVSnip.Domain.Rendering 5 | { 6 | public interface IRenderer 7 | { 8 | //string GetHeader(BaseRecord rec); 9 | //string GetDescription(BaseRecord rec); 10 | 11 | string Render(BaseRecord rec, Dictionary kwargs); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Domain/Scripts/Keywords.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Scripts 2 | { 3 | internal enum Keywords 4 | { 5 | If, 6 | 7 | ElseIf, 8 | 9 | Else, 10 | 11 | EndIf, 12 | 13 | ScriptName, 14 | 15 | Scn, 16 | 17 | Short, 18 | 19 | Int, 20 | 21 | Float, 22 | 23 | Ref, 24 | 25 | Begin, 26 | 27 | End, 28 | 29 | Set, 30 | 31 | To, 32 | 33 | Return, 34 | 35 | ShowMessage, 36 | 37 | NotAKeyword 38 | } 39 | } -------------------------------------------------------------------------------- /Domain/Scripts/TokenType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Scripts 2 | { 3 | internal enum TokenType 4 | { 5 | Unknown, 6 | 7 | Integer, 8 | 9 | Float, 10 | 11 | Keyword, 12 | 13 | Symbol, 14 | 15 | Local, 16 | 17 | Global, 18 | 19 | Function, 20 | 21 | edid, 22 | 23 | Null 24 | } 25 | } -------------------------------------------------------------------------------- /Domain/Services/Alerts.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TESVSnip.Domain.Services 7 | { 8 | public static class Alerts 9 | { 10 | public static void Show(string text) 11 | { 12 | if (OnAlert != null) 13 | { 14 | OnAlert(null, new AlertEventArgs(){Message = text}); 15 | } 16 | } 17 | public static void Show(string format, params object[] args) 18 | { 19 | if (OnAlert != null) 20 | { 21 | OnAlert(null, new AlertEventArgs() { Message = string.Format(format, args) }); 22 | } 23 | } 24 | 25 | public class AlertEventArgs : EventArgs 26 | { 27 | public string Message { get; set; } 28 | } 29 | 30 | public static event EventHandler OnAlert; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Domain/Services/Folders.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Text; 7 | 8 | namespace TESVSnip.Domain.Services 9 | { 10 | public static class Folders 11 | { 12 | 13 | static Folders() 14 | { 15 | var assembly = Assembly.GetExecutingAssembly(); 16 | ModuleDirectory = Path.GetDirectoryName(assembly.Location); 17 | if (!string.IsNullOrWhiteSpace(ModuleDirectory)) 18 | { 19 | var dir = new DirectoryInfo(ModuleDirectory); 20 | if (System.String.Compare(dir.Name, "Debug", System.StringComparison.OrdinalIgnoreCase) == 0 21 | || System.String.Compare(dir.Name, "Release", System.StringComparison.OrdinalIgnoreCase) == 0) 22 | dir = dir.Parent; 23 | if (System.String.Compare(dir.Name, "bin", System.StringComparison.OrdinalIgnoreCase) == 0) 24 | dir = dir.Parent; 25 | ModuleDirectory = dir.FullName; 26 | } 27 | if (!string.IsNullOrWhiteSpace(ModuleDirectory)) 28 | { 29 | var confFolder = Path.Combine(ModuleDirectory, "conf"); 30 | if (!Directory.Exists(confFolder)) 31 | confFolder = Path.GetFullPath(Path.Combine(ModuleDirectory, "..", "conf")); 32 | SettingsDirectory = confFolder; 33 | ScriptsDirectory = Path.GetFullPath(Path.Combine(SettingsDirectory, "..","scripts")); 34 | } 35 | } 36 | 37 | public static string ModuleDirectory { get; set; } 38 | public static string SettingsDirectory { get; set; } 39 | public static string ScriptsDirectory { get; set; } 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Domain/Services/RecordsTrace.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Services 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | /// 7 | /// RecordsTace : Trace records plugin for maintenance 8 | /// 9 | public static class RecordsTrace 10 | { 11 | public static List AllRecords { get; private set; } // list of plugin records 12 | 13 | public static List CompressedRecords { get; private set; } // list of compressed records 14 | 15 | /// 16 | /// Add a new record in list of compressed records. Can trace all compressed record after reading a plugin. 17 | /// 18 | /// The record Name. 19 | public static void AddRecordToCompressedRecordsList(string recordName) 20 | { 21 | if (CompressedRecords.IndexOf(recordName, 0) == -1) 22 | { 23 | CompressedRecords.Add(recordName); 24 | CompressedRecords.Add(Environment.NewLine); 25 | } 26 | } 27 | 28 | /// 29 | /// Add a new record in list of records. 30 | /// Can trace all used records after reading a plugin. 31 | /// 32 | /// 33 | /// The record Name. 34 | /// 35 | public static void AddRecordToRecordsList(string recordName) 36 | { 37 | if (AllRecords.IndexOf(recordName, 0) == -1) 38 | { 39 | AllRecords.Add(recordName); 40 | AllRecords.Add(Environment.NewLine); 41 | } 42 | } 43 | 44 | /// 45 | /// Clear all list 46 | /// 47 | public static void ClearList() 48 | { 49 | if (CompressedRecords != null) CompressedRecords.Clear(); 50 | if (AllRecords != null) AllRecords.Clear(); 51 | } 52 | 53 | /// 54 | /// Init all list 55 | /// 56 | public static void InitListOfRecords() 57 | { 58 | if (CompressedRecords == null) CompressedRecords = new List(); 59 | if (AllRecords == null) AllRecords = new List(); 60 | ClearList(); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /Domain/Services/SaveReadStream.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Services 2 | { 3 | using System; 4 | using System.IO; 5 | 6 | public static class SaveReadStream 7 | { 8 | 9 | /// 10 | /// Save a memory stream to disk 11 | /// 12 | /// Destination folder 13 | /// Stream to write to disk 14 | public static void SaveStreamToDisk(string destFolder, MemoryStream ms) 15 | { 16 | string filename = DateTime.Now.ToString("yyyyMMddhhmmss"); 17 | var file = new FileStream(Path.Combine(destFolder, filename + ".bin"), FileMode.Create, FileAccess.Write); 18 | var bytes = new byte[ms.Length]; 19 | ms.Read(bytes, 0, (int) ms.Length); 20 | file.Write(bytes, 0, bytes.Length); 21 | file.Close(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Domain/Settings.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Domain.Properties { 2 | 3 | 4 | // This class allows you to handle specific events on the settings class: 5 | // The SettingChanging event is raised before a setting's value is changed. 6 | // The PropertyChanged event is raised after a setting's value is changed. 7 | // The SettingsLoaded event is raised after the setting values are loaded. 8 | // The SettingsSaving event is raised before the setting values are saved. 9 | public sealed partial class Settings { 10 | 11 | public Settings() { 12 | // // To add event handlers for saving and changing settings, uncomment the lines below: 13 | // 14 | // this.SettingChanging += this.SettingChangingEventHandler; 15 | // 16 | // this.SettingsSaving += this.SettingsSavingEventHandler; 17 | // 18 | } 19 | 20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { 21 | // Add code to handle the SettingChangingEvent event here. 22 | } 23 | 24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { 25 | // Add code to handle the SettingsSaving event here. 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Domain/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | English 12 | 13 | 14 | False 15 | 16 | 17 | False 18 | 19 | 20 | False 21 | 22 | 23 | False 24 | 25 | 26 | False 27 | 28 | 29 | 0 30 | 31 | 32 | CELL;DIAL;IMAD;LAND;NAVI;NAVM;NPC_;REGN;WRLD;WTHR 33 | 34 | 35 | False 36 | 37 | 38 | True 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Framework/Collections/ordereddictionary.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Framework/Collections/ordereddictionary.cs -------------------------------------------------------------------------------- /Framework/EnumerableExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | 7 | public static class EnumerableExtensions 8 | { 9 | private static readonly Random rand = new Random(); 10 | 11 | public static int IndexOf(this IEnumerable collection, T item) 12 | { 13 | int i = 0; 14 | var itr = collection.GetEnumerator(); 15 | for (bool ok = itr.MoveNext(); ok; ok = itr.MoveNext(), ++i) 16 | { 17 | if (itr.Current.Equals(item)) 18 | { 19 | return i; 20 | } 21 | } 22 | 23 | return -1; 24 | } 25 | 26 | public static int IndexOf(this IEnumerable collection, T item, int startIndex) 27 | { 28 | int i = 0; 29 | var itr = collection.Skip(startIndex).GetEnumerator(); 30 | for (bool ok = itr.MoveNext(); ok; ok = itr.MoveNext(), ++i) 31 | { 32 | if (itr.Current.Equals(item)) 33 | { 34 | return i; 35 | } 36 | } 37 | 38 | return -1; 39 | } 40 | 41 | public static IEnumerable Indices(this IEnumerable collection, IEnumerable items) 42 | { 43 | foreach (var itr in items) 44 | { 45 | yield return collection.IndexOf(itr); 46 | } 47 | } 48 | 49 | public static IEnumerable Random(this IEnumerable itr, int size) 50 | { 51 | yield return itr.Skip(rand.Next(size)).FirstOrDefault(); 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /Framework/ICloneable.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework 2 | { 3 | using System; 4 | 5 | public interface ICloneable : ICloneable 6 | { 7 | new TClonedType Clone(); 8 | } 9 | } -------------------------------------------------------------------------------- /Framework/Pair.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework 2 | { 3 | public struct Pair 4 | { 5 | public A a; 6 | 7 | public B b; 8 | 9 | public Pair(A a, B b) 10 | { 11 | this.a = a; 12 | this.b = b; 13 | } 14 | 15 | public A Key 16 | { 17 | get 18 | { 19 | return this.a; 20 | } 21 | 22 | set 23 | { 24 | this.a = value; 25 | } 26 | } 27 | 28 | public B Value 29 | { 30 | get 31 | { 32 | return this.b; 33 | } 34 | 35 | set 36 | { 37 | this.b = value; 38 | } 39 | } 40 | 41 | public override string ToString() 42 | { 43 | return this.a.ToString(); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Framework/Persistence/IPostSerializationCallback.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | /// 4 | /// Interface that can be use for serialization callbacks even after IDeserialization. 5 | /// 6 | public interface IPostSerializationCallback 7 | { 8 | bool NeedCallback { get; } 9 | 10 | void OnPostSerialization(); 11 | } 12 | } -------------------------------------------------------------------------------- /Framework/Persistence/PersistContextStates.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | using System; 4 | 5 | /// 6 | /// Additional context states for persisting variables. 7 | /// 8 | /// 9 | /// Defaults to saving in all contexts. 10 | /// 11 | [Flags] 12 | public enum PersistContextStates 13 | { 14 | /// 15 | /// Persisted in all contexts. 16 | /// 17 | ExcludeNone = 0, 18 | 19 | /// 20 | /// Value is excluded when serializing normally. 21 | /// 22 | ExcludeNormal = 0x1, 23 | 24 | /// 25 | /// Value is excluded when serializing to clipboard. 26 | /// 27 | ExcludeClipboard = 0x2, 28 | 29 | /// 30 | /// Excluded in all contexts. 31 | /// 32 | ExcludeAll = unchecked((int)0xFFFFFFFF), 33 | } 34 | } -------------------------------------------------------------------------------- /Framework/Persistence/PersistObject.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | using System; 4 | using System.Runtime.Serialization; 5 | 6 | /// 7 | /// 8 | [Persistable(Flags = PersistType.DeclaredOnly)] 9 | [Serializable] 10 | public class PersistObject : Object, ISerializable 11 | { 12 | /// 13 | /// Initializes a new instance of the class. 14 | /// 15 | public PersistObject() 16 | { 17 | } 18 | 19 | /// 20 | /// Initializes a new instance of the class. 21 | /// Deserialization constructor. 22 | /// 23 | /// 24 | /// The info. 25 | /// 26 | /// 27 | /// The context. 28 | /// 29 | protected PersistObject(SerializationInfo info, StreamingContext context) 30 | { 31 | PersistAssist.Deserialize(this, info, context); 32 | } 33 | 34 | void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) 35 | { 36 | PersistAssist.Serialize(this, info, context); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /Framework/Persistence/PersistSurrogate.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | using System.Runtime.Serialization; 4 | 5 | public class PersistSurrogate : ISerializationSurrogate 6 | { 7 | public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) 8 | { 9 | PersistAssist.Serialize(obj, info, context); 10 | } 11 | 12 | public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) 13 | { 14 | PersistAssist.Deserialize(obj, info, context); 15 | return obj; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Framework/Persistence/PersistType.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | using System; 4 | 5 | /// 6 | /// PersistType indicates the available actions for a Persistable. 7 | /// 8 | [Flags] 9 | public enum PersistType 10 | { 11 | /// 12 | /// Indicates that this class may not be persisted. 13 | /// 14 | None = 0x0, 15 | 16 | /// 17 | /// Flag to indicate that the field or property has an assignable default. 18 | /// For classes, it indicates that PersistAssist.Initialize may be caused to set default values. 19 | /// 20 | Initializable = 0x1, 21 | 22 | /// 23 | /// InitializeNew indicates that the object should be constructed from its default constructor. 24 | /// 25 | InitializeNew = 0x2 | Initializable, 26 | 27 | /// 28 | /// Indicates that only declared fields or properties should be persisted. 29 | /// 30 | DeclaredOnly = 0x4, 31 | 32 | /// 33 | /// Indicates that public fields or properties on this class should be persisted automatically. 34 | /// 35 | Public = 0x10, 36 | 37 | /// 38 | /// Indicates that non-public fields or properties on this class should be persisted automatically. 39 | /// 40 | NonPublic = 0x20, 41 | 42 | /// 43 | /// Indicates that instance fields or properties should be persisted automatically. 44 | /// 45 | Instance = 0x40, 46 | 47 | /// 48 | /// Indicates that static fields or properties on this class should be persisted automatically. 49 | /// 50 | Static = 0x80, 51 | 52 | /// 53 | /// Indicates that fields on this class should be persisted automatically. 54 | /// 55 | Fields = 0x100, 56 | 57 | /// 58 | /// Indicates that properties on this class should be persisted automatically. 59 | /// 60 | Properties = 0x200, 61 | 62 | /// 63 | /// Default persist type. 64 | /// 65 | ClassDefault = DeclaredOnly, 66 | 67 | /// 68 | /// Default persist type (Public and Private Instance Fields). 69 | /// 70 | Default = Public | NonPublic | Fields | Instance, 71 | } 72 | } -------------------------------------------------------------------------------- /Framework/Persistence/SerializationInfoCache.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Persistence 2 | { 3 | using System; 4 | 5 | internal class SerializationInfoCache 6 | { 7 | public string Name; 8 | 9 | public Type ObjectType; 10 | 11 | public object Value; 12 | 13 | public SerializationInfoCache(string Name, object Value, Type ObjectType) 14 | { 15 | this.Name = Name; 16 | this.Value = Value; 17 | this.ObjectType = ObjectType; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Framework/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // Setting ComVisible to false makes the types in this assembly not visible 5 | // to COM components. If you need to access a type in this assembly from 6 | // COM, set the ComVisible attribute to true on that type. 7 | 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | [assembly: Guid("7bc58131-9547-469f-b159-9cbe09df1e43")] 12 | [assembly: AssemblyDescription("ESM Common Files")] -------------------------------------------------------------------------------- /Framework/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.18408 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TESVSnip.Framework.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 16 | public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.UserScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("True")] 29 | public bool UseUTF8 { 30 | get { 31 | return ((bool)(this["UseUTF8"])); 32 | } 33 | set { 34 | this["UseUTF8"] = value; 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Framework/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | True 7 | 8 | 9 | -------------------------------------------------------------------------------- /Framework/Services/Encoding.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Services 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | public static class Encoding 7 | { 8 | private static readonly System.Text.Encoding Cp1252 = System.Text.Encoding.GetEncoding(1252); 9 | private static readonly System.Text.Encoding Utf8 = System.Text.Encoding.GetEncoding("utf-8"); 10 | 11 | private static readonly Dictionary LanguageMap = new Dictionary(StringComparer.InvariantCultureIgnoreCase); 12 | 13 | private static System.Text.Encoding instance; 14 | private static bool useUtf8Encoding = true; 15 | 16 | static Encoding() 17 | { 18 | LanguageMap.Add("English", new FontLangInfo(1252, 1033, 0)); 19 | LanguageMap.Add("Czech", new FontLangInfo(1252, 1029, 238)); 20 | LanguageMap.Add("French", new FontLangInfo(1252, 1036, 0)); 21 | LanguageMap.Add("German", new FontLangInfo(1252, 1031, 0)); 22 | LanguageMap.Add("Italian", new FontLangInfo(1252, 1040, 0)); 23 | LanguageMap.Add("Spanish", new FontLangInfo(1252, 1034, 0)); 24 | LanguageMap.Add("Russian", new FontLangInfo(1251, 1049, 204)); 25 | LanguageMap.Add("Polish", new FontLangInfo(1250, 1045, 0)); 26 | } 27 | 28 | public static System.Text.Encoding Instance 29 | { 30 | get 31 | { 32 | return instance ?? (instance = useUtf8Encoding ? Utf8 : Cp1252); 33 | } 34 | } 35 | 36 | public static void Initalize(bool useUtf8) 37 | { 38 | useUtf8Encoding = useUtf8; 39 | } 40 | 41 | public static bool TryGetFontInfo(string name, out FontLangInfo langInfo) 42 | { 43 | return LanguageMap.TryGetValue(name, out langInfo); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Framework/Services/FontLangInfo.cs: -------------------------------------------------------------------------------- 1 | namespace TESVSnip.Framework.Services 2 | { 3 | public struct FontLangInfo 4 | { 5 | public readonly static FontLangInfo Default = new FontLangInfo(1252, 1033, 0); 6 | public readonly ushort CodePage; 7 | public readonly ushort lcid; 8 | public readonly byte charset; 9 | 10 | public FontLangInfo(ushort CodePage, ushort lcid, byte charset) 11 | { 12 | this.CodePage = CodePage; 13 | this.lcid = lcid; 14 | this.charset = charset; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Framework/Services/PluginStore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using TESVSnip.Domain.Services; 6 | 7 | namespace TESVSnip.Framework.Services 8 | { 9 | public static class PluginStore 10 | { 11 | static readonly List PluginList = new List(); 12 | 13 | public static void Initialize() 14 | { 15 | RegisterPlugins(); 16 | } 17 | 18 | public static List Plugins 19 | { 20 | get { return PluginList; } 21 | } 22 | 23 | public static void RegisterPlugins() 24 | { 25 | 26 | } 27 | 28 | public static void AddPlugin(PluginBase plugin) 29 | { 30 | PluginList.Add(plugin); 31 | } 32 | 33 | public static void AddPlugins(IEnumerable plugins) 34 | { 35 | PluginList.AddRange(plugins); 36 | } 37 | 38 | public static void RemovePlugin(string name) 39 | { 40 | PluginList.RemoveAll(x => x.Name == name); 41 | } 42 | 43 | public static void Cleanup() 44 | { 45 | var plugins = PluginList.ToArray(); 46 | PluginList.Clear(); 47 | foreach (var plugin in plugins) 48 | { 49 | try { plugin.Dispose(); } 50 | catch{} 51 | } 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Framework/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | True 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Platform/x64/ZLibMC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Platform/x64/ZLibMC.dll -------------------------------------------------------------------------------- /Platform/x64/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Platform/x64/zlib1.dll -------------------------------------------------------------------------------- /Platform/x86/ZLibMC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Platform/x86/ZLibMC.dll -------------------------------------------------------------------------------- /Platform/x86/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Platform/x86/zlib1.dll -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tesvsnip 2 | Skyrim fork of the Fallout Mod Manager TESsnip dialog 3 | 4 | 5 | If you are looking for Fallout 4 support then look at: https://github.com/figment/falloutsnip 6 | -------------------------------------------------------------------------------- /Vendor/IronPython-2.7.4/IronPython.Modules.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/IronPython-2.7.4/IronPython.Modules.dll -------------------------------------------------------------------------------- /Vendor/IronPython-2.7.4/IronPython.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/IronPython-2.7.4/IronPython.dll -------------------------------------------------------------------------------- /Vendor/IronPython-2.7.4/Microsoft.Dynamic.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/IronPython-2.7.4/Microsoft.Dynamic.dll -------------------------------------------------------------------------------- /Vendor/IronPython-2.7.4/Microsoft.Scripting.Metadata.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/IronPython-2.7.4/Microsoft.Scripting.Metadata.dll -------------------------------------------------------------------------------- /Vendor/IronPython-2.7.4/Microsoft.Scripting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/IronPython-2.7.4/Microsoft.Scripting.dll -------------------------------------------------------------------------------- /Vendor/ZLibMC/AssemblyInfo.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | using namespace System; 4 | using namespace System::Reflection; 5 | using namespace System::Runtime::CompilerServices; 6 | using namespace System::Runtime::InteropServices; 7 | using namespace System::Security::Permissions; 8 | 9 | // 10 | // General Information about an assembly is controlled through the following 11 | // set of attributes. Change these attribute values to modify the information 12 | // associated with an assembly. 13 | // 14 | [assembly:AssemblyTitleAttribute("ZLibMC")]; 15 | [assembly:AssemblyDescriptionAttribute("")]; 16 | [assembly:AssemblyConfigurationAttribute("")]; 17 | [assembly:AssemblyCompanyAttribute("")]; 18 | [assembly:AssemblyProductAttribute("ZLibMC")]; 19 | [assembly:AssemblyCopyrightAttribute("Copyright (c) 2013")]; 20 | [assembly:AssemblyTrademarkAttribute("")]; 21 | [assembly:AssemblyCultureAttribute("")]; 22 | 23 | // 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the value or you can default the Revision and Build Numbers 32 | // by using the '*' as shown below: 33 | 34 | [assembly:AssemblyVersionAttribute("1.0.*")]; 35 | 36 | [assembly:ComVisible(false)]; 37 | 38 | [assembly:CLSCompliantAttribute(true)]; 39 | 40 | [assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; 41 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | DYNAMIC LINK LIBRARY : ZLibMC Project Overview 3 | ======================================================================== 4 | 5 | AppWizard has created this ZLibMC DLL for you. 6 | 7 | This file contains a summary of what you will find in each of the files that 8 | make up your ZLibMC application. 9 | 10 | ZLibMC.vcxproj 11 | This is the main project file for VC++ projects generated using an Application Wizard. 12 | It contains information about the version of Visual C++ that generated the file, and 13 | information about the platforms, configurations, and project features selected with the 14 | Application Wizard. 15 | 16 | ZLibMC.vcxproj.filters 17 | This is the filters file for VC++ projects generated using an Application Wizard. 18 | It contains information about the association between the files in your project 19 | and the filters. This association is used in the IDE to show grouping of files with 20 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the 21 | "Source Files" filter). 22 | 23 | ZLibMC.cpp 24 | This is the main DLL source file. 25 | 26 | ZLibMC.h 27 | This file contains a class declaration. 28 | 29 | AssemblyInfo.cpp 30 | Contains custom attributes for modifying assembly metadata. 31 | 32 | ///////////////////////////////////////////////////////////////////////////// 33 | Other notes: 34 | 35 | AppWizard uses "TODO:" to indicate parts of the source code you 36 | should add to or customize. 37 | 38 | ///////////////////////////////////////////////////////////////////////////// 39 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/Stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // ZLibMC.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/Stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, 3 | // but are changed infrequently 4 | 5 | #pragma once 6 | 7 | 8 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/ZLibMC.h: -------------------------------------------------------------------------------- 1 | // ZLibMC.h 2 | 3 | #pragma once 4 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/ZLibMC.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | 30 | Source Files 31 | 32 | 33 | Source Files 34 | 35 | 36 | Source Files 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Resource Files 45 | 46 | 47 | 48 | 49 | Resource Files 50 | 51 | 52 | -------------------------------------------------------------------------------- /Vendor/ZLibMC/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/ZLibMC/app.ico -------------------------------------------------------------------------------- /Vendor/ZLibMC/app.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/ZLibMC/app.rc -------------------------------------------------------------------------------- /Vendor/ZLibMC/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by app.rc 4 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/zlib-1.2.8/ChangeLog -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/INDEX: -------------------------------------------------------------------------------- 1 | CMakeLists.txt cmake build file 2 | ChangeLog history of changes 3 | FAQ Frequently Asked Questions about zlib 4 | INDEX this file 5 | Makefile dummy Makefile that tells you to ./configure 6 | Makefile.in template for Unix Makefile 7 | README guess what 8 | configure configure script for Unix 9 | make_vms.com makefile for VMS 10 | test/example.c zlib usages examples for build testing 11 | test/minigzip.c minimal gzip-like functionality for build testing 12 | test/infcover.c inf*.c code coverage for build coverage testing 13 | treebuild.xml XML description of source file dependencies 14 | zconf.h.cmakein zconf.h template for cmake 15 | zconf.h.in zconf.h template for configure 16 | zlib.3 Man page for zlib 17 | zlib.3.pdf Man page in PDF format 18 | zlib.map Linux symbol information 19 | zlib.pc.in Template for pkg-config descriptor 20 | zlib.pc.cmakein zlib.pc template for cmake 21 | zlib2ansi perl script to convert source files for C++ compilation 22 | 23 | amiga/ makefiles for Amiga SAS C 24 | as400/ makefiles for AS/400 25 | doc/ documentation for formats and algorithms 26 | msdos/ makefiles for MSDOS 27 | nintendods/ makefile for Nintendo DS 28 | old/ makefiles for various architectures and zlib documentation 29 | files that have not yet been updated for zlib 1.2.x 30 | qnx/ makefiles for QNX 31 | watcom/ makefiles for OpenWatcom 32 | win32/ makefiles for Windows 33 | 34 | zlib public header files (required for library use): 35 | zconf.h 36 | zlib.h 37 | 38 | private source files used to build the zlib library: 39 | adler32.c 40 | compress.c 41 | crc32.c 42 | crc32.h 43 | deflate.c 44 | deflate.h 45 | gzclose.c 46 | gzguts.h 47 | gzlib.c 48 | gzread.c 49 | gzwrite.c 50 | infback.c 51 | inffast.c 52 | inffast.h 53 | inffixed.h 54 | inflate.c 55 | inflate.h 56 | inftrees.c 57 | inftrees.h 58 | trees.c 59 | trees.h 60 | uncompr.c 61 | zutil.c 62 | zutil.h 63 | 64 | source files for sample programs 65 | See examples/README.examples 66 | 67 | unsupported contributions by third parties 68 | See contrib/README.contrib 69 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | -@echo "Please use ./configure first. Thank you." 3 | 4 | distclean: 5 | make -f Makefile.in distclean 6 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/README.contrib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/zlib-1.2.8/contrib/README.contrib -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/infback9/README: -------------------------------------------------------------------------------- 1 | See infback9.h for what this is and how to use it. 2 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/infback9/infback9.h: -------------------------------------------------------------------------------- 1 | /* infback9.h -- header for using inflateBack9 functions 2 | * Copyright (C) 2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* 7 | * This header file and associated patches provide a decoder for PKWare's 8 | * undocumented deflate64 compression method (method 9). Use with infback9.c, 9 | * inftree9.h, inftree9.c, and inffix9.h. These patches are not supported. 10 | * This should be compiled with zlib, since it uses zutil.h and zutil.o. 11 | * This code has not yet been tested on 16-bit architectures. See the 12 | * comments in zlib.h for inflateBack() usage. These functions are used 13 | * identically, except that there is no windowBits parameter, and a 64K 14 | * window must be provided. Also if int's are 16 bits, then a zero for 15 | * the third parameter of the "out" function actually means 65536UL. 16 | * zlib.h must be included before this header file. 17 | */ 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | ZEXTERN int ZEXPORT inflateBack9 OF((z_stream FAR *strm, 24 | in_func in, void FAR *in_desc, 25 | out_func out, void FAR *out_desc)); 26 | ZEXTERN int ZEXPORT inflateBack9End OF((z_stream FAR *strm)); 27 | ZEXTERN int ZEXPORT inflateBack9Init_ OF((z_stream FAR *strm, 28 | unsigned char FAR *window, 29 | const char *version, 30 | int stream_size)); 31 | #define inflateBack9Init(strm, window) \ 32 | inflateBack9Init_((strm), (window), \ 33 | ZLIB_VERSION, sizeof(z_stream)) 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/infback9/inflate9.h: -------------------------------------------------------------------------------- 1 | /* inflate9.h -- internal inflate state definition 2 | * Copyright (C) 1995-2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | /* Possible inflate modes between inflate() calls */ 12 | typedef enum { 13 | TYPE, /* i: waiting for type bits, including last-flag bit */ 14 | STORED, /* i: waiting for stored size (length and complement) */ 15 | TABLE, /* i: waiting for dynamic block table lengths */ 16 | LEN, /* i: waiting for length/lit code */ 17 | DONE, /* finished check, done -- remain here until reset */ 18 | BAD /* got a data error -- remain here until reset */ 19 | } inflate_mode; 20 | 21 | /* 22 | State transitions between above modes - 23 | 24 | (most modes can go to the BAD mode -- not shown for clarity) 25 | 26 | Read deflate blocks: 27 | TYPE -> STORED or TABLE or LEN or DONE 28 | STORED -> TYPE 29 | TABLE -> LENLENS -> CODELENS -> LEN 30 | Read deflate codes: 31 | LEN -> LEN or TYPE 32 | */ 33 | 34 | /* state maintained between inflate() calls. Approximately 7K bytes. */ 35 | struct inflate_state { 36 | /* sliding window */ 37 | unsigned char FAR *window; /* allocated sliding window, if needed */ 38 | /* dynamic table building */ 39 | unsigned ncode; /* number of code length code lengths */ 40 | unsigned nlen; /* number of length code lengths */ 41 | unsigned ndist; /* number of distance code lengths */ 42 | unsigned have; /* number of code lengths in lens[] */ 43 | code FAR *next; /* next available space in codes[] */ 44 | unsigned short lens[320]; /* temporary storage for code lengths */ 45 | unsigned short work[288]; /* work area for code table building */ 46 | code codes[ENOUGH]; /* space for code tables */ 47 | }; 48 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/masmx64/bld_ml64.bat: -------------------------------------------------------------------------------- 1 | ml64.exe /Flinffasx64 /c /Zi inffasx64.asm 2 | ml64.exe /Flgvmat64 /c /Zi gvmat64.asm 3 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/masmx64/readme.txt: -------------------------------------------------------------------------------- 1 | Summary 2 | ------- 3 | This directory contains ASM implementations of the functions 4 | longest_match() and inflate_fast(), for 64 bits x86 (both AMD64 and Intel EM64t), 5 | for use with Microsoft Macro Assembler (x64) for AMD64 and Microsoft C++ 64 bits. 6 | 7 | gvmat64.asm is written by Gilles Vollant (2005), by using Brian Raiter 686/32 bits 8 | assembly optimized version from Jean-loup Gailly original longest_match function 9 | 10 | inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing 11 | original function from Mark Adler 12 | 13 | Use instructions 14 | ---------------- 15 | Assemble the .asm files using MASM and put the object files into the zlib source 16 | directory. You can also get object files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | define ASMV and ASMINF in your project. Include inffas8664.c in your source tree, 21 | and inffasx64.obj and gvmat64.obj as object to link. 22 | 23 | 24 | Build instructions 25 | ------------------ 26 | run bld_64.bat with Microsoft Macro Assembler (x64) for AMD64 (ml64.exe) 27 | 28 | ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK 29 | 30 | You can get Windows 2003 server DDK with ml64 and cl for AMD64 from 31 | http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price) 32 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/masmx86/bld_ml32.bat: -------------------------------------------------------------------------------- 1 | ml /coff /Zi /c /Flmatch686.lst match686.asm 2 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm 3 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/contrib/masmx86/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Summary 3 | ------- 4 | This directory contains ASM implementations of the functions 5 | longest_match() and inflate_fast(). 6 | 7 | 8 | Use instructions 9 | ---------------- 10 | Assemble using MASM, and copy the object files into the zlib source 11 | directory, then run the appropriate makefile, as suggested below. You can 12 | donwload MASM from here: 13 | 14 | http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 15 | 16 | You can also get objects files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | Build instructions 21 | ------------------ 22 | * With Microsoft C and MASM: 23 | nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" 24 | 25 | * With Borland C and TASM: 26 | make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" 27 | 28 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(file) 12 | gzFile file; 13 | { 14 | #ifndef NO_GZCOMPRESS 15 | gz_statep state; 16 | 17 | if (file == NULL) 18 | return Z_STREAM_ERROR; 19 | state = (gz_statep)file; 20 | 21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 22 | #else 23 | return gzclose_r(file); 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/uncompr.c: -------------------------------------------------------------------------------- 1 | /* uncompr.c -- decompress a memory buffer 2 | * Copyright (C) 1995-2003, 2010 Jean-loup Gailly. 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* @(#) $Id$ */ 7 | 8 | #define ZLIB_INTERNAL 9 | #include "zlib.h" 10 | 11 | /* =========================================================================== 12 | Decompresses the source buffer into the destination buffer. sourceLen is 13 | the byte length of the source buffer. Upon entry, destLen is the total 14 | size of the destination buffer, which must be large enough to hold the 15 | entire uncompressed data. (The size of the uncompressed data must have 16 | been saved previously by the compressor and transmitted to the decompressor 17 | by some mechanism outside the scope of this compression library.) 18 | Upon exit, destLen is the actual size of the compressed buffer. 19 | 20 | uncompress returns Z_OK if success, Z_MEM_ERROR if there was not 21 | enough memory, Z_BUF_ERROR if there was not enough room in the output 22 | buffer, or Z_DATA_ERROR if the input data was corrupted. 23 | */ 24 | int ZEXPORT uncompress (dest, destLen, source, sourceLen) 25 | Bytef *dest; 26 | uLongf *destLen; 27 | const Bytef *source; 28 | uLong sourceLen; 29 | { 30 | z_stream stream; 31 | int err; 32 | 33 | stream.next_in = (z_const Bytef *)source; 34 | stream.avail_in = (uInt)sourceLen; 35 | /* Check for source > 64K on 16-bit machine: */ 36 | if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; 37 | 38 | stream.next_out = dest; 39 | stream.avail_out = (uInt)*destLen; 40 | if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; 41 | 42 | stream.zalloc = (alloc_func)0; 43 | stream.zfree = (free_func)0; 44 | 45 | err = inflateInit(&stream); 46 | if (err != Z_OK) return err; 47 | 48 | err = inflate(&stream, Z_FINISH); 49 | if (err != Z_STREAM_END) { 50 | inflateEnd(&stream); 51 | if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) 52 | return Z_DATA_ERROR; 53 | return err; 54 | } 55 | *destLen = stream.total_out; 56 | 57 | err = inflateEnd(&stream); 58 | return err; 59 | } 60 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/win32/VisualC.txt: -------------------------------------------------------------------------------- 1 | 2 | To build zlib using the Microsoft Visual C++ environment, 3 | use the appropriate project from the projects/ directory. 4 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/win32/visualc9-x64/README.txt: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Project Files, Format Version 9.00 for zlib. 2 | 3 | Copyright (C) 2000-2004 Simon-Pierre Cadieux. 4 | Copyright (C) 2004 Cosmin Truta. 5 | For conditions of distribution and use, see copyright notice in zlib.h. 6 | 7 | 8 | This project builds the zlib binaries as follows: 9 | 10 | * Win64_DLL_Release\zlib1.dll DLL build 11 | * Win64_DLL_Debug\zlib1d.dll DLL build (debug version) 12 | * Win64_DLL_ASM_Release\zlib1.dll DLL build using ASM code 13 | * Win64_DLL_ASM_Debug\zlib1d.dll DLL build using ASM code (debug version) 14 | * Win64_LIB_Release\zlib.lib static build 15 | * Win64_LIB_Debug\zlibd.lib static build (debug version) 16 | * Win64_LIB_ASM_Release\zlib.lib static build using ASM code 17 | * Win64_LIB_ASM_Debug\zlibd.lib static build using ASM code (debug version) 18 | 19 | 20 | For more information regarding the DLL builds, please see the DLL FAQ 21 | in ..\..\Win64\DLL_FAQ.txt. 22 | 23 | 24 | To build and test: 25 | 26 | 1) On the main menu, select "File | Open Workspace". 27 | Open "zlib.dsw". 28 | 29 | 2) Select "Build | Set Active Configuration". 30 | Choose the configuration you wish to build. 31 | 32 | 3) Select "Build | Clean". 33 | 34 | 4) Select "Build | Build ... (F7)". Ignore warning messages about 35 | not being able to find certain include files (e.g. alloc.h). 36 | 37 | 5) If you built one of the sample programs (example or minigzip), 38 | select "Build | Execute ... (Ctrl+F5)". 39 | 40 | 41 | To use: 42 | 43 | 1) Select "Project | Settings (Alt+F7)". 44 | Make note of the configuration names used in your project. 45 | Usually, these names are "Win64 Release" and "Win64 Debug". 46 | 47 | 2) In the Workspace window, select the "FileView" tab. 48 | Right-click on the root item "Workspace '...'". 49 | Select "Insert Project into Workspace". 50 | Switch on the checkbox "Dependency of:", and select the name 51 | of your project. Open "zlib.dsp". 52 | 53 | 3) Select "Build | Configurations". 54 | For each configuration of your project: 55 | 3.1) Choose the zlib configuration you wish to use. 56 | 3.2) Click on "Add". 57 | 3.3) Set the new zlib configuration name to the name used by 58 | the configuration from the current iteration. 59 | 60 | 4) Select "Build | Set Active Configuration". 61 | Choose the configuration you wish to build. 62 | 63 | 5) Select "Build | Build ... (F7)". 64 | 65 | 6) If you built an executable program, select 66 | "Build | Execute ... (Ctrl+F5)". 67 | 68 | 69 | Note: 70 | 71 | To build the ASM-enabled code, you need Microsoft Assembler 72 | (ML64.EXE) part of Visual Studio 2008 or available from Microsoft. 73 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/win32/zlib.def: -------------------------------------------------------------------------------- 1 | ; zlib data compression library 2 | EXPORTS 3 | ; basic functions 4 | zlibVersion 5 | deflate 6 | deflateEnd 7 | inflate 8 | inflateEnd 9 | ; advanced functions 10 | deflateSetDictionary 11 | deflateCopy 12 | deflateReset 13 | deflateParams 14 | deflateTune 15 | deflateBound 16 | deflatePending 17 | deflatePrime 18 | deflateSetHeader 19 | inflateSetDictionary 20 | inflateGetDictionary 21 | inflateSync 22 | inflateCopy 23 | inflateReset 24 | inflateReset2 25 | inflatePrime 26 | inflateMark 27 | inflateGetHeader 28 | inflateBack 29 | inflateBackEnd 30 | zlibCompileFlags 31 | ; utility functions 32 | compress 33 | compress2 34 | compressBound 35 | uncompress 36 | gzopen 37 | gzdopen 38 | gzbuffer 39 | gzsetparams 40 | gzread 41 | gzwrite 42 | gzprintf 43 | gzvprintf 44 | gzputs 45 | gzgets 46 | gzputc 47 | gzgetc 48 | gzungetc 49 | gzflush 50 | gzseek 51 | gzrewind 52 | gztell 53 | gzoffset 54 | gzeof 55 | gzdirect 56 | gzclose 57 | gzclose_r 58 | gzclose_w 59 | gzerror 60 | gzclearerr 61 | ; large file functions 62 | gzopen64 63 | gzseek64 64 | gztell64 65 | gzoffset64 66 | adler32_combine64 67 | crc32_combine64 68 | ; checksum functions 69 | adler32 70 | crc32 71 | adler32_combine 72 | crc32_combine 73 | ; various hacks, don't look :) 74 | deflateInit_ 75 | deflateInit2_ 76 | inflateInit_ 77 | inflateInit2_ 78 | inflateBackInit_ 79 | gzgetc_ 80 | zError 81 | inflateSyncPoint 82 | get_crc_table 83 | inflateUndermine 84 | inflateResetKeep 85 | deflateResetKeep 86 | gzopen_w 87 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/win32/zlib1.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../zlib.h" 3 | 4 | #ifdef GCC_WINDRES 5 | VS_VERSION_INFO VERSIONINFO 6 | #else 7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 8 | #endif 9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 12 | #ifdef _DEBUG 13 | FILEFLAGS 1 14 | #else 15 | FILEFLAGS 0 16 | #endif 17 | FILEOS VOS__WINDOWS32 18 | FILETYPE VFT_DLL 19 | FILESUBTYPE 0 // not used 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904E4" 24 | //language ID = U.S. English, char set = Windows, Multilingual 25 | BEGIN 26 | VALUE "FileDescription", "zlib data compression library\0" 27 | VALUE "FileVersion", ZLIB_VERSION "\0" 28 | VALUE "InternalName", "zlib1.dll\0" 29 | VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0" 30 | VALUE "OriginalFilename", "zlib1.dll\0" 31 | VALUE "ProductName", "zlib\0" 32 | VALUE "ProductVersion", ZLIB_VERSION "\0" 33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0" 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0409, 1252 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/zlib.3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/Vendor/zlib-1.2.8/zlib.3.pdf -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/zlib.map: -------------------------------------------------------------------------------- 1 | ZLIB_1.2.0 { 2 | global: 3 | compressBound; 4 | deflateBound; 5 | inflateBack; 6 | inflateBackEnd; 7 | inflateBackInit_; 8 | inflateCopy; 9 | local: 10 | deflate_copyright; 11 | inflate_copyright; 12 | inflate_fast; 13 | inflate_table; 14 | zcalloc; 15 | zcfree; 16 | z_errmsg; 17 | gz_error; 18 | gz_intmax; 19 | _*; 20 | }; 21 | 22 | ZLIB_1.2.0.2 { 23 | gzclearerr; 24 | gzungetc; 25 | zlibCompileFlags; 26 | } ZLIB_1.2.0; 27 | 28 | ZLIB_1.2.0.8 { 29 | deflatePrime; 30 | } ZLIB_1.2.0.2; 31 | 32 | ZLIB_1.2.2 { 33 | adler32_combine; 34 | crc32_combine; 35 | deflateSetHeader; 36 | inflateGetHeader; 37 | } ZLIB_1.2.0.8; 38 | 39 | ZLIB_1.2.2.3 { 40 | deflateTune; 41 | gzdirect; 42 | } ZLIB_1.2.2; 43 | 44 | ZLIB_1.2.2.4 { 45 | inflatePrime; 46 | } ZLIB_1.2.2.3; 47 | 48 | ZLIB_1.2.3.3 { 49 | adler32_combine64; 50 | crc32_combine64; 51 | gzopen64; 52 | gzseek64; 53 | gztell64; 54 | inflateUndermine; 55 | } ZLIB_1.2.2.4; 56 | 57 | ZLIB_1.2.3.4 { 58 | inflateReset2; 59 | inflateMark; 60 | } ZLIB_1.2.3.3; 61 | 62 | ZLIB_1.2.3.5 { 63 | gzbuffer; 64 | gzoffset; 65 | gzoffset64; 66 | gzclose_r; 67 | gzclose_w; 68 | } ZLIB_1.2.3.4; 69 | 70 | ZLIB_1.2.5.1 { 71 | deflatePending; 72 | } ZLIB_1.2.3.5; 73 | 74 | ZLIB_1.2.5.2 { 75 | deflateResetKeep; 76 | gzgetc_; 77 | inflateResetKeep; 78 | } ZLIB_1.2.5.1; 79 | 80 | ZLIB_1.2.7.1 { 81 | inflateGetDictionary; 82 | gzvprintf; 83 | } ZLIB_1.2.5.2; 84 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/zlib.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@INSTALL_LIB_DIR@ 4 | sharedlibdir=@INSTALL_LIB_DIR@ 5 | includedir=@INSTALL_INC_DIR@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /Vendor/zlib-1.2.8/zlib.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | sharedlibdir=@sharedlibdir@ 5 | includedir=@includedir@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /build/assemblyinfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.18408 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | using System.Resources; 14 | using System.Runtime.CompilerServices; 15 | using System.Runtime.InteropServices; 16 | 17 | [assembly: AssemblyCompany("TESVSnip")] 18 | [assembly: AssemblyTitle("TESVSnip (Skyrim Edition) - Version 4.5 (d95610f)")] 19 | [assembly: AssemblyCopyright("Copyright (c) 2014")] 20 | [assembly: AssemblyTrademark("All Rights Reserved")] 21 | [assembly: CLSCompliant(false)] 22 | [assembly: AssemblyDelaySign(false)] 23 | [assembly: AssemblyVersion("4.5.5141.0")] 24 | [assembly: AssemblyFileVersion("4.5.5141.0")] 25 | [assembly: AssemblyInformationalVersion("TESVSnip (Skyrim Edition) - Version 4.5")] 26 | 27 | 28 | -------------------------------------------------------------------------------- /build/buildver.txt: -------------------------------------------------------------------------------- 1 | 4.5.5141.0 -------------------------------------------------------------------------------- /build/tasks/BuildTasks/BuildTasks.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {7EE75F6C-A278-42C4-A198-2123392763EE} 9 | Library 10 | Properties 11 | BuildTasks 12 | BuildTasks 13 | v4.0 14 | 512 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 57 | -------------------------------------------------------------------------------- /build/tasks/BuildTasks/BuildTasks.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildTasks", "BuildTasks.csproj", "{7EE75F6C-A278-42C4-A198-2123392763EE}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {7EE75F6C-A278-42C4-A198-2123392763EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {7EE75F6C-A278-42C4-A198-2123392763EE}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {7EE75F6C-A278-42C4-A198-2123392763EE}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {7EE75F6C-A278-42C4-A198-2123392763EE}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /build/tasks/BuildTasks/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("BuildTasks")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("BuildTasks")] 13 | [assembly: AssemblyCopyright("Copyright © 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d9e42ef6-8e1d-4eb9-8e5d-b4cb2f490666")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /build/tesvsnip.buildtasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/build/tesvsnip.buildtasks.dll -------------------------------------------------------------------------------- /build/tesvsnip.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/build/tesvsnip.snk -------------------------------------------------------------------------------- /conf/DockPanel.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/conf/DockPanel.config -------------------------------------------------------------------------------- /conf/ScriptFunctionsFormat.txt: -------------------------------------------------------------------------------- 1 | Contains a single Functions root node, which contains Enum, Block and Func nodes. Enums must contain one or more Element nodes, and Block and Func nodes may optionally contain Arg nodes. 2 | 3 | Valid attributes: 4 | Enum: 5 | name (required): The enum name. Used to match up with the enumtype attribute of Arg nodes 6 | 7 | Element: 8 | name (required): The name of this member of the enum 9 | value (required): An integer value which is emitted into the compiled code in place of the text name 10 | 11 | Block: 12 | name (required): The block name 13 | opcode (required): The opcode of the block 14 | Desc: Provide a human readable description of when the block gets executed 15 | 16 | Func: 17 | name (required): The function name 18 | opcode (required): The function opcode 19 | short: The short version of the function name 20 | desc: A human readable description of the function 21 | requiredargs: The number of arguments to the function which are required. If ommited defaults to the full number of arguments. Manually set it to lower than this if some arguments are optional 22 | allowref: Set to false if you want the compile to throw an error on syntax like 'player.funcname'. If ommited, defaults to true. 23 | ret: The type returned by this function. If it exists, must be one of float/int/ref. If ommited, the function returns no value. 24 | paddingbytes: A hack used to get ShowMessage working. Causes the supplied number of 0's to be tacked onto the end of the function call in the compiled code. 25 | fose: If it exists and is set to true, marks the function as one belonging to fallout script extender, and not usable in the vanilla game. 26 | skipargs: If it exists and is true, the argument list is ignored and no paramcount bytes are emitted into the compiled code. (Hack for StopCombatAlarmOnActor, which seems to have taken an actor argument at one stage) 27 | 28 | Arg: 29 | name (required): A human readable description of the argument 30 | type (required): The argument type. Must be one of float/int/ref/string/short/enum/axis for functions, and ref/short/int for blocks 31 | reftype: If the argument is of type ref, use this to limit which edid's are valid. 32 | enumtype (required if type="enum"): The name of the enum to be used -------------------------------------------------------------------------------- /conf/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /scripts/lib/Licence_CeCILL_V2-en.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/scripts/lib/Licence_CeCILL_V2-en.html -------------------------------------------------------------------------------- /scripts/lib/Licence_CeCILL_V2-fr.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/scripts/lib/Licence_CeCILL_V2-fr.html -------------------------------------------------------------------------------- /scripts/plugins/CopyTo.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copy to Example 3 | # 4 | # Copy Selected Group or Record to another plugin or new plugin 5 | # 6 | from shared.util import * 7 | 8 | import System 9 | import TESVSnip.Domain 10 | from TESVSnip.Domain.Model import BaseRecord, Record, Plugin, SubRecord, GroupRecord 11 | from System import TimeSpan 12 | from System.Diagnostics import Stopwatch 13 | 14 | def copyToRecord(records, override): 15 | import TESVSnip.Domain.Spells 16 | from shared.SelectItem import SelectItem 17 | GetPluginFromNode = TESVSnip.Domain.Spells.GetPluginFromNode 18 | 19 | parents = set( [ GetPluginFromNode(r).Name for r in records ] ) 20 | form = SelectItem() 21 | form.SetLabel('Select Plugin to Copy Records into:') 22 | items = [ x.Name for x in __plugins__ if x.Name not in parents ] 23 | items.append('') 24 | form.SetItems(items) 25 | result = form.ShowDialog(__window__) 26 | if str(result) == 'OK': 27 | if '' == form.GetSelectedItem(): 28 | p = newPlugin() 29 | __plugins__.AddRecord(p) 30 | else: 31 | p = __plugins__[form.GetSelectedItem()] 32 | if p: 33 | TESVSnip.Domain.Spells.CopyRecordsTo(records, p, override) 34 | pass 35 | 36 | 37 | if __name__ == '': 38 | import TESVSnip 39 | from TESVSnip.UI.Hosting import ScriptSupport 40 | 41 | class ScriptPlugin(TESVSnip.UI.Services.PluginBase): 42 | from System.Drawing import Color 43 | def Execute(self, recs): 44 | sw = Stopwatch.StartNew() 45 | if self.Name == 'copyto.over': 46 | copyToRecord(recs, True) 47 | elif self.Name == 'copyto.new': 48 | copyToRecord(recs, False) 49 | sw.Stop() 50 | t = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds) 51 | ScriptSupport.SendStatusText('Script took %s to complete. List added to clipboard'%t.ToString() , Color.Blue ) 52 | 53 | def IsValidSelection(self, recs): 54 | if recs is None or len(recs) == 0: return False 55 | for rec in recs: 56 | if not isinstance(rec, GroupRecord) and not isinstance(rec, Record): 57 | return False 58 | return True 59 | 60 | TESVSnip.UI.Services.PluginStore.AddPlugins( 61 | [ ScriptPlugin("copyto.over", "&Copy Override To", supportSelection=True, supportGlobal=False) 62 | , ScriptPlugin("copyto.new", "&Copy New To", supportSelection=True, supportGlobal=False) 63 | ] 64 | ) -------------------------------------------------------------------------------- /scripts/plugins/shared/__init__.py: -------------------------------------------------------------------------------- 1 | import required 2 | -------------------------------------------------------------------------------- /scripts/plugins/shared/required.py: -------------------------------------------------------------------------------- 1 | # 2 | # Required imports by all scripts 3 | # 4 | import clr 5 | clr.AddReferenceByPartialName("TESVSnip.Framework") 6 | clr.AddReferenceByPartialName("TESVSnip.Domain") 7 | clr.AddReferenceByPartialName("System.Core") 8 | try: 9 | # TESVSnip Application may not be loaded on command line 10 | clr.AddReferenceByPartialName("TESVSnip") 11 | clr.AddReferenceByPartialName("System.Windows.Forms") 12 | clr.AddReferenceByPartialName("System.Drawing") 13 | except: 14 | pass 15 | -------------------------------------------------------------------------------- /scripts/renderer.css: -------------------------------------------------------------------------------- 1 | body 2 | { 3 | line-height: 1.6em; 4 | background-color: #F0F0F0; 5 | } 6 | p { margin: 0px; } 7 | #record-hdr 8 | { 9 | border: thin solid #C0C0C0; 10 | font-family: "Lucida Sans Unicode" , "Lucida Grande" , Sans-Serif; 11 | font-size: 12px; 12 | background: #fff; 13 | margin: 5px; 14 | width: 400px; 15 | border-collapse: collapse; 16 | text-align: left; 17 | } 18 | #record-hdr thead 19 | { 20 | font-size: 12px; 21 | font-weight: normal; 22 | color: #039; 23 | padding: 10px 8px; 24 | text-align: left; 25 | } 26 | #record-hdr thead td 27 | { 28 | font-size: 15px; 29 | font-weight: bold; 30 | text-align: center; 31 | } 32 | #record-hdr td 33 | { 34 | color: #669; 35 | padding: 2px 2px 0px 4px; 36 | border: 1px solid #CCCCCC; 37 | color: #000; 38 | } 39 | #record-hdr tbody tr:hover td 40 | { 41 | border: 1px dashed #808080; 42 | color: #009; 43 | } 44 | #record-hdr .header { color: #1e90ff;font-weight: bold; } 45 | #record-hdr .type { color: #000; font-weight: bold; } 46 | #record-hdr .label { color: #009; } 47 | #record-hdr .value { color: #1e90ff; } 48 | #record-hdr .flags { color: #000; } 49 | #record-hdr .formid 50 | { 51 | color: #800000; 52 | font-weight: bolder; 53 | } 54 | .danger { color: #800000; } 55 | 56 | #record-desc 57 | { 58 | border: thin solid #C0C0C0; 59 | font-family: "Lucida Sans Unicode" , "Lucida Grande" , Sans-Serif; 60 | font-size: 12px; 61 | background: #fff; 62 | margin: 5px; 63 | border-collapse: collapse; 64 | text-align: left; 65 | width: 95% 66 | } 67 | #record-desc thead 68 | { 69 | font-size: 12px; 70 | font-weight: normal; 71 | color: #039; 72 | padding: 10px 8px; 73 | text-align: left; 74 | } 75 | #record-desc thead td 76 | { 77 | font-size: 15px; 78 | font-weight: bold; 79 | text-align: center; 80 | } 81 | #record-desc td 82 | { 83 | color: #669; 84 | padding: 2px 2px 0px 4px; 85 | border: 1px solid #CCCCCC; 86 | color: #000; 87 | } 88 | #record-desc tbody tr:hover td 89 | { 90 | border: 1px dashed #808080; 91 | color: #009; 92 | } 93 | #record-desc .headerlabel 94 | { 95 | color: #800080; 96 | font-weight: bold; 97 | } 98 | #record-desc .header { color: #1e90ff;font-weight: bold; } 99 | #record-desc .type { color: #000; font-weight: bold; } 100 | #record-desc .label { color: #009; } 101 | #record-desc .value { color: #1e90ff; } 102 | #record-desc .flags { color: #000; } 103 | #record-desc .desc { color: #000; } 104 | #record-desc .formid 105 | { 106 | color: #800000; 107 | font-weight: bolder; 108 | } 109 | .hidden 110 | { 111 | visibility: hidden; 112 | } 113 | #record-desc tfoot 114 | { 115 | visibility: hidden; 116 | } 117 | -------------------------------------------------------------------------------- /test/ipy.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | pushd "%~dp0" 4 | 5 | IF NOT EXIST "%IPY_PATH%" for %%I in (ipy.exe) do @IF EXIST "%%~dp$PATH:I" set IPY_PATH=%%~dp$PATH:I 6 | IF NOT EXIST "%IPY_PATH%" set IPY_PATH=%ProgramFiles%\IronPython 2.7 7 | IF NOT EXIST "%IPY_PATH%" set IPY_PATH=%ProgramFiles(x86)%\IronPython 2.7 8 | IF NOT EXIST "%IPY_PATH%" ( 9 | Echo ipy.exe not found on PATH or in common folders. Aborting 10 | goto exit 11 | ) 12 | set IRONPYTHONSTARTUP=%~dp0\startup.py 13 | set IRONPYTHONPATH=%~dp0\..\scripts\plugins;%~dp0\..\scripts\lib;%~dp0\..\scripts 14 | call "%IPY_PATH%\ipy.exe" %* 15 | popd 16 | endlocal -------------------------------------------------------------------------------- /test/startup.py: -------------------------------------------------------------------------------- 1 | # 2 | # Required imports by all scripts 3 | # 4 | import os, sys 5 | binpath = os.getcwd() + r'\..\Domain\bin\release\\' 6 | sys.path.append(binpath) 7 | sys.path.append(os.getcwd() + r'\..\conf\plugins') 8 | 9 | import clr 10 | #clr.AddReferenceByPartialName("TESVSnip.Domain") 11 | clr.AddReferenceToFileAndPath(binpath + 'TESVSnip.Framework.dll') 12 | clr.AddReferenceToFileAndPath(binpath + 'TESVSnip.Domain.dll') 13 | clr.AddReferenceByPartialName("System.Core") 14 | #import TESVSnip.Framework, TESVSnip.Domain -------------------------------------------------------------------------------- /test/test1.py: -------------------------------------------------------------------------------- 1 | import startup 2 | import shared.util as util 3 | gameDir = util.getGameDirectory() 4 | 5 | import System 6 | from System.Diagnostics import Stopwatch 7 | from System import TimeSpan 8 | 9 | sw = Stopwatch.StartNew() 10 | 11 | import TESVSnip.Domain 12 | import ListItems 13 | plugins = TESVSnip.Domain.Model.PluginList.All 14 | 15 | excludeList = 'RGDL;CLDC;PWAT;SCOL;SCPT;HAIR;REGN;NAVI;WRLD;DIAL;CELL;IMAD;WTHR'.Split(';') 16 | filter = System.Func[str,bool]( lambda x: x not in excludeList ) 17 | 18 | pluginList = util.loadMasterPluginIndex() 19 | from System import Random 20 | rand = Random() 21 | pluginName = pluginList.items()[ rand.Next(0,len(pluginList)-1) ][0] 22 | plugins.AddRecord(TESVSnip.Domain.Model.Plugin(gameDir + pluginName, filter)) 23 | #plugins.AddRecord(TESVSnip.Domain.Model.Plugin(gameDir + 'skyrim.esm', filter)) 24 | print ListItems.generateItemList(plugins) 25 | 26 | import ModWeight 27 | print ModWeight.listNPCWeights(plugins) 28 | print ModWeight.modifyNPCWeights(plugins) 29 | 30 | sw.Stop() 31 | t = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds) 32 | print 'Script took',t,'to complete' -------------------------------------------------------------------------------- /test/test2.py: -------------------------------------------------------------------------------- 1 | import startup 2 | import shared.util as util 3 | gameDir = util.getGameDirectory() 4 | 5 | import System 6 | from System.Diagnostics import Stopwatch 7 | from System import TimeSpan 8 | import TESVSnip.Domain 9 | from TESVSnip.Domain.Services import Spells 10 | 11 | import markup 12 | 13 | def browser(htmlstr): 14 | import BaseHTTPServer 15 | import webbrowser 16 | class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): 17 | def do_GET(self): 18 | bufferSize = 1024*1024 19 | for i in range(0, len(htmlstr), bufferSize): 20 | self.wfile.write(htmlstr[i:i+bufferSize]) 21 | server = BaseHTTPServer.HTTPServer(('127.0.0.1', 0), RequestHandler) 22 | webbrowser.open('http://127.0.0.1:%s' % server.server_port) 23 | server.handle_request() 24 | 25 | sw = Stopwatch.StartNew() 26 | 27 | page = markup.page( ) 28 | page.init( title="My title" 29 | ,css=( 'bootstrap.min.css', 'bootstrap-theme.min.css' ) 30 | ,script=('jquery-1.11.0.min.js','bootstrap.min.js') 31 | ,header="Something at the top" 32 | ,footer="The bitter end." 33 | ) 34 | items = ( "Item one", "Item two", "Item three", "Item four" ) 35 | paras = ( "This was a list.", "And now for something completely different." ) 36 | images = ( "thumb1.jpg", "thumb2.jpg", "more.jpg", "more2.jpg" ) 37 | with page.ul( class_='mylist' ): 38 | page.li( items, class_='myitem' ) 39 | page.p( paras ) 40 | page.img( src=images, width=100, height=80, alt="Thumbnails" ) 41 | 42 | with page.div( class_="row" ): 43 | with page.div( class_="col-md-9" ): 44 | page.p('Level 1: .col-md-9') 45 | with page.div( class_="row" ): 46 | page.div(class_="col-md-6").add("Level 2: .col-md-6") 47 | page.div(class_="col-md-6").add("Level 2: .col-md-6") 48 | 49 | strpage = str(page) 50 | with open('test2.html', "w") as f: 51 | f.write(strpage) 52 | #print strpage 53 | #browser( strpage ) 54 | 55 | sw.Stop() 56 | t = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds) 57 | print 'Script took',t,'to complete' -------------------------------------------------------------------------------- /test/test3.py: -------------------------------------------------------------------------------- 1 | import startup 2 | import shared.util as util 3 | gameDir = util.getGameDirectory() 4 | 5 | import System 6 | from System.Diagnostics import Stopwatch 7 | from System import TimeSpan 8 | 9 | import TESVSnip.Domain 10 | 11 | sw = Stopwatch.StartNew() 12 | 13 | # use an match filter to minimize the load time of skyrim.esm 14 | includeList = ('RACE', 'NPC_', 'LVLN') 15 | filter = System.Func[str,bool]( lambda x: x in includeList ) 16 | 17 | 18 | plugins = TESVSnip.Domain.Model.PluginList.All 19 | pluginList = util.loadMasterPluginIndex() 20 | from System import Random 21 | rand = Random() 22 | pluginName = pluginList.items()[ rand.Next(0,len(pluginList)-1) ][0] 23 | plugins.AddRecord(TESVSnip.Domain.Model.Plugin(gameDir + pluginName, filter)) 24 | 25 | import ExtractNPCs 26 | skyrimRaces = TESVSnip.Domain.Model.Plugin(gameDir + 'skyrim.esm', filter) 27 | records = [skyrimRaces] 28 | records.extend(plugins.Records) 29 | races = ExtractNPCs.getNPCRaces(records) 30 | for race in races: 31 | print race 32 | 33 | p = util.newPlugin() 34 | from TESVSnip.Domain.Services import Spells 35 | 36 | aRaces = System.Collections.Generic.List[TESVSnip.Domain.Model.BaseRecord](races).ToArray() 37 | Spells.CopyRecordsTo(aRaces, p, False) 38 | 39 | sw.Stop() 40 | t = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds) 41 | print 'Script took',t,'to complete' -------------------------------------------------------------------------------- /test/test4.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import startup 3 | import shared.util as util 4 | gameDir = util.getGameDirectory('Oblivion') 5 | 6 | import System 7 | from System.Diagnostics import Stopwatch 8 | from System import TimeSpan 9 | from System.IO import Path 10 | 11 | import TESVSnip.Domain 12 | from TESVSnip.Domain.Services import Spells 13 | from TESVSnip.Domain.Model import BaseRecord, Record, Plugin, SubRecord, GroupRecord 14 | from TESVSnip.Domain.Data.Structure import RecordStructure, ElementValueType 15 | from TESVSnip.Domain.Scripts import PyInterpreter 16 | from TESVSnip.Domain.Services import Spells 17 | 18 | import markup 19 | import HTML as tb 20 | import renderer 21 | 22 | def browser(htmlstr): 23 | import BaseHTTPServer 24 | import webbrowser 25 | class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): 26 | def do_GET(self): 27 | bufferSize = 1024*1024 28 | for i in range(0, len(htmlstr), bufferSize): 29 | self.wfile.write(htmlstr[i:i+bufferSize]) 30 | server = BaseHTTPServer.HTTPServer(('127.0.0.1', 0), RequestHandler) 31 | webbrowser.open('http://127.0.0.1:%s' % server.server_port) 32 | server.handle_request() 33 | 34 | sw = Stopwatch.StartNew() 35 | plugin = TESVSnip.Domain.Model.Plugin(gameDir + 'asdf.esp') 36 | rec = None 37 | # for rec in plugin.Records: 38 | # if isinstance(rec, GroupRecord): 39 | # break 40 | for kvp in plugin.EnumerateRecords('RACE'): 41 | rec = kvp.Value 42 | #break 43 | cssfile = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(sys.argv[0]),'../scripts/renderer.css')) 44 | html = renderer.HTMLRenderer(title="Record",css=( cssfile, ) ) 45 | html.GetHeader(rec) 46 | #html.GetHeader(plugin) 47 | html.page.hr() 48 | html.GetDescription(rec) 49 | 50 | strpage = str(html) 51 | with open('test4.html', "w") as f: 52 | f.write(strpage) 53 | #print strpage 54 | #browser( strpage ) 55 | 56 | sw.Stop() 57 | t = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds) 58 | print 'Script took',t,'to complete' -------------------------------------------------------------------------------- /test/viewhtml.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | pushd "%~dp0" 3 | start viewhtml\bin\release\viewhtml.exe %* 4 | popd -------------------------------------------------------------------------------- /test/viewhtml/HtmlForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace viewhtml 12 | { 13 | public partial class HtmlForm : Form, IBrowser 14 | { 15 | public HtmlForm() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | public string File { get; set; } 21 | 22 | private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) 23 | { 24 | Reload(); 25 | } 26 | 27 | private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e) 28 | { 29 | Reload(); 30 | } 31 | 32 | private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e) 33 | { 34 | Reload(); 35 | } 36 | 37 | void Reload() 38 | { 39 | if (System.IO.File.Exists(this.File)) 40 | { 41 | using (var stream = new FileStream(this.File, FileMode.Open, FileAccess.Read, 42 | FileShare.Read, 4096, FileOptions.SequentialScan)) 43 | using (var reader = new StreamReader(stream)) 44 | this.htmlPanel1.Text = reader.ReadToEnd(); 45 | } 46 | else 47 | { 48 | this.htmlPanel1.Text = ""; 49 | } 50 | } 51 | 52 | private void HtmlForm_Load(object sender, EventArgs e) 53 | { 54 | this.fileSystemWatcher1.Path = Path.GetFullPath(Path.GetDirectoryName(this.File)); 55 | this.fileSystemWatcher1.Filter = Path.GetFileName(this.File); 56 | this.fileSystemWatcher1.IncludeSubdirectories = false; 57 | this.fileSystemWatcher1.EnableRaisingEvents = true; 58 | Reload(); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /test/viewhtml/IBrowser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace viewhtml 7 | { 8 | interface IBrowser 9 | { 10 | string File { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/viewhtml/MSHTMLView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace viewhtml 12 | { 13 | public partial class MSHTMLView : Form, IBrowser 14 | { 15 | public MSHTMLView() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | public string File { get; set; } 21 | 22 | private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) 23 | { 24 | Reload(); 25 | } 26 | 27 | private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e) 28 | { 29 | Reload(); 30 | } 31 | 32 | private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e) 33 | { 34 | Reload(); 35 | } 36 | 37 | void Reload() 38 | { 39 | if (System.IO.File.Exists(this.File)) 40 | { 41 | var fileToOpen = new Uri(this.File); 42 | this.webBrowser1.Url = fileToOpen; 43 | } 44 | else 45 | { 46 | var ub = new UriBuilder("about", "blank"); 47 | this.webBrowser1.Url = ub.Uri; 48 | } 49 | } 50 | 51 | private void MSHTMLView_Load(object sender, EventArgs e) 52 | { 53 | this.fileSystemWatcher1.Path = Path.GetFullPath(Path.GetDirectoryName(this.File)); 54 | this.fileSystemWatcher1.Filter = Path.GetFileName(this.File); 55 | this.fileSystemWatcher1.IncludeSubdirectories = false; 56 | this.fileSystemWatcher1.EnableRaisingEvents = true; 57 | Reload(); 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /test/viewhtml/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | 7 | namespace viewhtml 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | 20 | string fileToWatch = null; 21 | IBrowser browser = null; 22 | foreach (var arg in System.Environment.GetCommandLineArgs()) 23 | { 24 | if (arg.StartsWith("-") && arg.Length > 1) 25 | { 26 | switch (arg.ToLower()[1]) 27 | { 28 | case 'i': 29 | browser = new MSHTMLView(); 30 | break; 31 | case 'h': 32 | browser = new HtmlForm(); 33 | break; 34 | } 35 | } 36 | else 37 | { 38 | fileToWatch = Path.GetFullPath(arg); 39 | } 40 | } 41 | if (string.IsNullOrEmpty(fileToWatch)) 42 | { 43 | MessageBox.Show("No file specified."); 44 | return; 45 | } 46 | if (browser == null) 47 | browser = new DualForm(); 48 | 49 | Environment.CurrentDirectory = Path.GetFullPath(Path.GetDirectoryName(fileToWatch)); 50 | 51 | browser.File = fileToWatch; 52 | 53 | Application.Run( browser as Form ); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /test/viewhtml/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("viewhtml")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("viewhtml")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c45728e3-ef19-4d45-a6a2-40affe82bf73")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /test/viewhtml/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.18408 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace viewhtml.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/viewhtml/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/viewhtml/viewhtml.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | test4.html 5 | D:\Development\Gaming\tesvsnip\test 6 | 7 | -------------------------------------------------------------------------------- /thirdparty/HtmlRenderer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/HtmlRenderer.dll -------------------------------------------------------------------------------- /thirdparty/ICSharpCode.AvalonEdit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/ICSharpCode.AvalonEdit.dll -------------------------------------------------------------------------------- /thirdparty/Ionic.Zlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/Ionic.Zlib.dll -------------------------------------------------------------------------------- /thirdparty/MagicLibrary.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/MagicLibrary.dll -------------------------------------------------------------------------------- /thirdparty/PythonConsoleControl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/PythonConsoleControl.dll -------------------------------------------------------------------------------- /thirdparty/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /thirdparty/msbuild.community.tasks.v1.3.0.528/MSBuild.Community.Tasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/msbuild.community.tasks.v1.3.0.528/MSBuild.Community.Tasks.dll -------------------------------------------------------------------------------- /thirdparty/msbuild.community.tasks.v1.3.0.528/MSBuild.Community.Tasks.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/figment/tesvsnip/a01eb806df50e72cb96177e42f0b69407ed599f3/thirdparty/msbuild.community.tasks.v1.3.0.528/MSBuild.Community.Tasks.pdb --------------------------------------------------------------------------------