-
Notifications
You must be signed in to change notification settings - Fork 0
/
global.h
101 lines (81 loc) · 2.15 KB
/
global.h
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#pragma once
#include "libavz.h"
namespace _SimpleAvZInternal {
class Global : AvZ::GlobalVar {
private:
const int TIME_WAVE_INIT_VAL = -0xFFFF;
public:
int last_effect_time = TIME_WAVE_INIT_VAL;
int last_effect_wave = TIME_WAVE_INIT_VAL;
bool is_ice_positions_initialized = false;
bool disable_errors = false;
void virtual beforeScript() override
{
last_effect_time = TIME_WAVE_INIT_VAL;
last_effect_wave = TIME_WAVE_INIT_VAL;
is_ice_positions_initialized = false;
disable_errors = false;
}
void reset_last_effect_time()
{
last_effect_time = TIME_WAVE_INIT_VAL;
}
void reset_last_effect_wave()
{
last_effect_wave = TIME_WAVE_INIT_VAL;
}
bool is_last_effect_time_initialized()
{
return last_effect_time != TIME_WAVE_INIT_VAL;
}
bool is_last_effect_wave_initialized()
{
return last_effect_wave != TIME_WAVE_INIT_VAL;
}
bool is_insert_op()
{
return AvZ::NowTime(1) != -65535;
}
};
Global global;
// scene 相关
bool is_night_time()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 1 || scene == 3 || scene == 5 || scene == 6 || scene == 8 || scene == 11;
}
bool is_visually_six_rows()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 2 || scene == 3 || scene == 10 || scene == 11;
}
bool is_actually_six_rows()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 2 || scene == 3 || scene == 8 || scene == 10 || scene == 11;
}
int get_max_spawn_row()
{
return is_actually_six_rows() ? 6 : 5;
}
bool has_water_rows()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 2 || scene == 3 || scene == 8;
}
bool no_dancing_in_side_rows()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 0 || scene == 1 || scene == 6 || scene == 7 || scene == 9 || scene == 10 || scene == 11;
}
bool no_zomboni()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 1 || scene == 11;
}
bool is_roof()
{
auto scene = AvZ::GetMainObject()->scene();
return scene == 4 || scene == 5;
}
} // namespace _SimpleAvZInternal