Elaztek Developer Hub
Blamite Game Engine - Guerilla  00307.01.26.21.0804.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 #include <vector>
5 
6 #ifndef GUERILLA
7 #define GUERILLA
8 #endif
9 
10 #ifdef GUERILLA_EXPORTS
11 #define GUERILLA_API __declspec(dllexport)
12 #else
13 #define GUERILLA_API __declspec(dllimport)
14 #endif
15 
16 class BlamTag;
17 class BlamPlugin;
18 
19 enum class BlamTagFieldType
20 {
21  Ascii,
22  StringId,
23  Int8,
24  Int16,
25  Int32,
26  Float32,
27  Bitfield8,
28  Bitfield16,
29  Bitfield32,
30  Enum8,
31  Enum16,
32  Enum32,
33  Block,
34  Dataref,
35  Tagref,
36  Comment,
37 
38  Generic,
40 };
41 
42 class BlamTagField;
43 
45 {
46 private:
48  BlamPlugin* plugin;
49 
50 public:
51  int offset = 0x0;
52  int length = 0x0;
53  bool visible = true;
54  std::string display_name = "";
55  std::string description = "";
56  std::string field_id = "";
57 
59  BlamPluginField(BlamPluginField* _old_field);
60 
61  BlamTagFieldType GetType();
63 
64  virtual BlamTagField* GenerateTagField(BlamTag* tag);
65  virtual BlamTagField* GenerateTagField(BlamTagField* existing_tag_field);
66 };
67 
69 {
70 private:
72  BlamTag* tag = nullptr;
73 
74 public:
75  BlamPluginField* plugin_field = nullptr;
76  std::string field_id = "";
77 
79 
80  virtual std::string GenerateXMLString();
81  virtual std::vector<char> GetValueAsBytes();
82 
83  BlamTagFieldType GetType();
84  BlamTag* GetTag();
85 
86  BlamPluginField* GetPluginField();
87  bool HasPluginField();
88 };
89 
91 {
93  GUERILLA BlamTagFieldType DetermineFieldType(std::string node_name);
94 }
BlamTagField
Definition: fields.h:68
BlamTagFieldType::Int16
@ Int16
BlamTagFieldType::Generic
@ Generic
BlamTagFieldType::Int32
@ Int32
Guerilla::Tags::Fields
Definition: fields.h:90
BlamTagFieldType::Enum8
@ Enum8
BlamTagFieldType::Block
@ Block
BlamTagFieldType::Ascii
@ Ascii
BlamTagFieldType::Dataref
@ Dataref
BlamTagFieldType::Enum16
@ Enum16
BlamTagFieldType::Bitfield16
@ Bitfield16
BlamTagFieldType
BlamTagFieldType
Definition: fields.h:19
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:44
BlamTag
Class representing a Tag.
Definition: tags.h:119
BlamTagFieldType::Tagref
@ Tagref
GUERILLA
#define GUERILLA
Definition: fields.h:7
Guerilla::Tags::Fields::DetermineFieldType
GUERILLA BlamTagFieldType DetermineFieldType(std::string node_name)
Definition: fields.cpp:68
BlamPlugin
Class representing a Plugin.
Definition: tags.h:37
BlamTagFieldType::Bitfield8
@ Bitfield8
GUERILLA_API
#define GUERILLA_API
Definition: fields.h:13
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