ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/nikanabo/current/bsl/onilight/IGMD/state/state.bsl
Revision: 185
Committed: Mon May 21 18:48:22 2007 UTC (18 years, 4 months ago) by geyser
File size: 10654 byte(s)
Log Message:

File Contents

# Content
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 sleep 5
34 fork sp_all
35 }
36
37 func void deactivate_stuff(void)
38 {
39 #not used
40 trigvolume_enable Cut_dog 0
41 trigvolume_enable trigger_volume_07 0
42 trigvolume_enable trigger_volume_11 0
43 trigvolume_enable trigger_volume_12 0
44 trigvolume_enable trigger_volume_14 0
45 trigvolume_enable trigger_volume_15 0
46 #used
47 trigvolume_enable Cut_outro 0
48 trigvolume_enable shut_off_vault_music 0
49 trigvolume_enable ninja_ambush_bot_trig 0
50 trigvolume_enable ninja_ambush_top_trig 0
51 }
52
53 func void you_lose(string ai_name)
54 {
55 fade_out 0 0 0 30
56 sleep 30
57 lose
58 }
59
60 ####################################
61 ### SEVERAL TIMES USED FUNCTIONS ###
62 ####################################
63
64 func void sp_all(void)
65 {
66 co_message_display = 0
67 if(save_point eq 1) save_game 1 autosave
68 if(save_point eq 2) save_game 2 autosave
69 sleep 180
70 co_message_display = 1
71 }
72
73 func void remove_ai(void)
74 {
75 ai2_kill
76 sleep 60
77 powerup_reset
78 weapon_reset
79 sleep 240
80 corpse_reset
81 }
82
83 func void music_stop(void)
84 {
85 sound_music_stop mus_main02
86 sound_music_stop mus_lz
87 sound_music_stop mus_heart
88 sound_music_stop mus_main02_hd
89 }
90
91 #tv13, tv14, tv15, tv19 and tv 20
92 func void spawn_outside_left_snipers(string ai_name)
93 {
94 ai2_spawn flOUTSIDE_A_sniper_1
95 ai2_spawn flOUTSIDE_A_sniper_2
96 ai2_spawn flOUTSIDE_B_sniper_1
97 ai2_spawn flOUTSIDE_C_sniper_1
98 }
99
100 #tv16, tv17 and tv18
101 func void spawn_outside_right_snipers(string ai_name)
102 {
103 ai2_spawn flOUTSIDE_D_sniper_1
104 ai2_spawn flOUTSIDE_D_sniper_2
105 ai2_spawn flOUTSIDE_E_sniper_1
106 ai2_spawn flOUTSIDE_E_sniper_2
107 }
108
109 ##########
110 ### SP1 ###
111 ##########
112
113 func void intro(void)
114 {
115 particle lock99_locklight01 do start
116 ai2_spawn IntroSec1
117 ai2_spawn IntroSec2
118 ai2_spawn neutral_1
119 ai2_spawn fl2_secguard_1
120 powerup_spawn ammo 131
121 powerup_spawn hypo 132
122 objective_set 1 silent
123 target_set 127 30
124 sleep 1
125 sound_music_start mus_main02_hd 1.0
126 }
127
128 #lose func of IntroSec2
129 func void die_for_art_1(string ai_name)
130 {
131 die_for_art_2
132 }
133
134 #lose func of IntroSec1
135 func void die_for_art_2(string ai_name)
136 {
137 var_counter = var_counter + 1
138 if(var_counter eq 2) music_stop
139 }
140
141 ### GROUND FLOOR ###
142
143 #tv7 - after door 59
144 func void save_game_1(string ai_name)
145 {
146 ai2_spawn fl1_secguard_1
147 ai2_spawn fl1_secguard_2
148 ai2_spawn fl1_secguard_4
149 }
150
151 #hit func of neutral_1
152 func void do_neutral_1_run(string ai_name)
153 {
154 ai2_neutralbehavior neutral_1 none
155 ai2_setmovementmode neutral_1 run_noaim
156 ai2_dopath neutral_1 neutral_1_run
157 ai2_setjobstate neutral_1
158 }
159
160 #console2
161 func void change_fl2_lights(string ai_name)
162 {
163 particle lock1_locklight01 do start
164 particle lock2_locklight01 do start
165 door_unlock 54
166 objective_set 2 silent
167 }
168
169 ### 1ST FLOOR ###
170
171 #tv2 - after door 67, the complete room plus all rooms behind it
172 func void fl2_spawn_secguard_3(string ai_name)
173 {
174 ai2_spawn fl2_secguard_3
175 ai2_spawn fl2_secguard_6
176 ai2_spawn fl2_balcony_1
177 }
178
179 #tv1 - after door 75, the complete room plus all rooms behind it
180 func void fl2_spawn_secguard_2(string ai_name)
181 {
182 ai2_spawn fl2_secguard_2
183 ai2_spawn fl2_secguard_7
184 ai2_spawn fl2_balcony_2
185 ai2_spawn neutral_2
186 ai2_spawn neutral_4
187 }
188
189 #hit func of neutral_2
190 func void do_neutral_2_run(string ai_name)
191 {
192 ai2_neutralbehavior neutral_2 none
193 ai2_dopath neutral_2 neutral_2_run
194 ai2_setjobstate neutral_2
195 }
196
197 #console3
198 func void change_fl3_lights(string ai_name)
199 {
200 particle lock3_locklight01 do start
201 ai2_spawn fl3_mook_1
202 ai2_spawn fl3_mook_2
203 }
204
205 ### 2ND FLOOR ###
206
207 #tv6 - in front of door 68 and door 76
208 func void spawn_fl3_guards(string ai_name)
209 {
210 ai2_spawn fl3_secguard_1
211 ai2_spawn fl3_secguard_2
212 ai2_spawn fl3_secguard_6
213 ai2_spawn flROOF_sniper_1
214 ai2_spawn Roof_BOSWAT_1
215 ai2_spawn neutral_3
216 ai2_spawn neutral_6
217 objective_set 3 silent
218 var_counter = 0
219 }
220
221 #hit func of neutral_3
222 func void do_neutral_3_run(string ai_name)
223 {
224 ai2_neutralbehavior neutral_3 none
225 ai2_dopath neutral_3 neutral_3_run
226 ai2_setjobstate neutral_3
227 }
228
229 #console4
230 func void seclock2(string ai_name)
231 {
232 particle lock5b_locklight01 do start
233 console_check
234 }
235
236 #console82
237 func void seclock3(string ai_name)
238 {
239 particle lock5c_locklight01 do start
240 console_check
241 }
242
243 #console88
244 func void seclock1(string ai_name)
245 {
246 particle lock5a_locklight01 do start
247 console_check
248 }
249
250 func void console_check(void)
251 {
252 var_counter = var_counter + 1
253 if(var_counter eq 1) sound_music_start mus_lz 0.75
254 if(var_counter eq 3)
255 {
256 music_stop
257 door_unlock 23
258 door_unlock 42
259 }
260 }
261
262 ### ROOF ###
263
264 #console5
265 func void DataArchiveUnlock(string ai_name)
266 {
267 sound_music_start mus_heart
268 particle lock4_locklight01 do start
269 door_unlock 7
270 ai2_spawn fl1_target_1
271 ai2_spawn fl2_target_2
272 objective_set 4 silent
273 target_set 267 30
274 trigvolume_enable shut_off_vault_music 1
275 }
276
277 ### BACK TO GROUND FLOOR ###
278
279 #tv22 - between door 7 and door 14
280 func void all_music_counters(void)
281 {
282 music_stop
283 }
284
285 ##########
286 ### SP2 ###
287 ##########
288
289 ### BASMENT ###
290
291 #tv24 - after door 15 (which is on the left side)
292 func void save_game_2_right(string player_name)
293 {
294 save_game_2_left
295 }
296
297 #tv23 - after door 5 (which is on the right side)
298 func void save_game_2_left(string player_name)
299 {
300 if(save_point eq 2) fork load_s2
301 else
302 {
303 save_game 2 autosave
304 fork remove_ai
305 }
306 trigvolume_enable save_trig_left 0
307 trigvolume_enable save_trig_right 0
308 ai2_spawn flBASEMENT_guard_1
309 ai2_spawn flBASEMENT_guard_2
310 console_activate 1
311 console_activate 6
312 }
313
314 func void load_s2(void)
315 {
316 particle lock1_locklight01 do start
317 particle lock2_locklight01 do start
318 particle lock3_locklight01 do start
319 particle lock4_locklight01 do start
320 particle lock5a_locklight01 do start
321 particle lock5b_locklight01 do start
322 particle lock5c_locklight01 do start
323 particle lock99_locklight01 do start
324 door_unlock 5
325 door_unlock 7
326 door_unlock 14
327 door_unlock 15
328 door_unlock 23
329 door_unlock 42
330 door_unlock 54
331 door_unlock 59
332 door_unlock 67
333 door_unlock 68
334 door_unlock 75
335 door_unlock 76
336 trig_activate 1
337 trig_activate 2
338 console_deactivate 2
339 console_deactivate 3
340 console_deactivate 5
341 console_deactivate 4
342 console_deactivate 11
343 console_deactivate 82
344 console_deactivate 88
345 trigvolume_enable trigger_volume_09 0
346 trigvolume_enable trigger_volume_08 0
347 trigvolume_enable trigger_volume_02 0
348 trigvolume_enable trigger_volume_01 0
349 ai2_spawn neutral_1
350 ai2_spawn neutral_2
351 ai2_spawn neutral_3
352 ai2_spawn neutral_4
353 ai2_spawn neutral_5
354 ai2_spawn neutral_6
355 ai2_neutralbehavior neutral_1 none
356 ai2_neutralbehavior neutral_2 none
357 ai2_neutralbehavior neutral_3 none
358 objective_set 4 silent
359 target_set 267 30
360 }
361
362 #console6
363 func void hall_1(string ai_name)
364 {
365 particle lock6_locklight01 do start
366 door_unlock 3
367 door_unlock 22
368 door_unlock 38
369 door_unlock 77
370 trig_deactivate 1
371 trig_deactivate 2
372 }
373
374 #console1
375 func void unlock_secret_1(string ai_name)
376 {
377 console_activate 7
378 ai2_spawn secret_guard_1
379 ai2_spawn secret_guard_2
380 trig_activate 12
381 trig_activate 13
382 trig_activate 14
383 door_unlock 82
384 objective_set 5 silent
385 target_set 1030 30
386 }
387
388 #tv8 - in front of door 3 and door 77
389 func void spawn_flRAMP_guards(string ai_name)
390 {
391 particle lock46_locklight01 do start
392 ai2_spawn flRAMP_guard_1
393 ai2_spawn flRAMP_guard_2
394 }
395
396 ### BACK TO 2ND FLOOR ###
397
398 #console7
399 func void unlock_secret_2(string ai_name)
400 {
401 particle lock7_locklight01 do start
402 door_unlock 34
403 door_unlock 36
404 trig_deactivate 12
405 trigvolume_enable ninja_ambush_top_trig 1
406 trigvolume_enable ninja_ambush_bot_trig 1
407 }
408
409 #tv29 - after door 3 and door 77
410 #tv25 - after door 22 and door 38
411 func void ninja_ambush(string ai_name)
412 {
413 trigvolume_enable ninja_ambush_top_trig 0
414 trigvolume_enable ninja_ambush_bot_trig 0
415 ai2_spawn ambush_ninja_1
416 ai2_spawn creepy_ninja_1
417 ai2_spawn creepy_ninja_3
418 }
419
420 ### NEXT PART OF THE BUILDING - 1ST FLOOR ###
421
422 #console8
423 func void upstairs(string ai_name)
424 {
425 particle lock23_locklight01 do start
426 particle lock65_locklight01 do start
427 door_unlock 8
428 door_unlock 9
429 door_unlock 35
430 trig_deactivate 13
431 trig_deactivate 14
432 ai2_spawn creepy_ninja_5
433 ai2_spawn creepy_ninja_6
434 }
435
436 ### 2ND FLOOR ###
437
438 #tv4 - in front of door 37
439 func void window_ninja(string ai_name)
440 {
441 trigvolume_enable Cut_outro 0
442 ai2_spawn creepy_ninja_4
443 chr_teleport creepy_ninja_4 289
444 ai2_lookatme creepy_ninja_4
445 chr_animate creepy_ninja_4 NINJArun_kick
446 chr_create 1030 start
447 chr_neutral 1030 1
448 playback 1030 WindowNinjaSet
449 sound_music_start mus_pursuit_hd
450 obj_create 481 481
451 obj_show 481 481
452 env_anim 481 481
453 env_setanim 481 Disk02
454 chr_envanim 1030 WindowNinjaBox01 norotation
455 chr_animate 1030 NINJAlev11_window
456 sleep 185
457 sound_impulse_play glass_big
458 particle WindowCharge do explode
459 sleep 60
460 chr_delete 1030
461 ai2_spawn WindowNinjaRun
462 ai2_passive WindowNinjaRun 1
463 chr_unstoppable WindowNinjaRun 1
464 chr_lock_active WindowNinjaRun
465 playback WindowNinjaRun WindowNinjaRun
466 obj_kill 481 481
467 target_set 1030 0
468 sleep 210
469 playback WindowNinjaRun JumpNinjaSet
470 #sleep 10
471 #playback WindowNinjaRun JumpNinjaSet
472 }
473
474 ### OUTSIDE ON THE ROOF ###
475
476 #tv27 - complete roof
477 func void check_outro(string ai_name)
478 {
479 trigvolume_enable tv_check_outro 0
480 if(trigvolume_count(24) eq 0)
481 {
482 trigvolume_enable Cut_outro 1
483 particle obj2 create
484 target_set 126 30
485 }
486 else
487 {
488 sleep 60
489 trigvolume_enable tv_check_outro 1
490 }
491 }
492
493 #tv28 - complete roof too; used to count the enemies inside it; see func above
494
495 #tv21 - after the window, from the first left box to the right wall
496 func void FaceSet(string ai_name)
497 {
498 playback WindowNinjaRun
499 ai2_spawn FaceNinja
500 ai2_spawn FaceNinja2
501 playback FaceNinja FaceNinjaSet
502 playback FaceNinja FaceNinjaJump
503 }
504
505 #tv26 - passage between the two boxes
506 func void JumpNinja(string ai_name)
507 {
508 chr_nocollision WindowNinjaRun 1
509 chr_animate WindowNinjaRun KONOKOlev11_jump -1
510 sleep 135
511 chr_delete WindowNinjaRun
512 }
513
514 #tv5 - the place with the yellow flashing circle
515 func void outro(string ai_name)
516 {
517 fade_out 0 0 0 30
518 sleep 30
519 win
520 }
521
522 #####################
523 ### TEXT CONSOLES ###
524 #####################
525
526 func void grifftext(string chr_index)
527 {
528 text_console level_11a
529 console_reset 9
530 }