Elaztek Developer Hub
Blamite Game Engine - Guerilla (Library)  00386.06.16.23.0646.blamite
The tag editor for the Blamite Game Engine.
BlamPlugin Class Reference

Class representing a Plugin. More...

#include <tags.h>

Public Member Functions

 BlamPlugin (std::string _file_path)
 Prepares a new plugin for load. More...
 
 ~BlamPlugin ()
 Destroys the plugin data and releases all field data. More...
 
BlamResult LoadFromDisk ()
 Loads the plugin XML document from disk. More...
 
int GetVersion ()
 Retrieves the current revision of the plugin. More...
 
BlamTagCreateNewTag ()
 Creates a new tag using the plugin. More...
 
BlamTagCreateNewTag (std::string filename)
 Creates a new tag using the plugin. More...
 
BlamPluginFieldGetField (std::string id)
 Attempts to locate a field with a given ID. More...
 
BlamPluginFieldGetField (std::string id, BlamTagFieldType type)
 Attempts to locate a field with a given ID and type. More...
 
void RecalculateFieldData ()
 Recalculates all offsets and lengths for the plugin. More...
 
bool SavePlugin (bool recalculate_field_data=true)
 Saves the plugin file back to disk. More...
 
bool IsBuiltIn ()
 Checks if the plugin is a built-in plugin. More...
 
bool ExportPluginToCpp ()
 Exports the plugin file to the appropriate C++ source and header files. More...
 
BlamPluginFieldParseField (rapidxml::xml_node<> *field_node)
 Attempts to parse an XML node as a plugin field. More...
 

Public Attributes

std::string class_name_long = ""
 The long class name. Ex: scenario. Can be any length. More...
 
std::string class_name_short = ""
 The short class name. Ex: scnr. Must be 4 characters or fewer. More...
 
int base_size = 0
 The base size of the tag. More...
 
int fieldset_version = 0
 The fieldset version of the tag. More...
 
std::vector< BlamRevisionrevisions = std::vector<BlamRevision>()
 The list of revisions contained within this plugin. More...
 
std::vector< BlamPluginField * > fields = std::vector<BlamPluginField*>()
 The list of fields contained within this plugin. More...
 
std::string file_path = ""
 The path to the plugin file. More...
 
bool valid = true
 Whether or not the plugin was able to be loaded. More...
 

Detailed Description

Class representing a Plugin.

Plugins are XML files that contain tag layout information, additional non-data fields (such as comments), tooltips, and the needed information in order to compile a tag for use with the game engine. They are a concept created by the Halo modding community and are quite useful in this context as well.

Constructor & Destructor Documentation

◆ BlamPlugin()

BlamPlugin::BlamPlugin ( std::string  _file_path)

Prepares a new plugin for load.

Parameters
_file_path- The path to the plugin file.

◆ ~BlamPlugin()

BlamPlugin::~BlamPlugin ( )

Destroys the plugin data and releases all field data.

Member Function Documentation

◆ CreateNewTag() [1/2]

BlamTag * BlamPlugin::CreateNewTag ( )

Creates a new tag using the plugin.

Returns
A pointer to the newly created tag.
+ Here is the caller graph for this function:

◆ CreateNewTag() [2/2]

BlamTag * BlamPlugin::CreateNewTag ( std::string  filename)

Creates a new tag using the plugin.

Parameters
filename- The new filename of the tag.
Returns
A pointer to the newly created tag.
+ Here is the call graph for this function:

◆ ExportPluginToCpp()

bool BlamPlugin::ExportPluginToCpp ( )

Exports the plugin file to the appropriate C++ source and header files.

The files generated from this are intended for use within the game engine and/or engine extensions.

Returns
true if the C++ files were generated successfully, otherwise returns false.
+ Here is the call graph for this function:

◆ GetField() [1/2]

BlamPluginField * BlamPlugin::GetField ( std::string  id)

Attempts to locate a field with a given ID.

Parameters
id- The ID of the desired field.
Returns
The matching field if one was found, otherwise returns nullptr.
+ Here is the caller graph for this function:

◆ GetField() [2/2]

BlamPluginField * BlamPlugin::GetField ( std::string  id,
BlamTagFieldType  type 
)

Attempts to locate a field with a given ID and type.

Parameters
id- The ID of the desired field.
type- The type of the desired field.
Returns
The matching field if one was found, otherwise returns nullptr.

◆ GetVersion()

int BlamPlugin::GetVersion ( )

Retrieves the current revision of the plugin.

Returns
The plugin version.
+ Here is the caller graph for this function:

◆ IsBuiltIn()

bool BlamPlugin::IsBuiltIn ( )

Checks if the plugin is a built-in plugin.

Built-in plugins refer to plugins which are shipped with the Editing Kit. They are typically not meant to be modified, and certain editing features of these plugins should be disabled. Instead, any modifications should be done to a copy of the plugin.

Returns
true if the plugin is built-in, otherwise returns false.

◆ LoadFromDisk()

BlamResult BlamPlugin::LoadFromDisk ( )

Loads the plugin XML document from disk.

Returns
#BlamResult::Success_OK if the plugin was loaded successfully, otherwise returns an error code.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ParseField()

BlamPluginField * BlamPlugin::ParseField ( rapidxml::xml_node<> *  field_node)

Attempts to parse an XML node as a plugin field.

Parameters
field_node- The XML node to parse.
Returns
Pointer to the parsed plugin field. If the field could not be parsed, then nullptr is returned.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RecalculateFieldData()

void BlamPlugin::RecalculateFieldData ( )

Recalculates all offsets and lengths for the plugin.

This function should typically only be called from the Tag Designer. This will iterate through the entire plugin's field list and update all offsets and lengths where appropriate to ensure the plugin will be valid for compilation.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SavePlugin()

bool BlamPlugin::SavePlugin ( bool  recalculate_field_data = true)

Saves the plugin file back to disk.

This should typically only be done from the Tag Designer.

Parameters
recalculate_field_data- Whether or not to recalculate field data before saving. This does not need to be done if you have already called RecalculateFieldData directly.
Returns
true if the plugin file was saved successfully, otherwise returns false.
+ Here is the call graph for this function:

Member Data Documentation

◆ base_size

int BlamPlugin::base_size = 0

The base size of the tag.

◆ class_name_long

std::string BlamPlugin::class_name_long = ""

The long class name. Ex: scenario. Can be any length.

◆ class_name_short

std::string BlamPlugin::class_name_short = ""

The short class name. Ex: scnr. Must be 4 characters or fewer.

◆ fields

std::vector<BlamPluginField*> BlamPlugin::fields = std::vector<BlamPluginField*>()

The list of fields contained within this plugin.

◆ fieldset_version

int BlamPlugin::fieldset_version = 0

The fieldset version of the tag.

◆ file_path

std::string BlamPlugin::file_path = ""

The path to the plugin file.

◆ revisions

std::vector<BlamRevision> BlamPlugin::revisions = std::vector<BlamRevision>()

The list of revisions contained within this plugin.

◆ valid

bool BlamPlugin::valid = true

Whether or not the plugin was able to be loaded.


The documentation for this class was generated from the following files: