60 lines
7.2 KiB
Plaintext
60 lines
7.2 KiB
Plaintext
|
#using scripts\codescripts\struct;
|
||
|
|
||
|
#using scripts\shared\array_shared;
|
||
|
#using scripts\shared\callbacks_shared;
|
||
|
#using scripts\shared\system_shared;
|
||
|
|
||
|
|
||
|
|
||
|
#using scripts\shared\util_shared;
|
||
|
|
||
|
#namespace multi_extracam;
|
||
|
|
||
|
function extracam_reset_index( localClientNum, index )
|
||
|
{
|
||
|
if( !isdefined(level.camera_ents) || !isdefined(level.camera_ents[localClientNum]) )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if( isdefined( level.camera_ents[localClientNum][index] ) )
|
||
|
{
|
||
|
level.camera_ents[localClientNum][index] ClearExtraCam();
|
||
|
level.camera_ents[localClientNum][index] Delete();
|
||
|
level.camera_ents[localClientNum][index] = undefined;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function extracam_init_index( localClientNum, target, index )
|
||
|
{
|
||
|
cameraStruct = struct::get( target, "targetname" );
|
||
|
return extracam_init_item( localClientNum, cameraStruct, index );
|
||
|
}
|
||
|
|
||
|
function extracam_init_item( localClientNum, copy_ent, index )
|
||
|
{
|
||
|
if(!isdefined(level.camera_ents))level.camera_ents=[];
|
||
|
|
||
|
if( !isdefined(level.camera_ents[localClientNum]) )
|
||
|
{
|
||
|
level.camera_ents[localClientNum] = [];
|
||
|
}
|
||
|
|
||
|
if( isdefined( level.camera_ents[localClientNum][index] ) )
|
||
|
{
|
||
|
level.camera_ents[localClientNum][index] ClearExtraCam();
|
||
|
level.camera_ents[localClientNum][index] Delete();
|
||
|
level.camera_ents[localClientNum][index] = undefined;
|
||
|
}
|
||
|
|
||
|
if ( isdefined( copy_ent ) )
|
||
|
{
|
||
|
level.camera_ents[localClientNum][index] = Spawn( localClientNum, copy_ent.origin, "script_origin" );
|
||
|
level.camera_ents[localClientNum][index].angles = copy_ent.angles;
|
||
|
|
||
|
level.camera_ents[localClientNum][index] SetExtraCam( index );
|
||
|
return level.camera_ents[localClientNum][index];
|
||
|
}
|
||
|
|
||
|
return undefined;
|
||
|
}
|