![]() |
Blamite Game Engine - Guerilla (Library)
00386.06.16.23.0646.blamite
The tag editor for the Blamite Game Engine.
|
Class representing a plugin field. More...
#include <fields.h>
Public Member Functions | |
BlamPluginField (BlamPlugin *_plugin, BlamTagFieldType _type) | |
Constructs a new plugin field. More... | |
BlamPluginField (BlamPluginField *_old_field) | |
Constructs a new plugin field. More... | |
BlamTagFieldType | GetType () |
Retrieves the type of this field. More... | |
BlamPlugin * | GetPlugin () |
Retrieves the plugin this field is associated with. More... | |
virtual BlamTagField * | GenerateTagField (BlamTag *tag) |
Generates a new tag field from this plugin field. More... | |
virtual BlamTagField * | GenerateTagField (BlamTagField *existing_tag_field) |
Generates a new tag field from this plugin field. More... | |
virtual BlamTagField * | GenerateTagField (BlamTag *tag, void *address) |
Generates a new tag field from this plugin field. More... | |
virtual std::string | GenerateXMLString () |
Generates a string representing this plugin field. More... | |
virtual void | UpdateOffsetData (int new_offset) |
Updates any offsets or lengths for the given field. More... | |
virtual std::string | GenerateCppStructString (std::string line_prefix="") |
Generates a string containing C++ code representing this plugin field. More... | |
virtual std::string | GenerateCppClassString (std::string line_prefix="") |
Generates a string containing C++ code representing this plugin field. More... | |
virtual bool | ParseXMLData (rapidxml::xml_node<> *field_node) |
Populates data within the plugin field from an XML node. More... | |
Public Attributes | |
int | offset = 0x0 |
The offset of the field data. More... | |
int | length = 0x0 |
The length of the field data. More... | |
bool | visible = true |
Whether or not the field is visible. More... | |
std::string | display_name = "" |
The display name of the field. More... | |
std::string | description = "" |
An optional description of the field. More... | |
std::string | field_id = "" |
The ID of the field. More... | |
std::string | input_hint = "" |
An additional piece of short text that can be used to suggest valid input for a field. More... | |
bool | require_unused_visible = false |
If enabled, this field will only be visible when "Show Unused Fields" is enabled. More... | |
Class representing a plugin field.
Plugin fields are used to store additional, non-data information related to a tag field. This information can include things display names, descriptions, and visibility. It also stores the offset and length of the data - which is required for tag compilation.
BlamPluginField::BlamPluginField | ( | BlamPlugin * | _plugin, |
BlamTagFieldType | _type | ||
) |
Constructs a new plugin field.
_plugin | - The plugin this field should be associated with. |
_type | - The type of the field. |
BlamPluginField::BlamPluginField | ( | BlamPluginField * | _old_field | ) |
Constructs a new plugin field.
_old_field | - The old field to load data from. Becomes invalid after construction. |
|
virtual |
Generates a string containing C++ code representing this plugin field.
This method will generate a string containing C++ code that is intended for use within the BlamTagClass class. This class is used by the game engine to store a tag class layout, allowing for in-engine tools to present a tag data editing UI among other things.
line_prefix | - A string that should be placed before each line, such as a certain amount of indentation spaces. |
Reimplemented in BlamPluginField_Block, BlamPluginField_Comment, BlamPluginField_Bitfield, BlamPluginField_Enum, BlamPluginField_Tagref, BlamPluginField_Ascii, BlamPluginField_Vector, BlamPluginField_Color, BlamPluginField_Dataref, BlamPluginField_Float32, and BlamPluginField_Int.
|
virtual |
Generates a string containing C++ code representing this plugin field.
This method will generate a string containing C++ code that is intended for use within the tag class data structure. This is intended to be used when exporting a tag class to C++ code.
line_prefix | - A string that should be placed before each line, such as a certain amount of indentation spaces. |
Reimplemented in BlamPluginField_Block, BlamPluginField_Bitfield, BlamPluginField_Comment, BlamPluginField_Enum, BlamPluginField_Tagref, BlamPluginField_Ascii, BlamPluginField_Vector, BlamPluginField_Color, BlamPluginField_Dataref, BlamPluginField_Float32, and BlamPluginField_Int.
|
virtual |
Generates a new tag field from this plugin field.
With this overload, a brand new tag field is created with no value.
tag | - The tag the new field should belong to. |
Reimplemented in BlamPluginField_Block, BlamPluginField_Bitfield, BlamPluginField_Comment, BlamPluginField_Enum, BlamPluginField_Tagref, BlamPluginField_Ascii, BlamPluginField_Vector, BlamPluginField_Color, BlamPluginField_Dataref, BlamPluginField_Float32, and BlamPluginField_Int.
|
virtual |
Generates a new tag field from this plugin field.
With this overload, a new field is created and its value(s) are read from the tag data. This should only be used when reading binary (compiled) tag files.
tag | - The tag the new field should belong to. |
address | - The address of the field value. |
Reimplemented in BlamPluginField_Block, BlamPluginField_Bitfield, BlamPluginField_Enum, BlamPluginField_Tagref, BlamPluginField_Ascii, BlamPluginField_Vector, BlamPluginField_Color, BlamPluginField_Dataref, BlamPluginField_Float32, and BlamPluginField_Int.
|
virtual |
Generates a new tag field from this plugin field.
With this overload, the tag field remains unchanged but has this plugin field assigned to it.
existing_tag_field | - The existing tag field to associate this plugin field with. |
existing_tag_field
.
|
virtual |
Generates a string representing this plugin field.
Reimplemented in BlamPluginField_Block, BlamPluginField_Bitfield, BlamPluginField_Comment, and BlamPluginField_Enum.
BlamPlugin * BlamPluginField::GetPlugin | ( | ) |
Retrieves the plugin this field is associated with.
BlamTagFieldType BlamPluginField::GetType | ( | ) |
Retrieves the type of this field.
See BlamTagFieldType for details.
|
virtual |
Populates data within the plugin field from an XML node.
This is intended for use when loading a plugin from an XML document.
field_node | - Pointer to the XML node to parse plugin field data from. |
true
if all required field data was parsed, otherwise returns false
. If this returns false
, this field should be deleted and should NOT be added to the plugin - as this indicates an issue with the original plugin file. Reimplemented in BlamPluginField_Block, BlamPluginField_Comment, BlamPluginField_Bitfield, BlamPluginField_Enum, and BlamPluginField_Tagref.
|
virtual |
Updates any offsets or lengths for the given field.
In most cases, this simply updates the offset field to the new value. However, in some cases, additional steps may need to be performed, such as recalculating the entry size of a block. This method will also perform these operations as needed, depending on the plugin field type.
new_offset | - The new offset for the plugin field. |
Reimplemented in BlamPluginField_Block.
std::string BlamPluginField::description = "" |
An optional description of the field.
std::string BlamPluginField::display_name = "" |
The display name of the field.
std::string BlamPluginField::field_id = "" |
The ID of the field.
std::string BlamPluginField::input_hint = "" |
An additional piece of short text that can be used to suggest valid input for a field.
int BlamPluginField::length = 0x0 |
The length of the field data.
int BlamPluginField::offset = 0x0 |
The offset of the field data.
bool BlamPluginField::require_unused_visible = false |
If enabled, this field will only be visible when "Show Unused Fields" is enabled.
bool BlamPluginField::visible = true |
Whether or not the field is visible.