mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-09 10:27:51 -05:00
343 lines
7.9 KiB
Plaintext
343 lines
7.9 KiB
Plaintext
#include maps/mp/_script_gen;
|
|
#include maps/mp/_utility;
|
|
#include common_scripts/utility;
|
|
|
|
script_gen_dump_checksaved()
|
|
{
|
|
signatures = getarraykeys( level.script_gen_dump );
|
|
i = 0;
|
|
while ( i < signatures.size )
|
|
{
|
|
if ( !isDefined( level.script_gen_dump2[ signatures[ i ] ] ) )
|
|
{
|
|
level.script_gen_dump_reasons[ level.script_gen_dump_reasons.size ] = "Signature unmatched( removed feature ): " + signatures[ i ];
|
|
}
|
|
i++;
|
|
}
|
|
}
|
|
|
|
script_gen_dump()
|
|
{
|
|
/#
|
|
script_gen_dump_checksaved();
|
|
if ( !level.script_gen_dump_reasons.size )
|
|
{
|
|
flag_set( "scriptgen_done" );
|
|
return;
|
|
}
|
|
firstrun = 0;
|
|
if ( level.bscriptgened )
|
|
{
|
|
println( " " );
|
|
println( " " );
|
|
println( " " );
|
|
println( "^2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- " );
|
|
println( "^3Dumping scriptgen dump for these reasons" );
|
|
println( "^2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- " );
|
|
i = 0;
|
|
while ( i < level.script_gen_dump_reasons.size )
|
|
{
|
|
if ( issubstr( level.script_gen_dump_reasons[ i ], "nowrite" ) )
|
|
{
|
|
substr = getsubstr( level.script_gen_dump_reasons[ i ], 15 );
|
|
println( ( i + ". ) " ) + substr );
|
|
}
|
|
else
|
|
{
|
|
println( ( i + ". ) " ) + level.script_gen_dump_reasons[ i ] );
|
|
}
|
|
if ( level.script_gen_dump_reasons[ i ] == "First run" )
|
|
{
|
|
firstrun = 1;
|
|
}
|
|
i++;
|
|
}
|
|
println( "^2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- " );
|
|
println( " " );
|
|
if ( firstrun )
|
|
{
|
|
println( "for First Run make sure you delete all of the vehicle precache script calls, createart calls, createfx calls( most commonly placed in maps\\" + level.script + "_fx.gsc ) " );
|
|
println( " " );
|
|
println( "replace:" );
|
|
println( "maps\\_load::main( 1 );" );
|
|
println( " " );
|
|
println( "with( don't forget to add this file to P4 ):" );
|
|
println( "maps\\scriptgen\\" + level.script + "_scriptgen::main();" );
|
|
println( " " );
|
|
}
|
|
println( "^2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- " );
|
|
println( " " );
|
|
println( "^2 / \\ / \\ / \\" );
|
|
println( "^2scroll up" );
|
|
println( "^2 / \\ / \\ / \\" );
|
|
println( " " );
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
filename = "scriptgen/" + level.script + "_scriptgen.gsc";
|
|
csvfilename = "zone_source/" + level.script + ".csv";
|
|
if ( level.bscriptgened )
|
|
{
|
|
file = openfile( filename, "write" );
|
|
}
|
|
else
|
|
{
|
|
file = 0;
|
|
}
|
|
assert( file != -1, "File not writeable( check it and and restart the map ): " + filename );
|
|
script_gen_dumpprintln( file, "// script generated script do not write your own script here it will go away if you do." );
|
|
script_gen_dumpprintln( file, "main()" );
|
|
script_gen_dumpprintln( file, "{" );
|
|
script_gen_dumpprintln( file, "" );
|
|
script_gen_dumpprintln( file, "\tlevel.script_gen_dump = [];" );
|
|
script_gen_dumpprintln( file, "" );
|
|
signatures = getarraykeys( level.script_gen_dump );
|
|
i = 0;
|
|
while ( i < signatures.size )
|
|
{
|
|
if ( !issubstr( level.script_gen_dump[ signatures[ i ] ], "nowrite" ) )
|
|
{
|
|
script_gen_dumpprintln( file, "\t" + level.script_gen_dump[ signatures[ i ] ] );
|
|
}
|
|
i++;
|
|
}
|
|
i = 0;
|
|
while ( i < signatures.size )
|
|
{
|
|
if ( !issubstr( level.script_gen_dump[ signatures[ i ] ], "nowrite" ) )
|
|
{
|
|
script_gen_dumpprintln( file, "\tlevel.script_gen_dump[ " + """ + signatures[ i ] + """ + " ] = " + """ + signatures[ i ] + """ + ";" );
|
|
i++;
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
script_gen_dumpprintln( file, "\tlevel.script_gen_dump[ " + """ + signatures[ i ] + """ + " ] = " + ""nowrite"" + ";" );
|
|
}
|
|
i++;
|
|
}
|
|
script_gen_dumpprintln( file, "" );
|
|
keys1 = undefined;
|
|
keys2 = undefined;
|
|
if ( isDefined( level.sg_precacheanims ) )
|
|
{
|
|
keys1 = getarraykeys( level.sg_precacheanims );
|
|
}
|
|
while ( isDefined( keys1 ) )
|
|
{
|
|
i = 0;
|
|
while ( i < keys1.size )
|
|
{
|
|
script_gen_dumpprintln( file, "\tanim_precach_" + keys1[ i ] + "();" );
|
|
i++;
|
|
}
|
|
}
|
|
script_gen_dumpprintln( file, "\tmaps\\_load::main( 1, " + level.bcsvgened + ", 1 );" );
|
|
script_gen_dumpprintln( file, "}" );
|
|
script_gen_dumpprintln( file, "" );
|
|
if ( isDefined( level.sg_precacheanims ) )
|
|
{
|
|
keys1 = getarraykeys( level.sg_precacheanims );
|
|
}
|
|
while ( isDefined( keys1 ) )
|
|
{
|
|
i = 0;
|
|
while ( i < keys1.size )
|
|
{
|
|
script_gen_dumpprintln( file, "#using_animtree( "" + keys1[ i ] + "" );" );
|
|
script_gen_dumpprintln( file, "anim_precach_" + keys1[ i ] + "()" );
|
|
script_gen_dumpprintln( file, "{" );
|
|
script_gen_dumpprintln( file, "\tlevel.sg_animtree[ "" + keys1[ i ] + "" ] = #animtree;" );
|
|
keys2 = getarraykeys( level.sg_precacheanims[ keys1[ i ] ] );
|
|
while ( isDefined( keys2 ) )
|
|
{
|
|
j = 0;
|
|
while ( j < keys2.size )
|
|
{
|
|
script_gen_dumpprintln( file, "\tlevel.sg_anim[ "" + keys2[ j ] + "" ] = %" + keys2[ j ] + ";" );
|
|
j++;
|
|
}
|
|
}
|
|
script_gen_dumpprintln( file, "}" );
|
|
script_gen_dumpprintln( file, "" );
|
|
i++;
|
|
}
|
|
}
|
|
if ( level.bscriptgened )
|
|
{
|
|
saved = closefile( file );
|
|
}
|
|
else
|
|
{
|
|
saved = 1;
|
|
}
|
|
if ( level.bcsvgened )
|
|
{
|
|
csvfile = openfile( csvfilename, "write" );
|
|
}
|
|
else
|
|
{
|
|
csvfile = 0;
|
|
}
|
|
assert( csvfile != -1, "File not writeable( check it and and restart the map ): " + csvfilename );
|
|
signatures = getarraykeys( level.script_gen_dump );
|
|
i = 0;
|
|
while ( i < signatures.size )
|
|
{
|
|
script_gen_csvdumpprintln( csvfile, signatures[ i ] );
|
|
i++;
|
|
}
|
|
if ( level.bcsvgened )
|
|
{
|
|
csvfilesaved = closefile( csvfile );
|
|
}
|
|
else
|
|
{
|
|
csvfilesaved = 1;
|
|
}
|
|
assert( csvfilesaved == 1, "csv not saved( see above message? ): " + csvfilename );
|
|
assert( saved == 1, "map not saved( see above message? ): " + filename );
|
|
#/
|
|
/#
|
|
assert( !level.bscriptgened, "SCRIPTGEN generated: follow instructions listed above this error in the console" );
|
|
#/
|
|
if ( level.bscriptgened )
|
|
{
|
|
/#
|
|
assertmsg( "SCRIPTGEN updated: Rebuild fast file and run map again" );
|
|
#/
|
|
}
|
|
flag_set( "scriptgen_done" );
|
|
}
|
|
|
|
script_gen_csvdumpprintln( file, signature )
|
|
{
|
|
prefix = undefined;
|
|
writtenprefix = undefined;
|
|
path = "";
|
|
extension = "";
|
|
if ( issubstr( signature, "ignore" ) )
|
|
{
|
|
prefix = "ignore";
|
|
}
|
|
else if ( issubstr( signature, "col_map_sp" ) )
|
|
{
|
|
prefix = "col_map_sp";
|
|
}
|
|
else if ( issubstr( signature, "gfx_map" ) )
|
|
{
|
|
prefix = "gfx_map";
|
|
}
|
|
else if ( issubstr( signature, "rawfile" ) )
|
|
{
|
|
prefix = "rawfile";
|
|
}
|
|
else if ( issubstr( signature, "sound" ) )
|
|
{
|
|
prefix = "sound";
|
|
}
|
|
else if ( issubstr( signature, "xmodel" ) )
|
|
{
|
|
prefix = "xmodel";
|
|
}
|
|
else if ( issubstr( signature, "xanim" ) )
|
|
{
|
|
prefix = "xanim";
|
|
}
|
|
else if ( issubstr( signature, "item" ) )
|
|
{
|
|
prefix = "item";
|
|
writtenprefix = "weapon";
|
|
path = "sp/";
|
|
}
|
|
else if ( issubstr( signature, "fx" ) )
|
|
{
|
|
prefix = "fx";
|
|
}
|
|
else if ( issubstr( signature, "menu" ) )
|
|
{
|
|
prefix = "menu";
|
|
writtenprefix = "menufile";
|
|
path = "ui / scriptmenus/";
|
|
extension = ".menu";
|
|
}
|
|
else if ( issubstr( signature, "rumble" ) )
|
|
{
|
|
prefix = "rumble";
|
|
writtenprefix = "rawfile";
|
|
path = "rumble/";
|
|
}
|
|
else if ( issubstr( signature, "shader" ) )
|
|
{
|
|
prefix = "shader";
|
|
writtenprefix = "material";
|
|
}
|
|
else if ( issubstr( signature, "shock" ) )
|
|
{
|
|
prefix = "shock";
|
|
writtenprefix = "rawfile";
|
|
extension = ".shock";
|
|
path = "shock/";
|
|
}
|
|
else if ( issubstr( signature, "string" ) )
|
|
{
|
|
prefix = "string";
|
|
/#
|
|
assertmsg( "string not yet supported by scriptgen" );
|
|
#/
|
|
}
|
|
else if ( issubstr( signature, "turret" ) )
|
|
{
|
|
prefix = "turret";
|
|
writtenprefix = "weapon";
|
|
path = "sp/";
|
|
}
|
|
else
|
|
{
|
|
if ( issubstr( signature, "vehicle" ) )
|
|
{
|
|
prefix = "vehicle";
|
|
writtenprefix = "rawfile";
|
|
path = "vehicles/";
|
|
}
|
|
}
|
|
if ( !isDefined( prefix ) )
|
|
{
|
|
return;
|
|
}
|
|
if ( !isDefined( writtenprefix ) )
|
|
{
|
|
string = ( prefix + ", " ) + getsubstr( signature, prefix.size + 1, signature.size );
|
|
}
|
|
else
|
|
{
|
|
string = ( writtenprefix + ", " ) + path + getsubstr( signature, prefix.size + 1, signature.size ) + extension;
|
|
}
|
|
/#
|
|
if ( file == -1 || !level.bcsvgened )
|
|
{
|
|
println( string );
|
|
}
|
|
else
|
|
{
|
|
fprintln( file, string );
|
|
#/
|
|
}
|
|
}
|
|
|
|
script_gen_dumpprintln( file, string )
|
|
{
|
|
/#
|
|
if ( file == -1 || !level.bscriptgened )
|
|
{
|
|
println( string );
|
|
}
|
|
else
|
|
{
|
|
fprintln( file, string );
|
|
#/
|
|
}
|
|
}
|