Elaztek Developer Hub
Blamite Game Engine - blam!  00453.06.08.26.0624.blamite
The core library for the Blamite Game Engine.
tile_map.h
Go to the documentation of this file.
1 // tile_map [tilm] - Tag Definition //
3 // -------- //
4 // Author: haloman30 //
5 // Revision: 1 //
6 // -------- //
7 // Part of the Blamite Game Engine //
8 // Copyright (c) Elaztek Studios 2013 - 2023 //
10 
11 
12 #pragma once
13 
14 #include <string>
15 #include <blam/api/v1/types/tags.h>
17 
18 #ifndef BLAM
19 #define BLAM
20 #endif
21 
22 #define tag_tilm "tilm"
23 
24 
25 
26 #pragma pack(push, 1)
27 struct tile_map
28 {
33 };
34 #pragma pack(pop)
35 
37 {
38 public:
40  {
41  class_name_long = "tile_map";
42  class_name_short = "tilm";
43  version = 1;
44 
45  revisions = {
46  {1, "haloman30", "* Added cell size field"},
47 
48  };
49 
50  tag_size = 80;
51 
52  fields =
53  {
54  new TagReferenceField("tile set", "", { }),
55  new Vector2Field("size", ""),
56  new Vector2Field("cell size", ""),
57  new DataReferenceField("tile data", ""),
58 
59  };
60  }
61 };
62 
63 namespace Blam::Content::Tags
64 {
65  BLAM tile_map* GetTileMapTag(std::string tag_path);
66 }
Blam::Content::Tags
Namespace containing functions related to tag data.
Definition: bitmap.h:181
tag_tilm
#define tag_tilm
Definition: tile_map.h:22
Vector2Field
Class representing a vector2 tag field.
Definition: vector.h:34
tile_map::tile_set
tag_reference tile_set
Definition: tile_map.h:29
DataReferenceField
Class representing a data reference, or dataref for short.
Definition: dataref.h:19
tile_map::cell_size
vector2 cell_size
Definition: tile_map.h:31
tile_map.h
TagReferenceField
Class representing a tag reference, or tagref for short.
Definition: tagref.h:20
Blam::API::v1::Tags::GetTagData
BLAM_EXT_API BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: api.cpp:208
BlamTagClass::fields
std::vector< BlamTagClassField * > fields
A series of tag fields that store the layout of the tag.
Definition: tags.h:209
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: tags.h:208
plugins.h
BlamTagClass::class_name_short
std::string class_name_short
The short, 4-character name of the tag class.
Definition: tags.h:206
BlamTagClass::version
int version
The tag class version. Should be incremented any time a tag class is modified whatsoever.
Definition: tags.h:207
tag_reference
Structure representing a tag reference.
Definition: tags.h:289
TileMapTagClass::TileMapTagClass
TileMapTagClass()
Definition: tile_map.h:39
BlamTagClass::class_name_long
std::string class_name_long
The longer class name. Typically shown alongside short name for user-friendliness.
Definition: tags.h:205
tile_map
Definition: tile_map.h:27
BLAM
#define BLAM
Definition: tile_map.h:19
data_reference
Structure representing a data reference.
Definition: tags.h:342
BlamTagClass::tag_size
int tag_size
The size of the tag's data. Used on loading/writing tag files.
Definition: tags.h:210
TileMapTagClass
Definition: tile_map.h:36
vector2
BlamVector2 vector2
Typedef for a vector2 field, used in tag definitions.
Definition: tags.h:444
BlamTagData::address
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:132
tags.h
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:125
tile_map::tile_data
data_reference tile_data
Definition: tile_map.h:32
BlamTagClass
Class representing a tag class.
Definition: tags.h:202
Blam::Content::Tags::GetTileMapTag
BLAM tile_map * GetTileMapTag(std::string tag_path)
Definition: tile_map.cpp:16
api.h
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:146
tile_map::size
vector2 size
Definition: tile_map.h:30