Elaztek Developer Hub
Blamite Game Engine - blam!  00310.02.05.21.0336.blamite
The core library for the Blamite Game Engine.
BlamTagClass Class Reference

Class representing a tag class. More...

#include <tagclass.h>

+ Inheritance diagram for BlamTagClass:

Public Member Functions

void ShowImPropertyEditor ()
 Shows a series of ImGUI controls used to modify tag data with a simple UI. More...
 
void SetMemoryLocation (void *address)
 Sets the address and size of the tag that this class should be applied to. More...
 
void GeneratePluginFile ()
 Generates a plugin file from the given tag. More...
 

Public Attributes

std::string class_name_long
 The longer class name. Typically shown alongside short name for user-friendliness. More...
 
std::string class_name_short
 The short, 4-character name of the tag class. More...
 
int version
 The tag class version. Should be incremented any time a tag class is modified whatsoever. More...
 
std::vector< BlamTagClassRevisionrevisions
 List of all tag class revisions. Does not get written to tags, but is included in plugin files. More...
 
std::vector< BlamPluginField * > fields
 A series of tag fields that store the layout of the tag. More...
 
int tag_size
 The size of the tag's data. Used on loading/writing tag files.
More...
 
void * tag_address
 The memory address of a tag. Used when a tag class is used in the context of a tag. More...
 

Detailed Description

Class representing a tag class.

Tag class objects are used to store layout information for a given tag structure. When implementing a new tag class, care must be taken to ensure that the layout for the BlamTagClass object EXACTLY matches the structure in the tag structure.

Tag data is read/written directly treating the tag struct as a block of memory. If the layout doesn't exactly match, then fields will be read/written to the incorrect places and the tag will become corrupt.

Member Function Documentation

◆ GeneratePluginFile()

void BlamTagClass::GeneratePluginFile ( )

Generates a plugin file from the given tag.

◆ SetMemoryLocation()

void BlamTagClass::SetMemoryLocation ( void *  address)

Sets the address and size of the tag that this class should be applied to.

Parameters
address- The start address of the tag structure.

◆ ShowImPropertyEditor()

void BlamTagClass::ShowImPropertyEditor ( )

Shows a series of ImGUI controls used to modify tag data with a simple UI.

Note
SetMemoryLocation() MUST be called before calling this.

Member Data Documentation

◆ class_name_long

std::string BlamTagClass::class_name_long

The longer class name. Typically shown alongside short name for user-friendliness.

◆ class_name_short

std::string BlamTagClass::class_name_short

The short, 4-character name of the tag class.

◆ fields

std::vector<BlamPluginField*> BlamTagClass::fields

A series of tag fields that store the layout of the tag.

◆ revisions

std::vector<BlamTagClassRevision> BlamTagClass::revisions

List of all tag class revisions. Does not get written to tags, but is included in plugin files.

◆ tag_address

void* BlamTagClass::tag_address

The memory address of a tag. Used when a tag class is used in the context of a tag.

◆ tag_size

int BlamTagClass::tag_size

The size of the tag's data. Used on loading/writing tag files.

◆ version

int BlamTagClass::version

The tag class version. Should be incremented any time a tag class is modified whatsoever.


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