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 = 0 |
14 |
gl_fog_blue = 0 |
15 |
gl_fog_green = 0 |
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(string ai_name) |
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 |
sleep 5 |
35 |
fork sp_all |
36 |
} |
37 |
|
38 |
func void deactivate_stuff(void) |
39 |
{ |
40 |
#not used |
41 |
console_deactivate 4 |
42 |
if(save_point > 1) chr_delete civ_victim_1 |
43 |
trigvolume_enable bayparticles1 0 |
44 |
trigvolume_enable bayparticles1_copy 0 |
45 |
trigvolume_enable exhaust 0 |
46 |
trigvolume_enable exhaust_copy 0 |
47 |
trigvolume_enable save_game_2 0 |
48 |
#used |
49 |
console_deactivate 2 |
50 |
door_lock 3 |
51 |
particle fx1 do start |
52 |
particle fx2 do start |
53 |
particle fx3 do start |
54 |
particle fx4 do start |
55 |
particle fx5 do start |
56 |
particle fx6 do start |
57 |
particle exhaust create |
58 |
particle tarmacfire do start |
59 |
trigvolume_enable stop_booth_music_tv 1 |
60 |
} |
61 |
|
62 |
func void you_lose(string ai_name) |
63 |
{ |
64 |
fade_out 0 0 0 30 |
65 |
sleep 30 |
66 |
lose |
67 |
} |
68 |
|
69 |
#################################### |
70 |
### SEVERAL TIMES USED FUNCTIONS ### |
71 |
#################################### |
72 |
|
73 |
func void sp_all(void) |
74 |
{ |
75 |
co_message_display = 0 |
76 |
if(save_point eq 1) save_game 1 autosave |
77 |
if(save_point eq 2) save_game 2 autosave |
78 |
if(save_point eq 3) save_game 3 autosave |
79 |
sleep 180 |
80 |
co_message_display = 1 |
81 |
} |
82 |
|
83 |
func void music_stop(void) |
84 |
{ |
85 |
sound_music_stop mus_asian |
86 |
sound_music_stop atm_gr06 |
87 |
sound_music_stop mus_fitec_hd |
88 |
} |
89 |
|
90 |
#tv25 to tv41 |
91 |
func void fire_damage(string ai_name) |
92 |
{ |
93 |
chr_poison (ai_name, 5, 30, 30); |
94 |
} |
95 |
|
96 |
########## |
97 |
### SP1 ### |
98 |
########## |
99 |
|
100 |
func void intro(void) |
101 |
{ |
102 |
particle tctf1 do start |
103 |
particle auto1 do start |
104 |
particle auto1fire do start |
105 |
particle auto1spark do start |
106 |
particle door1spark do start |
107 |
trigvolume_enable hidden1 1 |
108 |
trigvolume_enable hidden2 1 |
109 |
playback 0 IntroKonoko01 |
110 |
chr_inv_reset 0 |
111 |
ai2_spawn IntroStriker01 |
112 |
ai2_spawn IntroStriker02 |
113 |
objective_set 1 silent |
114 |
target_set 1095 30 |
115 |
sleep 1 |
116 |
sound_music_start mus_asian 0.8 2.0 |
117 |
sound_dialog_play_block c00_01_22shinatama |
118 |
sound_dialog_play c00_01_28shinatama |
119 |
} |
120 |
|
121 |
#tv 17 and 18 - across the street near the burning car |
122 |
func void hidden_civilian1(string ai_name) |
123 |
{ |
124 |
ai2_spawn hidden_civ_1 |
125 |
} |
126 |
|
127 |
#hit func of IntroStriker01 |
128 |
func void hide_1(string char_index) |
129 |
{ |
130 |
ai2_spawn civ_victim_5 |
131 |
playback_block civ_victim_5 civ_victim5_flee interp 30 |
132 |
ai2_dopath civ_victim_5 civ_victim_5 |
133 |
} |
134 |
|
135 |
#lose func of IntroStriker01 |
136 |
func void striker_lullaby_1(string ai_name) |
137 |
{ |
138 |
striker_lullaby_2 |
139 |
} |
140 |
|
141 |
#lose func of IntroStriker02 |
142 |
func void striker_lullaby_2(string ai_name) |
143 |
{ |
144 |
var_counter = var_counter + 1 |
145 |
if(var_counter eq 2) |
146 |
{ |
147 |
if(save_point eq 3) |
148 |
{ |
149 |
particle door3_locklight01 do start |
150 |
door_unlock 14 |
151 |
} |
152 |
music_stop |
153 |
} |
154 |
} |
155 |
|
156 |
#tv 22 - in some distance after the 1st passage |
157 |
func void panic1a(string char_index) |
158 |
{ |
159 |
ai2_spawn civ_victim_6 |
160 |
playback civ_victim_6 civ_victim6_flee interp 30 |
161 |
ai2_spawn civ_victim_4 |
162 |
playback civ_victim_4 civ_victim4_flee interp 30 |
163 |
sleep 30 |
164 |
ai2_spawn Intro_Striker_4 |
165 |
playback Intro_Striker_4 striker4_advance interp 30 |
166 |
ai2_spawn Intro_Comguy_1 |
167 |
} |
168 |
|
169 |
#tv10 - after the 2nd passage |
170 |
func void panic1b(string char_index) |
171 |
{ |
172 |
ai2_passive Intro_Striker_4 1 |
173 |
ai2_spawn civ_victim_2 |
174 |
ai2_spawn civ_victim_3 |
175 |
playback civ_victim_3 civ_victim3_flee interp 30 |
176 |
sleep 120 |
177 |
ai2_spawn Intro_Striker_3 |
178 |
ai2_attack Intro_Striker_3 civ_victim_2 |
179 |
ai2_spawn Friend_Thug_1 |
180 |
ai2_spawn Neutral_Thug_1 |
181 |
ai2_spawn Neutral_Thug_3 |
182 |
chr_delete civ_victim_4 |
183 |
chr_delete civ_victim_6 |
184 |
} |
185 |
|
186 |
#tv11 - after the 3rd passage |
187 |
func void horror_1(string char_index) |
188 |
{ |
189 |
ai2_passive Intro_Striker_4 0 |
190 |
ai2_spawn civ_victim_10 |
191 |
ai2_spawn civ_victim_11 |
192 |
ai2_spawn civ_victim_20 |
193 |
ai2_spawn civ_victim_21 |
194 |
} |
195 |
|
196 |
#console1 |
197 |
func void change_terminaldoor_light(void) |
198 |
{ |
199 |
particle door1_locklight01 do start |
200 |
door_unlock 3 |
201 |
music_stop |
202 |
} |
203 |
|
204 |
#tv13 - after door 2 |
205 |
func void ambush_striker_1(string char_index) |
206 |
{ |
207 |
ai2_spawn Terminal_Striker_1 |
208 |
ai2_spawn Terminal_Striker_2 |
209 |
ai2_spawn mad_bomber_1 |
210 |
obj_create 991 992 |
211 |
} |
212 |
|
213 |
#hit func of Terminal_Striker_1 |
214 |
func void civ_victim_20s_flee(string char_index) |
215 |
{ |
216 |
ai2_dopath civ_victim_20 civ20s_flee1 |
217 |
ai2_dopath civ_victim_21 civ20s_flee2 |
218 |
} |
219 |
|
220 |
#tv14 - in some distance after door 3 |
221 |
func void mad_bomber_bait(string char_index) |
222 |
{ |
223 |
ai2_dopath mad_bomber_1 bomber_flee 1 |
224 |
} |
225 |
|
226 |
func void patrolscript0200(string char_index) |
227 |
{ |
228 |
chr_delete mad_bomber_1 |
229 |
} |
230 |
|
231 |
#tv4 - in some distance after tv14 |
232 |
func void LoadingBay1(string char_index) |
233 |
{ |
234 |
ai2_spawn LoadingBay_Thug_1 |
235 |
ai2_spawn LoadingBay_Thug_2 |
236 |
ai2_spawn LoadingBay_Striker_2 |
237 |
ai2_spawn LoadingBay_Comguy_1 |
238 |
objective_set 2 silent |
239 |
sound_dialog_play c00_01_19shinatama |
240 |
} |
241 |
|
242 |
#tv15 - after tv14 in front of the ramp |
243 |
func void bomber_boom(string char_index) |
244 |
{ |
245 |
particle bomb1 do explode |
246 |
obj_kill 991 992 |
247 |
sleep 300 |
248 |
particle bomb1 stop |
249 |
} |
250 |
|
251 |
#tv8 - the complete floor of the hall |
252 |
func void set_target_3(string chr_index) |
253 |
{ |
254 |
particle door1_locklight01 do stop |
255 |
door_lock 3 |
256 |
particle tctf1 do stop |
257 |
particle auto1 do stop |
258 |
particle auto1fire do stop |
259 |
particle auto1spark do stop |
260 |
particle door1spark do stop |
261 |
chr_delete civ_victim_1 |
262 |
chr_delete civ_victim_2 |
263 |
chr_delete civ_victim_3 |
264 |
chr_delete civ_victim_5 |
265 |
chr_delete civ_victim_10 |
266 |
chr_delete civ_victim_11 |
267 |
chr_delete civ_victim_20 |
268 |
chr_delete civ_victim_21 |
269 |
target_set 1109 30 |
270 |
sound_dialog_play c00_01_26shinatama |
271 |
} |
272 |
|
273 |
########## |
274 |
### SP2 ### |
275 |
########## |
276 |
|
277 |
#tv3 - after the passage from the hall to the runway |
278 |
func void save_point_2(string player_name) |
279 |
{ |
280 |
if(save_point eq 2) |
281 |
{ |
282 |
trigvolume_enable bomberboom 0 |
283 |
trigvolume_enable madbomberbait 0 |
284 |
trigvolume_enable trigger_volume_03 0 |
285 |
target_set 1109 30 |
286 |
objective_set 2 silent |
287 |
sleep 1 |
288 |
sound_dialog_play_block c00_01_19shinatama |
289 |
sound_dialog_play c00_01_26shinatama |
290 |
} |
291 |
else save_game 2 autosave |
292 |
ai2_spawn Tarmac_Striker_1 |
293 |
ai2_spawn Tarmac_Striker_2 |
294 |
ai2_spawn Tarmac_Striker_3 |
295 |
ai2_spawn Tarmac_Striker_4 |
296 |
ai2_spawn Tarmac_Friend_1 |
297 |
ai2_spawn LoadingBay_Striker_1 |
298 |
sound_music_start atm_gr06 1 |
299 |
var_counter = -4 |
300 |
} |
301 |
|
302 |
#lose func of Tarmac_Striker_3 |
303 |
func void progress_check_1(string ai_name) |
304 |
{ |
305 |
progress_check_4 |
306 |
} |
307 |
|
308 |
#lose func of Tarmac_Striker_2 |
309 |
func void progress_check_2(string ai_name) |
310 |
{ |
311 |
progress_check_4 |
312 |
} |
313 |
|
314 |
#tv19 - on the left side; over the complete runway from left to right; in front of the nose of the airplane |
315 |
func void back9a(string ai_name) |
316 |
{ |
317 |
ai2_spawn hidden_striker1 |
318 |
} |
319 |
|
320 |
#tv23 - on the right side; over the complete runway from left to right; under the engines of the airplane |
321 |
# (entry func: bay1_particles; exit func: bay2_particles); I've disabled it |
322 |
#tv22 - after tv23 (entry func: bay2_particles; exit func: bay1_particles); I've disabled it |
323 |
|
324 |
#tv20 - in front of the first shack; over the complete runway from left to right |
325 |
func void back9b(string ai_name) |
326 |
{ |
327 |
ai2_spawn hidden_striker2 |
328 |
} |
329 |
|
330 |
#tv9 - big block; where the to ways down to the hall starts to the windows |
331 |
func void set_target_4(string chr_index) |
332 |
{ |
333 |
target_set 1112 30 |
334 |
sound_dialog_play c00_01_25shinatama |
335 |
} |
336 |
|
337 |
#tv6 - in front of the passage to the hall |
338 |
func void BayTwo1(string char_index) |
339 |
{ |
340 |
ai2_dopath Tarmac_Striker_2 come_to_me 1 |
341 |
ai2_dopath Tarmac_Striker_3 come_to_me 1 |
342 |
ai2_dopath mad_bomber_2 come_to_me 1 |
343 |
ai2_spawn BayTwo_Striker_1 |
344 |
ai2_spawn hidden_friend2 |
345 |
ai2_spawn mad_bomber_2 |
346 |
music_stop |
347 |
} |
348 |
|
349 |
#lose func of mad_bomber_2 |
350 |
func void progress_check_3(string ai_name) |
351 |
{ |
352 |
progress_check_4 |
353 |
} |
354 |
|
355 |
#lose func of BayTwo_Striker_1 |
356 |
func void progress_check_4(string ai_name) |
357 |
{ |
358 |
var_counter = var_counter + 1 |
359 |
} |
360 |
|
361 |
#tv42 - after tv6 (entry func: exhaust_off; exit func: exhaust_on); I've disabled it |
362 |
#tv43 - after tv42 (entry func: exhaust_on; exit func: exhaust_off); I've disabled it |
363 |
#tv16 - at the end of the ramp; in front of door 6 (entry func: set_target_5; inside func: save_point_3); I've disabled it |
364 |
|
365 |
########## |
366 |
### SP3 ### |
367 |
########## |
368 |
|
369 |
#tv44 - at the same place as tv16 |
370 |
func void second_coming(string ai_name) |
371 |
{ |
372 |
if(var_counter eq 0) |
373 |
{ |
374 |
if(save_point eq 3) |
375 |
{ |
376 |
trigvolume_enable back9 0 |
377 |
trigvolume_enable back9_copy 0 |
378 |
trigvolume_enable bomberboom 0 |
379 |
trigvolume_enable madbomberbait 0 |
380 |
trigvolume_enable tarmac 0 |
381 |
trigvolume_enable trigger_volume_03 0 |
382 |
trigvolume_enable trigger_volume_08 0 |
383 |
trigvolume_enable trigger_volume_10 0 |
384 |
trigvolume_enable trigger_volume_11 0 |
385 |
objective_set 2 silent |
386 |
} |
387 |
else save_game 3 autosave |
388 |
trigvolume_enable secondcoming 0 |
389 |
ai2_spawn TerminalTwo_Striker_1 |
390 |
ai2_spawn TerminalTwo_Striker_2 |
391 |
door_unlock 6 |
392 |
particle door7_locklight01 do start |
393 |
particle lock2_locklight01 do start |
394 |
target_set 1115 30 |
395 |
sleep 1 |
396 |
sound_dialog_play c00_01_24shinatama |
397 |
} |
398 |
else |
399 |
{ |
400 |
ai2_dopath Tarmac_Striker_2 come_to_me 1 |
401 |
ai2_dopath Tarmac_Striker_3 come_to_me 1 |
402 |
ai2_dopath mad_bomber_2 come_to_me 1 |
403 |
} |
404 |
} |
405 |
|
406 |
func void patrolscript000(string ai_name) |
407 |
{ |
408 |
particle lock2_locklight01 do start |
409 |
door_unlock 6 |
410 |
} |
411 |
|
412 |
#tv1 - after door 7 |
413 |
func void Booth(string wazzzup) |
414 |
{ |
415 |
ai2_spawn BoothStriker01 |
416 |
ai2_spawn BoothStriker02 |
417 |
playback BoothStriker01 BoothStriker01 |
418 |
playback BoothStriker02 BoothStriker02 |
419 |
sound_music_start mus_asian 0.8 |
420 |
target_set 0 0 |
421 |
door_lock 10 |
422 |
} |
423 |
|
424 |
#lose func of BoothStriker01 |
425 |
func void console_2_activate(string char_index) |
426 |
{ |
427 |
console_activate 2 |
428 |
} |
429 |
|
430 |
#console 2 |
431 |
func void change_door2_light(void) |
432 |
{ |
433 |
door_lock 7 |
434 |
particle door7_locklight01 do stop |
435 |
particle door2_locklight01 do start |
436 |
console_deactivate 2 |
437 |
objective_set 3 silent |
438 |
target_set 1139 30 |
439 |
sound_dialog_play_block c00_01_18shinatama |
440 |
sound_dialog_play c00_01_28shinatama |
441 |
} |
442 |
|
443 |
#tv5 - after door 10 |
444 |
func void Repair1(string char_index) |
445 |
{ |
446 |
ai2_spawn Repair_Striker_1 |
447 |
ai2_spawn Repair_Comguy_1 |
448 |
ai2_spawn alamo_thug_1 |
449 |
} |
450 |
|
451 |
#tv24 - after door 11 |
452 |
func void stop_booth_music(string who) |
453 |
{ |
454 |
music_stop |
455 |
} |
456 |
|
457 |
#tv21 - at the beginning of the stairs to door 13 |
458 |
func void Repair2(string char_index) |
459 |
{ |
460 |
ai2_spawn Repair_Striker_2 |
461 |
ai2_spawn Repair_Comguy_2 |
462 |
} |
463 |
|
464 |
#console 3 |
465 |
func void final_ambush(string char_index) |
466 |
{ |
467 |
sound_music_start mus_fitec_hd 0.91 |
468 |
particle door3_locklight01 do start |
469 |
door_unlock 14 |
470 |
ai2_spawn finalam_striker_1 |
471 |
ai2_spawn finalam_striker_2 |
472 |
ai2_setmovementmode finalam_striker_1 walk |
473 |
ai2_setmovementmode finalam_striker_2 walk |
474 |
playback finalam_striker_1 finalam_striker1 |
475 |
playback finalam_striker_2 finalam_striker2 |
476 |
sleep 240 |
477 |
particle door3_locklight01 do stop |
478 |
door_lock 14 |
479 |
ai2_dopath finalam_striker1 finalam_1 1 |
480 |
ai2_dopath finalam_striker2 finalam_2 1 |
481 |
} |
482 |
|
483 |
#for the open door func see func: striker_lullaby_2 |
484 |
#tv12 - on the stairs to door 12 (entry func: i_uh_heheheh); it's disabled and I didn't enabled it |
485 |
|
486 |
#tv7 - after door 14 |
487 |
func outro(string wazzup) |
488 |
{ |
489 |
fade_out 0 0 0 30 |
490 |
sleep 30 |
491 |
win |
492 |
} |
493 |
|
494 |
##################### |
495 |
### TEXT CONSOLES ### |
496 |
##################### |
497 |
|
498 |
func void level_4a(void) |
499 |
{ |
500 |
text_console level_4a |
501 |
console_reset 7 |
502 |
} |
503 |
|
504 |
func void level_4b(void) |
505 |
{ |
506 |
text_console level_4b |
507 |
console_reset 7 |
508 |
} |
509 |
|
510 |
func void level_4c(void) |
511 |
{ |
512 |
text_console level_4c |
513 |
console_reset 8 |
514 |
} |