SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Toggle main menu visibility
Loading...
Searching...
No Matches
CmdSeq.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <filesystem>
4
#include <string>
5
#include <vector>
6
7
#include <
sourcepp/Math.h
>
8
9
namespace
toolpp
{
10
11
class
CmdSeq
{
12
public
:
13
struct
Command
{
14
bool
enabled
;
15
16
enum class
Special
: int32_t {
17
NONE
= 0,
18
CHANGE_DIRECTORY
= 256,
19
COPY_FILE
= 257,
20
DELETE_FILE
= 258,
21
RENAME_FILE
= 259,
22
// This used to be a different thing - Strata changes it to be an alias for 261
23
//COPY_FILE_IF_EXISTS_ALT = 260,
24
COPY_FILE_IF_EXISTS
= 261,
25
}
special
;
26
static
constexpr
auto
SPECIAL_COPY_FILE_IF_EXISTS_ALIAS
=
static_cast<
Special
>
(260);
27
28
std::string
executable
;
29
std::string
arguments
;
30
31
bool
ensureFileExists
;
32
std::string
pathToTheoreticallyExistingFile
;
33
34
bool
useProcessWindow
;
35
36
bool
waitForKeypress
;
37
38
[[nodiscard]]
static
std::string
getSpecialDisplayNameFor
(
Special
special
);
39
40
[[nodiscard]] std::string
getExecutableDisplayName
()
const
;
41
};
42
43
struct
Sequence
{
44
std::string
name
;
45
std::vector<Command>
commands
;
46
};
47
48
enum class
Type
{
49
INVALID
,
50
BINARY
,
51
KEYVALUES_HPP
,
52
KEYVALUES_STRATA
,
53
};
54
55
explicit
CmdSeq
(
Type
type_);
56
57
explicit
CmdSeq
(
const
std::filesystem::path& cmdSeqPath);
58
59
[[nodiscard]]
explicit
operator
bool()
const
;
60
61
[[nodiscard]]
Type
getType
()
const
;
62
63
void
setType
(
Type
type_);
64
65
[[nodiscard]]
float
getBinaryVersion
()
const
;
66
67
void
setBinaryVersion
(
bool
isV02);
68
69
[[nodiscard]] std::vector<Sequence>&
getSequences
();
70
71
[[nodiscard]]
const
std::vector<Sequence>&
getSequences
()
const
;
72
73
[[nodiscard]] std::vector<std::byte>
bake
()
const
;
74
75
bool
bake
(
const
std::filesystem::path& path)
const
;
// NOLINT(*-use-nodiscard)
76
77
protected
:
78
void
parseBinary
(
const
std::filesystem::path& path);
79
80
void
parseKeyValuesHPP
(
const
std::filesystem::path& path);
81
82
void
parseKeyValuesStrata
(
const
std::filesystem::path& path);
83
84
[[nodiscard]] std::vector<std::byte>
bakeBinary
()
const
;
85
86
[[nodiscard]] std::vector<std::byte>
bakeKeyValuesHPP
()
const
;
87
88
[[nodiscard]] std::vector<std::byte>
bakeKeyValuesStrata
()
const
;
89
90
Type
type
;
91
float
version
;
92
std::vector<Sequence>
sequences
;
93
};
94
95
}
// namespace toolpp
Math.h
toolpp::CmdSeq::parseKeyValuesHPP
void parseKeyValuesHPP(const std::filesystem::path &path)
Definition
CmdSeq.cpp:163
toolpp::CmdSeq::bake
std::vector< std::byte > bake() const
Definition
CmdSeq.cpp:310
toolpp::CmdSeq::getBinaryVersion
float getBinaryVersion() const
Definition
CmdSeq.cpp:117
toolpp::CmdSeq::setBinaryVersion
void setBinaryVersion(bool isV02)
Definition
CmdSeq.cpp:121
toolpp::CmdSeq::getType
Type getType() const
Definition
CmdSeq.cpp:109
toolpp::CmdSeq::parseKeyValuesStrata
void parseKeyValuesStrata(const std::filesystem::path &path)
Definition
CmdSeq.cpp:189
toolpp::CmdSeq::CmdSeq
CmdSeq(Type type_)
Definition
CmdSeq.cpp:65
toolpp::CmdSeq::Type
Type
Definition
CmdSeq.h:48
toolpp::CmdSeq::Type::KEYVALUES_HPP
@ KEYVALUES_HPP
Definition
CmdSeq.h:51
toolpp::CmdSeq::Type::KEYVALUES_STRATA
@ KEYVALUES_STRATA
Definition
CmdSeq.h:52
toolpp::CmdSeq::Type::BINARY
@ BINARY
Definition
CmdSeq.h:50
toolpp::CmdSeq::Type::INVALID
@ INVALID
Definition
CmdSeq.h:49
toolpp::CmdSeq::setType
void setType(Type type_)
Definition
CmdSeq.cpp:113
toolpp::CmdSeq::bakeKeyValuesStrata
std::vector< std::byte > bakeKeyValuesStrata() const
Definition
CmdSeq.cpp:284
toolpp::CmdSeq::getSequences
std::vector< Sequence > & getSequences()
Definition
CmdSeq.cpp:219
toolpp::CmdSeq::parseBinary
void parseBinary(const std::filesystem::path &path)
Definition
CmdSeq.cpp:129
toolpp::CmdSeq::type
Type type
Definition
CmdSeq.h:90
toolpp::CmdSeq::sequences
std::vector< Sequence > sequences
Definition
CmdSeq.h:92
toolpp::CmdSeq::bakeKeyValuesHPP
std::vector< std::byte > bakeKeyValuesHPP() const
Definition
CmdSeq.cpp:262
toolpp::CmdSeq::version
float version
Definition
CmdSeq.h:91
toolpp::CmdSeq::bakeBinary
std::vector< std::byte > bakeBinary() const
Definition
CmdSeq.cpp:227
toolpp
Definition
CmdSeq.h:9
toolpp::CmdSeq::Command
Definition
CmdSeq.h:13
toolpp::CmdSeq::Command::ensureFileExists
bool ensureFileExists
Definition
CmdSeq.h:31
toolpp::CmdSeq::Command::executable
std::string executable
Definition
CmdSeq.h:28
toolpp::CmdSeq::Command::pathToTheoreticallyExistingFile
std::string pathToTheoreticallyExistingFile
Definition
CmdSeq.h:32
toolpp::CmdSeq::Command::enabled
bool enabled
Definition
CmdSeq.h:14
toolpp::CmdSeq::Command::getExecutableDisplayName
std::string getExecutableDisplayName() const
Definition
CmdSeq.cpp:58
toolpp::CmdSeq::Command::waitForKeypress
bool waitForKeypress
Definition
CmdSeq.h:36
toolpp::CmdSeq::Command::special
enum toolpp::CmdSeq::Command::Special special
toolpp::CmdSeq::Command::SPECIAL_COPY_FILE_IF_EXISTS_ALIAS
static constexpr auto SPECIAL_COPY_FILE_IF_EXISTS_ALIAS
Definition
CmdSeq.h:26
toolpp::CmdSeq::Command::Special
Special
Definition
CmdSeq.h:16
toolpp::CmdSeq::Command::Special::DELETE_FILE
@ DELETE_FILE
Definition
CmdSeq.h:20
toolpp::CmdSeq::Command::Special::COPY_FILE
@ COPY_FILE
Definition
CmdSeq.h:19
toolpp::CmdSeq::Command::Special::COPY_FILE_IF_EXISTS
@ COPY_FILE_IF_EXISTS
Definition
CmdSeq.h:24
toolpp::CmdSeq::Command::Special::NONE
@ NONE
Definition
CmdSeq.h:17
toolpp::CmdSeq::Command::Special::CHANGE_DIRECTORY
@ CHANGE_DIRECTORY
Definition
CmdSeq.h:18
toolpp::CmdSeq::Command::Special::RENAME_FILE
@ RENAME_FILE
Definition
CmdSeq.h:21
toolpp::CmdSeq::Command::arguments
std::string arguments
Definition
CmdSeq.h:29
toolpp::CmdSeq::Command::useProcessWindow
bool useProcessWindow
Definition
CmdSeq.h:34
toolpp::CmdSeq::Command::getSpecialDisplayNameFor
static std::string getSpecialDisplayNameFor(Special special)
Definition
CmdSeq.cpp:40
toolpp::CmdSeq::Sequence
Definition
CmdSeq.h:43
toolpp::CmdSeq::Sequence::name
std::string name
Definition
CmdSeq.h:44
toolpp::CmdSeq::Sequence::commands
std::vector< Command > commands
Definition
CmdSeq.h:45
include
toolpp
CmdSeq.h
Generated on
for SourcePP by
1.17.0