-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathzmod_dw8xlce_camera.cpp
57 lines (52 loc) · 2.05 KB
/
zmod_dw8xlce_camera.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
56
57
// #define WIN32_LEAN_AND_MEAN
// #include <windows.h>
// #include <string>
// #include <filesystem>
// #include <map>
// #include <vector>
// #include <sstream>
// #include <numbers>
// #include "zmod_common.cpp"
namespace camera
{
struct camera_settings
{
struct camera
{
float min_distance;
float max_distance;
float height;
float UNKNOWN_1;
float angle;
float UNKNOWN_2;
float UNKNOWN_3;
};
camera standard;
camera blocking;
};
void set_ini_defaults(zmod::ini &ini)
{
ini.set_many({
{{L"camera", L"standard_min_distance"}, L"450.0"},
{{L"camera", L"standard_max_distance"}, L"500.0"},
{{L"camera", L"standard_height"}, L"130.0"},
{{L"camera", L"standard_angle"}, L"14.0"},
{{L"camera", L"blocking_min_distance"}, L"450.0"},
{{L"camera", L"blocking_max_distance"}, L"500.0"},
{{L"camera", L"blocking_height"}, L"130.0"},
{{L"camera", L"blocking_angle"}, L"0.0"},
});
}
void module_main(zmod::ini &ini)
{
auto camera = (camera_settings *)(zmod::find_pattern("E1 43 00 00 FA 43") - 2);
camera->standard.min_distance = ini.get_float({L"camera", L"standard_min_distance"});
camera->standard.max_distance = ini.get_float({L"camera", L"standard_max_distance"});
camera->standard.height = ini.get_float({L"camera", L"standard_height"});
camera->standard.angle = (-(ini.get_float({L"camera", L"standard_angle"}))) * (std::numbers::pi / 180.0);
camera->blocking.min_distance = ini.get_float({L"camera", L"blocking_min_distance"});
camera->blocking.max_distance = ini.get_float({L"camera", L"blocking_max_distance"});
camera->blocking.height = ini.get_float({L"camera", L"blocking_height"});
camera->blocking.angle = (-(ini.get_float({L"camera", L"blocking_angle"}))) * (std::numbers::pi / 180.0);
}
}