1 |
################# |
2 |
### VARIABLES ### |
3 |
################# |
4 |
|
5 |
var int var_counter = 0; |
6 |
|
7 |
############ |
8 |
### MAIN ### |
9 |
############ |
10 |
|
11 |
func void main(void) |
12 |
{ |
13 |
gl_fog_red = .15 |
14 |
gl_fog_blue = .15 |
15 |
gl_fog_green = .15 |
16 |
gl_fog_start = .995 |
17 |
gs_farclipplane_set 5000 |
18 |
ui_suppress_prompt = 1 |
19 |
chr_auto_aim_dist = 0 |
20 |
start |
21 |
} |
22 |
|
23 |
############# |
24 |
### START ### |
25 |
############# |
26 |
|
27 |
func void start(void) |
28 |
{ |
29 |
fork deactivate_stuff |
30 |
if(save_point eq 0) save_point = 1 |
31 |
if(save_point eq 1) fork intro |
32 |
if(save_point eq 2) restore_game |
33 |
if(save_point eq 3) restore_game |
34 |
if(save_point eq 4) restore_game |
35 |
sleep 5 |
36 |
fork sp_all |
37 |
} |
38 |
|
39 |
func void deactivate_stuff(void) |
40 |
{ |
41 |
trigvolume_setscript save_point4 sp4 entry |
42 |
#not used |
43 |
trigvolume_enable alarm_1 0 |
44 |
trigvolume_enable brain_commguy_1 0 |
45 |
trigvolume_enable febtober2 0 |
46 |
trigvolume_enable flyway_1 0 |
47 |
trigvolume_enable Griffin 0 |
48 |
trigvolume_enable hidden_1a 0 |
49 |
trigvolume_enable hidden_1b 0 |
50 |
trigvolume_enable lowthug_1 0 |
51 |
trigvolume_enable new_target_3 0 |
52 |
trigvolume_enable nook_1 0 |
53 |
trigvolume_enable nookright 0 |
54 |
trigvolume_enable outro1 0 |
55 |
trigvolume_enable plasma_striker_1 0 |
56 |
trigvolume_enable sound_off 0 |
57 |
trigvolume_enable trigger_active_1 0 |
58 |
trig_deactivate 201 |
59 |
trig_deactivate 202 |
60 |
trig_deactivate 203 |
61 |
trig_deactivate 204 |
62 |
trig_deactivate 2012 |
63 |
trig_deactivate 2022 |
64 |
particle lock_1_locklight01 do start |
65 |
particle lock_1b_locklight01 do start |
66 |
env_show 555 0 |
67 |
door_lock 1 |
68 |
#used |
69 |
trigvolume_enable febtober 0 |
70 |
trigvolume_enable tech_1 0 |
71 |
trig_hide 205 |
72 |
trig_hide 2013 |
73 |
trig_hide 2023 |
74 |
trig_hide 2032 |
75 |
trig_hide 2042 |
76 |
obj_create 1201 1208 |
77 |
env_anim 1201 1208 |
78 |
door_unlock 3 |
79 |
door_lock 4 |
80 |
door_lock 9 |
81 |
door_lock 21 |
82 |
console_deactivate 6 |
83 |
} |
84 |
|
85 |
func void you_lose(void) |
86 |
{ |
87 |
fade_out 0 0 0 30 |
88 |
sleep 30 |
89 |
lose |
90 |
} |
91 |
|
92 |
#################################### |
93 |
### SEVERAL TIMES USED FUNCTIONS ### |
94 |
#################################### |
95 |
|
96 |
func void sp_all(void) |
97 |
{ |
98 |
co_message_display = 0 |
99 |
if(save_point eq 1) save_game 1 autosave |
100 |
if(save_point eq 2) save_game 2 autosave |
101 |
if(save_point eq 3) save_game 3 autosave |
102 |
if(save_point eq 4) save_game 4 autosave |
103 |
sleep 180 |
104 |
co_message_display = 1 |
105 |
} |
106 |
|
107 |
func void remove_ai(void) |
108 |
{ |
109 |
ai2_kill |
110 |
sleep 60 |
111 |
powerup_reset |
112 |
weapon_reset |
113 |
sleep 240 |
114 |
corpse_reset |
115 |
} |
116 |
|
117 |
func void music_stop(void) |
118 |
{ |
119 |
sound_music_stop mus_fiteb_hd |
120 |
sound_music_stop atm_low_perc1 |
121 |
sound_music_stop atm_cl12 |
122 |
} |
123 |
|
124 |
########## |
125 |
### SP1 ### |
126 |
########## |
127 |
|
128 |
func void intro(void) |
129 |
{ |
130 |
chr_inv_reset 0 |
131 |
ai2_spawn nookleft_thug_1 |
132 |
ai2_spawn nookright_thug_1 |
133 |
ai2_spawn ambush_striker_1 |
134 |
ai2_spawn ambush_striker_2 |
135 |
ai2_spawn ambush_striker_3 |
136 |
ai2_spawn partner_cop_1 |
137 |
ai2_spawn partner_cop_2 |
138 |
ai2_attack partner_cop_1 ambush_striker_1 |
139 |
ai2_attack partner_cop_2 ambush_striker_3 |
140 |
ai2_makeaware nookleft_thug_1 konoko |
141 |
ai2_makeaware nookright_thug_1 konoko |
142 |
objective_set 1 silent |
143 |
target_set 38 30 |
144 |
sleep 1 |
145 |
sound_music_start mus_fiteb_hd 0.75 |
146 |
sound_dialog_play c00_01_22shinatama |
147 |
} |
148 |
|
149 |
#tv3 - after door 3 (entry func: nookright); I've disabled it |
150 |
#tv1 - between door 2 and door 4 (entry func: nook_1); I've disabled it |
151 |
|
152 |
#lose func of ambush_striker_1 |
153 |
func void striker_lullaby_1(void) |
154 |
{ |
155 |
striker_lullaby_3 |
156 |
} |
157 |
|
158 |
#lose func of ambush_striker_2 |
159 |
func void striker_lullaby_2(void) |
160 |
{ |
161 |
striker_lullaby_3 |
162 |
} |
163 |
|
164 |
#lose func of ambush_striker_3 |
165 |
func void striker_lullaby_3(void) |
166 |
{ |
167 |
var_counter = var_counter + 1 |
168 |
if(var_counter eq 3) |
169 |
{ |
170 |
particle foyer_right_locklight01 do start |
171 |
door_unlock 21 |
172 |
trigvolume_enable tech_1 1 |
173 |
var_counter = 0 |
174 |
music_stop |
175 |
} |
176 |
} |
177 |
|
178 |
#tv2 - in front of door 21 |
179 |
func void tech_1(void) |
180 |
{ |
181 |
ai2_spawn tech_thug_1 |
182 |
ai2_spawn tech_thug_1a |
183 |
ai2_dopath partner_cop_1 cop_backup_1a 1 |
184 |
ai2_dopath partner_cop_2 cop_backup_1b 1 |
185 |
} |
186 |
|
187 |
#tv28 - after door 21 (func: all_music_counters); I've disabled it |
188 |
#tv25 - complete room (func: feb_tober2); I've disabled it |
189 |
|
190 |
#console1 |
191 |
func void door_1(void) |
192 |
{ |
193 |
door_lock 8 |
194 |
door_lock 15 |
195 |
ai2_spawn plasma_striker_1 |
196 |
particle febtober1_locklight01 do start |
197 |
particle lock_1a_locklight01 do start |
198 |
particle save1a_locklight01 do start |
199 |
door_unlock 19 |
200 |
target_set 123 30 |
201 |
} |
202 |
|
203 |
#tv5 - after door 19 |
204 |
func void bait_1(void) |
205 |
{ |
206 |
ai2_spawn bait_commguy_1 |
207 |
ai2_spawn tech_thug_2 |
208 |
sleep 120 |
209 |
ai2_doalarm bait_commguy_1 15 |
210 |
sound_music_start atm_low_perc1 1.00 |
211 |
particle save1b_locklight01 do start |
212 |
door_unlock 11 |
213 |
ai2_dopath partner_cop_1 cop_backup_2a 1 |
214 |
ai2_dopath partner_cop_2 cop_backup_2b 1 |
215 |
} |
216 |
|
217 |
#tv13 - after door 13 (enter func: plasma_striker_1, loop func: calling_all_cars); I've disabled it |
218 |
#tv6 - after door 12 (func: calling_all_cars2); I've disabled it |
219 |
|
220 |
#console15 |
221 |
func void alarm_1(void) |
222 |
{ |
223 |
ai2_spawn hall_striker_2 |
224 |
sound_ambient_start alarm_loop |
225 |
sleep 900 |
226 |
sound_ambient_stop alarm_loop |
227 |
} |
228 |
|
229 |
########## |
230 |
### SP2 ### |
231 |
########## |
232 |
|
233 |
#tv18 - after door 11 |
234 |
func void tech_ambush_1(void) |
235 |
{ |
236 |
if(save_point eq 2) |
237 |
{ |
238 |
door_lock 8 |
239 |
door_lock 15 |
240 |
ai2_spawn plasma_striker_1 |
241 |
particle save1b_locklight01 do start |
242 |
door_unlock 11 |
243 |
objective_set 1 silent |
244 |
target_set 38 30 |
245 |
sleep 1 |
246 |
sound_music_start atm_low_perc1 1.00 |
247 |
sound_dialog_play c00_01_22shinatama |
248 |
} |
249 |
else save_game 2 autosave |
250 |
ai2_spawn hall_striker_1 |
251 |
door_lock 10 |
252 |
door_lock 12 |
253 |
} |
254 |
|
255 |
#console3 |
256 |
func void door_2(void) |
257 |
{ |
258 |
particle febtober1_locklight01 do start |
259 |
particle lock88_locklight02 do start |
260 |
door_unlock 10 |
261 |
door_unlock 23 |
262 |
ai2_spawn patrol_striker_2 |
263 |
console_activate 4 1 |
264 |
target_set 124 30 |
265 |
sound_dialog_play c00_01_27shinatama |
266 |
} |
267 |
|
268 |
#tv7 - in front of door 7 |
269 |
func void cruel_1(void) |
270 |
{ |
271 |
ai2_spawn cruel_commguy_1 |
272 |
ai2_spawn victim_femsci_1 |
273 |
} |
274 |
|
275 |
#console4 |
276 |
func void door_3(void) |
277 |
{ |
278 |
music_stop |
279 |
particle lock_3_locklight01 do start |
280 |
door_unlock 4 |
281 |
ai2_spawn tech_thug_3 |
282 |
objective_set 2 silent |
283 |
target_set 128 30 |
284 |
sound_dialog_play c00_01_26shinatama |
285 |
} |
286 |
|
287 |
#tv4 - in some distance in front of door 23 (func: flyway_1); I've disabled it |
288 |
|
289 |
#tv19 - after door 23 |
290 |
func void new_target_1(void) |
291 |
{ |
292 |
sound_music_start atm_cl12 0.75 |
293 |
target_set 54 30 |
294 |
} |
295 |
|
296 |
#tv15 - at the beginning of the stairs after door 24 |
297 |
func void beaters_1(void) |
298 |
{ |
299 |
chr_delete plasma_striker_1 |
300 |
door_unlock 8 |
301 |
door_unlock 15 |
302 |
ai2_spawn scram_striker_1 |
303 |
ai2_spawn beater_thug_1 |
304 |
particle vent01 start |
305 |
} |
306 |
|
307 |
#lose func of beater_thug_1 |
308 |
func void beater_thug_2(void) |
309 |
{ |
310 |
ai2_spawn beater_thug_2 |
311 |
} |
312 |
|
313 |
#lose func of scram_striker_1 |
314 |
func void backup_2(void) |
315 |
{ |
316 |
ai2_spawn backup_thug_2 |
317 |
ai2_tripalarm 2 0 |
318 |
} |
319 |
|
320 |
#tv16 - in front of door 16 (enter func: scramble_sound_off, loop func: Griffin_1); I've disabled it |
321 |
#tv10 - after door 16 (enter func: set_objective_3, inside func: lowthug_1, leave func: disable_obj_trig_1); I've disabled it |
322 |
|
323 |
########## |
324 |
### SP3 ### |
325 |
########## |
326 |
|
327 |
#tv26 - in some distance in front of door 15 |
328 |
func void save_point_3(void) |
329 |
{ |
330 |
if(save_point ne 3) |
331 |
{ |
332 |
fork remove_ai |
333 |
save_game 3 autosave |
334 |
particle vent01 do stop |
335 |
music_stop |
336 |
} |
337 |
particle hlock_1_locklight01 do start |
338 |
door_unlock 22 |
339 |
particle vent02 do start |
340 |
trig_activate 2 |
341 |
door_close 16 |
342 |
door_lock 16 |
343 |
trigvolume_enable febtober 1 |
344 |
ai2_spawn hidden_sci_1 |
345 |
ai2_spawn low_thug_1 |
346 |
ai2_spawn low_thug_2 |
347 |
objective_set 3 silent |
348 |
target_set 127 30 |
349 |
sleep 1 |
350 |
sound_dialog_play c00_01_18shinatama |
351 |
} |
352 |
|
353 |
#tv8 - in front of door 22 (func: hidden_1b); I've disabled it |
354 |
#tv9 - after door 22 |
355 |
|
356 |
#console7 |
357 |
func void guardroom_1(void) |
358 |
{ |
359 |
particle guardroom_1_locklight01 do start |
360 |
door_unlock 14 |
361 |
ai2_spawn patrol_striker_3 |
362 |
ai2_spawn brain_commguy_1 |
363 |
ai2_spawn brain_commguy_2 |
364 |
console_deactivate 6 |
365 |
target_set 65 30 |
366 |
} |
367 |
|
368 |
#tv13 - at the beginning of the upper way, next to where the stairs ends (func: trigger_active_1); I've disabled it |
369 |
|
370 |
#tv24 - after the railing |
371 |
func void feb_tober(string ai_name) |
372 |
{ |
373 |
fade_out 0 0 0 30 |
374 |
sleep 30 |
375 |
chr_teleport 0 41 |
376 |
chr_facetoflag 0 126 |
377 |
fade_in 30 |
378 |
trigvolume_reset febtober |
379 |
} |
380 |
|
381 |
#tv11 - after door 14 (func: brain_commguy_1); I've disabled it |
382 |
|
383 |
#console8 |
384 |
func void brainlock_1(void) |
385 |
{ |
386 |
ai2_spawn low_striker_1 |
387 |
ai2_spawn low_striker_2 |
388 |
console_activate 6 |
389 |
target_set 126 30 |
390 |
} |
391 |
|
392 |
#tv12 - after door 8 |
393 |
func void low_striker_1(string ai_name) |
394 |
{ |
395 |
ai2_spawn low_striker_1 |
396 |
ai2_spawn low_striker_2 |
397 |
} |
398 |
|
399 |
#tv20 - in front of the furniture with console6 (func: new_target_3); I've disabled it |
400 |
|
401 |
#console6 |
402 |
func void trigger_deactivate_4(void) |
403 |
{ |
404 |
particle guardroom_2_locklight01 do start |
405 |
door_unlock 9 |
406 |
trig_deactivate 4 |
407 |
console_activate 5 |
408 |
target_set 125 30 |
409 |
} |
410 |
|
411 |
#console5 |
412 |
func void hidden_1(void) |
413 |
{ |
414 |
particle brainlock_1_locklight02 do start |
415 |
door_unlock 6 |
416 |
target_set 129 30 |
417 |
trigvolume_enable cruel_striker_1 1 |
418 |
} |
419 |
|
420 |
#tv21 - in front of door 6 |
421 |
func void cruel_striker_1(void) |
422 |
{ |
423 |
ai2_spawn cruel_striker_1 |
424 |
ai2_spawn victim_mansci_1 |
425 |
brain_start |
426 |
} |
427 |
|
428 |
func void brain_start(void) |
429 |
{ |
430 |
particle brainlock_2_locklight01 do start |
431 |
particle brain do start |
432 |
particle brain1 do start |
433 |
trig_show 205 |
434 |
trig_show 2013 |
435 |
trig_show 2023 |
436 |
trig_show 2032 |
437 |
trig_show 2042 |
438 |
trig_speed 205 .4 |
439 |
trig_speed 2013 .4 |
440 |
trig_speed 2023 .4 |
441 |
trig_speed 2032 .4 |
442 |
trig_speed 2042 .4 |
443 |
} |
444 |
|
445 |
#called up, after you have talked to the scientist |
446 |
func void flee(void) |
447 |
{ |
448 |
chr_talk victim_mansci_1 c02_62_11sci 0 0 |
449 |
ai2_dopath victim_mansci_1 victim_2 |
450 |
sleep 300 |
451 |
objective_set 4 silent |
452 |
sound_dialog_play c00_01_20shinatama |
453 |
} |
454 |
|
455 |
#tv17 - in front of the beginning of the stairs (func: outro); not used |
456 |
|
457 |
########## |
458 |
### SP4 ### |
459 |
########## |
460 |
|
461 |
#tv27 - after door 26 |
462 |
func void sp4(void) |
463 |
{ |
464 |
if(save_point eq 4) |
465 |
{ |
466 |
brain_start |
467 |
objective_set 4 silent |
468 |
sleep 1 |
469 |
sound_dialog_play c00_01_20shinatama |
470 |
} |
471 |
else |
472 |
{ |
473 |
save_game 4 autosave |
474 |
fork remove_ai |
475 |
particle brainlock_1_locklight02 do stop |
476 |
door_lock 6 |
477 |
particle vent02 stop |
478 |
} |
479 |
turret_deactivate 20 |
480 |
particle brainlock_3_locklight01 do start |
481 |
door_unlock 27 |
482 |
sound_ambient_start deadlybrain_sound 1.0 |
483 |
sound_music_start mus_cool4_hd 1 |
484 |
} |
485 |
|
486 |
#tv22 - in some distance after door 27 |
487 |
#tv23 - in some distance after door 27 on the right side |
488 |
func void lockit(void) |
489 |
{ |
490 |
particle brainlock_3_locklight01 do stop |
491 |
door_close 27 |
492 |
door_jam 27 |
493 |
} |
494 |
|
495 |
#console21, console22, console23 and console24 |
496 |
func void brain_counter(void) |
497 |
{ |
498 |
var_counter = var_counter + 1 |
499 |
if(var_counter eq 4) |
500 |
{ |
501 |
fade_out 0 0 0 30 |
502 |
sleep 30 |
503 |
win |
504 |
} |
505 |
} |
506 |
|
507 |
##################### |
508 |
### TEXT CONSOLES ### |
509 |
##################### |
510 |
|
511 |
func void level2a(string chr_index) |
512 |
{ |
513 |
text_console level_2a |
514 |
console_reset 2 |
515 |
} |
516 |
|
517 |
func void level2b(string chr_index) |
518 |
{ |
519 |
text_console level_2b |
520 |
console_reset 12 |
521 |
} |
522 |
|
523 |
func void level2c(string chr_index) |
524 |
{ |
525 |
text_console level_2c |
526 |
console_reset 13 |
527 |
} |
528 |
|
529 |
func void level2d(string chr_index) |
530 |
{ |
531 |
text_console level_2d |
532 |
console_reset 14 |
533 |
} |
534 |
|
535 |
func void level2e(string chr_index) |
536 |
{ |
537 |
text_console level_2e |
538 |
console_reset 11 |
539 |
} |