diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderTechniqueSet.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderTechniqueSet.cpp index a2629e08..65a7664c 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderTechniqueSet.cpp +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderTechniqueSet.cpp @@ -44,6 +44,7 @@ namespace IW4 explicit TechniqueCreator(IAssetLoadingManager* manager) : m_manager(manager) { + m_passes.emplace_back(); } void AcceptNextPass() override @@ -88,22 +89,22 @@ namespace IW4 bool AcceptShaderCodeArgument(techset::ShaderSelector shader, techset::ShaderArgument shaderArgument, techset::ShaderArgumentCodeSource source, std::string& errorMessage) override { - return false; + return true; } bool AcceptShaderLiteralArgument(techset::ShaderSelector shader, techset::ShaderArgument shaderArgument, techset::ShaderArgumentLiteralSource source, std::string& errorMessage) override { - return false; + return true; } bool AcceptShaderMaterialArgument(techset::ShaderSelector shader, techset::ShaderArgument shaderArgument, techset::ShaderArgumentMaterialSource source, std::string& errorMessage) override { - return false; + return true; } bool AcceptVertexStreamRouting(const std::string& destination, const std::string& source, std::string& errorMessage) override { - return false; + return true; } }; diff --git a/src/ObjLoading/Techset/Parsing/Sequence/TechniqueShaderScopeSequences.cpp b/src/ObjLoading/Techset/Parsing/Sequence/TechniqueShaderScopeSequences.cpp index 97047553..93336d3e 100644 --- a/src/ObjLoading/Techset/Parsing/Sequence/TechniqueShaderScopeSequences.cpp +++ b/src/ObjLoading/Techset/Parsing/Sequence/TechniqueShaderScopeSequences.cpp @@ -99,6 +99,7 @@ namespace techset const SimpleMatcherFactory create(this); AddMatchers({ + create.Identifier().Capture(CAPTURE_FIRST_TOKEN).NoConsume(), create.Identifier().Capture(CAPTURE_SHADER_ARGUMENT), create.Optional(create.And({ create.Char('['), @@ -170,7 +171,6 @@ namespace techset void ProcessMatch(TechniqueParserState* state, SequenceResult& result) const override { assert(state->m_in_shader == true); - state->m_in_shader = false; const auto& shaderArgumentNameToken = result.NextCapture(CAPTURE_SHADER_ARGUMENT); @@ -200,7 +200,8 @@ namespace techset const std::vector& TechniqueShaderScopeSequences::GetSequences() { static std::vector tests({ - new SequenceEndShader() + new SequenceEndShader(), + new SequenceShaderArgument() }); return tests; diff --git a/src/ObjLoading/Techset/TechniqueFileReader.cpp b/src/ObjLoading/Techset/TechniqueFileReader.cpp index 959bcf21..3f928174 100644 --- a/src/ObjLoading/Techset/TechniqueFileReader.cpp +++ b/src/ObjLoading/Techset/TechniqueFileReader.cpp @@ -23,7 +23,7 @@ bool TechniqueFileReader::ReadTechniqueDefinition() const lexerConfig.m_emit_new_line_tokens = false; lexerConfig.m_read_strings = true; lexerConfig.m_read_integer_numbers = true; - lexerConfig.m_read_floating_point_numbers = true; + lexerConfig.m_read_floating_point_numbers = false; const auto lexer = std::make_unique(m_comment_proxy.get(), std::move(lexerConfig)); const auto parser = std::make_unique(lexer.get(), m_acceptor);