-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathzm_vox_fix.gsc
86 lines (70 loc) · 1.87 KB
/
zm_vox_fix.gsc
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
init()
{
if (isDefined(level.pvox))
{
setup_players_sound_dialog_array();
level thread on_player_connected();
}
if (isDefined(level.dvox))
{
setup_director_sound_dialog_array();
level._director_zombie_enter_level = level.director_zombie_enter_level;
level.director_zombie_enter_level = ::assign_director_sound_dialog_array;
}
}
assign_director_sound_dialog_array()
{
self.sound_dialog = level.director_sound_dialog;
self.sound_dialog_available = self.sound_dialog;
self [[level._director_zombie_enter_level]]();
}
on_player_connected()
{
for (;;)
{
level waittill("connected", player);
player thread assign_player_sound_dialog_array();
}
}
assign_player_sound_dialog_array()
{
self waittill("spawned_player");
while (!self.initialized)
{
wait 0.05;
}
self.sound_dialog = level.players_sound_dialog[self.entity_num];
self.sound_dialog_available = self.sound_dialog;
}
setup_players_sound_dialog_array()
{
level.players_sound_dialog = [];
for (i = 0; i < level.pvox.size; i++)
{
level.players_sound_dialog[i] = [];
keys = GetArrayKeys(level.pvox[i]);
for (j = 0; j < keys.size; j++)
{
level.players_sound_dialog[i][keys[j]] = [];
nb_variants = level.pvox[i][keys[j]];
for (k = 0; k < nb_variants; k++)
{
level.players_sound_dialog[i][keys[j]][k] = k;
}
}
}
}
setup_director_sound_dialog_array()
{
level.director_sound_dialog = [];
keys = GetArrayKeys(level.dvox);
for (i = 0; i < keys.size; i++)
{
level.director_sound_dialog[keys[i]] = [];
nb_variants = level.dvox[keys[i]];
for (j = 0; j < nb_variants; j++)
{
level.director_sound_dialog[keys[i]][j] = j;
}
}
}