Elaztek Developer Hub
Blamite Game Engine - Guerilla (Library)  00386.06.16.23.0646.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 
42 
43  std::string GenerateXMLString() override;
44  std::string GenerateCppStructString(std::string line_prefix = "") override;
45  std::string GenerateCppClassString(std::string line_prefix = "") override;
46  bool ParseXMLData(rapidxml::xml_node<>* field_node) override;
47  BlamTagField* GenerateTagField(BlamTag* tag, void* address) override;
48  BlamTagField* GenerateTagField(BlamTag* tag) override;
49 };
50 
59 {
60 public:
61  std::string current_option = "";
62 
70 
71  std::string GenerateXMLString();
72  std::vector<char> GetValueAsBytes();
73 };
BlamTagField
Class representing a tag field.
Definition: fields.h:202
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:40
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
BlamTagFieldType::Enum8
@ Enum8
Indicates that the field is an Enum8.
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:60
BlamTagField::GetTag
BlamTag * GetTag()
Retrieves the tag associated with this field.
Definition: BlamTagField.cpp:24
BlamTagField::field_id
std::string field_id
The ID of this field.
Definition: fields.h:213
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:49
BlamPluginField::GetType
BlamTagFieldType GetType()
Retrieves the type of this field.
Definition: BlamPluginField.cpp:30
BlamTagFieldType::Enum16
@ Enum16
Indicates that the field is an Enum16.
BlamPluginField_Enum::GenerateXMLString
std::string GenerateXMLString() override
Generates a string representing this plugin field.
Definition: BlamPluginField_Enum.cpp:13
BlamPluginField_Enum::GenerateTagField
BlamTagField * GenerateTagField(BlamTag *tag, void *address) override
Generates a new tag field from this plugin field.
Definition: BlamPluginField_Enum.cpp:154
BlamTagFieldType
BlamTagFieldType
Enumerator containing all possible tag field types.
Definition: fields.h:24
GUERILLA_LIB_API
#define GUERILLA_LIB_API
Definition: enum.h:11
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:190
BlamPlugin::file_path
std::string file_path
The path to the plugin file.
Definition: tags.h:107
BlamPluginField::display_name
std::string display_name
The display name of the field.
Definition: fields.h:70
BlamPluginField
Class representing a plugin field.
Definition: fields.h:60
BlamTag
Class representing a Tag.
Definition: tags.h:232
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:61
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:83
BlamPluginField::visible
bool visible
Whether or not the field is visible.
Definition: fields.h:69
BlamPluginField::GenerateCppStructString
virtual std::string GenerateCppStructString(std::string line_prefix="")
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField.cpp:74
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:84
BlamTagField_Enum
Class representing a tag enum field.
Definition: enum.h:58
BlamPluginField::field_id
std::string field_id
The ID of the field.
Definition: fields.h:72
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:7
BlamTagField::plugin_field
BlamPluginField * plugin_field
The plugin data associated with this field, if any.
Definition: fields.h:212
BlamPluginField::description
std::string description
An optional description of the field.
Definition: fields.h:71
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:8
BlamPluginField_Enum::GenerateCppStructString
std::string GenerateCppStructString(std::string line_prefix="") override
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField_Enum.cpp:32
BlamPluginField::GetPlugin
BlamPlugin * GetPlugin()
Retrieves the plugin this field is associated with.
Definition: BlamPluginField.cpp:35
BlamPluginField::offset
int offset
The offset of the field data.
Definition: fields.h:67
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:79
BlamPluginField::length
int length
The length of the field data.
Definition: fields.h:68
BlamTagField::GetValueAsBytes
virtual std::vector< char > GetValueAsBytes()
Retrieves the field value as a list of bytes.
Definition: BlamTagField.cpp:14
BlamTagFieldType::Enum32
@ Enum32
Indicates that the field is an Enum32.
enum.h