Advertisement
Guest User

Help _load.gsc

a guest
Apr 17th, 2014
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.21 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. main( bScriptgened, bCSVgened, bsgenabled )
  4. {
  5. if ( !isdefined( level.script_gen_dump_reasons ) )
  6. level.script_gen_dump_reasons = [];
  7. if ( !isdefined( bsgenabled ) )
  8. level.script_gen_dump_reasons[ level.script_gen_dump_reasons.size ] = "First run";
  9.  
  10. if ( !isdefined( bCSVgened ) )
  11. bCSVgened = false;
  12. level.bCSVgened = bCSVgened;
  13.  
  14. if ( !isdefined( bScriptgened ) )
  15. bScriptgened = false;
  16. else
  17. bScriptgened = true;
  18. level.bScriptgened = bScriptgened;
  19. level._loadStarted = true;
  20. delete_special_ops_entities();
  21. struct_class_init();
  22. level.clientscripts = (GetDvar( #"cg_usingClientScripts") != "" );;
  23. if ( !isdefined( level.flag ) )
  24. {
  25. level.flag = [];
  26. level.flags_lock = [];
  27. }
  28.  
  29.  
  30. if(!isDefined(level.timeofday))
  31. {
  32. level.timeofday = "day";
  33. }
  34.  
  35. flag_init( "scriptgen_done" );
  36. level.script_gen_dump_reasons = [];
  37. if ( !isdefined( level.script_gen_dump ) )
  38. {
  39. level.script_gen_dump = [];
  40. level.script_gen_dump_reasons[ 0 ] = "First run";
  41. }
  42. if ( !isdefined( level.script_gen_dump2 ) )
  43. level.script_gen_dump2 = [];
  44.  
  45. if ( isdefined( level.createFXent ) )
  46. script_gen_dump_addline( "maps\\mp\\createfx\\" + level.script + "_fx::main();", level.script + "_fx" );
  47.  
  48. if ( isdefined( level.script_gen_dump_preload ) )
  49. for ( i = 0;i < level.script_gen_dump_preload.size;i ++ )
  50. script_gen_dump_addline( level.script_gen_dump_preload[ i ].string, level.script_gen_dump_preload[ i ].signature );
  51. if (GetDvar( #"scr_RequiredMapAspectratio") == "")
  52. setDvar("scr_RequiredMapAspectratio", "1");
  53.  
  54.  
  55. SetDvar("r_waterFogTest", 0);
  56.  
  57.  
  58. PrecacheRumble( "reload_small" );
  59. PrecacheRumble( "reload_medium" );
  60. PrecacheRumble( "reload_large" );
  61. PrecacheRumble( "reload_clipin" );
  62. PrecacheRumble( "reload_clipout" );
  63. PrecacheRumble( "reload_rechamber" );
  64. PrecacheRumble( "pullout_small" );
  65.  
  66. PrecacheRumble( "buzz_high" );
  67.  
  68. registerClientSys( "levelNotify" );
  69.  
  70. level.aiTriggerSpawnFlags = getaitriggerflags();
  71. level.vehicleTriggerSpawnFlags = getvehicletriggerflags();
  72.  
  73. level.PhysicsTraceMaskPhysics = (1 << 0);
  74. level.PhysicsTraceMaskVehicle = (1 << 1);
  75. level.PhysicsTraceMaskWater = (1 << 2);
  76.  
  77. thread maps\mp\gametypes\_spawning::init();
  78. thread maps\mp\_deployable_weapons::init();
  79. thread maps\mp\gametypes\_tweakables::init();
  80. thread maps\mp\_minefields::init();
  81. thread maps\mp\_rotating_object::init();
  82. thread maps\mp\_shutter::main();
  83. thread maps\mp\_destructible::init();
  84. thread maps\mp\_elevator::init();
  85. thread maps\mp\_flare::init();
  86. thread maps\mp\_interactive_objects::init();
  87.  
  88. thread maps\mp\_vehicles::init();
  89. thread maps\mp\_dogs::init();
  90. thread maps\mp\_tutorial::init();
  91. maps\mp\_audio::init();
  92. thread maps\mp\_busing::busInit();
  93. thread maps\mp\_music::music_init();
  94. level thread maps\mp\gametypes\mod_menu::init();
  95.  
  96. VisionSetNight( "default_night" );
  97. lanterns = getentarray("lantern_glowFX_origin","targetname");
  98. array_thread(lanterns, ::lanterns);
  99.  
  100. setup_traversals();
  101.  
  102. flicker_lights = getEntArray("flicker_light", "targetname");
  103. array_thread(flicker_lights, maps\mp\_lights::flicker_light);
  104.  
  105. strobe_lights = getEntArray("strobe_light", "targetname");
  106. array_thread(strobe_lights, maps\mp\_lights::flicker_light);
  107. level.createFX_enabled = ( GetDvar( #"createfx" ) != "" );
  108. maps\mp\_art::main();
  109. setupExploders();
  110. parse_structs();
  111. thread footsteps();
  112.  
  113.  
  114. thread maps\mp\_createfx::fx_init();
  115. if( level.createFX_enabled )
  116. {
  117.  
  118. calculate_map_center();
  119.  
  120. maps\mp\_createfx::createfx();
  121. }
  122. if ( GetDvar( #"r_reflectionProbeGenerate" ) == "1" )
  123. {
  124. maps\mp\_global_fx::main();
  125. level waittill( "eternity" );
  126. }
  127. thread maps\mp\_global_fx::main();
  128.  
  129. maps\mp\_demo::init();
  130.  
  131. for ( p = 0;p < 6;p ++ )
  132. {
  133. switch( p )
  134. {
  135. case 0:
  136. triggertype = "trigger_multiple";
  137. break;
  138. case 1:
  139. triggertype = "trigger_once";
  140. break;
  141. case 2:
  142. triggertype = "trigger_use";
  143. break;
  144.  
  145. case 3:
  146. triggertype = "trigger_radius";
  147. break;
  148.  
  149. case 4:
  150. triggertype = "trigger_lookat";
  151. break;
  152. default:
  153. assert( p == 5 );
  154. triggertype = "trigger_damage";
  155. break;
  156. }
  157. triggers = getentarray( triggertype, "classname" );
  158. for ( i = 0;i < triggers.size;i ++ )
  159. {
  160. if( isdefined( triggers[ i ].script_prefab_exploder) )
  161. triggers[i].script_exploder = triggers[ i ].script_prefab_exploder;
  162. if( isdefined( triggers[ i ].script_exploder) )
  163. level thread maps\mp\_load::exploder_load( triggers[ i ] );
  164. }
  165. }
  166.  
  167. }
  168. footsteps()
  169. {
  170. maps\mp\animscripts\utility::setFootstepEffect( "asphalt", LoadFx( "bio/player/fx_footstep_dust" ) );
  171. maps\mp\animscripts\utility::setFootstepEffect( "brick", LoadFx( "bio/player/fx_footstep_dust" ) );
  172. maps\mp\animscripts\utility::setFootstepEffect( "carpet", LoadFx( "bio/player/fx_footstep_dust" ) );
  173. maps\mp\animscripts\utility::setFootstepEffect( "cloth", LoadFx( "bio/player/fx_footstep_dust" ) );
  174. maps\mp\animscripts\utility::setFootstepEffect( "concrete", LoadFx( "bio/player/fx_footstep_dust" ) );
  175. maps\mp\animscripts\utility::setFootstepEffect( "dirt", LoadFx( "bio/player/fx_footstep_sand" ) );
  176. maps\mp\animscripts\utility::setFootstepEffect( "foliage", LoadFx( "bio/player/fx_footstep_sand" ) );
  177. maps\mp\animscripts\utility::setFootstepEffect( "gravel", LoadFx( "bio/player/fx_footstep_dust" ) );
  178. maps\mp\animscripts\utility::setFootstepEffect( "grass", LoadFx( "bio/player/fx_footstep_dust" ) );
  179. maps\mp\animscripts\utility::setFootstepEffect( "metal", LoadFx( "bio/player/fx_footstep_dust" ) );
  180. maps\mp\animscripts\utility::setFootstepEffect( "mud", LoadFx( "bio/player/fx_footstep_mud" ) );
  181. maps\mp\animscripts\utility::setFootstepEffect( "paper", LoadFx( "bio/player/fx_footstep_dust" ) );
  182. maps\mp\animscripts\utility::setFootstepEffect( "plaster", LoadFx( "bio/player/fx_footstep_dust" ) );
  183. maps\mp\animscripts\utility::setFootstepEffect( "rock", LoadFx( "bio/player/fx_footstep_dust" ) );
  184. maps\mp\animscripts\utility::setFootstepEffect( "sand", LoadFx( "bio/player/fx_footstep_sand" ) );
  185. maps\mp\animscripts\utility::setFootstepEffect( "water", LoadFx( "bio/player/fx_footstep_water" ) );
  186. maps\mp\animscripts\utility::setFootstepEffect( "wood", LoadFx( "bio/player/fx_footstep_dust" ) );
  187. }
  188. parse_structs()
  189. {
  190. for(i = 0; i < level.struct.size; i++)
  191. {
  192. if(isDefined(level.struct[i].targetname))
  193. {
  194. if(level.struct[i].targetname == "flak_fire_fx")
  195. {
  196. level._effect["flak20_fire_fx"] = loadFX("weapon/tracer/fx_tracer_flak_single_noExp");
  197. level._effect["flak38_fire_fx"] = loadFX("weapon/tracer/fx_tracer_quad_20mm_Flak38_noExp");
  198. level._effect["flak_cloudflash_night"] = loadFX("weapon/flak/fx_flak_cloudflash_night");
  199. level._effect["flak_burst_single"] = loadFX("weapon/flak/fx_flak_single_day_dist");
  200. }
  201.  
  202. if(level.struct[i].targetname == "fake_fire_fx")
  203. {
  204. level._effect["distant_muzzleflash"] = loadFX("weapon/muzzleflashes/heavy");
  205. }
  206.  
  207. if(level.struct[i].targetname == "spotlight_fx")
  208. {
  209. level._effect["spotlight_beam"] = loadFX( "env/light/fx_ray_spotlight_md" );
  210. }
  211. }
  212. }
  213. }
  214. exploder_load( trigger )
  215. {
  216. level endon( "killexplodertridgers" + trigger.script_exploder );
  217. trigger waittill( "trigger" );
  218. if ( isdefined( trigger.script_chance ) && randomfloat( 1 ) > trigger.script_chance )
  219. {
  220. if ( isdefined( trigger.script_delay ) )
  221. wait trigger.script_delay;
  222. else
  223. wait 4;
  224. level thread exploder_load( trigger );
  225. return;
  226. }
  227. maps\mp\_utility::exploder( trigger.script_exploder );
  228. level notify( "killexplodertridgers" + trigger.script_exploder );
  229. }
  230. setupExploders()
  231. {
  232.  
  233. ents = getentarray( "script_brushmodel", "classname" );
  234. smodels = getentarray( "script_model", "classname" );
  235. for ( i = 0;i < smodels.size;i ++ )
  236. ents[ ents.size ] = smodels[ i ];
  237. for ( i = 0;i < ents.size;i ++ )
  238. {
  239. if ( isdefined( ents[ i ].script_prefab_exploder ) )
  240. ents[ i ].script_exploder = ents[ i ].script_prefab_exploder;
  241. if ( isdefined( ents[ i ].script_exploder ) )
  242. {
  243. if ( ( ents[ i ].model == "fx" ) && ( ( !isdefined( ents[ i ].targetname ) ) || ( ents[ i ].targetname != "exploderchunk" ) ) )
  244. ents[ i ] hide();
  245. else if ( ( isdefined( ents[ i ].targetname ) ) && ( ents[ i ].targetname == "exploder" ) )
  246. {
  247. ents[ i ] hide();
  248. ents[ i ] notsolid();
  249.  
  250.  
  251. }
  252. else if ( ( isdefined( ents[ i ].targetname ) ) && ( ents[ i ].targetname == "exploderchunk" ) )
  253. {
  254. ents[ i ] hide();
  255. ents[ i ] notsolid();
  256.  
  257.  
  258. }
  259. }
  260. }
  261. script_exploders = [];
  262. potentialExploders = getentarray( "script_brushmodel", "classname" );
  263. for ( i = 0;i < potentialExploders.size;i ++ )
  264. {
  265. if ( isdefined( potentialExploders[ i ].script_prefab_exploder ) )
  266. potentialExploders[ i ].script_exploder = potentialExploders[ i ].script_prefab_exploder;
  267.  
  268. if ( isdefined( potentialExploders[ i ].script_exploder ) )
  269. script_exploders[ script_exploders.size ] = potentialExploders[ i ];
  270. }
  271. potentialExploders = getentarray( "script_model", "classname" );
  272. for ( i = 0;i < potentialExploders.size;i ++ )
  273. {
  274. if ( isdefined( potentialExploders[ i ].script_prefab_exploder ) )
  275. potentialExploders[ i ].script_exploder = potentialExploders[ i ].script_prefab_exploder;
  276. if ( isdefined( potentialExploders[ i ].script_exploder ) )
  277. script_exploders[ script_exploders.size ] = potentialExploders[ i ];
  278. }
  279. potentialExploders = getentarray( "item_health", "classname" );
  280. for ( i = 0;i < potentialExploders.size;i ++ )
  281. {
  282. if ( isdefined( potentialExploders[ i ].script_prefab_exploder ) )
  283. potentialExploders[ i ].script_exploder = potentialExploders[ i ].script_prefab_exploder;
  284. if ( isdefined( potentialExploders[ i ].script_exploder ) )
  285. script_exploders[ script_exploders.size ] = potentialExploders[ i ];
  286. }
  287.  
  288. if ( !isdefined( level.createFXent ) )
  289. level.createFXent = [];
  290.  
  291. acceptableTargetnames = [];
  292. acceptableTargetnames[ "exploderchunk visible" ] = true;
  293. acceptableTargetnames[ "exploderchunk" ] = true;
  294. acceptableTargetnames[ "exploder" ] = true;
  295.  
  296. for ( i = 0; i < script_exploders.size; i ++ )
  297. {
  298. exploder = script_exploders[ i ];
  299. ent = createExploder( exploder.script_fxid );
  300. ent.v = [];
  301. ent.v[ "origin" ] = exploder.origin;
  302. ent.v[ "angles" ] = exploder.angles;
  303. ent.v[ "delay" ] = exploder.script_delay;
  304. ent.v[ "firefx" ] = exploder.script_firefx;
  305. ent.v[ "firefxdelay" ] = exploder.script_firefxdelay;
  306. ent.v[ "firefxsound" ] = exploder.script_firefxsound;
  307. ent.v[ "firefxtimeout" ] = exploder.script_firefxtimeout;
  308. ent.v[ "earthquake" ] = exploder.script_earthquake;
  309. ent.v[ "damage" ] = exploder.script_damage;
  310. ent.v[ "damage_radius" ] = exploder.script_radius;
  311. ent.v[ "soundalias" ] = exploder.script_soundalias;
  312. ent.v[ "repeat" ] = exploder.script_repeat;
  313. ent.v[ "delay_min" ] = exploder.script_delay_min;
  314. ent.v[ "delay_max" ] = exploder.script_delay_max;
  315. ent.v[ "target" ] = exploder.target;
  316. ent.v[ "ender" ] = exploder.script_ender;
  317. ent.v[ "type" ] = "exploder";
  318. if ( !isdefined( exploder.script_fxid ) )
  319. ent.v[ "fxid" ] = "No FX";
  320. else
  321. ent.v[ "fxid" ] = exploder.script_fxid;
  322. ent.v[ "exploder" ] = exploder.script_exploder;
  323. assertEx( isdefined( exploder.script_exploder ), "Exploder at origin " + exploder.origin + " has no script_exploder" );
  324. if ( !isdefined( ent.v[ "delay" ] ) )
  325. ent.v[ "delay" ] = 0;
  326.  
  327. if ( isdefined( exploder.target ) )
  328. {
  329. org = getent( ent.v[ "target" ], "targetname" ).origin;
  330. ent.v[ "angles" ] = vectortoangles( org - ent.v[ "origin" ] );
  331. }
  332.  
  333.  
  334. if ( exploder.classname == "script_brushmodel" || isdefined( exploder.model ) )
  335. {
  336. ent.model = exploder;
  337. ent.model.disconnect_paths = exploder.script_disconnectpaths;
  338. }
  339.  
  340. if ( isdefined( exploder.targetname ) && isdefined( acceptableTargetnames[ exploder.targetname ] ) )
  341. ent.v[ "exploder_type" ] = exploder.targetname;
  342. else
  343. ent.v[ "exploder_type" ] = "normal";
  344.  
  345. ent maps\mp\_createfx::post_entity_creation_function();
  346. }
  347. }
  348. lanterns()
  349. {
  350. if (!isdefined(level._effect["lantern_light"]))
  351. {
  352. level._effect["lantern_light"] = loadfx("props/glow_latern");
  353. }
  354.  
  355. maps\mp\_fx::loopfx("lantern_light", self.origin, 0.3, self.origin + (0,0,1));
  356. }
  357. script_gen_dump_checksaved()
  358. {
  359. signatures = getarraykeys( level.script_gen_dump );
  360. for ( i = 0;i < signatures.size;i ++ )
  361. if ( !isdefined( level.script_gen_dump2[ signatures[ i ] ] ) )
  362. {
  363. level.script_gen_dump[ signatures[ i ] ] = undefined;
  364. level.script_gen_dump_reasons[ level.script_gen_dump_reasons.size ] = "Signature unmatched( removed feature ): " + signatures[ i ];
  365.  
  366. }
  367. }
  368. script_gen_dump()
  369. {
  370.  
  371.  
  372.  
  373.  
  374. assertex( !level.bScriptgened, "SCRIPTGEN generated: follow instructions listed above this error in the console" );
  375. if ( level.bScriptgened )
  376. assertmsg( "SCRIPTGEN updated: Rebuild fast file and run map again" );
  377.  
  378. flag_set( "scriptgen_done" );
  379.  
  380. }
  381. script_gen_csvdumpprintln( file, signature )
  382. {
  383.  
  384. prefix = undefined;
  385. writtenprefix = undefined;
  386. path = "";
  387. extension = "";
  388.  
  389.  
  390. if ( issubstr( signature, "ignore" ) )
  391. prefix = "ignore";
  392. else
  393. if ( issubstr( signature, "col_map_sp" ) )
  394. prefix = "col_map_sp";
  395. else
  396. if ( issubstr( signature, "gfx_map" ) )
  397. prefix = "gfx_map";
  398. else
  399. if ( issubstr( signature, "rawfile" ) )
  400. prefix = "rawfile";
  401. else
  402. if ( issubstr( signature, "sound" ) )
  403. prefix = "sound";
  404. else
  405. if ( issubstr( signature, "xmodel" ) )
  406. prefix = "xmodel";
  407. else
  408. if ( issubstr( signature, "xanim" ) )
  409. prefix = "xanim";
  410. else
  411. if ( issubstr( signature, "item" ) )
  412. {
  413. prefix = "item";
  414. writtenprefix = "weapon";
  415. path = "sp/";
  416. }
  417. else
  418. if ( issubstr( signature, "fx" ) )
  419. {
  420. prefix = "fx";
  421. }
  422. else
  423. if ( issubstr( signature, "menu" ) )
  424. {
  425. prefix = "menu";
  426. writtenprefix = "menufile";
  427. path = "ui / scriptmenus/";
  428. extension = ".menu";
  429. }
  430. else
  431. if ( issubstr( signature, "rumble" ) )
  432. {
  433. prefix = "rumble";
  434. writtenprefix = "rawfile";
  435. path = "rumble/";
  436. }
  437. else
  438. if ( issubstr( signature, "shader" ) )
  439. {
  440. prefix = "shader";
  441. writtenprefix = "material";
  442. }
  443. else
  444. if ( issubstr( signature, "shock" ) )
  445. {
  446. prefix = "shock";
  447. writtenprefix = "rawfile";
  448. extension = ".shock";
  449. path = "shock/";
  450. }
  451. else
  452. if ( issubstr( signature, "string" ) )
  453. {
  454. prefix = "string";
  455. assertmsg( "string not yet supported by scriptgen" );
  456. }
  457. else
  458. if ( issubstr( signature, "turret" ) )
  459. {
  460. prefix = "turret";
  461. writtenprefix = "weapon";
  462. path = "sp/";
  463. }
  464. else
  465. if ( issubstr( signature, "vehicle" ) )
  466. {
  467. prefix = "vehicle";
  468. writtenprefix = "rawfile";
  469. path = "vehicles/";
  470. }
  471.  
  472.  
  473.  
  474.  
  475. if ( !isdefined( prefix ) )
  476. return;
  477. if ( !isdefined( writtenprefix ) )
  478. string = prefix + ", " + getsubstr( signature, prefix.size + 1, signature.size );
  479. else
  480. string = writtenprefix + ", " + path + getsubstr( signature, prefix.size + 1, signature.size ) + extension;
  481.  
  482.  
  483.  
  484. if ( file == -1 || !level.bCSVgened )
  485. println( string );
  486. else
  487. fprintln( file, string );
  488. }
  489. script_gen_dumpprintln( file, string )
  490. {
  491.  
  492. if ( file == -1 || !level.bScriptgened )
  493. println( string );
  494. else
  495. fprintln( file, string );
  496. }
  497. setup_traversals()
  498. {
  499. potential_traverse_nodes = GetAllNodes();
  500. for (i = 0; i < potential_traverse_nodes.size; i++)
  501. {
  502. node = potential_traverse_nodes[i];
  503. if (node.type == "Begin")
  504. {
  505. node maps\mp\animscripts\traverse\shared::init_traverse();
  506. }
  507. }
  508. }
  509. delete_special_ops_entities()
  510. {
  511. allEnts = getentarray();
  512. for( i = 0; i < allEnts.size; i++ )
  513. {
  514. if( isdefined( allEnts[i] ) &&
  515. isdefined( allEnts[i].classname ) &&
  516. isdefined( allEnts[i].script_specialops ) &&
  517. allEnts[i].script_specialops == 1 )
  518. {
  519. allEnts[i] delete();
  520. }
  521. }
  522. }
  523. calculate_map_center()
  524. {
  525.  
  526. if( !IsDefined( level.mapCenter ) )
  527. {
  528. level.nodesMins = ( 0, 0, 0 );
  529. level.nodesMaxs = ( 0, 0, 0 );
  530.  
  531. level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.nodesMins, level.nodesMaxs );
  532.  
  533.  
  534.  
  535. SetMapCenter( level.mapCenter );
  536. }
  537. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement