Initial commit.
This commit is contained in:
parent
b8acde3042
commit
c26a06c530
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/build/
|
||||||
27
Data.qrc
Normal file
27
Data.qrc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/obj">
|
||||||
|
<file>data/obj/defaultactor_LOD0.bin</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.cast</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.gltf</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.ma</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.mesh.ascii</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.obj</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.semodel</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.smd</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.XMODEL_BIN</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0.XMODEL_EXPORT</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0_BIND.mel</file>
|
||||||
|
<file>data/obj/defaultactor_LOD0_cosmetics.mel</file>
|
||||||
|
<file>data/obj/mtl_body_default_character.mtl</file>
|
||||||
|
<file>data/obj/mtl_body_default_character_images.txt</file>
|
||||||
|
<file>data/obj/diffusemap.png</file>
|
||||||
|
<file>data/obj/normalmap.png</file>
|
||||||
|
</qresource>
|
||||||
|
<qresource prefix="/d3dbsp">
|
||||||
|
<file>data/d3dbsp/asset_viewer.d3dbsp</file>
|
||||||
|
<file>data/d3dbsp/barebones.d3dbsp</file>
|
||||||
|
</qresource>
|
||||||
|
<qresource prefix="/dlls">
|
||||||
|
<file>data/dlls/dxcompiler.dll</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
34
FastFile_WaW.pro
Normal file
34
FastFile_WaW.pro
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
QT += core gui 3dcore 3drender 3dinput 3dextras
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++17
|
||||||
|
|
||||||
|
INCLUDEPATH += "C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/um"
|
||||||
|
LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.0.26100.0/um/x64" \
|
||||||
|
-ldxcompiler
|
||||||
|
|
||||||
|
# You can make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
main.cpp \
|
||||||
|
mainwindow.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
enums.h \
|
||||||
|
mainwindow.h \
|
||||||
|
structs.h \
|
||||||
|
utils.h
|
||||||
|
|
||||||
|
FORMS += \
|
||||||
|
mainwindow.ui
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
Data.qrc
|
||||||
271
FastFile_WaW.pro.user
Normal file
271
FastFile_WaW.pro.user
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 15.0.0, 2025-01-08T01:31:51. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{40d992cb-ac11-4385-a22b-016f1b4251a7}</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
<value type="qlonglong">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||||
|
<value type="QString" key="language">Cpp</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||||
|
<value type="QString" key="language">QmlJS</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||||
|
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||||
|
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="bool" key="AutoTest.ApplyFilter">false</value>
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||||
|
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
|
||||||
|
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||||
|
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="ClangTools">
|
||||||
|
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||||
|
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||||
|
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||||
|
<value type="int" key="ClangTools.ParallelJobs">16</value>
|
||||||
|
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||||
|
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.8.1 MSVC2022 64bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.8.1 MSVC2022 64bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.681.win64_msvc2022_64_kit</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\njohnson\Projects\FastFile_WaW\build\Desktop_Qt_6_8_1_MSVC2022_64bit-Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/njohnson/Projects/FastFile_WaW/build/Desktop_Qt_6_8_1_MSVC2022_64bit-Debug</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\njohnson\Projects\FastFile_WaW\build\Desktop_Qt_6_8_1_MSVC2022_64bit-Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/njohnson/Projects/FastFile_WaW/build/Desktop_Qt_6_8_1_MSVC2022_64bit-Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\njohnson\Projects\FastFile_WaW\build\Desktop_Qt_6_8_1_MSVC2022_64bit-Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/njohnson/Projects/FastFile_WaW/build/Desktop_Qt_6_8_1_MSVC2022_64bit-Profile</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph "dwarf,4096" -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/njohnson/Projects/FastFile_WaW/FastFile_WaW.pro</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/njohnson/Projects/FastFile_WaW/build/Desktop_Qt_6_8_1_MSVC2022_64bit-Release</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
|
<value type="qlonglong">1</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
||||||
BIN
data/d3dbsp/asset_viewer.d3dbsp
Normal file
BIN
data/d3dbsp/asset_viewer.d3dbsp
Normal file
Binary file not shown.
BIN
data/d3dbsp/barebones.d3dbsp
Normal file
BIN
data/d3dbsp/barebones.d3dbsp
Normal file
Binary file not shown.
BIN
data/dlls/dxcompiler.dll
Normal file
BIN
data/dlls/dxcompiler.dll
Normal file
Binary file not shown.
BIN
data/fastfiles/nazi_zombie_factory.ff
Normal file
BIN
data/fastfiles/nazi_zombie_factory.ff
Normal file
Binary file not shown.
BIN
data/fastfiles/nazi_zombie_factory_load.ff
Normal file
BIN
data/fastfiles/nazi_zombie_factory_load.ff
Normal file
Binary file not shown.
BIN
data/fastfiles/nazi_zombie_factory_patch.ff
Normal file
BIN
data/fastfiles/nazi_zombie_factory_patch.ff
Normal file
Binary file not shown.
BIN
data/obj/defaultactor_LOD0.XMODEL_BIN
Normal file
BIN
data/obj/defaultactor_LOD0.XMODEL_BIN
Normal file
Binary file not shown.
55098
data/obj/defaultactor_LOD0.XMODEL_EXPORT
Normal file
55098
data/obj/defaultactor_LOD0.XMODEL_EXPORT
Normal file
File diff suppressed because it is too large
Load Diff
BIN
data/obj/defaultactor_LOD0.bin
Normal file
BIN
data/obj/defaultactor_LOD0.bin
Normal file
Binary file not shown.
BIN
data/obj/defaultactor_LOD0.cast
Normal file
BIN
data/obj/defaultactor_LOD0.cast
Normal file
Binary file not shown.
1743
data/obj/defaultactor_LOD0.gltf
Normal file
1743
data/obj/defaultactor_LOD0.gltf
Normal file
File diff suppressed because it is too large
Load Diff
1157
data/obj/defaultactor_LOD0.ma
Normal file
1157
data/obj/defaultactor_LOD0.ma
Normal file
File diff suppressed because one or more lines are too long
17607
data/obj/defaultactor_LOD0.mesh.ascii
Normal file
17607
data/obj/defaultactor_LOD0.mesh.ascii
Normal file
File diff suppressed because it is too large
Load Diff
30509
data/obj/defaultactor_LOD0.obj
Normal file
30509
data/obj/defaultactor_LOD0.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
data/obj/defaultactor_LOD0.semodel
Normal file
BIN
data/obj/defaultactor_LOD0.semodel
Normal file
Binary file not shown.
12382
data/obj/defaultactor_LOD0.smd
Normal file
12382
data/obj/defaultactor_LOD0.smd
Normal file
File diff suppressed because it is too large
Load Diff
1607
data/obj/defaultactor_LOD0_BIND.mel
Normal file
1607
data/obj/defaultactor_LOD0_BIND.mel
Normal file
File diff suppressed because it is too large
Load Diff
0
data/obj/defaultactor_LOD0_cosmetics.mel
Normal file
0
data/obj/defaultactor_LOD0_cosmetics.mel
Normal file
BIN
data/obj/diffusemap.png
Normal file
BIN
data/obj/diffusemap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
7
data/obj/mtl_body_default_character.mtl
Normal file
7
data/obj/mtl_body_default_character.mtl
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
newmtl mtl_body_default_character
|
||||||
|
illum 4
|
||||||
|
Kd 0.00 0.00 0.00
|
||||||
|
Ka 0.00 0.00 0.00
|
||||||
|
Ks 0.50 0.50 0.50
|
||||||
|
map_Kd _images\\mtl_body_default_character\\defaultcolmap.png
|
||||||
|
map_bump _images\\mtl_body_default_character\\$identitynormalmap.png
|
||||||
3
data/obj/mtl_body_default_character_images.txt
Normal file
3
data/obj/mtl_body_default_character_images.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
semantic,image_name
|
||||||
|
normalMap,$identitynormalmap
|
||||||
|
colorMap,defaultcolmap
|
||||||
BIN
data/obj/normalmap.png
Normal file
BIN
data/obj/normalmap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 B |
101
enums.h
Normal file
101
enums.h
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#ifndef ENUMS_H
|
||||||
|
#define ENUMS_H
|
||||||
|
|
||||||
|
enum LUMP_TYPE
|
||||||
|
{
|
||||||
|
LUMP_MATERIALS = 0x0,
|
||||||
|
LUMP_LIGHTBYTES = 0x1,
|
||||||
|
LUMP_LIGHTGRIDENTRIES = 0x2,
|
||||||
|
LUMP_LIGHTGRIDCOLORS = 0x3,
|
||||||
|
LUMP_PLANES = 0x4,
|
||||||
|
LUMP_BRUSHSIDES = 0x5,
|
||||||
|
LUMP_BRUSHSIDEEDGECOUNTS = 0x6,
|
||||||
|
LUMP_BRUSHEDGES = 0x7,
|
||||||
|
LUMP_BRUSHES = 0x8,
|
||||||
|
LUMP_TRIANGLES = 0x9,
|
||||||
|
LUMP_DRAWVERTS = 0xA,
|
||||||
|
LUMP_DRAWINDICES = 0xB,
|
||||||
|
LUMP_CULLGROUPS = 0xC,
|
||||||
|
LUMP_CULLGROUPINDICES = 0xD,
|
||||||
|
LUMP_OBSOLETE_1 = 0xE,
|
||||||
|
LUMP_OBSOLETE_2 = 0xF,
|
||||||
|
LUMP_OBSOLETE_3 = 0x10,
|
||||||
|
LUMP_OBSOLETE_4 = 0x11,
|
||||||
|
LUMP_OBSOLETE_5 = 0x12,
|
||||||
|
LUMP_PORTALVERTS = 0x13,
|
||||||
|
LUMP_OBSOLETE_6 = 0x14,
|
||||||
|
LUMP_UINDS = 0x15,
|
||||||
|
LUMP_BRUSHVERTSCOUNTS = 0x16,
|
||||||
|
LUMP_BRUSHVERTS = 0x17,
|
||||||
|
LUMP_AABBTREES = 0x18,
|
||||||
|
LUMP_CELLS = 0x19,
|
||||||
|
LUMP_PORTALS = 0x1A,
|
||||||
|
LUMP_NODES = 0x1B,
|
||||||
|
LUMP_LEAFS = 0x1C,
|
||||||
|
LUMP_LEAFBRUSHES = 0x1D,
|
||||||
|
LUMP_LEAFSURFACES = 0x1E,
|
||||||
|
LUMP_COLLISIONVERTS = 0x1F,
|
||||||
|
LUMP_COLLISIONTRIS = 0x20,
|
||||||
|
LUMP_COLLISIONEDGEWALKABLE = 0x21,
|
||||||
|
LUMP_COLLISIONBORDERS = 0x22,
|
||||||
|
LUMP_COLLISIONPARTITIONS = 0x23,
|
||||||
|
LUMP_COLLISIONAABBS = 0x24,
|
||||||
|
LUMP_MODELS = 0x25,
|
||||||
|
LUMP_VISIBILITY = 0x26,
|
||||||
|
LUMP_ENTITIES = 0x27,
|
||||||
|
LUMP_PATHCONNECTIONS = 0x28,
|
||||||
|
LUMP_REFLECTION_PROBES = 0x29,
|
||||||
|
LUMP_VERTEX_LAYER_DATA = 0x2A,
|
||||||
|
LUMP_PRIMARY_LIGHTS = 0x2B,
|
||||||
|
LUMP_LIGHTGRIDHEADER = 0x2C,
|
||||||
|
LUMP_LIGHTGRIDROWS = 0x2D,
|
||||||
|
LUMP_OBSOLETE_10 = 0x2E,
|
||||||
|
|
||||||
|
//Obsolete in BO1/////////////////
|
||||||
|
LUMP_UNLAYERED_TRIANGLES = 0x2F,
|
||||||
|
LUMP_UNLAYERED_DRAWVERTS = 0x30,
|
||||||
|
LUMP_UNLAYERED_DRAWINDICES = 0x31,
|
||||||
|
LUMP_UNLAYERED_CULLGROUPS = 0x32,
|
||||||
|
LUMP_UNLAYERED_AABBTREES = 0x33,
|
||||||
|
//////////////////////////////////
|
||||||
|
|
||||||
|
LUMP_WATERHEADER = 0x34,
|
||||||
|
LUMP_WATERCELLS = 0x35,
|
||||||
|
LUMP_WATERCELLDATA = 0x36,
|
||||||
|
LUMP_BURNABLEHEADER = 0x37,
|
||||||
|
LUMP_BURNABLECELLS = 0x38,
|
||||||
|
LUMP_BURNABLECELLDATA = 0x39,
|
||||||
|
LUMP_SIMPLELIGHTMAPBYTES = 0x3A,
|
||||||
|
LUMP_LODCHAINS = 0x3B,
|
||||||
|
LUMP_LODINFOS = 0x3C,
|
||||||
|
LUMP_LODSURFACES = 0x3D,
|
||||||
|
LUMP_LIGHTREGIONS = 0x3E,
|
||||||
|
LUMP_LIGHTREGION_HULLS = 0x3F,
|
||||||
|
LUMP_LIGHTREGION_AXES = 0x40,
|
||||||
|
LUMP_WIILIGHTGRID = 0x41,
|
||||||
|
LUMP_LIGHTGRID2D_LIGHTS = 0x42,
|
||||||
|
LUMP_LIGHTGRID2D_INDICES = 0x43,
|
||||||
|
LUMP_LIGHTGRID2D_POINTS = 0x44,
|
||||||
|
LUMP_LIGHTGRID2D_CELLS = 0x45,
|
||||||
|
LUMP_LIGHT_CORONAS = 0x46,
|
||||||
|
|
||||||
|
//BO Specific/////////////////////////
|
||||||
|
LUMP_SHADOWMAP_VOLUMES = 0x47,
|
||||||
|
LUMP_SHADOWMAP_VOLUME_PLANES = 0x48,
|
||||||
|
LUMP_EXPOSURE_VOLUMES = 0x49,
|
||||||
|
LUMP_EXPOSURE_VOLUME_PLANES = 0x4A,
|
||||||
|
LUMP_OCCLUDERS = 0x4B,
|
||||||
|
LUMP_OUTDOORBOUNDS = 0x4C,
|
||||||
|
LUMP_HERO_ONLY_LIGHTS = 0x4D,
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
INFO_LUMP_TYPE_COUNT
|
||||||
|
};
|
||||||
|
|
||||||
|
enum BSPVERSION_TYPE
|
||||||
|
{
|
||||||
|
BSPVERSION_COD_WAW = 31,
|
||||||
|
BSPVERSION_COD_BO = 45
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ENUMS_H
|
||||||
11
main.cpp
Normal file
11
main.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
MainWindow w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
||||||
1228
mainwindow.cpp
Normal file
1228
mainwindow.cpp
Normal file
File diff suppressed because it is too large
Load Diff
151
mainwindow.h
Normal file
151
mainwindow.h
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
#ifndef MAINWINDOW_H
|
||||||
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
|
#include "enums.h"
|
||||||
|
#include "structs.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QTableWidgetItem>
|
||||||
|
#include <QTreeWidgetItem>
|
||||||
|
|
||||||
|
#include <Qt3DCore/QEntity>
|
||||||
|
#include <Qt3DRender/QCamera>
|
||||||
|
#include <Qt3DRender/QCameraLens>
|
||||||
|
#include <Qt3DCore/QTransform>
|
||||||
|
#include <Qt3DCore/QAspectEngine>
|
||||||
|
|
||||||
|
#include <Qt3DInput/QInputAspect>
|
||||||
|
|
||||||
|
#include <Qt3DRender/QRenderAspect>
|
||||||
|
#include <Qt3DRender/QGeometryRenderer>
|
||||||
|
#include <Qt3DExtras/QForwardRenderer>
|
||||||
|
#include <Qt3DExtras/QPhongMaterial>
|
||||||
|
#include <Qt3DExtras/QSphereMesh>
|
||||||
|
#include <Qt3DExtras/QTorusMesh>
|
||||||
|
#include <Qt3DRender/qcamera.h>
|
||||||
|
#include <Qt3DCore/qentity.h>
|
||||||
|
#include <Qt3DRender/qcameralens.h>
|
||||||
|
|
||||||
|
#include <QtWidgets/QApplication>
|
||||||
|
#include <QtWidgets/QWidget>
|
||||||
|
#include <QtWidgets/QHBoxLayout>
|
||||||
|
#include <QtWidgets/QCheckBox>
|
||||||
|
#include <QtWidgets/QCommandLinkButton>
|
||||||
|
#include <QtGui/QScreen>
|
||||||
|
|
||||||
|
#include <Qt3DRender/qmesh.h>
|
||||||
|
#include <Qt3DRender/qtechnique.h>
|
||||||
|
#include <Qt3DRender/qmaterial.h>
|
||||||
|
#include <Qt3DRender/qeffect.h>
|
||||||
|
#include <Qt3DRender/qtexture.h>
|
||||||
|
#include <Qt3DRender/qrenderpass.h>
|
||||||
|
#include <Qt3DRender/qsceneloader.h>
|
||||||
|
#include <Qt3DRender/qpointlight.h>
|
||||||
|
|
||||||
|
#include <Qt3DCore/qtransform.h>
|
||||||
|
#include <Qt3DCore/qaspectengine.h>
|
||||||
|
|
||||||
|
#include <Qt3DRender/qrenderaspect.h>
|
||||||
|
#include <Qt3DExtras/qforwardrenderer.h>
|
||||||
|
|
||||||
|
#include <Qt3DExtras/qt3dwindow.h>
|
||||||
|
#include <Qt3DExtras/qfirstpersoncameracontroller.h>
|
||||||
|
|
||||||
|
#include <Qt3DExtras/QNormalDiffuseMapMaterial>
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#include <dxcapi.h>
|
||||||
|
#include <atlbase.h>
|
||||||
|
#include <atlcom.h>
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui {
|
||||||
|
class MainWindow;
|
||||||
|
}
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class MainWindow : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
MainWindow(QWidget *parent = nullptr);
|
||||||
|
~MainWindow();
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
QByteArray DecompressZLIB(QByteArray compressedData);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_pushButton_FastFile_clicked();
|
||||||
|
void on_pushButton_FastFile_2_clicked();
|
||||||
|
|
||||||
|
QFile *OpenFastFile();
|
||||||
|
QFile *OpenZoneFile();
|
||||||
|
void ParseFFHeader(QFile *aFastFilePtr);
|
||||||
|
void ParseFFCompany(QDataStream *aFastFileStream);
|
||||||
|
void ParseFFFileType(QDataStream *afastFileStream);
|
||||||
|
void ParseFFSignage(QDataStream *afastFileStream);
|
||||||
|
void ParseFFMagic(QDataStream *afastFileStream);
|
||||||
|
void ParseFFVersion(QDataStream *afastFileStream);
|
||||||
|
|
||||||
|
void ParseZoneHeader(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneSize(QDataStream *aZoneFileStream);
|
||||||
|
|
||||||
|
void ParseZoneUnknownsA(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneUnknownsB(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneUnknownsC(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneTagCount(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneRecordCount(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneTags(QDataStream *aZoneFileStream);
|
||||||
|
void ParseZoneIndex(QDataStream *aZoneFileStream);
|
||||||
|
|
||||||
|
void ParseAsset_LocalString(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_RawFile(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_PhysPreset(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_XModel(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_Material(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_PixelShader(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_TechSet(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_Image(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_LoadedSound(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_ColMapMP(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_GameMapSP(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_GameMapMP(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_LightDef(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_UIMap(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_SNDDriverGlobals(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_AIType(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_FX(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_XAnim(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_StringTable(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_MenuFile(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_Weapon(QDataStream *aZoneFileStream);
|
||||||
|
void ParseAsset_D3DBSP(QDataStream *aZoneFileStream);
|
||||||
|
|
||||||
|
int LoadFile_D3DBSP(const QString aFilePath);
|
||||||
|
|
||||||
|
void ScriptSelected();
|
||||||
|
void StrTableSelected(QString aStrTableName);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::MainWindow *ui;
|
||||||
|
QMap<QString, int> mTypeMap;
|
||||||
|
QStringList mTypeOrder;
|
||||||
|
quint32 mTagCount;
|
||||||
|
quint32 mRecordCount;
|
||||||
|
QMap<QString, QString> mRawFileMap;
|
||||||
|
QMap<QString, QTreeWidgetItem*> mTreeMap;
|
||||||
|
QMap<QString, QVector<QPair<QString, QString>>> mStrTableMap;
|
||||||
|
|
||||||
|
quint32 mBSPVersion;
|
||||||
|
quint32 mDiskLumpCount;
|
||||||
|
QVector<quint32> mDiskLumpOrder;
|
||||||
|
QMap<quint32, Lump> mLumps;
|
||||||
|
|
||||||
|
};
|
||||||
|
#endif // MAINWINDOW_H
|
||||||
1079
mainwindow.ui
Normal file
1079
mainwindow.ui
Normal file
File diff suppressed because it is too large
Load Diff
19
structs.h
Normal file
19
structs.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef STRUCTS_H
|
||||||
|
#define STRUCTS_H
|
||||||
|
|
||||||
|
#include <QByteArray>
|
||||||
|
|
||||||
|
// Define Lump Structure
|
||||||
|
struct Lump {
|
||||||
|
QByteArray content;
|
||||||
|
quint32 size = 0;
|
||||||
|
bool isEmpty = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Lump Index Entry Structure
|
||||||
|
struct LumpIndexEntry {
|
||||||
|
quint32 type;
|
||||||
|
quint32 length;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // STRUCTS_H
|
||||||
169
utils.h
Normal file
169
utils.h
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
#ifndef UTILS_H
|
||||||
|
#define UTILS_H
|
||||||
|
|
||||||
|
#include "enums.h"
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QtZlib/zlib.h>
|
||||||
|
|
||||||
|
class Utils {
|
||||||
|
public:
|
||||||
|
/*
|
||||||
|
AssetTypeToString()
|
||||||
|
|
||||||
|
Convert asset type string to asset desc string
|
||||||
|
*/
|
||||||
|
static QString AssetTypeToString(const QString aAssetType) {
|
||||||
|
const QString cleanedType = aAssetType.toUpper();
|
||||||
|
if (cleanedType == "17000000") { // localized string PARTIALLY VERIFIED
|
||||||
|
return "LOCAL STRING";
|
||||||
|
} else if (cleanedType == "20000000") { // raw_file PARTIALLY VERIFIED
|
||||||
|
return "RAW FILE";
|
||||||
|
} else if (cleanedType == "1A000000") { // fx PARTIALLY VERIFIED
|
||||||
|
return "EFFECT";
|
||||||
|
} else if (cleanedType == "09000000") { // loaded_sound PARTIALLY VERIFIED
|
||||||
|
return "SOUND";
|
||||||
|
} else if (cleanedType == "04000000") { // x_anim PARTIALLY VERIFIED
|
||||||
|
return "ANIMATION";
|
||||||
|
} else if (cleanedType == "0C000000") { // collision_map PARTIALLY VERIFIED
|
||||||
|
return "COLLISION MAP";
|
||||||
|
} else if (cleanedType == "21000000") { // string_table PARTIALLY VERIFIED
|
||||||
|
return "STRING TABLE";
|
||||||
|
} else if (cleanedType == "15000000") { // menu_file PARTIALLY VERIFIED
|
||||||
|
return "MENU";
|
||||||
|
} else if (cleanedType == "07000000") { // tech set PARTIALLY VERIFIED
|
||||||
|
return "TECH SET";
|
||||||
|
} else if (cleanedType == "18000000") { // weapon PARTIALLY VERIFIED
|
||||||
|
return "WEAPON";
|
||||||
|
} else if (cleanedType == "11000000") { // d3dbsp dump PARTIALLY VERIFIED
|
||||||
|
return "D3DBSP DUMP";
|
||||||
|
} else if (cleanedType == "12000000") { // light_def PARTIALLY VERIFIED
|
||||||
|
return "LIGHT DEF";
|
||||||
|
} else if (cleanedType == "14000000") { // font PARTIALLY VERIFIED
|
||||||
|
return "FONT";
|
||||||
|
} else if (cleanedType == "05000000") { // xmodel PARTIALLY VERIFIED
|
||||||
|
return "MODEL";
|
||||||
|
} else if (cleanedType == "0D000000") { // shader PARTIALLY VERIFIED
|
||||||
|
return "SHADER";
|
||||||
|
}
|
||||||
|
return "UNKNOWN";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
LumpTypeToString()
|
||||||
|
|
||||||
|
Convert BSP lump type to desc string
|
||||||
|
*/
|
||||||
|
static QString LumpTypeToString(LUMP_TYPE aLumpType) {
|
||||||
|
switch (aLumpType) {
|
||||||
|
case LUMP_MATERIALS: return "LUMP_MATERIALS";
|
||||||
|
case LUMP_LIGHTBYTES: return "LUMP_LIGHTBYTES";
|
||||||
|
case LUMP_LIGHTGRIDENTRIES: return "LUMP_LIGHTGRIDENTRIES";
|
||||||
|
case LUMP_LIGHTGRIDCOLORS: return "LUMP_LIGHTGRIDCOLORS";
|
||||||
|
case LUMP_PLANES: return "LUMP_PLANES";
|
||||||
|
case LUMP_BRUSHSIDES: return "LUMP_BRUSHSIDES";
|
||||||
|
case LUMP_BRUSHSIDEEDGECOUNTS: return "LUMP_BRUSHSIDEEDGECOUNTS";
|
||||||
|
case LUMP_BRUSHEDGES: return "LUMP_BRUSHEDGES";
|
||||||
|
case LUMP_BRUSHES: return "LUMP_BRUSHES";
|
||||||
|
case LUMP_TRIANGLES: return "LUMP_TRIANGLES";
|
||||||
|
case LUMP_DRAWVERTS: return "LUMP_DRAWVERTS";
|
||||||
|
case LUMP_DRAWINDICES: return "LUMP_DRAWINDICES";
|
||||||
|
case LUMP_CULLGROUPS: return "LUMP_CULLGROUPS";
|
||||||
|
case LUMP_CULLGROUPINDICES: return "LUMP_CULLGROUPINDICES";
|
||||||
|
case LUMP_OBSOLETE_1: return "LUMP_OBSOLETE_1";
|
||||||
|
case LUMP_OBSOLETE_2: return "LUMP_OBSOLETE_2";
|
||||||
|
case LUMP_OBSOLETE_3: return "LUMP_OBSOLETE_3";
|
||||||
|
case LUMP_OBSOLETE_4: return "LUMP_OBSOLETE_4";
|
||||||
|
case LUMP_OBSOLETE_5: return "LUMP_OBSOLETE_5";
|
||||||
|
case LUMP_PORTALVERTS: return "LUMP_PORTALVERTS";
|
||||||
|
case LUMP_OBSOLETE_6: return "LUMP_OBSOLETE_6";
|
||||||
|
case LUMP_UINDS: return "LUMP_UINDS";
|
||||||
|
case LUMP_BRUSHVERTSCOUNTS: return "LUMP_BRUSHVERTSCOUNTS";
|
||||||
|
case LUMP_BRUSHVERTS: return "LUMP_BRUSHVERTS";
|
||||||
|
case LUMP_AABBTREES: return "LUMP_AABBTREES";
|
||||||
|
case LUMP_CELLS: return "LUMP_CELLS";
|
||||||
|
case LUMP_PORTALS: return "LUMP_PORTALS";
|
||||||
|
case LUMP_NODES: return "LUMP_NODES";
|
||||||
|
case LUMP_LEAFS: return "LUMP_LEAFS";
|
||||||
|
case LUMP_LEAFBRUSHES: return "LUMP_LEAFBRUSHES";
|
||||||
|
case LUMP_LEAFSURFACES: return "LUMP_LEAFSURFACES";
|
||||||
|
case LUMP_COLLISIONVERTS: return "LUMP_COLLISIONVERTS";
|
||||||
|
case LUMP_COLLISIONTRIS: return "LUMP_COLLISIONTRIS";
|
||||||
|
case LUMP_COLLISIONEDGEWALKABLE: return "LUMP_COLLISIONEDGEWALKABLE";
|
||||||
|
case LUMP_COLLISIONBORDERS: return "LUMP_COLLISIONBORDERS";
|
||||||
|
case LUMP_COLLISIONPARTITIONS: return "LUMP_COLLISIONPARTITIONS";
|
||||||
|
case LUMP_COLLISIONAABBS: return "LUMP_COLLISIONAABBS";
|
||||||
|
case LUMP_MODELS: return "LUMP_MODELS";
|
||||||
|
case LUMP_VISIBILITY: return "LUMP_VISIBILITY";
|
||||||
|
case LUMP_ENTITIES: return "LUMP_ENTITIES";
|
||||||
|
case LUMP_PATHCONNECTIONS: return "LUMP_PATHCONNECTIONS";
|
||||||
|
case LUMP_REFLECTION_PROBES: return "LUMP_REFLECTION_PROBES";
|
||||||
|
case LUMP_VERTEX_LAYER_DATA: return "LUMP_VERTEX_LAYER_DATA";
|
||||||
|
case LUMP_PRIMARY_LIGHTS: return "LUMP_PRIMARY_LIGHTS";
|
||||||
|
case LUMP_LIGHTGRIDHEADER: return "LUMP_LIGHTGRIDHEADER";
|
||||||
|
case LUMP_LIGHTGRIDROWS: return "LUMP_LIGHTGRIDROWS";
|
||||||
|
case LUMP_OBSOLETE_10: return "LUMP_OBSOLETE_10";
|
||||||
|
case LUMP_UNLAYERED_TRIANGLES: return "LUMP_UNLAYERED_TRIANGLES";
|
||||||
|
case LUMP_UNLAYERED_DRAWVERTS: return "LUMP_UNLAYERED_DRAWVERTS";
|
||||||
|
case LUMP_UNLAYERED_DRAWINDICES: return "LUMP_UNLAYERED_DRAWINDICES";
|
||||||
|
case LUMP_UNLAYERED_CULLGROUPS: return "LUMP_UNLAYERED_CULLGROUPS";
|
||||||
|
case LUMP_UNLAYERED_AABBTREES: return "LUMP_UNLAYERED_AABBTREES";
|
||||||
|
case LUMP_WATERHEADER: return "LUMP_WATERHEADER";
|
||||||
|
case LUMP_WATERCELLS: return "LUMP_WATERCELLS";
|
||||||
|
case LUMP_WATERCELLDATA: return "LUMP_WATERCELLDATA";
|
||||||
|
case LUMP_BURNABLEHEADER: return "LUMP_BURNABLEHEADER";
|
||||||
|
case LUMP_BURNABLECELLS: return "LUMP_BURNABLECELLS";
|
||||||
|
case LUMP_BURNABLECELLDATA: return "LUMP_BURNABLECELLDATA";
|
||||||
|
case LUMP_SIMPLELIGHTMAPBYTES: return "LUMP_SIMPLELIGHTMAPBYTES";
|
||||||
|
case LUMP_LODCHAINS: return "LUMP_LODCHAINS";
|
||||||
|
case LUMP_LODINFOS: return "LUMP_LODINFOS";
|
||||||
|
case LUMP_LODSURFACES: return "LUMP_LODSURFACES";
|
||||||
|
case LUMP_LIGHTREGIONS: return "LUMP_LIGHTREGIONS";
|
||||||
|
case LUMP_LIGHTREGION_HULLS: return "LUMP_LIGHTREGION_HULLS";
|
||||||
|
case LUMP_LIGHTREGION_AXES: return "LUMP_LIGHTREGION_AXES";
|
||||||
|
case LUMP_WIILIGHTGRID: return "LUMP_WIILIGHTGRID";
|
||||||
|
case LUMP_LIGHTGRID2D_LIGHTS: return "LUMP_LIGHTGRID2D_LIGHTS";
|
||||||
|
case LUMP_LIGHTGRID2D_INDICES: return "LUMP_LIGHTGRID2D_INDICES";
|
||||||
|
case LUMP_LIGHTGRID2D_POINTS: return "LUMP_LIGHTGRID2D_POINTS";
|
||||||
|
case LUMP_LIGHTGRID2D_CELLS: return "LUMP_LIGHTGRID2D_CELLS";
|
||||||
|
case LUMP_LIGHT_CORONAS: return "LUMP_LIGHT_CORONAS";
|
||||||
|
case LUMP_SHADOWMAP_VOLUMES: return "LUMP_SHADOWMAP_VOLUMES";
|
||||||
|
case LUMP_SHADOWMAP_VOLUME_PLANES: return "LUMP_SHADOWMAP_VOLUME_PLANES";
|
||||||
|
case LUMP_EXPOSURE_VOLUMES: return "LUMP_EXPOSURE_VOLUMES";
|
||||||
|
case LUMP_EXPOSURE_VOLUME_PLANES: return "LUMP_EXPOSURE_VOLUME_PLANES";
|
||||||
|
case LUMP_OCCLUDERS: return "LUMP_OCCLUDERS";
|
||||||
|
case LUMP_OUTDOORBOUNDS: return "LUMP_OUTDOORBOUNDS";
|
||||||
|
case LUMP_HERO_ONLY_LIGHTS: return "LUMP_HERO_ONLY_LIGHTS";
|
||||||
|
default: return "Unknown Lump Type";
|
||||||
|
}
|
||||||
|
return "Unknown Lump Type";
|
||||||
|
}
|
||||||
|
|
||||||
|
static QString ZLibErrorToString(int result) {
|
||||||
|
switch (result) {
|
||||||
|
case Z_ERRNO:
|
||||||
|
return "Encountered file operation error!";
|
||||||
|
case Z_STREAM_ERROR:
|
||||||
|
return "Stream was not initialized properly!";
|
||||||
|
case Z_DATA_ERROR:
|
||||||
|
return "The input data was corrupted or incomplete!";
|
||||||
|
case Z_MEM_ERROR:
|
||||||
|
return "There was not enough memory!";
|
||||||
|
case Z_BUF_ERROR:
|
||||||
|
return "There was not enough room in the output buffer!";
|
||||||
|
case Z_VERSION_ERROR:
|
||||||
|
return "Linked libraries are out of date!";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
static quint32 PadInt4(quint32 size) {
|
||||||
|
return (size + 3) & ~3; // Align size to 4 bytes
|
||||||
|
}
|
||||||
|
|
||||||
|
static quint32 PaddingSize(quint32 size) {
|
||||||
|
return PadInt4(size) - size;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // UTILS_H
|
||||||
Loading…
x
Reference in New Issue
Block a user