Elaztek Developer Hub
Blamite Game Engine - blam!  00310.02.05.21.0336.blamite
The core library for the Blamite Game Engine.
mouse_cursor_definition.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../tagclass.h"
4 #include "../fields.h"
5 
6 #ifndef BLAM
7 #define BLAM
8 #endif
9 
10 namespace Blam::Content::Tags
11 {
13  {
14  //tagref
15  int hot_x;
16  int hot_y;
17  };
18 
28  {
30  };
31 
32  namespace Classes
33  {
35  {
36  public:
38  {
39  class_name_long = "mouse_cursor_definition";
40  class_name_short = "mcur";
41  version = 1;
42 
43  revisions = {
44  {1, "haloman30", "Initial implementation."}
45  };
46 
48 
49  fields =
50  {
51  new CommentField("Mouse Cursor Bitmaps",
52  "0 - Normal mouse cursor\r\n1 - Busy mouse cursor\r\n2 - Hover mouse cursor\r\n3 - Text select mouse cursor"),
53  new BlockField(sizeof(mouse_cursor_bitmaps), "Mouse Cursor Bitmaps", "",
54  {
55  //tagref
56  new CommentField("hot pixel", "The hot pixel is the pixel that represents the actual focus area of the pointer. For example, in a normal mouse cursor, the hot pixel would be placed at the very tip of the arrow."),
57  new Int32Field("hot x", "The X coordinate of the 'hot' pixel on the cursor."),
58  new Int32Field("hot y", "The Y coordinate of the 'hot' pixel on the cursor.")
59  }),
60  };
61  }
62  };
63  }
64 
65  BLAM mouse_cursor_definition* GetMouseCursorDefinitionTag(std::string tag_path);
66 }
Blam::Content::Tags
Namespace containing things related to tag data.
Definition: bitmap.h:10
Blam::Content::Tags::GetMouseCursorDefinitionTag
BLAM mouse_cursor_definition * GetMouseCursorDefinitionTag(std::string tag_path)
Definition: mouse_cursor_definition.cpp:5
tag_block
Structure representing a tag block.
Definition: tags.h:107
Blam::Content::Tags::mouse_cursor_bitmaps::hot_y
int hot_y
Definition: mouse_cursor_definition.h:16
Blam::Content::Tags::mouse_cursor_bitmaps
Definition: mouse_cursor_definition.h:12
Blam::Content::Tags::Classes::MouseCursorDefinitionTagClass
Definition: mouse_cursor_definition.h:34
BlamTagClass::revisions
std::vector< BlamTagClassRevision > revisions
List of all tag class revisions. Does not get written to tags, but is included in plugin files.
Definition: tagclass.h:47
BlamTagClass::class_name_short
std::string class_name_short
The short, 4-character name of the tag class.
Definition: tagclass.h:45
BlamTagClass::version
int version
The tag class version. Should be incremented any time a tag class is modified whatsoever.
Definition: tagclass.h:46
BlamTagClass::class_name_long
std::string class_name_long
The longer class name. Typically shown alongside short name for user-friendliness.
Definition: tagclass.h:44
Int32Field
Class representing an int32 tag field.
Definition: int.h:27
BLAM
#define BLAM
Definition: discord_rpc.h:8
BlamTagClass::tag_size
int tag_size
The size of the tag's data. Used on loading/writing tag files.
Definition: tagclass.h:51
Blam::Content::Tags::Classes::MouseCursorDefinitionTagClass::MouseCursorDefinitionTagClass
MouseCursorDefinitionTagClass()
Definition: mouse_cursor_definition.h:37
Blam::Content::Tags::mouse_cursor_bitmaps::hot_x
int hot_x
Definition: mouse_cursor_definition.h:15
Blam::Content::Tags::mouse_cursor_definition
Structure representing a Mouse Cursor Definition tag.
Definition: mouse_cursor_definition.h:27
CommentField
Class representing a comment field.
Definition: comment.h:12
BlockField
Class representing a tag block field, also sometimes referred to as a struct or reflexive in the modd...
Definition: block.h:13
BlamTagClass
Class representing a tag class.
Definition: tagclass.h:41
BlamTagClass::fields
std::vector< BlamPluginField * > fields
A series of tag fields that store the layout of the tag.
Definition: tagclass.h:49
Blam::Content::Tags::mouse_cursor_definition::mouse_cursor_bitmaps
tag_block< mouse_cursor_bitmaps > mouse_cursor_bitmaps
Definition: mouse_cursor_definition.h:29