Elaztek Developer Hub
Blamite Game Engine - Guerilla (Library)  00402.09.29.23.0627.blamite
The tag editor for the Blamite Game Engine.
enum.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <string>
5 
6 #include "../fields.h"
7 
8 #ifdef GUERILLA_LIB_EXPORTS
9 #define GUERILLA_LIB_API __declspec(dllexport)
10 #else
11 #define GUERILLA_LIB_API __declspec(dllimport)
12 #endif
13 
18 {
19  std::string id = "";
20  std::string name = "";
21  int value = -1;
22 };
23 
32 {
33 public:
34  std::vector<BlamEnumFieldOption> options;
35 
36  bool define_in_global_scope = false;
37  std::string global_enum_name = "";
38 
39  bool bound_to_global_enum = false;
40  std::string bound_enum_id = "";
41  BlamPluginField_Enum* bound_enum = nullptr;
42 
49 
50  std::string GenerateXMLString() override;
51  std::string GenerateCppStructString(std::string line_prefix = "", bool generate_doxygen_comments = true) override;
52  std::string GenerateCppClassString(std::string line_prefix = "") override;
53  bool ParseXMLData(rapidxml::xml_node<>* field_node) override;
54  BlamTagField* GenerateTagField(BlamTag* tag, void* address) override;
55  BlamTagField* GenerateTagField(BlamTag* tag) override;
56 
57  std::string GenerateCppGlobalEnumString(std::string line_prefix = "", bool generate_doxygen_comments = true);
58 
59  std::string GetGlobalEnumName();
60 };
61 
70 {
71 public:
72  std::string current_option = "";
73 
80  BlamTagField_Enum(BlamTag* _tag, BlamTagFieldType _type);
81 
82  std::string GenerateXMLString();
83  std::vector<char> GetValueAsBytes();
84 };
BlamTagField
Class representing a tag field.
Definition: fields.h:231
BlamTagField::GetType
BlamTagFieldType GetType()
Retrieves the type of this field.
Definition: BlamTagField.cpp:19
BlamPluginField::GenerateTagField
virtual BlamTagField * GenerateTagField(BlamTag *tag)
Generates a new tag field from this plugin field.
Definition: BlamPluginField.cpp:41
BlamEnumFieldOption::value
int value
The raw value of the option. This is what is stored within a compiled tag.
Definition: enum.h:21
BlamPluginField_Enum::options
std::vector< BlamEnumFieldOption > options
The list of options within the enum.
Definition: enum.h:34
BlamPluginField_Enum
Class representing a plugin enum field.
Definition: enum.h:31
BlamTagField_Enum::GetValueAsBytes
std::vector< char > GetValueAsBytes()
Retrieves the field value as a list of bytes.
Definition: BlamTagField_Enum.cpp:42
BlamTagField_Enum::GenerateXMLString
std::string GenerateXMLString()
Generates a string with the field ID and value, ready to be written to an XML file.
Definition: BlamTagField_Enum.cpp:11
tags.h
BlamPluginField::GenerateXMLString
virtual std::string GenerateXMLString()
Generates a string representing this plugin field.
Definition: BlamPluginField.cpp:61
BlamTagField::GetTag
BlamTag * GetTag()
Retrieves the tag associated with this field.
Definition: BlamTagField.cpp:24
BlamPluginField::default_value
std::string default_value
The default text value for the field.
Definition: fields.h:86
BlamTagField::field_id
std::string field_id
The ID of this field.
Definition: fields.h:243
BlamPluginField_Enum::GenerateCppClassString
std::string GenerateCppClassString(std::string line_prefix="") override
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField_Enum.cpp:144
BlamPluginField::input_hint
std::string input_hint
An additional piece of short text that can be used to suggest valid input for a field.
Definition: fields.h:84
BlamPluginField::GetType
BlamTagFieldType GetType()
Retrieves the type of this field.
Definition: BlamPluginField.cpp:31
BlamPluginField_Enum::GenerateXMLString
std::string GenerateXMLString() override
Generates a string representing this plugin field.
Definition: BlamPluginField_Enum.cpp:14
BlamPluginField_Enum::GenerateTagField
BlamTagField * GenerateTagField(BlamTag *tag, void *address) override
Generates a new tag field from this plugin field.
Definition: BlamPluginField_Enum.cpp:286
GUERILLA_LIB_API
#define GUERILLA_LIB_API
Definition: enum.h:11
BlamPluginField_Enum::define_in_global_scope
bool define_in_global_scope
Definition: enum.h:36
BlamTagField::GenerateXMLString
virtual std::string GenerateXMLString()
Generates a string with the field ID and value, ready to be written to an XML file.
Definition: BlamTagField.cpp:9
Guerilla::Tags::Fields::GetFieldTypeName
GUERILLA_LIB_API std::string GetFieldTypeName(BlamTagFieldType type)
Generates a string name based on the provided tag field type.
Definition: fields.cpp:235
BlamPlugin::file_path
std::string file_path
The path to the plugin file.
Definition: tags.h:119
BlamPluginField_Enum::GetGlobalEnumName
std::string GetGlobalEnumName()
Definition: BlamPluginField_Enum.cpp:356
BlamPluginField::display_name
std::string display_name
The display name of the field.
Definition: fields.h:81
BlamPluginField
Class representing a plugin field.
Definition: fields.h:71
BlamTag
Class representing a Tag.
Definition: tags.h:277
BlamEnumFieldOption::id
std::string id
The ID of the option.
Definition: enum.h:19
BlamTagField_Enum::current_option
std::string current_option
The ID of the currently selected option.
Definition: enum.h:72
BlamPluginField_Enum::ParseXMLData
bool ParseXMLData(rapidxml::xml_node<> *field_node) override
Populates data within the plugin field from an XML node.
Definition: BlamPluginField_Enum.cpp:178
BlamPluginField_Enum::global_enum_name
std::string global_enum_name
Definition: enum.h:37
BlamPluginField::visible
bool visible
Whether or not the field is visible.
Definition: fields.h:80
BlamTagField::HasPluginField
bool HasPluginField()
Checks whether the field has plugin data available.
Definition: BlamTagField.cpp:34
BlamPluginField::ParseXMLData
virtual bool ParseXMLData(rapidxml::xml_node<> *field_node)
Populates data within the plugin field from an XML node.
Definition: BlamPluginField.cpp:106
BlamPluginField_Enum::GenerateCppGlobalEnumString
std::string GenerateCppGlobalEnumString(std::string line_prefix="", bool generate_doxygen_comments=true)
Definition: BlamPluginField_Enum.cpp:320
BlamTagField_Enum
Class representing a tag enum field.
Definition: enum.h:69
BlamPluginField_Enum::bound_enum
BlamPluginField_Enum * bound_enum
Definition: enum.h:41
Guerilla::Tags::Fields::GetGlobalEnums
GUERILLA_LIB_API std::vector< BlamPluginField * > GetGlobalEnums(std::vector< BlamPluginField * > field_list, bool get_global_parents)
Definition: fields.cpp:387
BlamPluginField::field_id
std::string field_id
The ID of the field.
Definition: fields.h:83
BlamEnumFieldOption::name
std::string name
The display name of the option.
Definition: enum.h:20
Guerilla::Tags::Fields::GetStandardFieldLength
GUERILLA_LIB_API int GetStandardFieldLength(BlamTagFieldType type)
Retrieves the length of a tag field.
Definition: fields.cpp:123
BlamTagField::plugin_field
BlamPluginField * plugin_field
The plugin data associated with this field, if any.
Definition: fields.h:242
BlamPluginField::description
std::string description
An optional description of the field.
Definition: fields.h:82
BlamEnumFieldOption
Data structure representing an enum option.
Definition: enum.h:17
BlamPluginField_Enum::BlamPluginField_Enum
BlamPluginField_Enum(BlamPluginField *base_field)
Constructs a new block plugin field from an existing generic plugin field.
Definition: BlamPluginField_Enum.cpp:9
BlamPluginField::GetPlugin
BlamPlugin * GetPlugin()
Retrieves the plugin this field is associated with.
Definition: BlamPluginField.cpp:36
BlamPluginField::offset
int offset
The offset of the field data.
Definition: fields.h:78
BlamPluginField_Enum::bound_enum_id
std::string bound_enum_id
Definition: enum.h:40
BlamTagField_Enum::BlamTagField_Enum
BlamTagField_Enum(BlamTag *_tag, BlamTagFieldType _type)
Creates a new enum tag field.
Definition: BlamTagField_Enum.cpp:6
BlamPluginField::GenerateCppClassString
virtual std::string GenerateCppClassString(std::string line_prefix="")
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField.cpp:101
BlamPluginField::length
int length
The length of the field data.
Definition: fields.h:79
BlamPluginField_Enum::bound_to_global_enum
bool bound_to_global_enum
Definition: enum.h:39
BlamPluginField::GenerateCppStructString
virtual std::string GenerateCppStructString(std::string line_prefix="", bool generate_doxygen_comments=true)
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField.cpp:96
BlamTagField::GetValueAsBytes
virtual std::vector< char > GetValueAsBytes()
Retrieves the field value as a list of bytes.
Definition: BlamTagField.cpp:14
BlamPluginField_Enum::GenerateCppStructString
std::string GenerateCppStructString(std::string line_prefix="", bool generate_doxygen_comments=true) override
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField_Enum.cpp:69
enum.h