Elaztek Developer Hub
Blamite Game Engine - Guerilla (Library)  00402.09.29.23.0627.blamite
The tag editor for the Blamite Game Engine.
bitfield.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 #include "../fields.h"
6 
7 #ifdef GUERILLA_LIB_EXPORTS
8 #define GUERILLA_LIB_API __declspec(dllexport)
9 #else
10 #define GUERILLA_LIB_API __declspec(dllimport)
11 #endif
12 
19 {
20  std::string id;
21  std::string name;
22  int index;
23 };
24 
29 {
30  std::string id;
31  bool value;
32 };
33 
40 {
41 public:
42  std::vector<BlamBitfieldBitInfo> bits;
43 
50 
51  std::string GenerateXMLString() override;
52  std::string GenerateCppStructString(std::string line_prefix = "", bool generate_doxygen_comments = true) override;
53  std::string GenerateCppClassString(std::string line_prefix = "") override;
54  bool ParseXMLData(rapidxml::xml_node<>* field_node) override;
55  BlamTagField* GenerateTagField(BlamTag* tag, void* address) override;
56  BlamTagField* GenerateTagField(BlamTag* tag) override;
57 };
58 
65 {
66 public:
67  std::vector<BlamBitfieldBitData> bits;
68 
75  BlamTagField_Bitfield(BlamTag* _tag, BlamTagFieldType _type);
76 
77  std::string GenerateXMLString();
78  std::vector<char> GetValueAsBytes();
79 };
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
GUERILLA_LIB_API
#define GUERILLA_LIB_API
Definition: bitfield.h:10
BlamTagField_Bitfield::bits
std::vector< BlamBitfieldBitData > bits
The list of bits within this bitfield.
Definition: bitfield.h:67
BlamPluginField::GenerateXMLString
virtual std::string GenerateXMLString()
Generates a string representing this plugin field.
Definition: BlamPluginField.cpp:61
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
BlamTagField_Ascii::BlamTagField_Ascii
BlamTagField_Ascii(BlamTag *_tag)
Constructs a new ascii field.
Definition: BlamTagField_Ascii.cpp:3
BlamBitfieldBitData::id
std::string id
The ID of the bit.
Definition: bitfield.h:30
BlamBitfieldBitInfo::index
int index
The bit's index.
Definition: bitfield.h:22
BlamPluginField_Ascii::GenerateTagField
BlamTagField * GenerateTagField(BlamTag *tag, void *address) override
Generates a new tag field from this plugin field.
Definition: BlamPluginField_Ascii.cpp:27
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
BlamBitfieldBitInfo::id
std::string id
The ID of the bit.
Definition: bitfield.h:20
BlamPluginField::display_name
std::string display_name
The display name of the field.
Definition: fields.h:81
BlamTagField_Bitfield
Clas representing a bitfield tag field.
Definition: bitfield.h:64
BlamPluginField
Class representing a plugin field.
Definition: fields.h:71
BlamTag
Class representing a Tag.
Definition: tags.h:277
BlamBitfieldBitData::value
bool value
The bit's value.
Definition: bitfield.h:31
BlamPluginField::ParseXMLData
virtual bool ParseXMLData(rapidxml::xml_node<> *field_node)
Populates data within the plugin field from an XML node.
Definition: BlamPluginField.cpp:106
BlamTagField_Ascii::GenerateXMLString
std::string GenerateXMLString()
Generates a string with the field ID and value, ready to be written to an XML file.
Definition: BlamTagField_Ascii.cpp:8
BlamTagField_Ascii::GetValueAsBytes
std::vector< char > GetValueAsBytes()
Retrieves the field value as a list of bytes.
Definition: BlamTagField_Ascii.cpp:13
BlamBitfieldBitInfo::name
std::string name
The display name of the bit.
Definition: bitfield.h:21
BlamPluginField::field_id
std::string field_id
The ID of the field.
Definition: fields.h:83
BlamPluginField_Ascii::GenerateCppClassString
std::string GenerateCppClassString(std::string line_prefix="") override
Generates a string containing C++ code representing this plugin field.
Definition: BlamPluginField_Ascii.cpp:22
BlamPluginField_Ascii::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_Ascii.cpp:10
BlamPluginField_Bitfield
Clas representing a bitfield plugin field.
Definition: bitfield.h:39
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
BlamPluginField_Bitfield::bits
std::vector< BlamBitfieldBitInfo > bits
The list of bits within this bitfield.
Definition: bitfield.h:42
BlamBitfieldBitData
Data structure containing data for a bitfield bit.
Definition: bitfield.h:28
BlamPluginField_Ascii::BlamPluginField_Ascii
BlamPluginField_Ascii(BlamPluginField *base_field)
Definition: BlamPluginField_Ascii.cpp:5
ascii.h
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::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
BlamTagField_Ascii::value
std::string value
The value of the field.
Definition: ascii.h:39
BlamBitfieldBitInfo
Data structure containing extra data for a bitfield bit.
Definition: bitfield.h:18
BlamTagField_Ascii
Class representing an ascii tag field.
Definition: ascii.h:34