Elaztek Developer Hub
Blamite Game Engine - blam!  00453.06.08.26.0624.blamite
The core library for the Blamite Game Engine.
camera_track.h
Go to the documentation of this file.
1 // camera_track [trak] - Tag Definition //
3 // -------- //
4 // Part of the Blamite Game Engine //
5 // Copyright (c) Elaztek Studios 2013 - 2023 //
7 
8 
9 #pragma once
10 
11 #include <string>
12 #include <blam/api/v1/types/tags.h>
14 
15 #ifndef BLAM
16 #define BLAM
17 #endif
18 
19 #define tag_trak "trak"
20 
21 
22 
23 #pragma pack(push, 1)
25 {
26  TAG_ENUM(camera_type,
27  {
28  fixed,
29  follow,
30  flying,
31  orbit,
32  });
33 
35  {
36  bool flag_0 : 1;
37  bool unused1 : 1;
38  bool unused2 : 1;
39  bool unused3 : 1;
40  bool unused4 : 1;
41  bool unused5 : 1;
42  bool unused6 : 1;
43  bool unused7 : 1;
44  bool unused8 : 1;
45  bool unused9 : 1;
46  bool unused10 : 1;
47  bool unused11 : 1;
48  bool unused12 : 1;
49  bool unused13 : 1;
50  bool unused14 : 1;
51  bool unused15 : 1;
52  };
53 
57 \n
58 \nIn follow cameras, this will be used as the offset of the camera relative to the object it is attached to.
61 };
62 #pragma pack(pop)
63 
65 {
66 public:
68  {
69  class_name_long = "camera_track";
70  class_name_short = "trak";
71  version = 0;
72 
73  revisions = {
74 
75  };
76 
77  tag_size = 62;
78 
79  fields =
80  {
81  new Enum32Field("camera type", "",
82  {
83  "Fixed",
84  "Follow",
85  "Flying",
86  "Orbit",
87  }),
88  new Bitfield16Field("flags", "",
89  {
90  "mouse captured by default",
91  }),
92  new Int32Field("field of view", ""),
93  new Vector3Field("position/offset", "The initial position of the camera.
94 
95 In follow cameras, this will be used as the offset of the camera relative to the object it is attached to."),
96  new Vector2Field("orbit distance range", "The minimum and maximum distance of the orbit camera. Set either value to -1 for no limit."),
97  new TagReferenceField("camera controller script", "", { }),
98 
99  };
100  }
101 };
102 
103 namespace Blam::Content::Tags
104 {
105  BLAM camera_track* GetCameraTrackTag(std::string tag_path);
106 }
camera_track::bitfield16_flags::unused9
bool unused9
Definition: camera_track.h:45
Blam::Content::Tags
Namespace containing functions related to tag data.
Definition: bitmap.h:181
camera_track::bitfield16_flags::unused11
bool unused11
Definition: camera_track.h:47
camera_track::bitfield16_flags
Definition: camera_track.h:34
camera_track::camera_controller_script
tag_reference camera_controller_script
Definition: camera_track.h:60
camera_track.h
BLAM
#define BLAM
Definition: camera_track.h:16
vector3
BlamVector3 vector3
Typedef for a vector3 field, used in tag definitions.
Definition: tags.h:445
camera_track::bitfield16_flags::unused6
bool unused6
Definition: camera_track.h:42
Vector2Field
Class representing a vector2 tag field.
Definition: vector.h:34
camera_track::field_of_view
int32_t field_of_view
Definition: camera_track.h:55
Vector3Field
Class representing a vector3 tag field.
Definition: vector.h:47
camera
Definition: camera.h:24
camera_track::bitfield16_flags::unused8
bool unused8
Definition: camera_track.h:44
Bitfield16Field
Class representing a bitfield16 tag field.
Definition: bitfield.h:44
CameraTrackTagClass
Definition: camera_track.h:64
Blam::Content::Tags::GetCameraTrackTag
BLAM camera_track * GetCameraTrackTag(std::string tag_path)
Definition: camera_track.cpp:13
TagReferenceField
Class representing a tag reference, or tagref for short.
Definition: tagref.h:20
Enum32Field
Definition: enum.h:45
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
int32_t
int int32_t
Definition: stdint.h:13
camera_track::bitfield16_flags::flag_0
bool flag_0
Definition: camera_track.h:36
plugins.h
BlamTagClass::class_name_short
std::string class_name_short
The short, 4-character name of the tag class.
Definition: tags.h:206
camera_track::TAG_ENUM
TAG_ENUM(camera_type, { fixed, follow, flying, orbit, })
camera_track::bitfield16_flags::unused7
bool unused7
Definition: camera_track.h:43
camera_track::bitfield16_flags::unused3
bool unused3
Definition: camera_track.h:39
camera_track::bitfield16_flags::unused1
bool unused1
Definition: camera_track.h:37
BlamTagClass::version
int version
The tag class version. Should be incremented any time a tag class is modified whatsoever.
Definition: tags.h:207
camera_track::bitfield16_flags::unused13
bool unused13
Definition: camera_track.h:49
tag_reference
Structure representing a tag reference.
Definition: tags.h:289
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
camera_track::orbit_distance_range
n nIn follow this will be used as the offset of the camera relative to the object it is attached to vector2 orbit_distance_range
The minimum and maximum distance of the orbit camera. Set either value to -1 for no limit.
Definition: camera_track.h:59
camera_track::bitfield16_flags::unused5
bool unused5
Definition: camera_track.h:41
camera_track::cameras
n nIn follow cameras
Definition: camera_track.h:58
camera_track::bitfield16_flags::unused2
bool unused2
Definition: camera_track.h:38
camera_track::bitfield16_flags::unused4
bool unused4
Definition: camera_track.h:40
camera_track::flags
bitfield16_flags flags
Bitfield data for flags. See #bitfield16_flags for details.
Definition: camera_track.h:54
camera_track::bitfield16_flags::unused12
bool unused12
Definition: camera_track.h:48
Int32Field
Class representing an int32 tag field.
Definition: int.h:46
tag_trak
#define tag_trak
Definition: camera_track.h:19
camera_track::bitfield16_flags::unused10
bool unused10
Definition: camera_track.h:46
camera_track
Definition: camera_track.h:24
BlamTagClass::tag_size
int tag_size
The size of the tag's data. Used on loading/writing tag files.
Definition: tags.h:210
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
will
date New Shallow[BAP] Thanks from and for his item placement Zed the best gf spog auhsan for it will be for the next map just for being and all at TF cool_ber for being will
Definition: chiropteraDM.txt:70
camera_track::bitfield16_flags::unused15
bool unused15
Definition: camera_track.h:51
CameraTrackTagClass::CameraTrackTagClass
CameraTrackTagClass()
Definition: camera_track.h:67
tags.h
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:125
camera_track::position
vector3 position
The initial position of the camera.
Definition: camera_track.h:56
camera_track::bitfield16_flags::unused14
bool unused14
Definition: camera_track.h:50
BlamTagClass
Class representing a tag class.
Definition: tags.h:202
api.h
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:146