Elaztek Developer Hub
Blamite Game Engine - blam!  00357.06.18.22.0809.blamite
The core library for the Blamite Game Engine.
tags.h File Reference
#include <string>
#include <vector>
#include <Windows.h>
#include <bitset>
#include <Strings/components/diagnostics/errors/errors.h>

Go to the source code of this file.

Classes

class  BlamTagData
 Class used to contain and access tag data. More...
 
struct  tag_block< entry_structure >
 Structure representing a tag block. More...
 
struct  tag_reference
 Structure representing a tag reference. More...
 
struct  data_reference
 Structure representing a data reference. More...
 
struct  bitfield8
 Typedef for a bitfield8 field, used in tag data definitions. More...
 
struct  bitfield16
 Typedef for a bitfield16 field, used in tag data definitions. More...
 
struct  bitfield32
 Typedef for a bitfield32 field, used in tag data definitions. More...
 

Namespaces

 Blam
 Namespace surrounding all major engine components.
 
 Blam::Content
 
 Blam::Content::Tags
 Namespace containing functions related to tag data.
 

Macros

#define BLAM
 
#define BLAM_EXT_API   __declspec(dllimport)
 
#define TAG_BLOCK(name, fields)   struct name##_entry fields; tag_block<name##_entry> name;
 Macro designed to aid in the creation of tag class data structures. More...
 
#define TAG_ENUM(name, ...)   enum name##_enum __VA_ARGS__; name##_enum name;
 
#define TAG_FIELDSET_VERSION   4
 Macro defining the tag fieldset version. More...
 

Typedefs

typedef char ascii[128]
 Typedef for an ascii field, used in tag data definitions. More...
 
typedef char stringid[128]
 Typedef for a stringid field, used in tag data definitions. More...
 
typedef float real
 Typedef for a 'real', aka a float. More...
 

Enumerations

enum  TagOrigin { TagOrigin::BinaryFile, TagOrigin::Memory, TagOrigin::CacheFile }
 Enum used to specify a tag's origin. More...
 

Functions

BLAM void Blam::Content::Tags::ShowImPropertyEditor (void *tag, std::string tag_class)
 Shows an ImGUI editor for a given tag. More...
 
BLAM bool Blam::Content::Tags::RegisterCreatedTag (void *tag, std::string tag_class)
 Registers a tag created in memory, making it available throughout the engine. More...
 
BLAM BlamTagDataBlam::Content::Tags::GetTagData (std::string tag_path)
 Retrieves information for a given tag. More...
 
BLAM void Blam::Content::Tags::CleanupTagData ()
 Releases all memory used by tags. More...
 
BLAM std::vector< BlamTagData > * Blam::Content::Tags::GetLoadedTags ()
 Retrieves the list of loaded tag data. More...
 

Macro Definition Documentation

◆ BLAM

#define BLAM

◆ BLAM_EXT_API

#define BLAM_EXT_API   __declspec(dllimport)

◆ TAG_BLOCK

#define TAG_BLOCK (   name,
  fields 
)    struct name##_entry fields; tag_block<name##_entry> name;

Macro designed to aid in the creation of tag class data structures.

Note
This macro creates a child data structure within the primary tag structure, and that data structure is named {name}_entry, where {name} refers to what you provide with the name parameter listed below.
Parameters
name- The name of the tag block.
fields- The fields of the block, should be identical to what would be used when defining a structure, just without struct whatever and with no semicolon after the curly braces.

◆ TAG_ENUM

#define TAG_ENUM (   name,
  ... 
)    enum name##_enum __VA_ARGS__; name##_enum name;

◆ TAG_FIELDSET_VERSION

#define TAG_FIELDSET_VERSION   4

Macro defining the tag fieldset version.

This should be incremented any time a tag field type is changed in such a way that it becomes incompatiable with older tags - such as if a field's size is changed or if the data format is changed significantly.

Typedef Documentation

◆ ascii

typedef char ascii[128]

Typedef for an ascii field, used in tag data definitions.

◆ real

typedef float real

Typedef for a 'real', aka a float.

◆ stringid

typedef char stringid[128]

Typedef for a stringid field, used in tag data definitions.

Enumeration Type Documentation

◆ TagOrigin

enum TagOrigin
strong

Enum used to specify a tag's origin.

Enumerator
BinaryFile 

Indicates the tag originated from a binary file.

Memory 

Indicates the tag originated from the engine's memory.

CacheFile 

Indicates the tag originated from a Blam Cache File (.map).