Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
model.h
Go to the documentation of this file.
1 // model [hlmt] - 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 
23 
24 #pragma pack(push, 1)
25 struct model
26 {
27  //MODEL
28 
32 };
33 #pragma pack(pop)
34 
36 {
37 public:
39  {
40  class_name_long = "model";
41  class_name_short = "hlmt";
42  version = 1;
43 
44  revisions = {
45  {1, "haloman30", "Initial implementation"},
46 
47  };
48 
49  tag_size = 96;
50 
51  fields =
52  {
53  new CommentField("MODEL",
54  ""),
55  new TagReferenceField("render model", "", { "mode"}),
56  new TagReferenceField("collision model", "", { }),
57  new TagReferenceField("physics model", "", { }),
58 
59  };
60  }
61 };
62 
63 namespace Blam::Content::Tags
64 {
65  BLAM model* GetModelTag(std::string tag_path);
66 }
BLAM
#define BLAM
Definition: model.h:19
Blam::Content::Tags
Namespace containing functions related to tag data.
Definition: bitmap.h:197
model.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:197
BlamTagClass::fields
std::vector< BlamTagClassField * > fields
A series of tag fields that store the layout of the tag.
Definition: tags.h:200
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:199
plugins.h
BlamTagClass::class_name_short
std::string class_name_short
The short, 4-character name of the tag class.
Definition: tags.h:197
BlamTagClass::version
int version
The tag class version. Should be incremented any time a tag class is modified whatsoever.
Definition: tags.h:198
ModelTagClass::ModelTagClass
ModelTagClass()
Definition: model.h:38
ModelTagClass
Definition: model.h:35
model::collision_model
tag_reference collision_model
Definition: model.h:30
tag_reference
Structure representing a tag reference.
Definition: tags.h:277
BlamTagClass::class_name_long
std::string class_name_long
The longer class name. Typically shown alongside short name for user-friendliness.
Definition: tags.h:196
model::render_model
tag_reference render_model
Definition: model.h:29
Blam::Content::Tags::GetModelTag
BLAM model * GetModelTag(std::string tag_path)
Definition: model.cpp:16
BlamTagClass::tag_size
int tag_size
The size of the tag's data. Used on loading/writing tag files.
Definition: tags.h:201
BlamTagData::address
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:130
model::physics_model
tag_reference physics_model
Definition: model.h:31
tags.h
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:124
CommentField
Class representing a comment field.
Definition: comment.h:29
BlamTagClass
Class representing a tag class.
Definition: tags.h:193
api.h
model
Definition: model.h:25