mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-10 15:37:58 -05:00
242 lines
5.4 KiB
Plaintext
242 lines
5.4 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\_intelligence.gsc
|
|
* Game: Call of Duty: Modern Warfare Remastered
|
|
* Platform: PC
|
|
* Function Count: 12
|
|
* Decompile Time: 208 ms
|
|
* Timestamp: 10/27/2023 2:48:01 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
if(!maps\_utility::is_h1_level())
|
|
{
|
|
return;
|
|
}
|
|
|
|
precachestring(&"SCRIPT_INTELLIGENCE_OF_THIRTY");
|
|
precacheshader("h1_hud_ammo_status_glow");
|
|
precacheshader("h1_hud_ammo_status_scanlines");
|
|
level.intel_items_total = 30;
|
|
level.intel_items = create_array_of_intel_items();
|
|
level.table_origins = create_array_of_origins_from_table();
|
|
initialize_intel();
|
|
}
|
|
|
|
//Function Number: 2
|
|
initialize_intel()
|
|
{
|
|
for(var_00 = 0;var_00 < level.intel_items.size;var_00++)
|
|
{
|
|
var_01 = level.intel_items[var_00];
|
|
var_02 = var_01.origin;
|
|
level.intel_items[var_00].num = get_nums_from_origins(var_02);
|
|
if(level.intel_items[var_00] check_item_found())
|
|
{
|
|
var_01.item hide();
|
|
var_01.item notsolid();
|
|
var_01 common_scripts\utility::trigger_off();
|
|
level.intel_items[var_00].found = 1;
|
|
continue;
|
|
}
|
|
|
|
level.intel_items[var_00] thread wait_for_pickup();
|
|
}
|
|
|
|
remove_found_intel();
|
|
}
|
|
|
|
//Function Number: 3
|
|
remove_found_intel()
|
|
{
|
|
for(;;)
|
|
{
|
|
for(var_00 = 0;var_00 < level.intel_items.size;var_00++)
|
|
{
|
|
if(!isdefined(level.intel_items[var_00].removed) && level.intel_items[var_00] check_item_found())
|
|
{
|
|
level.intel_items[var_00].removed = 1;
|
|
level.intel_items[var_00].item hide();
|
|
level.intel_items[var_00].item notsolid();
|
|
level.intel_items[var_00] common_scripts\utility::trigger_off();
|
|
level.intel_items[var_00] notify("end_trigger_thread");
|
|
}
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
check_item_found()
|
|
{
|
|
return level.player getplayerintelisfound(self.num);
|
|
}
|
|
|
|
//Function Number: 5
|
|
create_array_of_intel_items()
|
|
{
|
|
var_00 = getentarray("intelligence_item","targetname");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
var_00[var_01].item = getent(var_00[var_01].target,"targetname");
|
|
var_00[var_01].found = 0;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 6
|
|
create_array_of_origins_from_table()
|
|
{
|
|
var_00 = [];
|
|
for(var_01 = 1;var_01 <= level.intel_items_total;var_01++)
|
|
{
|
|
var_02 = tablelookup("sp/_intel_items.csv",0,var_01,4);
|
|
if(isdefined(var_02) && var_02 != "undefined")
|
|
{
|
|
var_03 = strtok(var_02,",");
|
|
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
{
|
|
var_03[var_04] = int(var_03[var_04]);
|
|
}
|
|
|
|
var_00[var_01] = (var_03[0],var_03[1],var_03[2]);
|
|
continue;
|
|
}
|
|
|
|
var_00[var_01] = undefined;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 7
|
|
wait_for_pickup()
|
|
{
|
|
self sethintstring(&"SCRIPT_INTELLIGENCE_PICKUP");
|
|
self usetriggerrequirelookat();
|
|
self endon("end_trigger_thread");
|
|
self waittill("trigger");
|
|
self.found = 1;
|
|
common_scripts\utility::trigger_off();
|
|
save_that_item_is_found();
|
|
updategamerprofile();
|
|
thread intel_feedback();
|
|
}
|
|
|
|
//Function Number: 8
|
|
save_that_item_is_found()
|
|
{
|
|
level.player setplayerintelfound(self.num);
|
|
}
|
|
|
|
//Function Number: 9
|
|
get_nums_from_origins(param_00)
|
|
{
|
|
for(var_01 = 1;var_01 < level.table_origins.size + 1;var_01++)
|
|
{
|
|
if(!isdefined(level.table_origins[var_01]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distancesquared(param_00,level.table_origins[var_01]) < 25)
|
|
{
|
|
return var_01;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
intel_feedback()
|
|
{
|
|
self.item hide();
|
|
self.item notsolid();
|
|
level thread common_scripts\utility::play_sound_in_space("intelligence_pickup",self.item.origin);
|
|
var_00 = 3000;
|
|
var_01 = 700;
|
|
var_02 = maps\_hud_util::createicon("h1_hud_ammo_status_glow",400,75);
|
|
var_02.color = (1,0.95,0.4);
|
|
var_02.x = 0;
|
|
var_02.y = -65;
|
|
var_02.alignx = "center";
|
|
var_02.aligny = "middle";
|
|
var_02.horzalign = "center";
|
|
var_02.vertalign = "middle";
|
|
var_02.foreground = 1;
|
|
var_02.alpha = 0;
|
|
var_03 = maps\_hud_util::createicon("h1_hud_ammo_status_scanlines",800,75);
|
|
var_03.color = (1,0.85,0);
|
|
var_03.x = 0;
|
|
var_03.y = -65;
|
|
var_03.alignx = "center";
|
|
var_03.aligny = "middle";
|
|
var_03.horzalign = "center";
|
|
var_03.vertalign = "middle";
|
|
var_03.foreground = 1;
|
|
var_03.alpha = 0;
|
|
var_04 = maps\_hud_util::createfontstring("objective",1.5);
|
|
var_04 setup_hud_elem();
|
|
var_04 setpulsefx(19,var_00,var_01);
|
|
var_04 setvalue(intel_found_total());
|
|
var_05 = intel_found_total();
|
|
if(var_05 == 15 || maps\_achievements::platform_tracks_progression())
|
|
{
|
|
maps\_utility::giveachievement_wrapper("LOOK_SHARP");
|
|
}
|
|
|
|
if(var_05 == 30 || maps\_achievements::platform_tracks_progression())
|
|
{
|
|
maps\_utility::giveachievement_wrapper("EYES_AND_EARS");
|
|
}
|
|
|
|
wait(0.7);
|
|
var_02.alpha = 0.5;
|
|
wait(0.05);
|
|
var_03.alpha = 0.6;
|
|
var_02 fadeovertime(0.035);
|
|
var_02.alpha = 0;
|
|
wait(0.05);
|
|
var_03 fadeovertime(1);
|
|
var_03.alpha = 0;
|
|
wait(var_00 + var_01 / 1000);
|
|
var_04 destroy();
|
|
var_02 destroy();
|
|
var_03 destroy();
|
|
}
|
|
|
|
//Function Number: 11
|
|
setup_hud_elem()
|
|
{
|
|
self.fontscale = 1.2;
|
|
self.glowcolor = (0.96,0.81,0);
|
|
self.glowalpha = 0.2;
|
|
self.color = (0.99,0.97,0.85);
|
|
self.alpha = 1;
|
|
self.x = 0;
|
|
self.y = -65;
|
|
self.alignx = "center";
|
|
self.aligny = "middle";
|
|
self.horzalign = "center";
|
|
self.vertalign = "middle";
|
|
self.foreground = 1;
|
|
self.label = &"SCRIPT_INTELLIGENCE_OF_THIRTY";
|
|
}
|
|
|
|
//Function Number: 12
|
|
intel_found_total()
|
|
{
|
|
var_00 = 0;
|
|
for(var_01 = 1;var_01 <= level.intel_items_total;var_01++)
|
|
{
|
|
if(level.player getplayerintelisfound(var_01))
|
|
{
|
|
var_00++;
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
} |