Elaztek Developer Hub
Blamite Game Engine - Guerilla  00305.01.23.21.0442.blamite
The tag editor for the Blamite Game Engine.
fields.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 #ifndef GUERILLA
6 #define GUERILLA
7 #endif
8 
9 #ifdef GUERILLA_EXPORTS
10 #define GUERILLA_API __declspec(dllexport)
11 #else
12 #define GUERILLA_API __declspec(dllimport)
13 #endif
14 
15 class BlamTag;
16 class BlamPlugin;
17 
18 enum class BlamTagFieldType
19 {
20  Ascii,
21  StringId,
22  Int8,
23  Int16,
24  Int32,
25  Float32,
26  Bitfield8,
27  Bitfield16,
28  Bitfield32,
29  Enum8,
30  Enum16,
31  Enum32,
32  Block,
33  Dataref,
34  Tagref,
35  Comment,
36 
37  Generic,
39 };
40 
41 class BlamTagField;
42 
44 {
45 private:
47  BlamPlugin* plugin;
48 
49 public:
50  int offset = 0x0;
51  int length = 0x0;
52  bool visible = true;
53  std::string display_name = "";
54  std::string description = "";
55  std::string field_id = "";
56 
58  BlamPluginField(BlamPluginField* _old_field);
59 
60  BlamTagFieldType GetType();
62 
63  virtual BlamTagField* GenerateTagField(BlamTag* tag);
64  virtual BlamTagField* GenerateTagField(BlamTagField* existing_tag_field);
65 };
66 
68 {
69 private:
71  BlamTag* tag = nullptr;
72 
73 public:
74  BlamPluginField* plugin_field = nullptr;
75  std::string field_id = "";
76 
78 
79  virtual std::string GenerateXMLString();
80 
81  BlamTagFieldType GetType();
82  BlamTag* GetTag();
83 
84  BlamPluginField* GetPluginField();
85  bool HasPluginField();
86 };
87 
89 {
91  GUERILLA BlamTagFieldType DetermineFieldType(std::string node_name);
92 }
BlamTagField
Definition: fields.h:67
BlamTagFieldType::Int16
@ Int16
BlamTagFieldType::Generic
@ Generic
BlamTagFieldType::Int32
@ Int32
Guerilla::Tags::Fields
Definition: fields.h:88
BlamTagFieldType::Enum8
@ Enum8
BlamTagFieldType::Block
@ Block
BlamTagFieldType::Ascii
@ Ascii
BlamTagFieldType::Dataref
@ Dataref
BlamTagFieldType::Enum16
@ Enum16
BlamTagFieldType::Bitfield16
@ Bitfield16
BlamTagFieldType
BlamTagFieldType
Definition: fields.h:18
Guerilla::Tags::GetPlugin
GUERILLA_API BlamPlugin * GetPlugin(std::string class_name)
Definition: plugins.cpp:100
BlamTagFieldType::Int8
@ Int8
BlamTagFieldType::Comment
@ Comment
BlamTagFieldType::Float32
@ Float32
BlamPluginField
Definition: fields.h:43
BlamTag
Class representing a Tag.
Definition: tags.h:97
BlamTagFieldType::Tagref
@ Tagref
GUERILLA
#define GUERILLA
Definition: fields.h:6
Guerilla::Tags::Fields::DetermineFieldType
GUERILLA BlamTagFieldType DetermineFieldType(std::string node_name)
Definition: fields.cpp:52
BlamPlugin
Class representing a Plugin.
Definition: tags.h:37
BlamTagFieldType::Bitfield8
@ Bitfield8
GUERILLA_API
#define GUERILLA_API
Definition: fields.h:12
Guerilla::Tags::Fields::GetStandardFieldLength
GUERILLA int GetStandardFieldLength(BlamTagFieldType type)
Definition: fields.cpp:5
BlamTagFieldType::Unspecified
@ Unspecified
BlamTagFieldType::StringId
@ StringId
BlamTagFieldType::Bitfield32
@ Bitfield32
BlamTagFieldType::Enum32
@ Enum32