diff --git a/coldwar/scripts/core_common/header.gsc b/coldwar/scripts/core_common/header.gsc index 0ede8a4..76b0eee 100644 --- a/coldwar/scripts/core_common/header.gsc +++ b/coldwar/scripts/core_common/header.gsc @@ -6,6 +6,7 @@ #include scripts\core_common\flag_shared; #include scripts\core_common\values_shared; #include scripts\core_common\util_shared; +#include scripts\core_common\player\player_stats; #namespace atianmenu; diff --git a/coldwar/scripts/core_common/menu_funcs.gsc b/coldwar/scripts/core_common/menu_funcs.gsc index 7781f11..39cc4e7 100644 --- a/coldwar/scripts/core_common/menu_funcs.gsc +++ b/coldwar/scripts/core_common/menu_funcs.gsc @@ -282,3 +282,140 @@ function func_zombie_open_sesame(item) { wait(1); setdvar(#"zombie_unlock_all", 0); } + +function compute_weapon_xp() { + levels = []; + + if (sessionmodeiszombiesgame()) { + prefix = "zm"; + } else if (sessionmodeismultiplayergame()) { + prefix = "mp"; + } else { + return levels; + } + + tablename = #"gamedata/weapons/" + prefix + "/" + prefix + "_gunlevels.csv"; + + rows = tablelookuprowcount(tablename); + columns = tablelookupcolumncount(tablename); + + if (!isdefined(rows) || !isdefined(columns) || rows * columns == 0) { + return levels; // empty + } + + for (row = 0; row < rows; row++) { + xp = tablelookupcolumnforrow(tablename, row, 2); + name = tablelookupcolumnforrow(tablename, row, 3); + + wp = getweapon(name); + + if (!isdefined(wp)) { + continue; + } + + cls = util::getweaponclass(wp); + + if (!isdefined(levels[cls])) { + levels[cls] = []; + } + levels[cls][wp] = xp; + } + + return levels; +} + +function lookup_group_name(str) { + if (!ishash(str)) { + return str; + } + switch (str) { + case #"weapon_assault": return "weapon_assault"; + case #"weapon_smg": return "weapon_smg"; + case #"weapon_tactical": return "weapon_tactical"; + case #"weapon_lmg": return "weapon_lmg"; + case #"weapon_sniper": return "weapon_sniper"; + case #"weapon_pistol": return "weapon_pistol"; + case #"weapon_launcher": return "weapon_launcher"; + case #"weapon_cqb": return "weapon_cqb"; + case #"weapon_knife": return "weapon_knife"; + case #"weapon_special": return "weapon_special"; + case #"group": return "group"; + case #"common": return "common"; + case #"global": return "global"; + default: return "" + str; + } +} + +function func_unlock_all(item) { +#ifdef ATIAN_MENU_DEV + if (sessionmodeiszombiesgame()) { + prefix = "zm"; + files = 6; + } else if (sessionmodeismultiplayergame()) { + prefix = "mp"; + files = 6; + } else if (sessionmodeiswarzonegame()) { + prefix = "wz"; + files = 0; + } else if (sessionmodeiscampaigngame()) { + prefix = "cp"; + files = 1; + } else { + self menu_drawing_secondary("^1Can't find mode"); + return; + } + + levels = compute_weapon_xp(); + weapon_groups = array(#"weapon_assault", #"weapon_smg", #"weapon_tactical", #"weapon_lmg", #"weapon_sniper", #"weapon_pistol", #"weapon_launcher", #"weapon_cqb", #"weapon_knife", #"weapon_special"); + // attachment + + for (tableid = 1; tableid <= files; tableid++) { + tablename = #"gamedata/stats/" + prefix + "/statsmilestones" + tableid + ".csv"; + rows = tablelookuprowcount(tablename); + columns = tablelookupcolumncount(tablename); + + if (!isdefined(rows) || !isdefined(columns) || rows * columns == 0) { + continue; // empty + } + + + for (row = 0; row < rows; row++) { + lvl = tablelookupcolumnforrow(tablename, row, 1); + value = tablelookupcolumnforrow(tablename, row, 2); + group = tablelookupcolumnforrow(tablename, row, 3); + name = tablelookupcolumnforrow(tablename, row, 4); + + self menu_drawing_function(lookup_group_name(group) + "/" + name); + + switch (group) { + case #"global": + self stats::function_dad108fa(name, value); + break; + case #"common": + self stats::function_42277145(name, value); + break; + case #"group": + foreach (grpname, wps in levels) { + foreach (weapon, xplvl in wps) { + self stats::function_e24eec31(weapon, name, value); + break; + } + wait 0.01; + } + break; + default: + if (isdefined(levels[group])) { + foreach (weapon, xplvl in levels[group]) { + self stats::set_stat(#"hash_60e21f66eb3a1f18", weapon.name, #"xp", xplvl); + self stats::function_e24eec31(weapon, name, value); + wait 0.01; + } + } + break; + } + wait 0.1; + uploadstats(self); + } + } +#endif +} \ No newline at end of file diff --git a/coldwar/scripts/core_common/menu_items.gsc b/coldwar/scripts/core_common/menu_items.gsc index 7ef589c..f8b5fae 100644 --- a/coldwar/scripts/core_common/menu_items.gsc +++ b/coldwar/scripts/core_common/menu_items.gsc @@ -314,6 +314,7 @@ function init_menus() { self add_menu("dev", "Dev", "start_menu", true); self add_menu_item("dev", "test dev 1", &func_dev_1); self add_menu_item("dev", "test varargs", &func_testvarargs); + self add_menu_item("dev", "test unlock all", &func_unlock_all); } } diff --git a/docs/notes/errors.tsv b/docs/notes/errors.tsv index 4e34a45..ab5afde 100644 --- a/docs/notes/errors.tsv +++ b/docs/notes/errors.tsv @@ -4,9 +4,14 @@ Adam 614 Steel Retreat 2258850890 No clientfield named found in set. Alfa 559 Metallic Python 1046896252 not an entity Alfa 597 Sapphire Missile 1991549692 Error initializing lzma Baker 223 Meridian Absolution 3990130335 player getperks(): localClientNum out of range +Baker 441 Proper Section 2346900383 not an object Baker 917 Brute Goodnight 4104994143 can't allocate more script variables Boy 108 Sapphire Sagittarius 766802866 Invalid fastfile header +Boy 145 Destructive Tank 3304446514 not an entity Boy 601 Everest Tiger 312545010 not a vector +Boy 856 Burner Eclipse 1015938482 not an entity +Boy 986 Extreme Crossbones 3488519410 object is not an array, string, or vector +Bravo 421 Gold Marauder 1461218623 string index out of range Bravo 659 Operation Bear 57350207 Unknown perk Bravo 727 Marble Missile 1982281215 exceeded message limit Bravo 822 Grizzly Cover 2658987327 Invalid string @@ -27,6 +32,7 @@ Charlie 643 Ace Alligator 1167526340 invalid session mode Collar 543 Satellite Fort 1756043215 Usage: kill( , , , ) Collar 772 Flying Shell 2378228303 invalid session mode David 180 Camouflaged Asset 2572009355 vector scale expecting vector +David 368 Fast Highway 3596277323 endoncallback must have at least one valid argument David 658 Battle Mole 2737681163 assert fail (with message) David 888 Patient Bayonet 1517473035 Value out of range. Allowed values: 0 to 2 Delta 18 Foolish Mamba 1273214009 CScr_PlayFX: invalid effect @@ -36,11 +42,14 @@ Delta 291 Operation Stockade 2473308409 Execution Queue out of memory Delta 320 Monster Tornado 179749049 cannot cast to bool Delta 515 United Mauler 3137736761 script stack overflow (too many embedded function calls) Delta 694 Fierce Fort 1752379961 param is not an object +Delta 796 Nightshade Artillery 2274889209 Invalid type passed in from array into waittill parameter list Delta 899 Urban Claw 2955023929 not an object Dog 415 Dry Owl 409067247 No clientfield named found in set. East 1005 Found Badger 269518924 Ammo count must not be negative East 481 Knockout Crossbones 3482075788 caller is not an object +Echo 428 Camouflaged Goat 1246623636 not an entity Echo 51 Emerald Section 2344222932 assert fail +Echo 526 Cut Bridge 2589667284 invalid velocity parameter in moveslide command Echo 530 Undercover Contraband 2706458388 Invalid localclientnum Echo 530 Undercover Contraband 2706458388 Trying to get a local client index for a client that is not a local client. Echo 782 Shellshocked Artillery 2269096660 vector scale expecting vector @@ -51,7 +60,10 @@ Edward 522 Risky Wolverine 1132507782 bad opcode Edward 807 Revolutionary Cover 2667191558 Unknown ent type in GScr_GetFieldSetForEntityType. Fall 242 Resolute Force 1721606685 script stack overflow (too many embedded function calls) Fall 29 Tall Undertow 3410121757 cannot cast to bool +Fall 313 Nickel Operator 1478783005 Pointer types passed into waittill_timeout expressions must evaluate as arrays +Fall 344 Camouflaged Cover 2655888797 endon must have at least one valid argument Fall 388 Quick Conflict 1364331101 Object must be an array +Fall 508 Solo Defense 1668598749 not an object Fall 52 Air Spear 2921226909 Can't register dvar Fall 78 Sub-zero Serpent 3098745181 invalid character index Foxtrot 14 Nuclear Cobra 209668787 RandomInt parm must be positive integer. @@ -62,7 +74,9 @@ Foxtrot 56 Small Dementor 3222417139 size cannot be applied to type Frank 175 General Stockade 2479879368 RegisterClientField can only accept bit ranges between 1 and 32. Frank 25 Good Fort 1746959112 script stack overflow (too many embedded function calls) Frank 575 Unlimited Salvo 2331090760 stack does not have the pool +Frank 581 Rocky Taurus 648498056 Can't use wait with profiler Frank 620 Proper Giant 887228744 origin being set to NAN. +Frank 654 Knockout Ice 3633073800 parameter does not exist Golf 643 Earth Specialist 2417691091 Execution Queue out of memory Hotel 151 Guerrilla Jackpot 3815761761 Error when loading fastfile Hotel 173 Tragic Goblin 3459949409 Failed to alloc client field - MAX_CLIENTFIELD_FIELDS_IN_SET=512 exceeded. @@ -79,8 +93,11 @@ India 36 Skyline Overlord 2903034222 Invalid mode id India 441 Stealth Star 3857374126 caller is not an object India 579 Deadly Gemini 657813230 Error registering client field. bCallbacksFor0WhenNew (CF_CALLBACK_ZERO_ON_NEW_ENT) is disallowed for counter type clientfields. Due to it's treatment of the old and new val as a ring buffer, the counter type is not valid on a new snapshot, new ent, or demojump India 811 Max Thunder 530300974 divide by 0 +Juliett 283 Apocalyptic Vulture 424587329 not a pathnode Juliett 791 Null Lantern 3678699265 not a pointer +Juliett 859 Small Rookie 554833601 Can only do this call for node_turret June 426 Hurt Tactics 2489324310 cannot switch on type +June 503 Swamp Lizard 369972438 First argument of a match call must be a struct June 951 Prepared Cover 2655465686 not a script function pointer Kilo 45 Gold Dove 219686544 object is not an array index Kilo 538 Patient Sagittarius 762454160 not a pointer @@ -88,9 +105,12 @@ Kilo 56 Small Gemini 655503056 script stack overflow (too many embedded function Kilo 717 Clockwork Refuge 4220857104 Cannot call IncrementClientField on a 'counter' type clientfield on the frame it is spawned, since newEnts on the clientside will not process 'counter' type clientfields. King 1002 Fast Linebacker 3059411687 Argument and parameter count mismatch for LUINotifyEvent King 220 Wartorn Fury 2940210599 Invalid Version Handling. Grab Bat !!! +King 30 Tough Asset 2577695271 SetModel can only be called on a script mover Lima 486 Flat Apocalypse 3361905947 Pointer is not an entity Lima 495 Old Security 2033447003 not an array key +Lima 510 Bogus Rescue 2235303131 not a player entity Lima 886 Flat Jaguar 1080214043 caller is not an object +May 1009 Torched Sunrise 3699844858 model not precached May 1009 Torched Sunrise 3699844858 parameter does not exist May 612 Snow Obelisk 1333649786 IsMature can only be called on a player. May 706 Due Sagittarius 768316282 script stack overflow (too many embedded function calls) @@ -100,6 +120,7 @@ Mike 664 Steel Lion 245612264 foreach should be used with an array Mike 988 Gold Lion 236473384 invalid session mode Negative 184 Fake Locker 2202233143 waittill_timeout must have at least one valid argument Negative 274 Right Activity 4032788023 param is not an object +Negative 780 Bad Security 2033364407 Failed to link entity Negative 8 Tough Doppelganger 4255418935 Pointer types passed into waittill expressions must evaluate as arrays Nora 205 Almighty Cipher 2629548679 Entity is not a player Nora 261 Marsh Blizzard 1412130119 parameter can't be cast to a hash @@ -114,13 +135,16 @@ November 116 Mythic Scorpio 750896894 Invalid bgCache type November 268 Wild Greyhound 475330046 Invalid dvar type November 417 Silver Sunrise 3692510654 Invalid type passed in from array into waittill parameter list November 588 Barren Carrier 1593720126 Can't register dvar +November 670 Boiling Avalanche 829015102 not a pointer November 670 Boiling Avalanche 829015102 var isn't a field object November 990 Fake Operator 1480821566 Error registering client field. Attempted field size is not acceptable bit number range 1->32 Ocean 270 Grounded Infantry 1850691545 Debug Break Ocean 529 Broken Lamprey 3967909977 Trying to get version of a demo when the demo system is idle. Option 102 Grounded Thunder 525308842 GetBaseWeaponItemIndex: invalid weapon named passed. +Option 173 Camouflaged Mauler 3142427498 not an object Option 365 Old Ghoul 2687742442 Forced script exception. Option 961 Blue Whisper 3523382186 ScrEvent map is full, unable to register new event +Oscar 1009 Emerald Invasion 1908025062 parameter isn't a string Oscar 771 Central Zeus 3329708710 Unable to find default bitfield, dropping Papa 1018 Rocky Beastmaster 3030895505 Whitelist failure for title Papa 209 Grey Cadet 1544804945 script stack overflow (too many embedded function calls) @@ -128,6 +152,8 @@ Papa 656 Area Jaguar 1088278929 Raw file is not a file of the right type Papa 810 Right Case 2606724305 parameter does not exist Papa 859 Fierce Python 1047729873 exitlevel already called Papa 889 Tall Fury 2940376721 Cannot call SetClientField on 'counter' type clientfield +Prep 161 Nova Discovery 3881402958 not an entity +Prep 251 Late Scorpio 753299086 vector index out of range Prep 347 Morning Jackpot 3819578766 not a script function pointer Prep 367 Solar Activity 4039057166 LUINotifyEvent: entity must be a player entity Prep 374 Aggressive Breakfast 3135792078 Invalid type passed in from array into waittill parameter list @@ -143,6 +169,7 @@ Quebec 965 Dangerous Jackpot 3810601716 undefined param Queen 114 Rocky Medal 1957162421 Can't find bgCache entry Queen 116 Classic Rattlesnake 124438261 not a script function pointer Queen 117 Weak Octopus 71894325 CamAnimScripted or ExtraCamAnimScripted can only be called on a player. +Queen 119 Guerrilla Gremlin 3446625973 not a vector index Queen 19 Furious Cipher 2626909173 exceeded maximum number of script strings Queen 235 Wicked Libra 732489269 Non-player entity passed to UploadStats() Queen 254 Unfriendly Python 1053986869 GScr_UseBuildKitWeaponModel: called with weapon 'none' @@ -153,6 +180,7 @@ Queen 964 Shellshocked Rank 2185211445 Can't register dvar Roger 356 Gray Pig 1377489376 Gesture key can't have the higher bit set Roger 391 Emerald Refuge 4223282976 Error loading fastfile patch header Roger 440 Unlimited Fox 3723589344 not a function pointer +Roger 630 Shadow Zombie 899599904 first arg to waittill_timeout must evaluate to an integer or float value Roger 753 Fake Outlaw 4047738848 Invalid opcode (Recovery) Roger 850 Grey Whisper 3524483616 Ammo count must not be negative Roger 853 Lone Platoon 2122198496 The sound globals have been overwritten @@ -163,9 +191,11 @@ Romeo 671 Iron Stallion 941828720 exitlevel already called Romeo 836 Deadly Scythe 3761634992 not a pointer Rush 114 Camouflaged Management 4232965560 divide by 0 Rush 280 Extinct Storm 1403832952 Attempt to register ClientField failed. Client Field set either already contains a field, or a hash collision has occurred. +Rush 755 Light Gladiator 3314084408 not a string index Sail 1020 Clean Goodnight 4101525669 Can't use wait with profiler Sail 312 Extreme Boa 1072585573 Raw file is not a file of the right type Sail 397 Skyline Firestarter 3423138661 not a script function pointer +Sail 506 Blink Alligator 1167129573 key does not internally belong to generic entities Sail 543 Earth Whisper 3524990949 not an array key Sail 630 Nuclear Bug 2894056997 DEV: CL_SetCGameTime: !cl->snap.valid Sail 692 Sapphire Avalanche 833940261 divide by 0 @@ -178,11 +208,14 @@ South 209 Shadow Stallion 949934674 Invalid Version Handling. Grab Bat !!! South 263 Confused Artillery 2279633554 SV_SetConfigstring: bad index South 379 Orange Clover 3657806674 invalid character index Spring 361 Right Mauler 3143575744 parameter does not exist +Spring 633 Nova Breakfast 3126405504 Com_Error entered Spring 741 Area Outlander 3923586368 Kill failed +Spring 756 Right Lizard 375374976 Can't use wait with profiler Spring 805 Apollo Valentine 1099145600 Can't find asset Spring 81 Snap Soldier 2408700928 not a valid name for a clientfield set. Summer 146 Satellite Ultra 2863351045 bad vm instance Summer 164 Brass Dove 219569925 hasperk() can only be called on local players +Summer 332 River Rank 2183812485 getent used with more than one entity Summer 490 Defiant Eel 48546501 not a function pointer Summer 494 General Shell 2379198149 waittill must have at least one valid argument Summer 534 Winning Escort 2681972741 bad clientfield for name @@ -203,7 +236,7 @@ Uniform 587 Nickel Breakfast 3122940489 caller is not an entity Union 152 Midas Werewolf 969461336 The setHintStringForPlayer command only works on trigger or script mover entities. Union 296 Poison Luck 3837625752 abort Union 326 Boiling Ice 3630798232 caller is not an object -Union 344 Blue Headquarters 1795335576 not a pointer +Union 344 Blue Headquarters 1795335576 not an object Union 701 Sick Eclipse 1013305560 Pointer types passed into waittill expressions must evaluate as arrays Union 908 Evil Giant 876169112 key value provided for struct is not valid Union 958 Mad Retreat 2253722136 CamAnimScripted can only be called on a player. @@ -221,6 +254,7 @@ Vice 804 Axiom Conquest 3385008561 cannot set field on type Victor 616 Barricaded Fort 1750886746 The setHintString command only works on triggers, script mover entities, or players. Victor 629 Frozen Gemini 665902298 Parameter must be an array Victor 768 Golden Wolverine 1137123674 GScr_LUINotifyEvent: Expected Istrings, hash or integers only +Victor 851 Grounded Lion 240121690 waittill_timeout must have at least one valid argument West 728 Rocky Goat 1252503459 caller is not an entity West 9 Unlimited Rat 1190254947 waittill must have at least one valid argument Whiskey 110 Late Tiger 317100267 unmatching types @@ -231,6 +265,7 @@ Whiskey 456 Blazing Cause 3015158315 getperks() can only be called on local play Whiskey 960 Emerald Werewolf 968521323 player hasperk(, ): localClientNum out of range Winter 564 Goodbye Specialist 2429764318 GetRandomCompatibleAttachmentsForWeapon: Weapon has more than allowed number attachments Winter 6 Almighty Badger 280703902 parameter does not exist +Winter 70 Sleeper Wolf 8016798 not an object XRay 274 Sub-zero Dawn 4088624643 Can't find asset XRay 353 Earth Abyss 3189465155 Invalid bgCache type XRay 373 Firebrand Mamba 1267091843 GScr_UseBuildKitWeaponModel: when specifying that the weapon is upgraded, a valid camoIndex MUST be specified @@ -239,6 +274,7 @@ XRay 384 Metallic Apocalypse 3362159427 ++ can only be used with integer type XRay 470 Screaming Justice 2974839555 invalid session mode XRay 552 Burned Station 2792722947 RegisterClientField can only accept 5 parameters XRay 775 Split Python 1056823939 Invalid type passed in from array into waittill parameter list +Yankee 13 United Wombat 84281764 not a field object Yankee 220 Divided Intelligence 1895566756 dvar is not a 3d vector, but GetDvarVector3D has been called on it Yankee 444 Nitro Spartan 580674660 Unknown ent type in GScr_GetFieldSetForEntityType. Yankee 541 Numbered Boar 104978404 cannot cast type to canon @@ -246,14 +282,16 @@ Yankee 687 Screech Snake 512306404 caller is not an object Yankee 687 Screech Snake 512306404 not a function pointer Yankee 780 Bad Shell 2368908708 invalid session mode Yankee 913 Evil Libra 725202020 caller is not an object +Yankee 921 Gothic Navy 2055356644 entity is not a script_brushmodel, script_model, script_origin, probe, or light Yorker 553 Broken Lion 243367053 The setHintStringForPlayer command can only change prompts for players. Yorker 721 Nickel Platoon 2116335949 function called with too many parameters -Young 100 Skyline Pavement 3607664937 not a script function +Young 100 Skyline Pavement 3607664937 first arg to endon_callback must evaluate to a function value Young 137 Blind Lantern 3679846953 LUINotifyEvent: entity must be a player entity Young 598 Patient Command 1601358697 param is not an object Young 886 Major Payday 3346055721 GetWeapon: array can only contain strings or hashes Zebra 112 Vicious Stallion 946363963 Invalid opcode Zebra 32 Grizzly Lizard 377246011 invalid session mode +Zebra 84 World Bayonet 1524410875 Execution Queue out of memory Zebra 909 Aurora Wave 3654063291 ScrEvent map is full, unable to register new event Zed 105 Riptide Volley 2517242050 parameter does not exist Zed 251 Silent Scorpio 753495682 RandomIntRange's second parameter must be greater than the first. @@ -268,4 +306,4 @@ Zulu 442 Silver Cage 3105354540 Can't register dvar Zulu 523 Electric Lion 247375020 Attempting to register client field in client field set using bits, but system is out of space. Zulu 53 Heavy Cause 3016026156 Can't find asset Zulu 540 Grim Refuge 4221135532 Optional argument must be a string type - 3126405504 Com_Error entered \ No newline at end of file +Zulu 636 Conflicted Conflict 1363519084 key is not internally a string \ No newline at end of file diff --git a/docs/notes/funcs.csv b/docs/notes/funcs.csv index be3540c..0b5faa0 100644 --- a/docs/notes/funcs.csv +++ b/docs/notes/funcs.csv @@ -1015,7 +1015,7 @@ GSC-Function-49612d0,function_ea647602,1,2,0,BlackOps4.exe+6A2340, GSC-Function-49b5590,randomint(int max)->int,1,1,0,BlackOps4.exe+3198480,Return a random int between 0 and max GSC-Function-49b5590,randomfloat(float max)->float,1,1,0,BlackOps4.exe+31984D0,Return a random float between 0 and max GSC-Function-49b5590,randomintrange(int min; int max)->int,2,2,0,BlackOps4.exe+3198500,Return a random int between min and max -GSC-Function-49b5590,randomintrangeinclusive,2,2,0,BlackOps4.exe+3198560, +GSC-Function-49b5590,randomintrangeinclusive(int min; int max)->int,2,2,0,BlackOps4.exe+3198560, GSC-Function-49b5590,randomfloatrange(float min; float max)->float,2,2,0,BlackOps4.exe+31985C0,Return a random float between min and max GSC-Function-49b5590,function_fc3f770b,3,3,0,BlackOps4.exe+3198630, GSC-Function-49b5590,function_6151a62c,4,4,0,BlackOps4.exe+31986B0, @@ -2838,8 +2838,8 @@ CSC-Function-4ed3470,physicsexplosioncylinder,5,5,0,BlackOps4.exe+1AB2EC0, CSC-Function-4ed3470,function_a1c09ed,1,1,0,BlackOps4.exe+1CF5DA0, CSC-Function-4ed3470,preloadfrontend,0,0,0,BlackOps4.exe+1AD61E0, CSC-Function-4ed3470,forcestreamxmodel(string|hash|int model;int lod;int mip)->bool,1,3,0,BlackOps4.exe+1AD61F0,Stream a model and set (lod = 0=NO; 1..8=LOD0..LOD7;-1=EXCLUDE_HIGHEST / mip = 0=NO; 1..5=MIP0..MIP4; -1=EXCLUDE_HIGHEST) -CSC-Function-4ed3470,function_12f0cc0d,1,1,0,BlackOps4.exe+1AD6350, -CSC-Function-4ed3470,function_4b51b406,1,1,0,BlackOps4.exe+1AD6450, +CSC-Function-4ed3470,function_12f0cc0d(string|hash streamkey)->bool,1,1,0,BlackOps4.exe+1AD6350, +CSC-Function-4ed3470,function_4b51b406(string|hash streamkey),1,1,0,BlackOps4.exe+1AD6450, CSC-Function-4ed3470,function_fcbd0b25,1,1,0,BlackOps4.exe+1B09460, CSC-Function-4ed3470,function_19968fd9,1,1,0,BlackOps4.exe+1B09580, CSC-Function-4ed3470,function_2fefd219,1,1,0,BlackOps4.exe+1B096A0, diff --git a/docs/notes/wfield.hpp b/docs/notes/wfield.hpp index 6ec8d9e..2aae216 100644 --- a/docs/notes/wfield.hpp +++ b/docs/notes/wfield.hpp @@ -1,6 +1,6 @@ #pragma once -// void __fastcall sub_6C12E0(scriptInstance_t inst, WeaponDef * weap, scr_weapon_field_t * field) +// void __fastcall sub_6C12E0(scriptInstance_t inst, Weapon weap, scr_weapon_field_t * field) namespace weaponfield { diff --git a/docs/notes/xasset_origins.csv b/docs/notes/xasset_origins.csv index 15217f6..26cdbba 100644 --- a/docs/notes/xasset_origins.csv +++ b/docs/notes/xasset_origins.csv @@ -38,7 +38,7 @@ ASSET_TYPE_DDL,sub_28B7420 ASSET_TYPE_DRAWNODES,sub_22B46C0 ASSET_TYPE_ENTITLEMENTLIST,sub_380C720 ASSET_TYPE_ENTITLEMENTLIST,sub_380C800: -ASSET_TYPE_ENTITY_LIST,sub_2878050 +ASSET_TYPE_ENTITYLIST,sub_2878050 ASSET_TYPE_ENTITYFXIMPACTS,sub_8A5580 ASSET_TYPE_FEATURETABLE,sub_2264D50 ASSET_TYPE_FIRSTPARTYENTITLEMENTLIST,sub_38C04F0 diff --git a/shell_scripts/compiler_ps4_cw.ps1 b/shell_scripts/compiler_ps4_cw.ps1 new file mode 100644 index 0000000..f45b776 --- /dev/null +++ b/shell_scripts/compiler_ps4_cw.ps1 @@ -0,0 +1,29 @@ +param( + $ip = "10.0.0.15:9090", + $replaced = "scripts\core_common\clientids_shared.gsc", + $hook = "scripts\core_common\load_shared.gsc", + [switch] + $Compile +) + +$prevPwd = $PWD + +try { + $base = (Get-Item $PSScriptRoot).Parent + Set-Location "$($base.Fullname)/coldwar" + + + debugcompiler.exe "--compile" "-DATIAN_MENU_DEV" "-Cplatform=PS4" "-Cgame=T937" + + if (!$?) { + Write-Error "Error when compiling"; + exit -1; + } + + if (!$Compile) { + acts.exe ps4_injectcw100 $ip compiled.gscc "$hook" "$replaced" + } +} +finally { + $prevPwd | Set-Location +} diff --git a/shell_scripts/deploy.ps1 b/shell_scripts/deploy.ps1 index 3b0c4b2..dd04aa8 100644 --- a/shell_scripts/deploy.ps1 +++ b/shell_scripts/deploy.ps1 @@ -73,7 +73,7 @@ try { Write-Host "PC / CW" Set-Location coldwar - ..\build\compilercustom\DebugCompiler.exe --compile -DCI -Cplatform=PC '-Coutputname=../deploy/BlackOpsColdWar_atianmenu_pc' + ..\build\compilercustom\DebugCompiler.exe --compile -DCI -Cplatform=PC -Cgame=T9 '-Coutputname=../deploy/BlackOpsColdWar_atianmenu_pc' Set-Location .. if (!$?) { Write-Error "Issue when compiling the project"