![]() |
Blamite Game Engine - Guerilla (Library)
00386.06.16.23.0646.blamite
The tag editor for the Blamite Game Engine.
|
Class representing a block plugin field. More...
#include <block.h>
Public Member Functions | |
BlamPluginField_Block (BlamPluginField *base_field) | |
Constructs a new block plugin field from an existing generic plugin field. More... | |
~BlamPluginField_Block () | |
BlamPluginField * | GetField (std::string id) |
Locates a field within the entry template with a specified ID. More... | |
BlamPluginField * | GetField (std::string id, BlamTagFieldType type) |
Locates a field within the entry template with a specified ID and type. More... | |
void | UpdateOffsetData (int new_offset) override |
Updates any offsets or lengths for the given field. More... | |
std::string | GenerateXMLString () override |
Generates a string representing this plugin field. More... | |
std::string | GenerateCppStructString (std::string line_prefix="") override |
Generates a string containing C++ code representing this plugin field. More... | |
std::string | GenerateCppStructString (std::string line_prefix="", bool include_comment_descriptions=true, bool include_comments=true) |
std::string | GenerateCppClassString (std::string line_prefix="") override |
Generates a string containing C++ code representing this plugin field. More... | |
bool | ParseXMLData (rapidxml::xml_node<> *field_node) override |
Populates data within the plugin field from an XML node. More... | |
BlamTagField * | GenerateTagField (BlamTag *tag, void *address) override |
Generates a new tag field from this plugin field. More... | |
BlamTagField * | GenerateTagField (BlamTag *tag) override |
Generates a new tag field from this plugin field. More... | |
![]() | |
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 (BlamTagField *existing_tag_field) |
Generates a new tag field from this plugin field. More... | |
Public Attributes | |
int | entry_size = 0 |
The size of a each block entry. More... | |
std::vector< BlamPluginField * > | fields |
The list of fields within the tag block. More... | |
int | c_entry_count = 0 |
The entry count. Used in tag decompilation. More... | |
int | c_entry_offset = 0 |
The offset of the entry data. Used in tag decompilation. More... | |
![]() | |
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 block plugin field.
Tag blocks act as a container for other tag fields. Each block can contain a series of "entries". Each entry will always have the same fields available (and thus be the same size), but the values of each field within an entry can differ.
Plugin block fields store the list of valid fields for any entries, as well as the size of each entry.
BlamPluginField_Block::BlamPluginField_Block | ( | BlamPluginField * | base_field | ) |
Constructs a new block plugin field from an existing generic plugin field.
base_field | - The base plugin data to use for this field. |
BlamPluginField_Block::~BlamPluginField_Block | ( | ) |
|
overridevirtual |
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 from BlamPluginField.
|
overridevirtual |
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 from BlamPluginField.
std::string BlamPluginField_Block::GenerateCppStructString | ( | std::string | line_prefix = "" , |
bool | include_comment_descriptions = true , |
||
bool | include_comments = true |
||
) |
|
overridevirtual |
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 from BlamPluginField.
|
overridevirtual |
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 from BlamPluginField.
|
overridevirtual |
Generates a string representing this plugin field.
Reimplemented from BlamPluginField.
BlamPluginField * BlamPluginField_Block::GetField | ( | std::string | id | ) |
Locates a field within the entry template with a specified ID.
field_id | - The ID of the desired field. |
nullptr
. BlamPluginField * BlamPluginField_Block::GetField | ( | std::string | id, |
BlamTagFieldType | type | ||
) |
Locates a field within the entry template with a specified ID and type.
field_id | - The ID of the desired field. |
field_type | - The type of the desired field. |
nullptr
.
|
overridevirtual |
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 from BlamPluginField.
|
overridevirtual |
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 from BlamPluginField.
int BlamPluginField_Block::c_entry_count = 0 |
The entry count. Used in tag decompilation.
int BlamPluginField_Block::c_entry_offset = 0 |
The offset of the entry data. Used in tag decompilation.
int BlamPluginField_Block::entry_size = 0 |
The size of a each block entry.
std::vector<BlamPluginField*> BlamPluginField_Block::fields |
The list of fields within the tag block.