/
main.cpp
55 lines (46 loc) · 982 Bytes
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "rtt.h"
#include <stdio.h>
using namespace game;
void print_r(unsigned int level, char const* name, rtt::typeinfo_base const* type, void* ptr)
{
for(unsigned int i = 0; i < level; ++i)
{
printf(" ");
}
switch(type->get_id())
{
case rtt::type_traits<float>::id:
printf("%s: %f\n", name, *type->cast<float>(ptr));
break;
case rtt::type_traits<int>::id:
printf("%s: %i\n", name, *type->cast<int>(ptr));
break;
default:
printf("%s:\n", name);
for(unsigned int field = 0; field < type->field_count(); ++field)
{
print_r(level + 1, type->field_name(field), type->field_type(field), type->get_field(ptr, field));
}
break;
}
}
template <class T> void print(T& obj)
{
print_r(0, "obj", rtt::get_type(&obj), &obj);
}
int main(int, char**)
{
rtt::create();
transform trans = {
{0, 0, 1, 0},
{0, 1, 0, 0},
{1, 0, 0, 0},
{0, 0, 0, 1},
};
object obj;
obj.health = 100;
obj.xform = trans;
print(obj);
rtt::destroy();
return 0;
}