diff --git a/src/game/scripting/execution.cpp b/src/game/scripting/execution.cpp index 27c3d5b7..da67f708 100644 --- a/src/game/scripting/execution.cpp +++ b/src/game/scripting/execution.cpp @@ -103,6 +103,25 @@ namespace scripting return call_function(name, arguments); } + script_value exec_ent_thread(const entity& entity, const char* pos, const std::vector& arguments) + { + const auto id = entity.get_entity_id(); + + stack_isolation _; + for (auto i = arguments.rbegin(); i != arguments.rend(); ++i) + { + scripting::push_value(*i); + } + + game::AddRefToObject(id); + + const auto local_id = game::AllocThread(id); + const auto result = game::VM_Execute(local_id, pos, (unsigned int)arguments.size()); + game::RemoveRefToObject(result); + + return get_return_value(); + } + static std::unordered_map> custom_fields; script_value get_custom_field(const entity& entity, const std::string& field) diff --git a/src/game/scripting/execution.hpp b/src/game/scripting/execution.hpp index 027d2a4b..2780e271 100644 --- a/src/game/scripting/execution.hpp +++ b/src/game/scripting/execution.hpp @@ -21,6 +21,8 @@ namespace scripting return call(name, arguments).as(); } + script_value exec_ent_thread(const entity& entity, const char* pos, const std::vector& arguments); + void clear_entity_fields(const entity& entity); void clear_custom_fields(); diff --git a/src/game/scripting/function_tables.cpp b/src/game/scripting/function_tables.cpp index cda014fd..2e2709b1 100644 --- a/src/game/scripting/function_tables.cpp +++ b/src/game/scripting/function_tables.cpp @@ -6,1767 +6,1773 @@ namespace scripting { std::unordered_map function_map = - { - {"precacheturret", 1}, - {"getweaponarray", 2}, - {"nullsub_428", 3}, - {"sub_7ff7de292950", 4}, - {"sub_7ff7de294f40", 5}, - {"meleeapplyinitialvelocity", 6}, - {"sub_7ff7de298680", 7}, - {"sub_7ff7de2986a0", 8}, - {"sub_7ff7de2987a0", 9}, - {"sub_7ff7de2986c0", 10}, - {"sub_7ff7de2985a0", 11}, - {"sub_7ff7de294fd0", 12}, - {"sub_7ff7de295000", 13}, - {"sub_7ff7de295060", 14}, - {"nullsub_429", 15}, - {"allowscriptmenuresponse", 16}, - {"allowscriptmenuresponse", 17}, - {"notifyoncommand", 18}, - {"setprintchannel", 19}, - {"print", 20}, - {"println", 21}, - {"print3d", 22}, - {"line", 23}, - {"spawnturret", 24}, - {"canspawnturret", 25}, - {"assert", 26}, - {"sub_7ff7de292660", 27}, - {"sub_7ff7de292690", 28}, - {"sub_7ff7de2921c0", 29}, - {"sub_7ff7de2923e0", 30}, - {"runbadplaces", 31}, - {"sub_7ff7de277120", 32}, - {"sub_7ff7de2776d0", 33}, - {"sub_7ff7de277f10", 34}, - {"sub_7ff7de293f20", 35}, - {"sub_7ff7de2b5640", 36}, - {"sub_7ff7de2b56e0", 37}, - {"sub_7ff7de2b5560", 38}, - {"sub_7ff7de2b5420", 39}, - {"nullsub_477", 42}, - {"nullsub_478", 43}, - {"sub_7ff7de2946b0", 44}, - {"sub_7ff7de27c920", 45}, - {"errorinternal", 46}, - {"isdefined", 47}, - {"issentient", 48}, - {"isstring", 49}, - {"sub_7ff7de27e990", 50}, - {"sub_7ff7de27ec00", 51}, - {"setclientdvar", 52}, - {"sub_7ff7de27fa60", 54}, - {"setdvar", 55}, - {"sub_7ff7de27fca0", 56}, - {"getdvar", 57}, - {"getdvarint", 58}, - {"getdvarfloat", 59}, - {"getdvarvector", 60}, - {"sub_7ff7de282180", 61}, - {"gettime", 62}, - {"sub_7ff7de282330", 63}, - {"getentbynum", 64}, - {"getscreenwidth", 65}, - {"getscreenheight", 66}, - {"getweaponmodel", 67}, - {"setgameendtime", 68}, - {"sub_7ff7de292c50", 69}, - {"sub_7ff7de292c90", 70}, - {"sub_7ff7de292cf0", 71}, - {"sub_7ff7de292d80", 72}, - {"sub_7ff7de292db0", 73}, - {"sub_7ff7de292e40", 74}, - {"sub_7ff7de292e70", 75}, - {"sub_7ff7de292ea0", 76}, - {"sub_7ff7de292fd0", 77}, - {"setwhizbyradii", 78}, - {"sub_7ff7de293380", 79}, - {"sub_7ff7de2936e0", 80}, - {"sub_7ff7de289110", 80}, - {"sub_7ff7de293740", 81}, - {"sub_7ff7de293760", 82}, - {"sub_7ff7de2937b0", 83}, - {"sub_7ff7de2937d0", 84}, - {"sub_7ff7de2938f0", 85}, - {"position", 86}, - {"sub_7ff7de291a80", 87}, - {"spawntestclient", 88}, - {"sub_7ff7de291c70", 89}, - {"sub_7ff7de291cd0", 90}, - {"sub_7ff7de291eb0", 91}, - {"sub_7ff7de291f50", 92}, - {"sub_7ff7de2920c0", 93}, - {"sub_7ff7de292140", 94}, - {"sub_7ff7de292390", 95}, - {"sub_7ff7de292640", 96}, - {"getweapondisplayname", 97}, - {"getweaponbasename", 98}, - {"getweaponattachments", 99}, - {"getweaponattachmentdisplaynames", 100}, - {"getweaponcamoname", 101}, - {"sub_7ff7de2855d0", 102}, - {"getanimlength", 103}, - {"animhasnotetrack", 104}, - {"getnotetracktimes", 105}, - {"spawn", 106}, - {"sub_7ff7de27edd0", 107}, - {"spawnloopingsound", 108}, - {"bullettrace", 109}, - {"sub_7ff7de2a40b0", 110}, - {"sub_7ff7de2a3bc0", 111}, - {"sub_7ff7de2a3d50", 112}, - {"sub_7ff7de23f5f0", 113}, - {"sub_7ff7de23f4e0", 114}, - {"sub_7ff7de23f180", 115}, - {"sub_7ff7de291db0", 116}, - {"sub_7ff7de280130", 117}, - {"sub_7ff7de297470", 118}, - {"sub_7ff7de297570", 119}, - {"sub_7ff7de297770", 120}, - {"sub_7ff7de297890", 121}, - {"setteammode", 122}, - {"sub_7ff7de286990", 123}, - {"sub_7ff7de286a20", 124}, - {"sub_7ff7de286c90", 125}, - {"sub_7ff7de286da0", 126}, - {"sub_7ff7de286dd0", 127}, - {"sub_7ff7de297a70", 128}, - {"sub_7ff7de28f720", 129}, - {"sub_7ff7de297960", 130}, - {"sub_7ff7de2919a0", 131}, - {"sub_7ff7de2919c0", 133}, - {"sub_7ff7de291a60", 134}, - {"sub_7ff7de28f7b0", 135}, - {"sub_7ff7de290380", 136}, - {"getglowalpha", 137}, - {"sub_7ff7de290210", 138}, - {"sub_7ff7de2903c0", 139}, - {"sub_7ff7de290b40", 140}, - {"sub_7ff7de2926b0", 141}, - {"sub_7ff7de292ae0", 142}, - {"bullettracepassed", 143}, - {"sighttracepassed", 144}, - {"physicstrace", 145}, - {"playerphysicstrace", 146}, - {"getgroundposition", 147}, - {"getangledelta", 148}, - {"getmovedelta", 149}, - {"getnorthyaw", 150}, - {"getcommandfromkey", 151}, - {"getsticksconfig", 152}, - {"sub_7ff7de297060", 153}, - {"botautoconnectenabled", 154}, - {"sub_7ff7de297140", 155}, - {"sub_7ff7de290bf0", 156}, - {"sub_7ff7de290c40", 157}, - {"botgetteamdifficulty", 158}, - {"getstarttime", 159}, - {"sub_7ff7de2a3350", 160}, - {"sub_7ff7de2a3780", 161}, - {"sub_7ff7de2a3a60", 162}, - {"sub_7ff7de2a3a20", 163}, - {"sub_7ff7de2a4750", 164}, - {"sub_7ff7de2a4380", 165}, - {"sub_7ff7de2a3900", 166}, - {"sub_7ff7de2a3890", 167}, - {"sub_7ff7de2a48a0", 168}, - {"sub_7ff7de2a3370", 169}, - {"sub_7ff7de2a3810", 170}, - {"missilecreaterepulsororigin", 171}, - {"sub_7ff7de2a3a80", 172}, - {"sub_7ff7de2a3f60", 173}, - {"sub_7ff7de2a4890", 175}, - {"sub_7ff7de2a4600", 176}, - {"sub_7ff7de2a33a0", 177}, - {"sub_7ff7de2a3610", 178}, - {"sub_7ff7de2a34f0", 179}, - {"sub_7ff7de2a41f0", 180}, - {"setnorthyaw", 181}, - {"setslowmotion", 182}, - {"randomint", 183}, - {"randomfloat", 184}, - {"randomintrange", 185}, - {"randomfloatrange", 186}, - {"sin", 187}, - {"cos", 188}, - {"tan", 189}, - {"asin", 190}, - {"acos", 191}, - {"atan", 192}, - {"int", 193}, - {"float", 194}, - {"abs", 195}, - {"min", 196}, - {"objective_additionalcurrent", 197}, - {"objective_ring", 198}, - {"objective_setpointertextoverride", 199}, - {"getnode", 200}, - {"getnodearray", 201}, - {"getallnodes", 202}, - {"getnodesinradius", 203}, - {"getnodesinradiussorted", 205}, - {"nullsub_473", 206}, - {"nullsub_474", 207}, - {"getvehicletracksegment", 208}, - {"getvehicletracksegmentarray", 209}, - {"getallvehicletracksegments", 210}, - {"isarray", 211}, - {"isbot", 212}, - {"loadluifile", 213}, - {"isplayer", 214}, - {"isspawner", 215}, - {"sub_7ff7de294aa0", 216}, - {"sub_7ff7de294b20", 217}, - {"sub_7ff7de294c30", 218}, - {"sub_7ff7de294c60", 219}, - {"sub_7ff7de295030", 220}, - {"sub_7ff7de2950a0", 221}, - {"sub_7ff7de295360", 222}, - {"sub_7ff7de295520", 223}, - {"getspawnerarray", 224}, - {"getcorpsearray", 225}, - {"getspawnerteamarray", 226}, - {"getweaponclipmodel", 227}, - {"getbrushmodelcenter", 228}, - {"getkeybinding", 229}, - {"max", 230}, - {"floor", 231}, - {"log", 232}, - {"angleclamp360", 233}, - {"exp", 234}, - {"sub_7ff7de2875f0", 235}, - {"sqrt", 236}, - {"squared", 237}, - {"clamp", 238}, - {"angleclamp", 239}, - {"angleclamp180", 240}, - {"vectorfromlinetopoint", 241}, - {"pointonsegmentnearesttopoint", 242}, - {"distance", 243}, - {"distance2d", 244}, - {"distancesquared", 245}, - {"length", 246}, - {"lengthsquared", 247}, - {"sub_7ff7de273590", 248}, - {"sub_7ff7de2736e0", 249}, - {"sub_7ff7de273730", 250}, - {"sub_7ff7de273900", 251}, - {"sub_7ff7de273a10", 252}, - {"axistoangles", 253}, - {"sub_7ff7de292a40", 254}, - {"sub_7ff7de292a50", 255}, - {"incrementcounter", 260}, - {"getcountertotal", 261}, - {"sub_7ff7de282380", 262}, - {"stricmp", 263}, - {"transforminputcamrelative", 264}, - {"nullsub_304", 265}, - {"sub_7ff7de274760", 267}, - {"createthreatbiasgroup", 268}, - {"threatbiasgroupexists", 269}, - {"getthreatbias", 270}, - {"setthreatbias", 271}, - {"setthreatbiasagainstall", 272}, - {"setignoremegroup", 273}, - {"sub_7ff7de2c1060", 274}, - {"snaptotarget", 275}, - {"sub_7ff7de29efe0", 276}, - {"sub_7ff7de29eff0", 277}, - {"sub_7ff7de29f000", 278}, - {"sub_7ff7de29f200", 279}, - {"sub_7ff7de29f280", 280}, - {"vectornormalize", 281}, - {"vectortoangles", 282}, - {"vectortoyaw", 283}, - {"vectorlerp", 284}, - {"anglestoup", 285}, - {"anglestoright", 286}, - {"anglestoforward", 287}, - {"anglesdelta", 288}, - {"sub_7ff7de275940", 289}, - {"sub_7ff7de275c10", 290}, - {"sub_7ff7de277c20", 291}, - {"rotatepointaroundvector", 292}, - {"issubstr", 293}, - {"isendstr", 294}, - {"getsubstr", 295}, - {"tolower", 296}, - {"sub_7ff7de27a2d0", 297}, - {"getactiveclientcount", 298}, - {"sub_7ff7de282e00", 299}, - {"worldentnumber", 325}, - {"sub_7ff7de292940", 328}, - {"visionsetnight", 329}, - {"visionsetmissilecam", 330}, - {"ambientstop", 331}, - {"precachemodel", 332}, - {"precacheshellshock", 333}, - {"precacheitem", 334}, - {"precacheshader", 335}, - {"precachestring", 336}, - {"precachemenu", 337}, - {"precacherumble", 338}, - {"precachelocationselector", 339}, - {"precacheleaderboards", 340}, - {"loadfx", 341}, - {"playfx", 342}, - {"sub_7ff7de275db0", 343}, - {"sub_7ff7de277a60", 344}, - {"sub_7ff7de278220", 345}, - {"playloopedfx", 346}, - {"sub_7ff7de479130", 347}, - {"sub_7ff7de479390", 348}, - {"sub_7ff7de276360", 349}, - {"sub_7ff7de4790c0", 350}, - {"sub_7ff7de277420", 351}, - {"errorinternal", 352}, - {"sub_7ff7de282350", 368}, - {"sub_7ff7de278920", 388}, - {"physicsexplosionsphere", 389}, - {"physicsradiusjolt", 390}, - {"sub_7ff7de279c60", 391}, - {"sub_7ff7de27cc20", 392}, - {"sub_7ff7de27cde0", 393}, - {"sub_7ff7de27d510", 394}, - {"sub_7ff7de27d580", 395}, - {"sub_7ff7de27d760", 396}, - {"sub_7ff7de27daa0", 397}, - {"isexplosivedamagemod", 398}, - {"radiusdamage", 399}, - {"sub_7ff7de288550", 400}, - {"sub_7ff7de287620", 401}, - {"sub_7ff7de27d2f0", 402}, - {"getnumparts", 403}, - {"sub_7ff7de29eea0", 404}, - {"iprintln", 414}, - {"iprintlnbold", 415}, - {"logstring", 416}, - {"getent", 417}, - {"getentarray", 418}, - {"spawnstruct", 421}, - {"isalive", 423}, - {"isspawner", 424}, - {"missile_createattractororigin", 425}, - {"missile_createrepulsorent", 426}, - {"missile_createrepulsororigin", 427}, - {"missile_deleteattractor", 429}, - {"newhudelem", 431}, - {"newclienthudelem", 432}, - {"sub_7ff7de358350", 434}, - {"isvalidmissile", 435}, - {"getpartname", 437}, - {"sub_7ff7de27f400", 438}, - {"ceil", 439}, - {"botmemoryflags", 440}, - {"getactivecount", 441}, - {"getsquadassaultenemyprestige", 442}, - {"getteamscore", 443}, - {"sub_7ff7de27dbc0", 444}, - {"sub_7ff7de27e190", 445}, - {"sub_7ff7de27e450", 446}, - {"sub_7ff7de2873a0", 447}, - {"sub_7ff7de287d90", 448}, - {"sub_7ff7de27fd40", 449}, - {"tablelookupistringbyrow", 450}, - {"sub_7ff7de280940", 451}, - {"tablelookuprownum", 452}, - {"sub_7ff7de281590", 453}, - {"tableexists", 454}, - {"getmissileowner", 455}, - {"magicbullet", 456}, - {"getweaponflashtagname", 457}, - {"summarizearraypoints", 458}, - {"buildhudoutlineclientmaskfromentarray", 459}, - {"sub_7ff7de46a010", 460}, - {"sub_7ff7de27c020", 461}, - {"sub_7ff7de27c050", 462}, - {"sub_7ff7de27c0f0", 463}, - {"sub_7ff7de288dc0", 464}, - {"nullsub_441", 465}, - {"nullsub_442", 466}, - {"nullsub_443", 467}, - {"nullsub_444", 468}, - {"nullsub_445", 469}, - {"nullsub_446", 470}, - {"sub_7ff7de286a70", 471}, - {"setthermalbodymaterial", 472}, - {"getarraykeys", 473}, - {"getfirstarraykey", 474}, - {"getglass", 475}, - {"getglassarray", 476}, - {"getglassorigin", 477}, - {"isglassdestroyed", 478}, - {"destroyglass", 479}, - {"deletepiece", 480}, - {"getalpha", 481}, - {"sub_7ff7de284760", 482}, - {"sub_7ff7de29f580", 483}, - {"sub_7ff7de29fa30", 484}, - {"sub_7ff7de29efd0", 485}, - {"icon", 486}, - {"sub_7ff7de29f110", 487}, - {"sub_7ff7de29f1b0", 488}, - {"sub_7ff7de29f270", 489}, - {"sub_7ff7de27e760", 490}, - {"sub_7ff7de27e920", 491}, - {"sub_7ff7de27eb40", 492}, - {"sub_7ff7de27ef70", 493}, - {"sub_7ff7de27f9e0", 494}, - {"sub_7ff7de27fb10", 495}, - {"sub_7ff7de280080", 496}, - {"sub_7ff7de280550", 497}, - {"getent", 498}, - {"getnodearray", 499}, - {"getallnodes", 500}, - {"sub_7ff7de469d40", 501}, - {"sub_7ff7de46a090", 502}, - {"spawnvehicle", 503}, - {"vehicle_getarray", 504}, - {"pow", 505}, - {"sub_7ff7de286950", 506}, - {"getsquadassaultelo", 507}, - {"sub_7ff7de291c90", 508}, - {"sub_7ff7de2b5490", 524}, - {"sub_7ff7de2b50a0", 525}, - {"soundexists", 534}, - {"sub_7ff7de2b4da0", 541}, - {"disconnectnodepair", 542}, - {"connectnodepair", 543}, - {"sub_7ff7de295420", 544}, - {"nullsub_476", 547}, - {"sub_7ff7de35d370", 549}, - {"sub_7ff7de35d5b0", 550}, - {"sub_7ff7de35d4f0", 551}, - {"sub_7ff7de35d490", 552}, - {"sub_7ff7de35d0f0", 554}, - {"sub_7ff7de35d0a0", 555}, - {"sub_7ff7de35d130", 556}, - {"distance2dsquared", 557}, - {"getangledelta3d", 558}, - {"sub_7ff7de278a30", 559}, - {"stoploopsound", 560}, - {"sub_7ff7de279240", 561}, - {"trajectorycalculateexitangle", 562}, - {"sub_7ff7de2797c0", 563}, - {"trajectorycomputedeltaheightattime", 564}, - {"getteamradar", 565}, - {"nullsub_436", 566}, - {"ispointinvolume", 567}, - {"getplaylistversion", 568}, - {"getbuildnumber", 569}, - {"isusingmatchrulesdata", 570}, - {"nullsub_450", 572}, - {"sub_7ff7de27be50", 574}, - {"sub_7ff7de27b140", 575}, - {"sub_7ff7de298500", 576}, - {"sub_7ff7de290c90", 577}, - {"isteamradarblocked", 578}, - {"issquadsmode", 579}, - {"sub_7ff7de283620", 581}, - {"sub_7ff7de283920", 582}, - {"sub_7ff7de2814e0", 583}, - {"sub_7ff7de2814f0", 584}, - {"sub_7ff7de281580", 585}, - {"sub_7ff7de281640", 586}, - {"sub_7ff7de281820", 587}, - {"sub_7ff7de27b420", 589}, - {"sub_7ff7de28f230", 594}, - {"sub_7ff7de28f350", 595}, - {"sub_7ff7de276b60", 596}, - {"sub_7ff7de2897c0", 597}, - {"sub_7ff7de2748a0", 598}, - {"sub_7ff7de292ad0", 599}, - {"nullsub_447", 600}, - {"nullsub_510", 601}, - {"nullsub_449", 602}, - {"sub_7ff7de2760e0", 603}, - {"sub_7ff7de276250", 604}, - {"sub_7ff7de276800", 605}, - {"sub_7ff7de294a20", 607}, - {"sub_7ff7de282990", 608}, - {"addbot", 609}, - {"getcsplinecount", 610}, - {"getcsplinepointcount", 611}, - {"getcsplinelength", 612}, - {"getcsplinepointid", 613}, - {"getcsplinepointlabel", 614}, - {"getcsplinepointtension", 615}, - {"getcsplinepointcorridordims", 616}, - {"getcsplinepointtangent", 617}, - {"sub_7ff7de27dee0", 618}, - {"getcsplinepointdisttonextpoint", 619}, - {"calccsplinetangent", 620}, - {"calccsplinecorridor", 621}, - {"sub_7ff7de27ecb0", 622}, - {"sub_7ff7de27ef30", 623}, - {"assertexcmd", 624}, - {"nullsub_452", 626}, - {"nullsub_525", 627}, - {"nullsub_454", 628}, - {"nullsub_455", 629}, - {"nullsub_456", 630}, - {"nullsub_457", 631}, - {"nullsub_479", 633}, - {"nullsub_480", 634}, - {"nullsub_458", 635}, - {"nullsub_733", 636}, - {"nullsub_460", 637}, - {"nullsub_461", 638}, - {"nullsub_433", 644}, - {"errorinternal", 645}, - {"nullsub_462", 646}, - {"nullsub_762", 647}, - {"nullsub_451", 648}, - {"nullsub_511", 649}, - {"playsoundasmaster", 650}, - {"nullsub_388_0", 656}, - {"sub_7ff7de2808c0", 659}, - {"sub_7ff7de2782e0", 660}, - {"sub_7ff7de278a60", 661}, - {"sub_7ff7de286e70", 666}, - {"sub_7ff7de286ec0", 667}, - {"sub_7ff7de2951e0", 668}, - {"sub_7ff7de280d80", 669}, - {"sub_7ff7de2849c0", 670}, - {"sub_7ff7de27ea20", 671}, - {"sub_7ff7de27f270", 672}, - {"sub_7ff7de27f680", 673}, - {"sub_7ff7de292500", 674}, - {"nullsub_296", 675}, - {"sub_7ff7de272730", 676}, - {"isvalidgametype", 677}, - {"sub_7ff7de282440", 678}, - {"sub_7ff7de2827b0", 679}, - {"sub_7ff7de2803b0", 682}, - {"sub_7ff7de292710", 683}, - {"sub_7ff7de283a00", 684}, - {"sub_7ff7de278c40", 685}, - {"sub_7ff7de2867c0", 686}, - {"nullsub_465", 687}, - {"nullsub_464", 688}, - {"sub_7ff7de295bd0", 690}, - {"sub_7ff7de27e110", 691}, - {"nullsub_467", 692}, - {"getuavstrengthlevelshowenemyfastsweep", 693}, - {"nullsub_468", 694}, - {"nullsub_469", 695}, - {"nullsub_187_0", 696}, - {"nullsub_437", 701}, - {"nullsub_399_0", 702}, - {"getteamradarstrength", 703}, - {"sub_7ff7de298310", 704}, - {"sub_7ff7de285c30", 709}, - {"sub_7ff7de298340", 710}, - {"sub_7ff7de27b9e0", 711}, - {"nullsub_471", 713}, - {"nullsub_483_0", 714}, - {"abs", 715}, - {"sub_7ff7de282000", 716}, - {"sub_7ff7de282160", 717}, - {"setleveldopplerpreset", 718}, - {"sub_7ff7de2970c0", 727}, - {"sub_7ff7de297b60", 733}, - {"sub_7ff7de286ca0", 734}, - {"nullsub_466", 736}, - {"sub_7ff7de292a60", 737}, - {"nullsub_481", 739}, - {"isdedicatedserver", 744}, - {"sub_7ff7de27ac20", 745}, - {"nullsub_439", 747}, - {"nullsub_440", 748}, - {"nullsub_289", 749}, - {"getarchivetime", 750}, - {"sub_7ff7de279010", 751}, - {"sub_7ff7de2792d0", 752}, - {"sub_7ff7de293950", 753}, - {"nullsub_482", 754}, - {"sub_7ff7de281fb0", 755}, - {"getpsoffsettime", 759}, - {"sub_7ff7de286020", 760}, - {"sub_7ff7de2860c0", 761}, - {"gettime", 762}, - {"ishairrunning", 763}, - {"getentchannelname", 764}, - {"sub_7ff7de286400", 765}, - {"getuavstrengthmin", 766}, - {"getbuildversion", 767}, - {"sub_7ff7de286810", 768}, - {"getuavstrengthmax", 769}, - {"sub_7ff7de2848a0", 770}, - {"errorinternal", 771}, - {"errorinternal", 772}, - {"sub_7ff7de2808d0", 773}, - {"sub_7ff7de27cc50", 774}, - {"sub_7ff7de27ce10", 775}, - {"sub_7ff7de27cfc0", 776}, - {"sub_7ff7de288160", 778}, - {"nullsub_301", 780}, - {"sub_7ff7de2802e0", 782}, - {"tablelookup", 783}, - {"errorinternal", 787}, - {"lookupsoundlength", 788}, - {"sub_7ff7de23f3f0", 789}, - {"startservermigration", 790}, - {"sub_7ff7de23f2d0", 791}, - {"sub_7ff7de284300", 793}, - {"sub_7ff7de27a930", 794}, - {"sub_7ff7de293c50", 795}, - {"sub_7ff7de293d60", 796}, - {"sub_7ff7de293e40", 797}, - {"sub_7ff7de293f00", 798}, - {"getmaxagents", 799}, - {"sub_7ff7de289110", 800}, - }; + { + {"precacheturret", 0x1}, + {"getweaponarray", 0x2}, + {"nullsub_428", 0x3}, + {"sub_502950", 0x4}, + {"sub_504F40", 0x5}, + {"meleeapplyinitialvelocity", 0x6}, + {"sub_508680", 0x7}, + {"sub_5086A0", 0x8}, + {"sub_5087A0", 0x9}, + {"sub_5086C0", 0xA}, + {"sub_5085A0", 0xB}, + {"sub_504FD0", 0xC}, + {"sub_505000", 0xD}, + {"sub_505060", 0xE}, + {"nullsub_429", 0xF}, + {"allowscriptmenuresponse", 0x10}, + {"allowscriptmenuresponse", 0x11}, + {"notifyoncommand", 0x12}, + {"setprintchannel", 0x13}, + {"print", 0x14}, + {"println", 0x15}, + {"print3d", 0x16}, + {"line", 0x17}, + {"spawnturret", 0x18}, + {"canspawnturret", 0x19}, + {"assert", 0x1A}, + {"sub_502660", 0x1B}, + {"sub_502690", 0x1C}, + {"sub_5021C0", 0x1D}, + {"sub_5023E0", 0x1E}, + {"runbadplaces", 0x1F}, + {"sub_4E7120", 0x20}, + {"sub_4E76D0", 0x21}, + {"sub_4E7F10", 0x22}, + {"sub_503F20", 0x23}, + {"sub_525640", 0x24}, + {"sub_5256E0", 0x25}, + {"sub_525560", 0x26}, + {"sub_525420", 0x27}, + {"nullsub_477", 0x2A}, + {"nullsub_478", 0x2B}, + {"sub_5046B0", 0x2C}, + {"sub_4EC920", 0x2D}, + {"errorinternal", 0x2E}, + {"isdefined", 0x2F}, + {"issentient", 0x30}, + {"isstring", 0x31}, + {"sub_4EE990", 0x32}, + {"sub_4EEC00", 0x33}, + {"setclientdvar", 0x34}, + {"sub_4EFA60", 0x36}, + {"setdvar", 0x37}, + {"sub_4EFCA0", 0x38}, + {"getdvar", 0x39}, + {"getdvarint", 0x3A}, + {"getdvarfloat", 0x3B}, + {"getdvarvector", 0x3C}, + {"sub_4F2180", 0x3D}, + {"gettime", 0x3E}, + {"sub_4F2330", 0x3F}, + {"getentbynum", 0x40}, + {"getscreenwidth", 0x41}, + {"getscreenheight", 0x42}, + {"getweaponmodel", 0x43}, + {"setgameendtime", 0x44}, + {"sub_502C50", 0x45}, + {"sub_502C90", 0x46}, + {"sub_502CF0", 0x47}, + {"sub_502D80", 0x48}, + {"sub_502DB0", 0x49}, + {"sub_502E40", 0x4A}, + {"sub_502E70", 0x4B}, + {"sub_502EA0", 0x4C}, + {"sub_502FD0", 0x4D}, + {"setwhizbyradii", 0x4E}, + {"sub_503380", 0x4F}, + {"sub_5036E0", 0x50}, + {"sub_4F9110", 0x50}, + {"sub_503740", 0x51}, + {"sub_503760", 0x52}, + {"sub_5037B0", 0x53}, + {"sub_5037D0", 0x54}, + {"sub_5038F0", 0x55}, + {"position", 0x56}, + {"sub_501A80", 0x57}, + {"spawntestclient", 0x58}, + {"sub_501C70", 0x59}, + {"sub_501CD0", 0x5A}, + {"sub_501EB0", 0x5B}, + {"sub_501F50", 0x5C}, + {"sub_5020C0", 0x5D}, + {"sub_502140", 0x5E}, + {"sub_502390", 0x5F}, + {"sub_502640", 0x60}, + {"getweapondisplayname", 0x61}, + {"getweaponbasename", 0x62}, + {"getweaponattachments", 0x63}, + {"getweaponattachmentdisplaynames", 0x64}, + {"getweaponcamoname", 0x65}, + {"sub_4F55D0", 0x66}, + {"getanimlength", 0x67}, + {"animhasnotetrack", 0x68}, + {"getnotetracktimes", 0x69}, + {"spawn", 0x6A}, + {"sub_4EEDD0", 0x6B}, + {"spawnloopingsound", 0x6C}, + {"bullettrace", 0x6D}, + {"sub_5140B0", 0x6E}, + {"sub_513BC0", 0x6F}, + {"sub_513D50", 0x70}, + {"sub_4AF5F0", 0x71}, + {"sub_4AF4E0", 0x72}, + {"sub_4AF180", 0x73}, + {"sub_501DB0", 0x74}, + {"sub_4F0130", 0x75}, + {"setblur", 0x76}, + {"musicplay", 0x77}, + {"musicstop", 0x78}, + {"sub_507890", 0x79}, + {"setteammode", 0x7A}, + {"sub_4F6990", 0x7B}, + {"sub_4F6A20", 0x7C}, + {"sub_4F6C90", 0x7D}, + {"sub_4F6DA0", 0x7E}, + {"sub_4F6DD0", 0x7F}, + {"sub_507A70", 0x80}, + {"sub_4FF720", 0x81}, + {"sub_507960", 0x82}, + {"sub_5019A0", 0x83}, + {"sub_5019C0", 0x85}, + {"sub_501A60", 0x86}, + {"sub_4FF7B0", 0x87}, + {"sub_500380", 0x88}, + {"getglowalpha", 0x89}, + {"sub_500210", 0x8A}, + {"sub_5003C0", 0x8B}, + {"sub_500B40", 0x8C}, + {"sub_5026B0", 0x8D}, + {"sub_502AE0", 0x8E}, + {"bullettracepassed", 0x8F}, + {"sighttracepassed", 0x90}, + {"physicstrace", 0x91}, + {"playerphysicstrace", 0x92}, + {"getgroundposition", 0x93}, + {"getangledelta", 0x94}, + {"getmovedelta", 0x95}, + {"getnorthyaw", 0x96}, + {"getcommandfromkey", 0x97}, + {"getsticksconfig", 0x98}, + {"sub_507060", 0x99}, + {"botautoconnectenabled", 0x9A}, + {"sub_507140", 0x9B}, + {"sub_500BF0", 0x9C}, + {"sub_500C40", 0x9D}, + {"botgetteamdifficulty", 0x9E}, + {"getstarttime", 0x9F}, + {"sub_513350", 0xA0}, + {"sub_513780", 0xA1}, + {"sub_513A60", 0xA2}, + {"sub_513A20", 0xA3}, + {"sub_514750", 0xA4}, + {"sub_514380", 0xA5}, + {"sub_513900", 0xA6}, + {"sub_513890", 0xA7}, + {"sub_5148A0", 0xA8}, + {"sub_513370", 0xA9}, + {"sub_513810", 0xAA}, + {"missilecreaterepulsororigin", 0xAB}, + {"sub_513A80", 0xAC}, + {"sub_513F60", 0xAD}, + {"sub_514890", 0xAF}, + {"sub_514600", 0xB0}, + {"sub_5133A0", 0xB1}, + {"sub_513610", 0xB2}, + {"sub_5134F0", 0xB3}, + {"sub_5141F0", 0xB4}, + {"setnorthyaw", 0xB5}, + {"setslowmotion", 0xB6}, + {"randomint", 0xB7}, + {"randomfloat", 0xB8}, + {"randomintrange", 0xB9}, + {"randomfloatrange", 0xBA}, + {"sin", 0xBB}, + {"cos", 0xBC}, + {"tan", 0xBD}, + {"asin", 0xBE}, + {"acos", 0xBF}, + {"atan", 0xC0}, + {"int", 0xC1}, + {"float", 0xC2}, + {"abs", 0xC3}, + {"min", 0xC4}, + {"objective_additionalcurrent", 0xC5}, + {"objective_ring", 0xC6}, + {"objective_setpointertextoverride", 0xC7}, + {"getnode", 0xC8}, + {"getnodearray", 0xC9}, + {"getallnodes", 0xCA}, + {"getnodesinradius", 0xCB}, + {"getnodesinradiussorted", 0xCD}, + {"nullsub_473", 0xCE}, + {"nullsub_474", 0xCF}, + {"getvehicletracksegment", 0xD0}, + {"getvehicletracksegmentarray", 0xD1}, + {"getallvehicletracksegments", 0xD2}, + {"isarray", 0xD3}, + {"isbot", 0xD4}, + {"loadluifile", 0xD5}, + {"isplayer", 0xD6}, + {"isspawner", 0xD7}, + {"sub_504AA0", 0xD8}, + {"sub_504B20", 0xD9}, + {"sub_504C30", 0xDA}, + {"sub_504C60", 0xDB}, + {"sub_505030", 0xDC}, + {"sub_5050A0", 0xDD}, + {"sub_505360", 0xDE}, + {"sub_505520", 0xDF}, + {"getspawnerarray", 0xE0}, + {"getcorpsearray", 0xE1}, + {"getspawnerteamarray", 0xE2}, + {"getweaponclipmodel", 0xE3}, + {"getbrushmodelcenter", 0xE4}, + {"getkeybinding", 0xE5}, + {"max", 0xE6}, + {"floor", 0xE7}, + {"log", 0xE8}, + {"angleclamp360", 0xE9}, + {"exp", 0xEA}, + {"sub_4F75F0", 0xEB}, + {"sqrt", 0xEC}, + {"squared", 0xED}, + {"clamp", 0xEE}, + {"angleclamp", 0xEF}, + {"angleclamp180", 0xF0}, + {"vectorfromlinetopoint", 0xF1}, + {"pointonsegmentnearesttopoint", 0xF2}, + {"distance", 0xF3}, + {"distance2d", 0xF4}, + {"distancesquared", 0xF5}, + {"length", 0xF6}, + {"lengthsquared", 0xF7}, + {"sub_4E3590", 0xF8}, + {"sub_4E36E0", 0xF9}, + {"sub_4E3730", 0xFA}, + {"sub_4E3900", 0xFB}, + {"sub_4E3A10", 0xFC}, + {"axistoangles", 0xFD}, + {"sub_502A40", 0xFE}, + {"sub_502A50", 0xFF}, + {"incrementcounter", 0x104}, + {"getcountertotal", 0x105}, + {"sub_4F2380", 0x106}, + {"stricmp", 0x107}, + {"transforminputcamrelative", 0x108}, + {"nullsub_304", 0x109}, + {"sub_4E4760", 0x10B}, + {"createthreatbiasgroup", 0x10C}, + {"threatbiasgroupexists", 0x10D}, + {"getthreatbias", 0x10E}, + {"setthreatbias", 0x10F}, + {"setthreatbiasagainstall", 0x110}, + {"setignoremegroup", 0x111}, + {"sub_531060", 0x112}, + {"snaptotarget", 0x113}, + {"sub_50EFE0", 0x114}, + {"sub_50EFF0", 0x115}, + {"sub_50F000", 0x116}, + {"sub_50F200", 0x117}, + {"sub_50F280", 0x118}, + {"vectornormalize", 0x119}, + {"vectortoangles", 0x11A}, + {"vectortoyaw", 0x11B}, + {"vectorlerp", 0x11C}, + {"anglestoup", 0x11D}, + {"anglestoright", 0x11E}, + {"anglestoforward", 0x11F}, + {"anglesdelta", 0x120}, + {"sub_4E5940", 0x121}, + {"sub_4E5C10", 0x122}, + {"sub_4E7C20", 0x123}, + {"rotatepointaroundvector", 0x124}, + {"issubstr", 0x125}, + {"isendstr", 0x126}, + {"getsubstr", 0x127}, + {"tolower", 0x128}, + {"sub_4EA2D0", 0x129}, + {"getactiveclientcount", 0x12A}, + {"sub_4F2E00", 0x12B}, + {"worldentnumber", 0x145}, + {"sub_502940", 0x148}, + {"visionsetnight", 0x149}, + {"visionsetmissilecam", 0x14A}, + {"ambientstop", 0x14B}, + {"precachemodel", 0x14C}, + {"precacheshellshock", 0x14D}, + {"precacheitem", 0x14E}, + {"precacheshader", 0x14F}, + {"precachestring", 0x150}, + {"precachemenu", 0x151}, + {"precacherumble", 0x152}, + {"precachelocationselector", 0x153}, + {"precacheleaderboards", 0x154}, + {"loadfx", 0x155}, + {"playfx", 0x156}, + {"sub_4E5DB0", 0x157}, + {"sub_4E7A60", 0x158}, + {"sub_4E8220", 0x159}, + {"playloopedfx", 0x15A}, + {"sub_6E9130", 0x15B}, + {"sub_6E9390", 0x15C}, + {"sub_4E6360", 0x15D}, + {"sub_6E90C0", 0x15E}, + {"sub_4E7420", 0x15F}, + {"errorinternal", 0x160}, + {"sub_4F2350", 0x170}, + {"sub_4E8920", 0x184}, + {"physicsexplosionsphere", 0x185}, + {"physicsradiusjolt", 0x186}, + {"sub_4E9C60", 0x187}, + {"sub_4ECC20", 0x188}, + {"sub_4ECDE0", 0x189}, + {"sub_4ED510", 0x18A}, + {"sub_4ED580", 0x18B}, + {"sub_4ED760", 0x18C}, + {"sub_4EDAA0", 0x18D}, + {"isexplosivedamagemod", 0x18E}, + {"radiusdamage", 0x18F}, + {"sub_4F8550", 0x190}, + {"sub_4F7620", 0x191}, + {"sub_4ED2F0", 0x192}, + {"getnumparts", 0x193}, + {"sub_50EEA0", 0x194}, + {"iprintln", 0x19E}, + {"iprintlnbold", 0x19F}, + {"logstring", 0x1A0}, + {"getent", 0x1A1}, + {"getentarray", 0x1A2}, + {"spawnstruct", 0x1A5}, + {"isalive", 0x1A7}, + {"isspawner", 0x1A8}, + {"missile_createattractororigin", 0x1A9}, + {"missile_createrepulsorent", 0x1AA}, + {"missile_createrepulsororigin", 0x1AB}, + {"missile_deleteattractor", 0x1AD}, + {"newhudelem", 0x1AF}, + {"newclienthudelem", 0x1B0}, + {"sub_5C8350", 0x1B2}, + {"isvalidmissile", 0x1B3}, + {"getpartname", 0x1B5}, + {"sub_4EF400", 0x1B6}, + {"ceil", 0x1B7}, + {"botmemoryflags", 0x1B8}, + {"getactivecount", 0x1B9}, + {"getsquadassaultenemyprestige", 0x1BA}, + {"getteamscore", 0x1BB}, + {"sub_4EDBC0", 0x1BC}, + {"sub_4EE190", 0x1BD}, + {"sub_4EE450", 0x1BE}, + {"sub_4F73A0", 0x1BF}, + {"sub_4F7D90", 0x1C0}, + {"sub_4EFD40", 0x1C1}, + {"tablelookupistringbyrow", 0x1C2}, + {"sub_4F0940", 0x1C3}, + {"tablelookuprownum", 0x1C4}, + {"sub_4F1590", 0x1C5}, + {"tableexists", 0x1C6}, + {"getmissileowner", 0x1C7}, + {"magicbullet", 0x1C8}, + {"getweaponflashtagname", 0x1C9}, + {"summarizearraypoints", 0x1CA}, + {"buildhudoutlineclientmaskfromentarray", 0x1CB}, + {"sub_6DA010", 0x1CC}, + {"sub_4EC020", 0x1CD}, + {"sub_4EC050", 0x1CE}, + {"sub_4EC0F0", 0x1CF}, + {"sub_4F8DC0", 0x1D0}, + {"nullsub_441", 0x1D1}, + {"nullsub_442", 0x1D2}, + {"nullsub_443", 0x1D3}, + {"nullsub_444", 0x1D4}, + {"nullsub_445", 0x1D5}, + {"nullsub_446", 0x1D6}, + {"sub_4F6A70", 0x1D7}, + {"setthermalbodymaterial", 0x1D8}, + {"getarraykeys", 0x1D9}, + {"getfirstarraykey", 0x1DA}, + {"getglass", 0x1DB}, + {"getglassarray", 0x1DC}, + {"getglassorigin", 0x1DD}, + {"isglassdestroyed", 0x1DE}, + {"destroyglass", 0x1DF}, + {"deletepiece", 0x1E0}, + {"getalpha", 0x1E1}, + {"sub_4F4760", 0x1E2}, + {"sub_50F580", 0x1E3}, + {"sub_50FA30", 0x1E4}, + {"sub_50EFD0", 0x1E5}, + {"icon", 0x1E6}, + {"sub_50F110", 0x1E7}, + {"sub_50F1B0", 0x1E8}, + {"sub_50F270", 0x1E9}, + {"sub_4EE760", 0x1EA}, + {"sub_4EE920", 0x1EB}, + {"sub_4EEB40", 0x1EC}, + {"sub_4EEF70", 0x1ED}, + {"sub_4EF9E0", 0x1EE}, + {"sub_4EFB10", 0x1EF}, + {"sub_4F0080", 0x1F0}, + {"sub_4F0550", 0x1F1}, + {"getent", 0x1F2}, + {"getnodearray", 0x1F3}, + {"getallnodes", 0x1F4}, + {"sub_6D9D40", 0x1F5}, + {"sub_6DA090", 0x1F6}, + {"spawnvehicle", 0x1F7}, + {"vehicle_getarray", 0x1F8}, + {"pow", 0x1F9}, + {"sub_4F6950", 0x1FA}, + {"getsquadassaultelo", 0x1FB}, + {"sub_501C90", 0x1FC}, + {"sub_525490", 0x20C}, + {"sub_5250A0", 0x20D}, + {"soundexists", 0x216}, + {"sub_524DA0", 0x21D}, + {"disconnectnodepair", 0x21E}, + {"connectnodepair", 0x21F}, + {"sub_505420", 0x220}, + {"nullsub_476", 0x223}, + {"sub_5CD370", 0x225}, + {"sub_5CD5B0", 0x226}, + {"sub_5CD4F0", 0x227}, + {"sub_5CD490", 0x228}, + {"sub_5CD0F0", 0x22A}, + {"sub_5CD0A0", 0x22B}, + {"sub_5CD130", 0x22C}, + {"distance2dsquared", 0x22D}, + {"getangledelta3d", 0x22E}, + {"sub_4E8A30", 0x22F}, + {"stoploopsound", 0x230}, + {"sub_4E9240", 0x231}, + {"trajectorycalculateexitangle", 0x232}, + {"sub_4E97C0", 0x233}, + {"trajectorycomputedeltaheightattime", 0x234}, + {"getteamradar", 0x235}, + {"nullsub_436", 0x236}, + {"ispointinvolume", 0x237}, + {"getplaylistversion", 0x238}, + {"getbuildnumber", 0x239}, + {"isusingmatchrulesdata", 0x23A}, + {"nullsub_450", 0x23C}, + {"sub_4EBE50", 0x23E}, + {"sub_4EB140", 0x23F}, + {"sub_508500", 0x240}, + {"sub_500C90", 0x241}, + {"isteamradarblocked", 0x242}, + {"issquadsmode", 0x243}, + {"sub_4F3620", 0x245}, + {"sub_4F3920", 0x246}, + {"sub_4F14E0", 0x247}, + {"sub_4F14F0", 0x248}, + {"sub_4F1580", 0x249}, + {"sub_4F1640", 0x24A}, + {"sub_4F1820", 0x24B}, + {"sub_4EB420", 0x24D}, + {"sub_4FF230", 0x252}, + {"sub_4FF350", 0x253}, + {"sub_4E6B60", 0x254}, + {"sub_4F97C0", 0x255}, + {"sub_4E48A0", 0x256}, + {"sub_502AD0", 0x257}, + {"nullsub_447", 0x258}, + {"nullsub_510", 0x259}, + {"nullsub_449", 0x25A}, + {"sub_4E60E0", 0x25B}, + {"sub_4E6250", 0x25C}, + {"sub_4E6800", 0x25D}, + {"sub_504A20", 0x25F}, + {"sub_4F2990", 0x260}, + {"addbot", 0x261}, + {"getcsplinecount", 0x262}, + {"getcsplinepointcount", 0x263}, + {"getcsplinelength", 0x264}, + {"getcsplinepointid", 0x265}, + {"getcsplinepointlabel", 0x266}, + {"getcsplinepointtension", 0x267}, + {"getcsplinepointcorridordims", 0x268}, + {"getcsplinepointtangent", 0x269}, + {"sub_4EDEE0", 0x26A}, + {"getcsplinepointdisttonextpoint", 0x26B}, + {"calccsplinetangent", 0x26C}, + {"calccsplinecorridor", 0x26D}, + {"sub_4EECB0", 0x26E}, + {"sub_4EEF30", 0x26F}, + {"assertexcmd", 0x270}, + {"nullsub_452", 0x272}, + {"nullsub_525", 0x273}, + {"nullsub_454", 0x274}, + {"nullsub_455", 0x275}, + {"nullsub_456", 0x276}, + {"nullsub_457", 0x277}, + {"nullsub_479", 0x279}, + {"nullsub_480", 0x27A}, + {"nullsub_458", 0x27B}, + {"nullsub_733", 0x27C}, + {"nullsub_460", 0x27D}, + {"nullsub_461", 0x27E}, + {"nullsub_433", 0x284}, + {"errorinternal", 0x285}, + {"nullsub_462", 0x286}, + {"nullsub_762", 0x287}, + {"nullsub_451", 0x288}, + {"nullsub_511", 0x289}, + {"playsoundasmaster", 0x28A}, + {"nullsub_388_0", 0x290}, + {"sub_4F08C0", 0x293}, + {"sub_4E82E0", 0x294}, + {"sub_4E8A60", 0x295}, + {"sub_4F6E70", 0x29A}, + {"sub_4F6EC0", 0x29B}, + {"sub_5051E0", 0x29C}, + {"sub_4F0D80", 0x29D}, + {"sub_4F49C0", 0x29E}, + {"sub_4EEA20", 0x29F}, + {"sub_4EF270", 0x2A0}, + {"sub_4EF680", 0x2A1}, + {"sub_502500", 0x2A2}, + {"nullsub_296", 0x2A3}, + {"sub_4E2730", 0x2A4}, + {"isvalidgametype", 0x2A5}, + {"sub_4F2440", 0x2A6}, + {"sub_4F27B0", 0x2A7}, + {"sub_4F03B0", 0x2AA}, + {"sub_502710", 0x2AB}, + {"sub_4F3A00", 0x2AC}, + {"sub_4E8C40", 0x2AD}, + {"sub_4F67C0", 0x2AE}, + {"nullsub_465", 0x2AF}, + {"nullsub_464", 0x2B0}, + {"sub_505BD0", 0x2B2}, + {"sub_4EE110", 0x2B3}, + {"nullsub_467", 0x2B4}, + {"getuavstrengthlevelshowenemyfastsweep", 0x2B5}, + {"nullsub_468", 0x2B6}, + {"nullsub_469", 0x2B7}, + {"nullsub_187_0", 0x2B8}, + {"nullsub_437", 0x2BD}, + {"nullsub_399_0", 0x2BE}, + {"getteamradarstrength", 0x2BF}, + {"sub_508310", 0x2C0}, + {"sub_4F5C30", 0x2C5}, + {"sub_508340", 0x2C6}, + {"sub_4EB9E0", 0x2C7}, + {"nullsub_471", 0x2C9}, + {"nullsub_483_0", 0x2CA}, + {"abs", 0x2CB}, + {"sub_4F2000", 0x2CC}, + {"sub_4F2160", 0x2CD}, + {"setleveldopplerpreset", 0x2CE}, + {"sub_5070C0", 0x2D7}, + {"sub_507B60", 0x2DD}, + {"sub_4F6CA0", 0x2DE}, + {"nullsub_466", 0x2E0}, + {"sub_502A60", 0x2E1}, + {"nullsub_481", 0x2E3}, + {"isdedicatedserver", 0x2E8}, + {"sub_4EAC20", 0x2E9}, + {"nullsub_439", 0x2EB}, + {"nullsub_440", 0x2EC}, + {"nullsub_289", 0x2ED}, + {"getarchivetime", 0x2EE}, + {"sub_4E9010", 0x2EF}, + {"sub_4E92D0", 0x2F0}, + {"sub_503950", 0x2F1}, + {"nullsub_482", 0x2F2}, + {"sub_4F1FB0", 0x2F3}, + {"getpsoffsettime", 0x2F7}, + {"sub_4F6020", 0x2F8}, + {"sub_4F60C0", 0x2F9}, + {"gettime", 0x2FA}, + {"ishairrunning", 0x2FB}, + {"getentchannelname", 0x2FC}, + {"sub_4F6400", 0x2FD}, + {"getuavstrengthmin", 0x2FE}, + {"getbuildversion", 0x2FF}, + {"sub_4F6810", 0x300}, + {"getuavstrengthmax", 0x301}, + {"sub_4F48A0", 0x302}, + {"errorinternal", 0x303}, + {"errorinternal", 0x304}, + {"sub_4F08D0", 0x305}, + {"sub_4ECC50", 0x306}, + {"sub_4ECE10", 0x307}, + {"sub_4ECFC0", 0x308}, + {"sub_4F8160", 0x30A}, + {"nullsub_301", 0x30C}, + {"sub_4F02E0", 0x30E}, + {"tablelookup", 0x30F}, + {"errorinternal", 0x313}, + {"lookupsoundlength", 0x314}, + {"sub_4AF3F0", 0x315}, + {"startservermigration", 0x316}, + {"sub_4AF2D0", 0x317}, + {"sub_4F4300", 0x319}, + {"sub_4EA930", 0x31A}, + {"sub_503C50", 0x31B}, + {"sub_503D60", 0x31C}, + {"sub_503E40", 0x31D}, + {"sub_503F00", 0x31E}, + {"getmaxagents", 0x31F}, + {"sub_4F9110", 0x320}, + }; std::unordered_map method_map = + { + {"thermaldrawenable", 0x8000}, + {"playerforcedeathanim", 0x8001}, + {"sub_4E2590", 0x801A}, + {"attach", 0x801D}, + {"sub_504220", 0x801E}, + {"sub_504350", 0x801F}, + {"sub_5044C0", 0x8020}, + {"sub_504A80", 0x8021}, + {"sub_504AE0", 0x8022}, + {"sub_504E00", 0x8023}, + {"sub_504E40", 0x8024}, + {"nullsub_346", 0x8025}, + {"nullsub_368", 0x8026}, + {"setcoopplayerdatareservedint", 0x8028}, + {"entitywillneverchange", 0x8029}, + {"detach", 0x802A}, + {"detachall", 0x802B}, + {"getattachsize", 0x802C}, + {"getattachmodelname", 0x802D}, + {"getattachtagname", 0x802E}, + {"getrestedtime", 0x802F}, + {"sub_505940", 0x8030}, + {"botgetclosestnavigablepoint", 0x8031}, + {"sub_506E70", 0x8032}, + {"sub_506FA0", 0x8033}, + {"sub_524B80", 0x8034}, + {"gethighestnodestance", 0x8035}, + {"doesnodeallowstance", 0x8036}, + {"sub_524A90", 0x8037}, + {"sub_5019E0", 0x8038}, + {"sub_501B20", 0x8039}, + {"sub_501FD0", 0x803A}, + {"sub_503F30", 0x803B}, + {"sub_503F50", 0x803C}, + {"setminimap", 0x803D}, + {"sub_507170", 0x803E}, + {"sub_5071D0", 0x803F}, + {"playsoundtoplayer", 0x8040}, + {"sub_507380", 0x8041}, + {"sub_507410", 0x8042}, + {"sub_508710", 0x8043}, + {"sub_508750", 0x8044}, + {"sub_4F9B00", 0x8045}, + {"sub_4F9CC0", 0x8046}, + {"sub_4F9F60", 0x8047}, + {"enablemissileboosting", 0x8048}, + {"setplayerdatainternal", 0x8049}, + {"sub_4E2050", 0x804A}, + {"sub_503B60", 0x804B}, + {"sub_503B80", 0x804C}, + {"getattachignorecollision", 0x804D}, + {"hidepart", 0x804E}, + {"hidepartallinstances", 0x804F}, + {"hideallparts", 0x8050}, + {"showpart", 0x8051}, + {"showallparts", 0x8052}, + {"linkto", 0x8053}, + {"linktoblendtotag", 0x8054}, + {"unlink", 0x8055}, + {"setnormalhealth", 0x8056}, + {"dodamage", 0x8057}, + {"kill", 0x8058}, + {"show", 0x8059}, + {"hide", 0x805A}, + {"sub_504DD0", 0x805B}, + {"sub_504EF0", 0x805C}, + {"sub_504F80", 0x805D}, + {"disconnectpaths", 0x805E}, + {"connectpaths", 0x805F}, + {"disconnectnode", 0x8060}, + {"connectnode", 0x8061}, + {"sub_507450", 0x8062}, + {"sub_507510", 0x8063}, + {"sub_507530", 0x8064}, + {"sub_507550", 0x8065}, + {"sub_4FF730", 0x8066}, + {"sub_4FF9A0", 0x8067}, + {"sub_500460", 0x8068}, + {"sub_5012B0", 0x8069}, + {"sub_501320", 0x806A}, + {"sub_505270", 0x806C}, + {"sub_505620", 0x806D}, + {"sub_5057F0", 0x806E}, + {"islinked", 0x806F}, + {"enablelinkto", 0x8070}, + {"disableforcethirdpersonwhenfollowing", 0x8071}, + {"sub_4E4870", 0x8073}, + {"sub_4E4730", 0x8074}, + {"sub_4E4C40", 0x8075}, + {"sub_4E4AA0", 0x8076}, + {"sub_4EA790", 0x8077}, + {"nullsub_302", 0x8078}, + {"nullsub_367", 0x8079}, + {"nullsub_533", 0x807A}, + {"sub_503AD0", 0x807B}, + {"sub_503AF0", 0x807C}, + {"sub_503C10", 0x807D}, + {"sub_503C90", 0x807E}, + {"sub_503D20", 0x807F}, + {"sub_503DA0", 0x8080}, + {"botsetflag", 0x8081}, + {"sub_5040A0", 0x8082}, + {"playerlinkto", 0x8083}, + {"playerlinktodelta", 0x8084}, + {"playerlinkweaponviewtodelta", 0x8085}, + {"playerlinktoabsolute", 0x8086}, + {"playerlinktoblend", 0x8087}, + {"playerlinkedoffsetenable", 0x8088}, + {"setwaypointedgestyle_secondaryarrow", 0x8089}, + {"setwaypointiconoffscreenonly", 0x808A}, + {"fadeovertime", 0x808B}, + {"scaleovertime", 0x808C}, + {"moveovertime", 0x808D}, + {"reset", 0x808E}, + {"destroy", 0x808F}, + {"setpulsefx", 0x8090}, + {"setplayernamestring", 0x8091}, + {"changefontscaleovertime", 0x8092}, + {"startignoringspotlight", 0x8093}, + {"stopignoringspotlight", 0x8094}, + {"dontcastshadows", 0x8095}, + {"castshadows", 0x8096}, + {"setstablemissile", 0x8097}, + {"playersetgroundreferenceent", 0x8098}, + {"dontinterpolate", 0x8099}, + {"dospawn", 0x809A}, + {"stalingradspawn", 0x809B}, + {"getorigin", 0x809C}, + {"getcentroid", 0x809D}, + {"getshootatpos", 0x809E}, + {"getdebugeye", 0x809F}, + {"useby", 0x80A0}, + {"playsound", 0x80A1}, + {"playerlinkedoffsetdisable", 0x80A6}, + {"playerlinkedsetviewznear", 0x80A7}, + {"playerlinkedsetusebaseangleforviewclamp", 0x80A8}, + {"sub_4E6410", 0x80A9}, + {"sub_4E6FA0", 0x80AA}, + {"sub_4E7DB0", 0x80AB}, + {"sub_4E8760", 0x80AC}, + {"setplayernamestring", 0x80AD}, + {"sub_4EA8D0", 0x80AE}, + {"geteye", 0x80AF}, + {"istouching", 0x80B0}, + {"stoploopsound", 0x80B1}, + {"stopsounds", 0x80B2}, + {"playrumbleonentity", 0x80B3}, + {"playrumblelooponentity", 0x80B4}, + {"sub_4EBC60", 0x80B5}, + {"sub_4EC140", 0x80B6}, + {"delete", 0x80B7}, + {"setmodel", 0x80B8}, + {"laseraltviewon", 0x80B9}, + {"laseraltviewoff", 0x80BA}, + {"thermalvisionon", 0x80BD}, + {"thermalvisionoff", 0x80BE}, + {"laseraltviewon", 0x80BF}, + {"laseraltviewoff", 0x80C0}, + {"setcontents", 0x80C5}, + {"makeusable", 0x80C6}, + {"makeunusable", 0x80C7}, + {"sub_4E3270", 0x80C8}, + {"sub_4E3800", 0x80C9}, + {"sub_4B9F70", 0x80CA}, + {"sub_4B7190", 0x80CB}, + {"sub_6D74C0", 0x80CC}, + {"sub_6D4DF0", 0x80CD}, + {"sub_6D7320", 0x80CE}, + {"sub_6D73B0", 0x80CF}, + {"triggerfx", 0x80D0}, + {"settext", 0x80D1}, + {"clearalltextafterhudelem", 0x80D2}, + {"setshader", 0x80D3}, + {"settargetent", 0x80D4}, + {"cleartargetent", 0x80D5}, + {"settimer", 0x80D6}, + {"settimerup", 0x80D7}, + {"settimerstatic", 0x80D8}, + {"settenthstimer", 0x80D9}, + {"settenthstimerup", 0x80DA}, + {"settenthstimerstatic", 0x80DB}, + {"setclock", 0x80DC}, + {"setclockup", 0x80DD}, + {"setvalue", 0x80DE}, + {"setwaypoint", 0x80DF}, + {"setwaypointedgestyle_rotatingicon", 0x80E0}, + {"setcursorhint", 0x80E1}, + {"sethintstring", 0x80E2}, + {"forceusehinton", 0x80E4}, + {"forceusehintoff", 0x80E5}, + {"makesoft", 0x80E6}, + {"makehard", 0x80E7}, + {"nullsub_297", 0x80E8}, + {"startfiring", 0x80E9}, + {"stopfiring", 0x80EA}, + {"isfiringturret", 0x80EB}, + {"startbarrelspin", 0x80EC}, + {"stopbarrelspin", 0x80ED}, + {"getbarrelspinrate", 0x80EE}, + {"shootturret", 0x80F1}, + {"getturretowner", 0x80F2}, + {"doanimrelative", 0x80F3}, + {"sub_4BBDC0", 0x80F4}, + {"setclipmode", 0x80F5}, + {"setgoalradius", 0x80F6}, + {"setmaxturnspeed", 0x80F7}, + {"hasloadedcustomizationplayerview", 0x80F8}, + {"sub_4BBFB0", 0x80F9}, + {"sub_4BC320", 0x80FA}, + {"sub_4BC560", 0x80FB}, + {"sub_4BC5C0", 0x80FC}, + {"sub_4BC620", 0x80FD}, + {"sub_4BC6B0", 0x80FE}, + {"sub_4BC760", 0x80FF}, + {"nullsub_294", 0x8100}, + {"sub_4BC0C0", 0x8101}, + {"sub_4BC110", 0x8102}, + {"sub_4BC1E0", 0x8103}, + {"sub_4BC270", 0x8104}, + {"sub_4B4880", 0x8105}, + {"sub_4B4AC0", 0x8106}, + {"sub_4BC160", 0x8107}, + {"getxuid", 0x8108}, + {"sub_4B3BE0", 0x8109}, + {"jumpbuttonpressed", 0x810A}, + {"sub_4B9EF0", 0x810B}, + {"sub_4E42F0", 0x810C}, + {"sub_4E47E0", 0x810D}, + {"isfiringvehicleturret", 0x810E}, + {"sub_4E4E20", 0x810F}, + {"snaptotargetentity", 0x8110}, + {"sub_4E5B60", 0x8111}, + {"getturrettarget", 0x8112}, + {"sub_4E69A0", 0x8113}, + {"sub_4E6F40", 0x8114}, + {"sub_4E7220", 0x8115}, + {"sub_4DF260", 0x8116}, + {"sub_4DF280", 0x8117}, + {"sub_4DF2A0", 0x8118}, + {"sub_4DF2C0", 0x8119}, + {"sub_4DF2E0", 0x811A}, + {"sub_4DF300", 0x811B}, + {"sub_4DF310", 0x811C}, + {"sub_4DF330", 0x811D}, + {"sub_4DF350", 0x811E}, + {"sub_4DF430", 0x811F}, + {"sub_4DF4B0", 0x8120}, + {"sub_4B4100", 0x8121}, + {"sub_4B4370", 0x8122}, + {"allowprone", 0x8123}, + {"allowcrouch", 0x8124}, + {"allowstand", 0x8125}, + {"sub_4BB590", 0x8126}, + {"sub_4BB320", 0x8128}, + {"sub_4BB3A0", 0x8129}, + {"sub_4BB730", 0x812A}, + {"sub_4BB780", 0x812F}, + {"sub_4BB3C0", 0x8130}, + {"sub_4BB7D0", 0x8131}, + {"sub_4BB930", 0x8132}, + {"sub_4BB240", 0x8133}, + {"sub_4BB9E0", 0x8134}, + {"sub_4BA2C0", 0x8135}, + {"sub_4B20C0", 0x8136}, + {"sub_4B6AF0", 0x8137}, + {"sub_4BBC20", 0x8138}, + {"thermalvisionoff", 0x8139}, + {"sub_4B3FC0", 0x813A}, + {"sub_4BBC90", 0x813B}, + {"setconvergencetime", 0x813C}, + {"setconvergenceheightpercent", 0x813D}, + {"sub_4E8160", 0x813E}, + {"sub_4E8710", 0x813F}, + {"sub_4E87F0", 0x8140}, + {"sub_4E8BF0", 0x8141}, + {"sub_4E8CE0", 0x8142}, + {"makeentitysentient", 0x8143}, + {"sub_531290", 0x8144}, + {"sub_5313C0", 0x8145}, + {"sub_531420", 0x8146}, + {"sub_531500", 0x8147}, + {"sub_4DFA90", 0x8148}, + {"setdvarifuninitialized", 0x814A}, + {"sub_4DF9C0", 0x814B}, + {"clearanimatedtrajectory", 0x814C}, + {"sub_4DFB90", 0x814D}, + {"sub_4DFBB0", 0x814E}, + {"sub_4DFBC0", 0x814F}, + {"sub_4DFBE0", 0x8150}, + {"sub_4DFC00", 0x8151}, + {"sub_4DFC20", 0x8152}, + {"sub_4DFC30", 0x8153}, + {"sub_4DFC50", 0x8154}, + {"sub_4DF0C0", 0x8155}, + {"sub_4DF0E0", 0x8156}, + {"sightconetrace", 0x8157}, + {"sub_4DF110", 0x8158}, + {"getclanwarsbonusforcurrentplaylist", 0x8159}, + {"sub_4DF1A0", 0x815A}, + {"isusingonlinedataoffline", 0x815B}, + {"sub_4DF230", 0x815C}, + {"sub_4DF250", 0x815D}, + {"nullsub_742", 0x815E}, + {"settoparc", 0x815F}, + {"sub_4E9F20", 0x8160}, + {"setrightarc", 0x8161}, + {"sub_4EA6A0", 0x8162}, + {"setautorotationdelay", 0x8163}, + {"linkwaypointtotargetwithoffset", 0x8164}, + {"restoredefaultdroppitch", 0x8165}, + {"sub_4EB280", 0x8166}, + {"sub_49AA00", 0x8167}, + {"setentityowner", 0x8168}, + {"sub_49AB00", 0x8169}, + {"sub_49AC00", 0x816A}, + {"sub_49AD20", 0x816B}, + {"_enableweapons", 0x816C}, + {"_playerrecoilscaleoff", 0x816D}, + {"sub_49AF30", 0x816E}, + {"_disableweaponpickup", 0x816F}, + {"isthrowinggrenade", 0x8170}, + {"getenemyinfo", 0x8171}, + {"sub_49B190", 0x8172}, + {"sub_49B2F0", 0x8173}, + {"sub_49B520", 0x8174}, + {"_freezecontrols", 0x8175}, + {"sub_49B700", 0x8176}, + {"sub_49B7C0", 0x8177}, + {"setrank", 0x8178}, + {"sub_49B980", 0x8179}, + {"sub_49BB70", 0x817A}, + {"sub_49BC00", 0x817B}, + {"sub_49BC70", 0x817C}, + {"sub_49BE50", 0x817D}, + {"iclientprintln", 0x817E}, + {"sub_49BFB0", 0x817F}, + {"sub_49C0D0", 0x8180}, + {"getenemysqdist", 0x8181}, + {"getclosestenemysqdist", 0x8182}, + {"setthreatbiasgroup", 0x8183}, + {"getthreatbiasgroup", 0x8184}, + {"turretfireenable", 0x8185}, + {"setturretmodechangewait", 0x8186}, + {"usetriggerrequirelookat", 0x8187}, + {"getstance", 0x8188}, + {"setstance", 0x8189}, + {"itemweaponsetammo", 0x818A}, + {"getammocount", 0x818B}, + {"gettagorigin", 0x818C}, + {"gettagangles", 0x818D}, + {"shellshock", 0x818E}, + {"stunplayer", 0x818F}, + {"stopshellshock", 0x8190}, + {"fadeoutshellshock", 0x8191}, + {"setdepthoffield", 0x8192}, + {"setviewmodeldepthoffield", 0x8193}, + {"setmotionblurmovescale", 0x8194}, + {"sub_498F10", 0x8195}, + {"sub_498F60", 0x8196}, + {"sub_498FD0", 0x8197}, + {"sub_499010", 0x8198}, + {"setphysicsmode", 0x8199}, + {"sub_499110", 0x819A}, + {"sub_4992E0", 0x819B}, + {"sub_499640", 0x819C}, + {"sub_499740", 0x819D}, + {"sub_499790", 0x819E}, + {"sub_4997E0", 0x819F}, + {"sub_499840", 0x81A0}, + {"sub_499890", 0x81A1}, + {"sub_499960", 0x81A6}, + {"sub_499A10", 0x81A7}, + {"sub_499A60", 0x81A8}, + {"sub_499B70", 0x81A9}, + {"sub_499BE0", 0x81AA}, + {"getnegotiationnextnode", 0x81AB}, + {"sub_499CD0", 0x81AC}, + {"sub_499D70", 0x81AD}, + {"sub_499E60", 0x81AE}, + {"sub_49A050", 0x81AF}, + {"sub_498850", 0x81B0}, + {"sub_49A1B0", 0x81B1}, + {"setgoalpos", 0x81B2}, + {"setgoalentity", 0x81B3}, + {"setgoalvolume", 0x81B4}, + {"setgoalvolumeauto", 0x81B5}, + {"getgoalvolume", 0x81B6}, + {"cleargoalvolume", 0x81B7}, + {"setfixednodesafevolume", 0x81B8}, + {"setmotionblurturnscale", 0x81B9}, + {"setmotionblurzoomscale", 0x81BA}, + {"viewkick", 0x81BB}, + {"sub_4ECFE0", 0x81BC}, + {"getnodenumber", 0x81BD}, + {"sub_4EBBC0", 0x81BE}, + {"enablegrenadetouchdamage", 0x81BF}, + {"disablegrenadetouchdamage", 0x81C0}, + {"disableaimassist", 0x81C1}, + {"sub_49C1A0", 0x81C2}, + {"sub_49C220", 0x81C3}, + {"sub_49C6E0", 0x81C4}, + {"sub_49C7D0", 0x81C5}, + {"sub_49C930", 0x81C6}, + {"sub_49CCE0", 0x81C7}, + {"sub_49CE30", 0x81C8}, + {"sub_49CF20", 0x81C9}, + {"sub_49CFA0", 0x81CA}, + {"sub_49D060", 0x81CB}, + {"setcorpsefalling", 0x81CC}, + {"sub_531340", 0x81CD}, + {"dropweapon", 0x81CE}, + {"sub_497FE0", 0x81CF}, + {"sub_498150", 0x81D0}, + {"sub_498270", 0x81D1}, + {"sub_498280", 0x81D2}, + {"sub_4982A0", 0x81D3}, + {"sub_4982C0", 0x81D4}, + {"sub_498320", 0x81D5}, + {"sub_498390", 0x81D6}, + {"sub_498460", 0x81D7}, + {"sub_498550", 0x81D8}, + {"sub_498590", 0x81D9}, + {"_isreloading", 0x81DA}, + {"sub_498610", 0x81DB}, + {"sub_4986C0", 0x81DC}, + {"sub_498D40", 0x81DD}, + {"sub_498E40", 0x81DE}, + {"sub_498A50", 0x81DF}, + {"sub_4ECED0", 0x81E0}, + {"sub_4F7530", 0x81E1}, + {"sub_4F8080", 0x81E2}, + {"makeportableradar", 0x81E3}, + {"sub_4F8AF0", 0x81E4}, + {"sub_4EC260", 0x81E5}, + {"sub_4EC580", 0x81E6}, + {"sub_4EC7B0", 0x81E7}, + {"missile_setflightmodedirect", 0x81E8}, + {"missile_setflightmodetop", 0x81E9}, + {"sub_4F8DF0", 0x81EA}, + {"sub_4F9020", 0x81EB}, + {"getlightintensity", 0x81EC}, + {"sub_4F9260", 0x81ED}, + {"startfiring", 0x81EE}, + {"stopshellshock", 0x81EF}, + {"isragdoll", 0x81F0}, + {"setmovespeedscale", 0x81F1}, + {"cameralinkto", 0x81F2}, + {"cameraunlink", 0x81F3}, + {"sub_49A010", 0x81F4}, + {"sub_49A240", 0x81F5}, + {"sub_49A280", 0x81F6}, + {"sub_49A300", 0x81F7}, + {"sub_49A5E0", 0x81F8}, + {"sub_49A730", 0x81F9}, + {"sub_49A980", 0x81FA}, + {"sub_49AAB0", 0x81FB}, + {"botgetscriptgoalnode", 0x81FC}, + {"sub_49ACE0", 0x81FD}, + {"sub_49AD80", 0x81FE}, + {"sub_49AE10", 0x81FF}, + {"sub_49AEA0", 0x8200}, + {"sub_49AFB0", 0x8201}, + {"sub_49B070", 0x8202}, + {"sub_49B120", 0x8203}, + {"sub_49B420", 0x8204}, + {"sub_49B480", 0x8205}, + {"sub_49B280", 0x8206}, + {"sub_49B4E0", 0x8207}, + {"sub_49B5D0", 0x8208}, + {"sub_49B760", 0x8209}, + {"sub_49B810", 0x820A}, + {"sub_49B9F0", 0x820B}, + {"sub_49BD40", 0x820C}, + {"sub_49BEB0", 0x820D}, + {"sub_49C020", 0x820E}, + {"sub_49C2F0", 0x820F}, + {"sub_49C660", 0x8210}, + {"sub_4E3FF0", 0x8211}, + {"sub_4E4380", 0x8212}, + {"sub_501020", 0x8214}, + {"sub_4E6720", 0x821C}, + {"sub_4E6AA0", 0x821D}, + {"sub_4E7320", 0x821E}, + {"getlocalplayerprofiledata", 0x821F}, + {"setlocalplayerprofiledata", 0x8220}, + {"sub_4EAAE0", 0x8221}, + {"sub_4EABD0", 0x8222}, + {"sub_4EAD70", 0x8223}, + {"sub_4EAF90", 0x8224}, + {"sub_4F05C0", 0x8225}, + {"sub_4F1650", 0x8226}, + {"sub_4F1B20", 0x8227}, + {"transfermarkstonewscriptmodel", 0x8228}, + {"setwatersheeting", 0x8229}, + {"setweaponhudiconoverride", 0x822C}, + {"getweaponhudiconoverride", 0x822D}, + {"setempjammed", 0x822E}, + {"playersetexpfog", 0x822F}, + {"sub_4ECE50", 0x8230}, + {"sub_4ED7C0", 0x8231}, + {"isitemunlocked", 0x8232}, + {"getplayerdata", 0x8233}, + {"vehicleturretcontroloff", 0x8234}, + {"isturretready", 0x8235}, + {"vehicledriveto", 0x8236}, + {"vehicle_dospawn", 0x8237}, + {"isphysveh", 0x8238}, + {"phys_crash", 0x8239}, + {"sub_6D5F30", 0x823A}, + {"phys_launch", 0x823B}, + {"phys_disablecrashing", 0x823C}, + {"phys_enablecrashing", 0x823D}, + {"phys_setspeed", 0x823E}, + {"phys_setconveyerbelt", 0x823F}, + {"sub_4F9DB0", 0x8241}, + {"sub_4FA490", 0x8242}, + {"sub_4E25E0", 0x8243}, + {"sub_4E2A80", 0x8244}, + {"sub_4E3020", 0x8245}, + {"getclanidhigh", 0x8246}, + {"sub_4EE9D0", 0x8247}, + {"sub_4EED80", 0x8248}, + {"sub_4EEEE0", 0x8249}, + {"sub_4EF360", 0x824A}, + {"sub_4E7B30", 0x824B}, + {"sub_4E8050", 0x824C}, + {"sub_4E41B0", 0x824E}, + {"_setwhizbyspreads", 0x824F}, + {"_switchtoweaponimmediate", 0x8250}, + {"sub_4FA070", 0x8251}, + {"sub_4E22F0", 0x8252}, + {"sub_4E2890", 0x8253}, + {"trackerupdate", 0x8254}, + {"botisrandomized", 0x8256}, + {"sub_4B7A30", 0x825A}, + {"setjitterparams", 0x825C}, + {"sethoverparams", 0x825D}, + {"joltbody", 0x825E}, + {"freevehicle", 0x825F}, + {"getwheelsurface", 0x8260}, + {"getvehicleowner", 0x8261}, + {"setvehiclelookattext", 0x8262}, + {"setvehicleteam", 0x8263}, + {"neargoalnotifydist", 0x8264}, + {"setgoalpos", 0x8265}, + {"setgoalyaw", 0x8266}, + {"cleargoalyaw", 0x8267}, + {"settargetyaw", 0x8268}, + {"cleartargetyaw", 0x8269}, + {"vehicle_helisetai", 0x826A}, + {"setturrettargetvec", 0x826B}, + {"setturrettargetent", 0x826C}, + {"clearturrettargetent", 0x826D}, + {"vehicle_canturrettargetpoint", 0x826E}, + {"setlookatent", 0x826F}, + {"clearlookatent", 0x8270}, + {"setvehweapon", 0x8271}, + {"fireweapon", 0x8272}, + {"vehicleturretcontrolon", 0x8273}, + {"physicslaunchserver", 0x8280}, + {"physicslaunchserveritem", 0x8281}, + {"clonebrushmodeltoscriptmodel", 0x8282}, + {"vehicle_teleport", 0x8286}, + {"attachpath", 0x8287}, + {"getattachpos", 0x8288}, + {"startpath", 0x8289}, + {"setswitchnode", 0x828A}, + {"setwaitspeed", 0x828B}, + {"vehicle_setspeed", 0x828D}, + {"vehicle_setspeedimmediate", 0x828E}, + {"vehicle_rotateyaw", 0x828F}, + {"vehicle_getspeed", 0x8290}, + {"vehicle_getvelocity", 0x8291}, + {"vehicle_getbodyvelocity", 0x8292}, + {"vehicle_getsteering", 0x8293}, + {"vehicle_getthrottle", 0x8294}, + {"vehicle_turnengineoff", 0x8295}, + {"vehicle_turnengineon", 0x8296}, + {"_vehicledriveto", 0x8297}, + {"getgoalspeedmph", 0x8298}, + {"setacceleration", 0x8299}, + {"setdeceleration", 0x829A}, + {"resumespeed", 0x829B}, + {"setyawspeed", 0x829C}, + {"setyawspeedbyname", 0x829D}, + {"setmaxpitchroll", 0x829E}, + {"setairresitance", 0x829F}, + {"setturningability", 0x82A0}, + {"sub_4B45F0", 0x82A1}, + {"weaponlocknoclearance", 0x82AD}, + {"showhudsplash", 0x82AF}, + {"setperk", 0x82B0}, + {"hasperk", 0x82B1}, + {"clearperks", 0x82B2}, + {"unsetperk", 0x82B3}, + {"noclip", 0x82B6}, + {"ufo", 0x82B7}, + {"moveto", 0x82B8}, + {"movex", 0x82B9}, + {"movey", 0x82BA}, + {"movez", 0x82BB}, + {"movegravity", 0x82BC}, + {"moveslide", 0x82BD}, + {"stopmoveslide", 0x82BE}, + {"rotateto", 0x82BF}, + {"rotatepitch", 0x82C0}, + {"rotateyaw", 0x82C1}, + {"rotateroll", 0x82C2}, + {"addpitch", 0x82C3}, + {"addyaw", 0x82C4}, + {"addroll", 0x82C5}, + {"vibrate", 0x82C6}, + {"rotatevelocity", 0x82C7}, + {"solid", 0x82C8}, + {"notsolid", 0x82C9}, + {"setcandamage", 0x82CA}, + {"setcanradiusdamage", 0x82CB}, + {"physicslaunchclient", 0x82CC}, + {"disableweaponpickup", 0x82D5}, + {"enableweaponpickup", 0x82D6}, + {"issplitscreenplayer", 0x82D7}, + {"getweaponslistoffhands", 0x82D9}, + {"getweaponslistitems", 0x82DA}, + {"getweaponslistexclusives", 0x82DB}, + {"getweaponslist", 0x82DC}, + {"canplayerplacesentry", 0x82DD}, + {"canplayerplacetank", 0x82DE}, + {"sub_4B6FF0", 0x82DF}, + {"visionsetnakedforplayer", 0x82E0}, + {"visionsetnightforplayer", 0x82E1}, + {"visionsetmissilecamforplayer", 0x82E2}, + {"visionsetthermalforplayer", 0x82E3}, + {"setblurforplayer", 0x82E4}, + {"getplayerweaponmodel", 0x82E5}, + {"getplayerknifemodel", 0x82E6}, + {"updateplayermodelwithweapons", 0x82E7}, + {"notifyonplayercommand", 0x82E8}, + {"canmantle", 0x82E9}, + {"forcemantle", 0x82EA}, + {"ismantling", 0x82EB}, + {"playfx", 0x82EC}, + {"player_recoilscaleon", 0x82ED}, + {"player_recoilscaleoff", 0x82EE}, + {"weaponlockstart", 0x82EF}, + {"weaponlockfinalize", 0x82F0}, + {"weaponlockfree", 0x82F1}, + {"weaponlocktargettooclose", 0x82F2}, + {"getviewmodel", 0x82F8}, + {"fragbuttonpressed", 0x82F9}, + {"secondaryoffhandbuttonpressed", 0x82FA}, + {"getcurrentweaponclipammo", 0x82FB}, + {"setvelocity", 0x82FC}, + {"getplayerviewheight", 0x82FD}, + {"getnormalizedmovement", 0x82FE}, + {"playlocalsound", 0x82FF}, + {"stoplocalsound", 0x8300}, + {"setweaponammoclip", 0x8301}, + {"setweaponammostock", 0x8302}, + {"getweaponammoclip", 0x8303}, + {"getweaponammostock", 0x8304}, + {"hasreloadmultipleanim", 0x8305}, + {"regweaponforfxremoval", 0x8306}, + {"setclientdvar", 0x8307}, + {"setclientdvars", 0x8308}, + {"allowads", 0x830B}, + {"allowjump", 0x830C}, + {"sub_4B4A60", 0x830D}, + {"seteyesonuplinkenabled", 0x830E}, + {"allowsprint", 0x830F}, + {"setspreadoverride", 0x8310}, + {"resetspreadoverride", 0x8311}, + {"setaimspreadmovementscale", 0x8312}, + {"setactionslot", 0x8313}, + {"setviewkickscale", 0x8314}, + {"getviewkickscale", 0x8315}, + {"getweaponslistall", 0x8316}, + {"getweaponslistprimaries", 0x8317}, + {"getnormalizedcameramovement", 0x8318}, + {"giveweapon", 0x8319}, + {"takeweapon", 0x831A}, + {"takeallweapons", 0x831B}, + {"getcurrentweapon", 0x831C}, + {"getcurrentprimaryweapon", 0x831D}, + {"getcurrentoffhand", 0x831E}, + {"hasweapon", 0x831F}, + {"switchtoweapon", 0x8320}, + {"switchtoweaponimmediate", 0x8321}, + {"sub_4B8580", 0x8322}, + {"switchtooffhand", 0x8323}, + {"setoffhandsecondaryclass", 0x8324}, + {"getoffhandsecondaryclass", 0x8325}, + {"beginlocationselection", 0x8326}, + {"endlocationselection", 0x8327}, + {"disableweapons", 0x8328}, + {"enableweapons", 0x8329}, + {"disableoffhandweapons", 0x832A}, + {"enableoffhandweapons", 0x832B}, + {"disableweaponswitch", 0x832C}, + {"enableweaponswitch", 0x832D}, + {"openpopupmenu", 0x832E}, + {"openpopupmenunomouse", 0x832F}, + {"closepopupmenu", 0x8330}, + {"openmenu", 0x8331}, + {"closemenu", 0x8332}, + {"freezecontrols", 0x8334}, + {"disableusability", 0x8335}, + {"enableusability", 0x8336}, + {"setwhizbyspreads", 0x8337}, + {"setwhizbyradii", 0x8338}, + {"setreverb", 0x8339}, + {"deactivatereverb", 0x833A}, + {"setvolmod", 0x833B}, + {"givestartammo", 0x833C}, + {"givemaxammo", 0x833D}, + {"getfractionstartammo", 0x833E}, + {"getfractionmaxammo", 0x833F}, + {"isdualwielding", 0x8340}, + {"isreloading", 0x8341}, + {"isswitchingweapon", 0x8342}, + {"setorigin", 0x8343}, + {"getvelocity", 0x8344}, + {"setplayerangles", 0x8345}, + {"getplayerangles", 0x8346}, + {"usebuttonpressed", 0x8347}, + {"attackbuttonpressed", 0x8348}, + {"adsbuttonpressed", 0x8349}, + {"meleebuttonpressed", 0x834A}, + {"playerads", 0x834B}, + {"isonground", 0x834C}, + {"isusingturret", 0x834D}, + {"setviewmodel", 0x834E}, + {"setoffhandprimaryclass", 0x834F}, + {"getoffhandprimaryclass", 0x8350}, + {"sub_4B2960", 0x8351}, + {"sub_4B2C00", 0x8352}, + {"sub_4B2E80", 0x8353}, + {"sub_4B3060", 0x8354}, + {"sub_4C1FB0", 0x8355}, + {"nullsub_743", 0x8356}, + {"sub_4B2CF0", 0x8359}, + {"sub_4B4800", 0x835B}, + {"sub_4E6990", 0x8391}, + {"sub_4B53F0", 0x8394}, + {"sub_4C0B00", 0x83B0}, + {"sub_4C0BB0", 0x83B1}, + {"sub_4C0C20", 0x83B2}, + {"sub_4C0C90", 0x83B3}, + {"sub_507660", 0x83B4}, + {"sub_4B42C0", 0x83B5}, + {"sub_4B4450", 0x83B6}, + {"sub_4BBBD0", 0x83B7}, + {"sub_5079E0", 0x83B8}, + {"sub_507B10", 0x83B9}, + {"sub_4BBA80", 0x83BA}, + {"sub_4BBB60", 0x83BB}, + {"sub_4BBAF0", 0x83BC}, + {"nullsub_325", 0x83BF}, + {"sub_4B2D70", 0x83C0}, + {"sub_4B2F50", 0x83C1}, + {"sub_6D6E70", 0x83C2}, + {"sub_6D6E80", 0x83C3}, + {"sub_4EE040", 0x83C5}, + {"sub_4EB9A0", 0x83C6}, + {"sub_4EB9D0", 0x83C7}, + {"sub_4B4780", 0x83C8}, + {"sub_6D9360", 0x83C9}, + {"sub_6D9410", 0x83CA}, + {"sub_6D9490", 0x83CB}, + {"sub_4DF6B0", 0x83CC}, + {"sub_4B7BC0", 0x83CD}, + {"sub_4B7CB0", 0x83CE}, + {"sub_4B84D0", 0x83CF}, + {"sub_50A5A0", 0x83D0}, + {"sub_531100", 0x83D1}, + {"sub_6D8A10", 0x83D2}, + {"nullsub_485_0", 0x83D3}, + {"sub_4DF640", 0x83D4}, + {"sub_49C410", 0x83D5}, + {"sub_49C4A0", 0x83D6}, + {"sub_49C760", 0x83D7}, + {"sub_49C860", 0x83D8}, + {"sub_49CAA0", 0x83D9}, + {"sub_49CA30", 0x83DA}, + {"sub_49CB10", 0x83DB}, + {"sub_49CB70", 0x83DC}, + {"sub_505440", 0x83E4}, + {"sub_4B32F0", 0x83E5}, + {"sub_4E1FD0", 0x83E6}, + {"sub_49A5A0", 0x83E7}, + {"setclothtype", 0x83E8}, + {"sub_4FF2D0", 0x83E9}, + {"sub_4FF3F0", 0x83EA}, + {"ismlgspectator", 0x83EB}, + {"sub_50BD60", 0x83EC}, + {"sub_4F93F0", 0x83EF}, + {"sub_4F9BC0", 0x83F1}, + {"sub_4F3F60", 0x83F2}, + {"aiphysicstracepassed", 0x83F3}, + {"nullsub_342", 0x83F4}, + {"sub_507230", 0x83F5}, + {"sub_507360", 0x83F6}, + {"visionsetstage", 0x83F7}, + {"hudoutlineenableforclients", 0x83F8}, + {"sub_4F6060", 0x83F9}, + {"sub_4F6BE0", 0x83FA}, + {"sub_5053E0", 0x83FC}, + {"sub_4F8F20", 0x83FE}, + {"sub_4F7C60", 0x83FF}, + {"makevehiclenotcollidewithplayers", 0x8400}, + {"dotrajectory", 0x8401}, + {"setwallruncost", 0x8402}, + {"setscriptablepartstate", 0x8403}, + {"nullsub_347", 0x8404}, + {"sub_4F9560", 0x8405}, + {"sub_6D8D50", 0x8406}, + {"nullsub_495", 0x8407}, + {"nullsub_353", 0x8408}, + {"thermaldrawdisable", 0x8409}, + {"motionblurhqenable", 0x840A}, + {"sub_5014D0", 0x840B}, + {"enableautoreload", 0x840C}, + {"sub_49BDD0", 0x840D}, + {"sub_4EC370", 0x840E}, + {"sub_4EA200", 0x840F}, + {"sub_49A860", 0x8410}, + {"visionsetpostapplyforplayer", 0x8412}, + {"sub_4BC7B0", 0x8413}, + {"sub_4EA600", 0x8414}, + {"sub_4EA710", 0x8415}, + {"sub_4EDC50", 0x8416}, + {"sub_4BC020", 0x8418}, + {"sub_4BC070", 0x8419}, + {"sub_5070F0", 0x841A}, + {"sub_505900", 0x841B}, + {"tablelookupistring", 0x841C}, + {"sub_50AB00", 0x841D}, + {"sub_50ABB0", 0x841E}, + {"sub_50AC60", 0x841F}, + {"physicsgetlinvel", 0x8420}, + {"physicsgetangvel", 0x8421}, + {"sub_50AEC0", 0x8422}, + {"nullsub_348", 0x842A}, + {"nullsub_735", 0x842B}, + {"nullsub_350", 0x842C}, + {"nullsub_351", 0x842D}, + {"turretsetbarrelspinenabled", 0x842E}, + {"sub_4F8470", 0x8431}, + {"sub_4F8680", 0x8432}, + {"sub_50BC10", 0x8434}, + {"sub_50BDE0", 0x8435}, + {"sub_50BE80", 0x8436}, + {"sub_502800", 0x8438}, + {"sub_4B6730", 0x843E}, + {"sub_4B6820", 0x843F}, + {"sub_4B6970", 0x8440}, + {"nullsub_340", 0x8441}, + {"getlinkedchildren", 0x8442}, + {"sub_4B2BB0", 0x8445}, + {"setscriptabledamageowner", 0x8448}, + {"sub_4E27E0", 0x8449}, + {"sub_49CBE0", 0x844B}, + {"sub_49CC80", 0x844C}, + {"sub_4B8480", 0x844D}, + {"sub_49D100", 0x844E}, + {"getlinkedparent", 0x844F}, + {"nullsub_335", 0x8450}, + {"sub_6D4D80", 0x8451}, + {"sub_6D9550", 0x8452}, + {"sub_4F5C10", 0x8453}, + {"sub_4B96F0", 0x8454}, + {"sub_508600", 0x8455}, + {"sub_508640", 0x8456}, + {"sub_4E30A0", 0x8457}, + {"nullsub_354", 0x8458}, + {"nullsub_744", 0x8459}, + {"sub_4B3200", 0x845A}, + {"turretfiredisable", 0x845B}, + {"sub_4E6920", 0x845C}, + {"sub_6D96D0", 0x845D}, + {"sub_6D96F0", 0x845E}, + {"sub_6D9710", 0x845F}, + {"sub_6D9730", 0x8460}, + {"sub_5035D0", 0x8461}, + {"sub_503910", 0x8462}, + {"sub_6D9610", 0x8463}, + {"sub_4B4E00", 0x8464}, + {"sub_4B3990", 0x8465}, + {"sub_504050", 0x8466}, + {"_geteye", 0x8469}, + {"sub_500080", 0x846A}, + {"sub_500150", 0x846B}, + {"sub_4B8AD0", 0x846C}, + {"sub_4FF640", 0x846F}, + {"sub_4F6F80", 0x8470}, + {"sub_4BA6E0", 0x8474}, + {"sub_4B3510", 0x8475}, + {"makecollidewithitemclip", 0x8476}, + {"issplitscreenplayerprimary", 0x8477}, + {"sub_50B340", 0x8479}, + {"hasfemalecustomizationmodel", 0x847A}, + {"sub_4E4CC0", 0x847B}, + {"sub_4E5750", 0x847C}, + {"sub_4E5AB0", 0x847D}, + {"sub_4E5FD0", 0x847E}, + {"sub_4E6A00", 0x847F}, + {"sub_4B41F0", 0x8480}, + {"sub_5076F0", 0x8481}, + {"sub_6D97B0", 0x8482}, + {"sub_6D97F0", 0x8483}, + {"sub_6D9850", 0x8484}, + {"sub_6D98A0", 0x8485}, + {"sub_6D98C0", 0x8486}, + {"sub_4E1D10", 0x8487}, + {"sub_4E2270", 0x8488}, + {"sub_4B7920", 0x8489}, + {"sub_507810", 0x848A}, + {"sub_507910", 0x848B}, + {"nullsub_332", 0x848C}, + {"nullsub_333", 0x848D}, + {"sub_6D8AC0", 0x848E}, + {"sub_6D8B40", 0x848F}, + {"sub_4B54B0", 0x8490}, + {"sub_4B57F0", 0x8491}, + {"sub_4EE600", 0x8492}, + {"sub_4E2ED0", 0x8493}, + {"nullsub_327", 0x8494}, + {"nullsub_328", 0x8495}, + {"sub_6D6640", 0x8497}, + {"sub_6D9760", 0x8498}, + {"sub_50BCB0", 0x849B}, + {"nullsub_326", 0x849C}, + {"sub_6D66C0", 0x849D}, + {"sub_6D66B0", 0x849E}, + {"sub_4B85D0", 0x849F}, + {"sub_4B88C0", 0x84A0}, + {"sub_4B8B80", 0x84A1}, + {"sub_4BB520", 0x84A2}, + {"nullsub_356", 0x84A3}, + {"sub_503CC0", 0x84A6}, + {"sub_503DC0", 0x84A7}, + {"sub_4BC4A0", 0x84A8}, + {"sub_4B2500", 0x84AB}, + {"sub_4B27E0", 0x84AC}, + {"nullsub_293", 0x84AD}, + {"setturretteam", 0x84B8}, + {"sub_4F4950", 0x84B9}, + {"sub_4F5050", 0x84BA}, + {"sub_4F5900", 0x84BB}, + {"sub_6D7960", 0x84BC}, + {"sub_4EA0A0", 0x84BD}, + {"turretfireenable", 0x84BE}, + {"sub_4B4AE0", 0x84BF}, + {"sub_6D8170", 0x84C0}, + {"sub_6D8270", 0x84C1}, + {"nullsub_343", 0x84C3}, + {"sub_4E2650", 0x84C4}, + {"sub_4E33A0", 0x84C5}, + {"sub_4E3890", 0x84C6}, + {"sub_4E3AE0", 0x84C7}, + {"nullsub_766", 0x84C8}, + {"nullsub_357", 0x84C9}, + {"sub_6D72B0", 0x84CA}, + {"sub_4F56B0", 0x84CB}, + {"sub_4B7650", 0x84CE}, + {"sub_4B76C0", 0x84CF}, + {"sub_4B7D90", 0x84D2}, + {"sub_4B8120", 0x84D3}, + {"sub_4F0A60", 0x84D5}, + {"sub_6D45F0", 0x84D6}, + {"usinggamepad", 0x84D9}, + {"sub_4B25D0", 0x84DA}, + {"sub_4B2620", 0x84DB}, + {"getgoalpos", 0x84DC}, + {"sub_6D6450", 0x84DD}, + {"sub_6D4610", 0x84DF}, + {"sub_4F92D0", 0x84E0}, + {"sub_4F9670", 0x84E1}, + {"maketurretsolid", 0x84E2}, + {"sub_4F73E0", 0x84E3}, + {"sub_4F74A0", 0x84E4}, + {"stopfiring", 0x84E5}, + {"sub_4F7770", 0x84E6}, + {"sub_4F78F0", 0x84E7}, + {"sub_4F7A00", 0x84E8}, + {"sub_4F7B30", 0x84E9}, + {"sub_4BA420", 0x84EB}, + {"sub_50AFA0", 0x84EC}, + {"sub_499910", 0x84EE}, + {"sub_6D8640", 0x84EF}, + {"sub_4E7290", 0x84F2}, + {"sub_4C1060", 0x84F3}, + {"sub_6D4650", 0x84F4}, + {"sub_4B91D0", 0x84F6}, + {"nullsub_307", 0x84F7}, + {"sub_508450", 0x84F8}, + {"nullsub_358", 0x84F9}, + {"getjointype", 0x84FA}, + {"sub_4B7B60", 0x84FB}, + {"sub_4B7C50", 0x84FC}, + {"clientsetentunusable", 0x84FD}, + {"sub_4EE3A0", 0x84FE}, + {"sub_4E2D70", 0x84FF}, + {"corpsetomovingplatformtrace", 0x8500}, + {"sub_4EFDF0", 0x8501}, + {"sub_4EDED0", 0x8502}, + {"sub_6D57F0", 0x8503}, + {"sub_6D5900", 0x8504}, + {"nullsub_361", 0x8505}, + {"nullsub_750", 0x8506}, + {"sub_4E76B0", 0x8507}, + {"sub_4E7910", 0x8508}, + {"nullsub_761", 0x8509}, + {"sub_4E7B20", 0x850A}, + {"sub_4E7C10", 0x850B}, + {"sub_4E7F00", 0x850C}, + {"nullsub_364", 0x850D}, + {"sub_4F77E0", 0x850E}, + {"sub_4E4A00", 0x850F}, + {"sub_4E4BC0", 0x8510}, + {"sub_4F70C0", 0x8514}, + {"sub_4F5980", 0x8515}, + {"sub_4E8C70", 0x8517}, + {"sub_503580", 0x851D}, + {"sub_4B8E00", 0x851E}, + {"sub_4C0A20", 0x851F}, + {"sub_4F6F10", 0x8521}, + {"sub_4F7030", 0x8522}, + {"sub_4ECCA0", 0x8523}, + {"sub_4B2690", 0x8524}, + {"isplayernumber", 0x8525}, + {"sub_6D4680", 0x8526}, + {"sub_6D46A0", 0x8527}, + {"rangecheckfailure", 0x8528}, + {"sub_4B3050", 0x8529}, + {"sub_4EC1D0", 0x852A}, + {"sub_4C23F0", 0x852C}, + {"sub_4B3260", 0x852E}, + {"sub_4F7C40", 0x852F}, + {"sub_4F7230", 0x8530}, + {"sub_50B020", 0x8531}, + {"sub_4DF400", 0x8532}, + {"visionsetpainforplayer", 0x8535}, + {"nullsub_365", 0x8537}, + {"sub_4F61A0", 0x8538}, + {"sub_4C0A90", 0x853B}, + {"sub_4E9090", 0x853D}, + {"sub_4EAFF0", 0x853E}, + {"sub_4E8210", 0x8541}, + {"sub_4E8680", 0x8550}, + {"sub_4B3CB0", 0x8551}, + {"sub_4F1E10", 0x8554}, + {"sub_4E8890", 0x8555}, + {"sub_4B50C0", 0x855C}, + {"sub_4F8E40", 0x8561}, + {"sub_50B2C0", 0x8564}, + {"sub_4EB8D0", 0x8565}, + {"nullsub_337", 0x856D}, + {"nullsub_338", 0x856E}, + {"nullsub_339", 0x856F}, + {"sub_4FA2B0", 0x8571}, + {"sub_4E50F0", 0x8572}, + {"sub_4F8180", 0x8573}, + {"sub_4F8570", 0x8574}, + {"sub_4EB4F0", 0x8575}, + {"setplayerspread", 0x8576}, + {"sub_50BB10", 0x8577}, + {"sub_524AD0", 0x8578}, + {"sub_498A00", 0x8579}, + {"sub_4FF940", 0x857A}, + {"sub_49A0B0", 0x857B}, + {"sub_4E3FD0", 0x857C}, + {"setdefaultdroppitch", 0x857D}, + {"sub_4EAB80", 0x857E}, + {"sub_4E9100", 0x857F}, + {"drivevehicleandcontrolturret", 0x8580}, + {"sub_4E9750", 0x8581}, + {"sub_4DF820", 0x8582}, + {"sub_4DF840", 0x8583}, + {"sub_4DF8C0", 0x8584}, + {"sub_49A0F0", 0x8585}, + {"closeingamemenu", 0x8586}, + {"removecomworld", 0x8587}, + {"sub_4B8F80", 0x8588}, + {"sub_4B9270", 0x8589}, + {"getentitynumber", 0x858C}, + {"cleartargetentity", 0x858D}, + {"nullsub_359", 0x8590}, + {"sub_4B3F60", 0x8595}, + {"sub_4BBD50", 0x8596}, + {"getmaxturnspeed", 0x8597}, + {"sub_4DF9E0", 0x8598}, + {"loadcustomizationplayerview", 0x8599}, + {"sub_4B46E0", 0x859A}, + {"getclanidlow", 0x859B}, + {"sub_4B4E40", 0x859C}, + {"sub_49C600", 0x859D}, + {"sub_6D66F0", 0x859E}, + {"sub_503610", 0x859F}, + {"sub_503710", 0x85A0}, + {"sub_6D5B10", 0x85A1}, + {"sub_6D6760", 0x85A2}, + {"sub_4B5040", 0x85A3}, + {"sub_4B4F70", 0x85A4}, + {"sub_6D6B80", 0x85A5}, + {"sub_5082B0", 0x85A6}, + {"sub_5083E0", 0x85A7}, + {"sub_4E2CA0", 0x85A8}, + {"sub_503780", 0x85A9}, + {"setmlgcameradefaults", 0x85AA}, + {"sub_4DF920", 0x85AB}, + {"sub_4E4A50", 0x85AC}, + {"sub_4E4100", 0x85B0}, + {"sub_4F20A0", 0x85B1}, + {"sub_4EAEE0", 0x85B2}, + {"sub_4F6200", 0x85B3}, + {"sub_4F6CF0", 0x85B4}, + {"playersetgroundreferenceent", 0x85B5}, + {"sub_4B8070", 0x85B6}, + {"sub_4B8230", 0x85B7}, + {"sub_4B73F0", 0x85B8}, + {"sub_4B7510", 0x85B9}, + {"sub_4B75E0", 0x85BA}, + {"sub_4B5740", 0x85BB}, + {"cleartargetent", 0x85BC}, + {"sub_6D6870", 0x85BD}, + {"sub_5038B0", 0x85BE}, + {"sub_6D67E0", 0x85BF}, + {"sub_6D6C00", 0x85C0}, + {"sub_6D6920", 0x85C1}, + {"sub_4DF7A0", 0x85C2}, + {"sub_6D6DF0", 0x85C3}, + {"sub_4F8ED0", 0x85C4}, + {"sub_6D69A0", 0x85C5}, + {"sub_6D6A10", 0x85C6}, + {"sub_6D6A90", 0x85C7}, + {"sub_6D6B00", 0x85C8}, + {"sub_4DF7E0", 0x85C9}, + {"sub_4DF890", 0x85CA}, + {"sub_4DF980", 0x85CB}, + {"nullsub_488_0", 0x85CC}, + {"sub_4E9350", 0x85CD}, + {"gethybridscopestate", 0x85CE}, + {"setagentattacker", 0x85CF}, + {"usebuttonpressed", 0x85D0}, + {"begin", 0x85D1}, + {"nullsub_727", 0x85D2}, + }; + + std::unordered_map token_map = { - {"thermaldrawenable", 32768}, - {"playerforcedeathanim", 32769}, - {"sub_7ff7de272590", 32794}, - {"attach", 32797}, - {"sub_7ff7de294220", 32798}, - {"sub_7ff7de294350", 32799}, - {"sub_7ff7de2944c0", 32800}, - {"sub_7ff7de294a80", 32801}, - {"sub_7ff7de294ae0", 32802}, - {"sub_7ff7de294e00", 32803}, - {"sub_7ff7de294e40", 32804}, - {"nullsub_346", 32805}, - {"nullsub_368", 32806}, - {"setcoopplayerdatareservedint", 32808}, - {"entitywillneverchange", 32809}, - {"detach", 32810}, - {"detachall", 32811}, - {"getattachsize", 32812}, - {"getattachmodelname", 32813}, - {"getattachtagname", 32814}, - {"getrestedtime", 32815}, - {"sub_7ff7de295940", 32816}, - {"botgetclosestnavigablepoint", 32817}, - {"sub_7ff7de296e70", 32818}, - {"sub_7ff7de296fa0", 32819}, - {"sub_7ff7de2b4b80", 32820}, - {"gethighestnodestance", 32821}, - {"doesnodeallowstance", 32822}, - {"sub_7ff7de2b4a90", 32823}, - {"sub_7ff7de2919e0", 32824}, - {"sub_7ff7de291b20", 32825}, - {"sub_7ff7de291fd0", 32826}, - {"sub_7ff7de293f30", 32827}, - {"sub_7ff7de293f50", 32828}, - {"setminimap", 32829}, - {"sub_7ff7de297170", 32830}, - {"sub_7ff7de2971d0", 32831}, - {"playsoundtoplayer", 32832}, - {"sub_7ff7de297380", 32833}, - {"sub_7ff7de297410", 32834}, - {"sub_7ff7de298710", 32835}, - {"sub_7ff7de298750", 32836}, - {"sub_7ff7de289b00", 32837}, - {"sub_7ff7de289cc0", 32838}, - {"sub_7ff7de289f60", 32839}, - {"enablemissileboosting", 32840}, - {"setplayerdatainternal", 32841}, - {"sub_7ff7de272050", 32842}, - {"sub_7ff7de293b60", 32843}, - {"sub_7ff7de293b80", 32844}, - {"getattachignorecollision", 32845}, - {"hidepart", 32846}, - {"hidepartallinstances", 32847}, - {"hideallparts", 32848}, - {"showpart", 32849}, - {"showallparts", 32850}, - {"linkto", 32851}, - {"linktoblendtotag", 32852}, - {"unlink", 32853}, - {"setnormalhealth", 32854}, - {"dodamage", 32855}, - {"kill", 32856}, - {"show", 32857}, - {"hide", 32858}, - {"sub_7ff7de294dd0", 32859}, - {"sub_7ff7de294ef0", 32860}, - {"sub_7ff7de294f80", 32861}, - {"disconnectpaths", 32862}, - {"connectpaths", 32863}, - {"disconnectnode", 32864}, - {"connectnode", 32865}, - {"sub_7ff7de297450", 32866}, - {"sub_7ff7de297510", 32867}, - {"sub_7ff7de297530", 32868}, - {"sub_7ff7de297550", 32869}, - {"sub_7ff7de28f730", 32870}, - {"sub_7ff7de28f9a0", 32871}, - {"sub_7ff7de290460", 32872}, - {"sub_7ff7de2912b0", 32873}, - {"sub_7ff7de291320", 32874}, - {"sub_7ff7de295270", 32876}, - {"sub_7ff7de295620", 32877}, - {"sub_7ff7de2957f0", 32878}, - {"islinked", 32879}, - {"enablelinkto", 32880}, - {"disableforcethirdpersonwhenfollowing", 32881}, - {"sub_7ff7de274870", 32883}, - {"sub_7ff7de274730", 32884}, - {"sub_7ff7de274c40", 32885}, - {"sub_7ff7de274aa0", 32886}, - {"sub_7ff7de27a790", 32887}, - {"nullsub_302", 32888}, - {"nullsub_367", 32889}, - {"nullsub_533", 32890}, - {"sub_7ff7de293ad0", 32891}, - {"sub_7ff7de293af0", 32892}, - {"sub_7ff7de293c10", 32893}, - {"sub_7ff7de293c90", 32894}, - {"sub_7ff7de293d20", 32895}, - {"sub_7ff7de293da0", 32896}, - {"botsetflag", 32897}, - {"sub_7ff7de2940a0", 32898}, - {"playerlinkto", 32899}, - {"playerlinktodelta", 32900}, - {"playerlinkweaponviewtodelta", 32901}, - {"playerlinktoabsolute", 32902}, - {"playerlinktoblend", 32903}, - {"playerlinkedoffsetenable", 32904}, - {"setwaypointedgestyle_secondaryarrow", 32905}, - {"setwaypointiconoffscreenonly", 32906}, - {"fadeovertime", 32907}, - {"scaleovertime", 32908}, - {"moveovertime", 32909}, - {"reset", 32910}, - {"destroy", 32911}, - {"setpulsefx", 32912}, - {"setplayernamestring", 32913}, - {"changefontscaleovertime", 32914}, - {"startignoringspotlight", 32915}, - {"stopignoringspotlight", 32916}, - {"dontcastshadows", 32917}, - {"castshadows", 32918}, - {"setstablemissile", 32919}, - {"playersetgroundreferenceent", 32920}, - {"dontinterpolate", 32921}, - {"dospawn", 32922}, - {"stalingradspawn", 32923}, - {"getorigin", 32924}, - {"getcentroid", 32925}, - {"getshootatpos", 32926}, - {"getdebugeye", 32927}, - {"useby", 32928}, - {"playsound", 32929}, - {"playerlinkedoffsetdisable", 32934}, - {"playerlinkedsetviewznear", 32935}, - {"playerlinkedsetusebaseangleforviewclamp", 32936}, - {"sub_7ff7de276410", 32937}, - {"sub_7ff7de276fa0", 32938}, - {"sub_7ff7de277db0", 32939}, - {"sub_7ff7de278760", 32940}, - {"setplayernamestring", 32941}, - {"sub_7ff7de27a8d0", 32942}, - {"geteye", 32943}, - {"istouching", 32944}, - {"stoploopsound", 32945}, - {"stopsounds", 32946}, - {"playrumbleonentity", 32947}, - {"playrumblelooponentity", 32948}, - {"sub_7ff7de27bc60", 32949}, - {"sub_7ff7de27c140", 32950}, - {"delete", 32951}, - {"setmodel", 32952}, - {"laseraltviewon", 32953}, - {"laseraltviewoff", 32954}, - {"thermalvisionon", 32957}, - {"thermalvisionoff", 32958}, - {"laseraltviewon", 32959}, - {"laseraltviewoff", 32960}, - {"setcontents", 32965}, - {"makeusable", 32966}, - {"makeunusable", 32967}, - {"sub_7ff7de273270", 32968}, - {"sub_7ff7de273800", 32969}, - {"sub_7ff7de249f70", 32970}, - {"sub_7ff7de247190", 32971}, - {"sub_7ff7de4674c0", 32972}, - {"sub_7ff7de464df0", 32973}, - {"sub_7ff7de467320", 32974}, - {"sub_7ff7de4673b0", 32975}, - {"triggerfx", 32976}, - {"settext", 32977}, - {"clearalltextafterhudelem", 32978}, - {"setshader", 32979}, - {"settargetent", 32980}, - {"cleartargetent", 32981}, - {"settimer", 32982}, - {"settimerup", 32983}, - {"settimerstatic", 32984}, - {"settenthstimer", 32985}, - {"settenthstimerup", 32986}, - {"settenthstimerstatic", 32987}, - {"setclock", 32988}, - {"setclockup", 32989}, - {"setvalue", 32990}, - {"setwaypoint", 32991}, - {"setwaypointedgestyle_rotatingicon", 32992}, - {"setcursorhint", 32993}, - {"sethintstring", 32994}, - {"forceusehinton", 32996}, - {"forceusehintoff", 32997}, - {"makesoft", 32998}, - {"makehard", 32999}, - {"nullsub_297", 33000}, - {"startfiring", 33001}, - {"stopfiring", 33002}, - {"isfiringturret", 33003}, - {"startbarrelspin", 33004}, - {"stopbarrelspin", 33005}, - {"getbarrelspinrate", 33006}, - {"shootturret", 33009}, - {"getturretowner", 33010}, - {"doanimrelative", 33011}, - {"sub_7ff7de24bdc0", 33012}, - {"setclipmode", 33013}, - {"setgoalradius", 33014}, - {"setmaxturnspeed", 33015}, - {"hasloadedcustomizationplayerview", 33016}, - {"sub_7ff7de24bfb0", 33017}, - {"sub_7ff7de24c320", 33018}, - {"sub_7ff7de24c560", 33019}, - {"sub_7ff7de24c5c0", 33020}, - {"sub_7ff7de24c620", 33021}, - {"sub_7ff7de24c6b0", 33022}, - {"sub_7ff7de24c760", 33023}, - {"nullsub_294", 33024}, - {"sub_7ff7de24c0c0", 33025}, - {"sub_7ff7de24c110", 33026}, - {"sub_7ff7de24c1e0", 33027}, - {"sub_7ff7de24c270", 33028}, - {"sub_7ff7de244880", 33029}, - {"sub_7ff7de244ac0", 33030}, - {"sub_7ff7de24c160", 33031}, - {"getxuid", 33032}, - {"sub_7ff7de243be0", 33033}, - {"jumpbuttonpressed", 33034}, - {"sub_7ff7de249ef0", 33035}, - {"sub_7ff7de2742f0", 33036}, - {"sub_7ff7de2747e0", 33037}, - {"isfiringvehicleturret", 33038}, - {"sub_7ff7de274e20", 33039}, - {"snaptotargetentity", 33040}, - {"sub_7ff7de275b60", 33041}, - {"getturrettarget", 33042}, - {"sub_7ff7de2769a0", 33043}, - {"sub_7ff7de276f40", 33044}, - {"sub_7ff7de277220", 33045}, - {"sub_7ff7de26f260", 33046}, - {"sub_7ff7de26f280", 33047}, - {"sub_7ff7de26f2a0", 33048}, - {"sub_7ff7de26f2c0", 33049}, - {"sub_7ff7de26f2e0", 33050}, - {"sub_7ff7de26f300", 33051}, - {"sub_7ff7de26f310", 33052}, - {"sub_7ff7de26f330", 33053}, - {"sub_7ff7de26f350", 33054}, - {"sub_7ff7de26f430", 33055}, - {"sub_7ff7de26f4b0", 33056}, - {"sub_7ff7de244100", 33057}, - {"sub_7ff7de244370", 33058}, - {"sub_7ff7de244510", 33059}, - {"sub_7ff7de244980", 33060}, - {"setscripted", 33061}, - {"sub_7ff7de24b590", 33062}, - {"sub_7ff7de24b320", 33064}, - {"sub_7ff7de24b3a0", 33065}, - {"sub_7ff7de24b730", 33066}, - {"sub_7ff7de24b780", 33071}, - {"sub_7ff7de24b3c0", 33072}, - {"sub_7ff7de24b7d0", 33073}, - {"sub_7ff7de24b930", 33074}, - {"sub_7ff7de24b240", 33075}, - {"sub_7ff7de24b9e0", 33076}, - {"sub_7ff7de24a2c0", 33077}, - {"sub_7ff7de2420c0", 33078}, - {"sub_7ff7de246af0", 33079}, - {"sub_7ff7de24bc20", 33080}, - {"thermalvisionoff", 33081}, - {"sub_7ff7de243fc0", 33082}, - {"sub_7ff7de24bc90", 33083}, - {"setconvergencetime", 33084}, - {"setconvergenceheightpercent", 33085}, - {"sub_7ff7de278160", 33086}, - {"sub_7ff7de278710", 33087}, - {"sub_7ff7de2787f0", 33088}, - {"sub_7ff7de278bf0", 33089}, - {"sub_7ff7de278ce0", 33090}, - {"makeentitysentient", 33091}, - {"sub_7ff7de2c1290", 33092}, - {"sub_7ff7de2c13c0", 33093}, - {"sub_7ff7de2c1420", 33094}, - {"sub_7ff7de2c1500", 33095}, - {"sub_7ff7de26fa90", 33096}, - {"setdvarifuninitialized", 33098}, - {"sub_7ff7de26f9c0", 33099}, - {"clearanimatedtrajectory", 33100}, - {"sub_7ff7de26fb90", 33101}, - {"sub_7ff7de26fbb0", 33102}, - {"sub_7ff7de26fbc0", 33103}, - {"sub_7ff7de26fbe0", 33104}, - {"sub_7ff7de26fc00", 33105}, - {"sub_7ff7de26fc20", 33106}, - {"sub_7ff7de26fc30", 33107}, - {"sub_7ff7de26fc50", 33108}, - {"sub_7ff7de26f0c0", 33109}, - {"sub_7ff7de26f0e0", 33110}, - {"sightconetrace", 33111}, - {"sub_7ff7de26f110", 33112}, - {"getclanwarsbonusforcurrentplaylist", 33113}, - {"sub_7ff7de26f1a0", 33114}, - {"isusingonlinedataoffline", 33115}, - {"sub_7ff7de26f230", 33116}, - {"sub_7ff7de26f250", 33117}, - {"nullsub_742", 33118}, - {"settoparc", 33119}, - {"sub_7ff7de279f20", 33120}, - {"setrightarc", 33121}, - {"sub_7ff7de27a6a0", 33122}, - {"setautorotationdelay", 33123}, - {"linkwaypointtotargetwithoffset", 33124}, - {"restoredefaultdroppitch", 33125}, - {"sub_7ff7de27b280", 33126}, - {"sub_7ff7de22aa00", 33127}, - {"setentityowner", 33128}, - {"sub_7ff7de22ab00", 33129}, - {"sub_7ff7de22ac00", 33130}, - {"sub_7ff7de22ad20", 33131}, - {"_enableweapons", 33132}, - {"_playerrecoilscaleoff", 33133}, - {"sub_7ff7de22af30", 33134}, - {"_disableweaponpickup", 33135}, - {"isthrowinggrenade", 33136}, - {"getenemyinfo", 33137}, - {"sub_7ff7de22b190", 33138}, - {"sub_7ff7de22b2f0", 33139}, - {"sub_7ff7de22b520", 33140}, - {"_freezecontrols", 33141}, - {"sub_7ff7de22b700", 33142}, - {"sub_7ff7de22b7c0", 33143}, - {"setrank", 33144}, - {"sub_7ff7de22b980", 33145}, - {"sub_7ff7de22bb70", 33146}, - {"sub_7ff7de22bc00", 33147}, - {"sub_7ff7de22bc70", 33148}, - {"sub_7ff7de22be50", 33149}, - {"iclientprintln", 33150}, - {"sub_7ff7de22bfb0", 33151}, - {"sub_7ff7de22c0d0", 33152}, - {"getenemysqdist", 33153}, - {"getclosestenemysqdist", 33154}, - {"setthreatbiasgroup", 33155}, - {"getthreatbiasgroup", 33156}, - {"turretfireenable", 33157}, - {"setturretmodechangewait", 33158}, - {"usetriggerrequirelookat", 33159}, - {"getstance", 33160}, - {"setstance", 33161}, - {"itemweaponsetammo", 33162}, - {"getammocount", 33163}, - {"gettagorigin", 33164}, - {"gettagangles", 33165}, - {"shellshock", 33166}, - {"stunplayer", 33167}, - {"stopshellshock", 33168}, - {"fadeoutshellshock", 33169}, - {"setdepthoffield", 33170}, - {"setviewmodeldepthoffield", 33171}, - {"setmotionblurmovescale", 33172}, - {"sub_7ff7de228f10", 33173}, - {"sub_7ff7de228f60", 33174}, - {"sub_7ff7de228fd0", 33175}, - {"sub_7ff7de229010", 33176}, - {"setphysicsmode", 33177}, - {"sub_7ff7de229110", 33178}, - {"sub_7ff7de2292e0", 33179}, - {"sub_7ff7de229640", 33180}, - {"sub_7ff7de229740", 33181}, - {"sub_7ff7de229790", 33182}, - {"sub_7ff7de2297e0", 33183}, - {"sub_7ff7de229840", 33184}, - {"sub_7ff7de229890", 33185}, - {"sub_7ff7de229960", 33190}, - {"sub_7ff7de229a10", 33191}, - {"sub_7ff7de229a60", 33192}, - {"sub_7ff7de229b70", 33193}, - {"sub_7ff7de229be0", 33194}, - {"getnegotiationnextnode", 33195}, - {"sub_7ff7de229cd0", 33196}, - {"sub_7ff7de229d70", 33197}, - {"sub_7ff7de229e60", 33198}, - {"sub_7ff7de22a050", 33199}, - {"sub_7ff7de228850", 33200}, - {"sub_7ff7de22a1b0", 33201}, - {"setgoalpos", 33202}, - {"setgoalentity", 33203}, - {"setgoalvolume", 33204}, - {"setgoalvolumeauto", 33205}, - {"getgoalvolume", 33206}, - {"cleargoalvolume", 33207}, - {"setfixednodesafevolume", 33208}, - {"setmotionblurturnscale", 33209}, - {"setmotionblurzoomscale", 33210}, - {"viewkick", 33211}, - {"sub_7ff7de27cfe0", 33212}, - {"getnodenumber", 33213}, - {"sub_7ff7de27bbc0", 33214}, - {"enablegrenadetouchdamage", 33215}, - {"disablegrenadetouchdamage", 33216}, - {"disableaimassist", 33217}, - {"sub_7ff7de22c1a0", 33218}, - {"sub_7ff7de22c220", 33219}, - {"sub_7ff7de22c6e0", 33220}, - {"sub_7ff7de22c7d0", 33221}, - {"sub_7ff7de22c930", 33222}, - {"sub_7ff7de22cce0", 33223}, - {"sub_7ff7de22ce30", 33224}, - {"sub_7ff7de22cf20", 33225}, - {"sub_7ff7de22cfa0", 33226}, - {"sub_7ff7de22d060", 33227}, - {"setcorpsefalling", 33228}, - {"sub_7ff7de2c1340", 33229}, - {"dropweapon", 33230}, - {"sub_7ff7de227fe0", 33231}, - {"sub_7ff7de228150", 33232}, - {"sub_7ff7de228270", 33233}, - {"sub_7ff7de228280", 33234}, - {"sub_7ff7de2282a0", 33235}, - {"sub_7ff7de2282c0", 33236}, - {"sub_7ff7de228320", 33237}, - {"sub_7ff7de228390", 33238}, - {"sub_7ff7de228460", 33239}, - {"sub_7ff7de228550", 33240}, - {"sub_7ff7de228590", 33241}, - {"_isreloading", 33242}, - {"sub_7ff7de228610", 33243}, - {"sub_7ff7de2286c0", 33244}, - {"sub_7ff7de228d40", 33245}, - {"sub_7ff7de228e40", 33246}, - {"sub_7ff7de228a50", 33247}, - {"sub_7ff7de27ced0", 33248}, - {"sub_7ff7de287530", 33249}, - {"sub_7ff7de288080", 33250}, - {"makeportableradar", 33251}, - {"sub_7ff7de288af0", 33252}, - {"sub_7ff7de27c260", 33253}, - {"sub_7ff7de27c580", 33254}, - {"sub_7ff7de27c7b0", 33255}, - {"missile_setflightmodedirect", 33256}, - {"missile_setflightmodetop", 33257}, - {"sub_7ff7de288df0", 33258}, - {"sub_7ff7de289020", 33259}, - {"getlightintensity", 33260}, - {"sub_7ff7de289260", 33261}, - {"startfiring", 33262}, - {"stopshellshock", 33263}, - {"isragdoll", 33264}, - {"setmovespeedscale", 33265}, - {"cameralinkto", 33266}, - {"cameraunlink", 33267}, - {"sub_7ff7de22a010", 33268}, - {"sub_7ff7de22a240", 33269}, - {"sub_7ff7de22a280", 33270}, - {"sub_7ff7de22a300", 33271}, - {"sub_7ff7de22a5e0", 33272}, - {"sub_7ff7de22a730", 33273}, - {"sub_7ff7de22a980", 33274}, - {"sub_7ff7de22aab0", 33275}, - {"botgetscriptgoalnode", 33276}, - {"sub_7ff7de22ace0", 33277}, - {"sub_7ff7de22ad80", 33278}, - {"sub_7ff7de22ae10", 33279}, - {"sub_7ff7de22aea0", 33280}, - {"sub_7ff7de22afb0", 33281}, - {"sub_7ff7de22b070", 33282}, - {"sub_7ff7de22b120", 33283}, - {"sub_7ff7de22b420", 33284}, - {"sub_7ff7de22b480", 33285}, - {"sub_7ff7de22b280", 33286}, - {"sub_7ff7de22b4e0", 33287}, - {"sub_7ff7de22b5d0", 33288}, - {"sub_7ff7de22b760", 33289}, - {"sub_7ff7de22b810", 33290}, - {"sub_7ff7de22b9f0", 33291}, - {"sub_7ff7de22bd40", 33292}, - {"sub_7ff7de22beb0", 33293}, - {"sub_7ff7de22c020", 33294}, - {"sub_7ff7de22c2f0", 33295}, - {"sub_7ff7de22c660", 33296}, - {"sub_7ff7de273ff0", 33297}, - {"sub_7ff7de274380", 33298}, - {"sub_7ff7de291020", 33300}, - {"sub_7ff7de276720", 33308}, - {"sub_7ff7de276aa0", 33309}, - {"sub_7ff7de277320", 33310}, - {"getlocalplayerprofiledata", 33311}, - {"setlocalplayerprofiledata", 33312}, - {"sub_7ff7de27aae0", 33313}, - {"sub_7ff7de27abd0", 33314}, - {"sub_7ff7de27ad70", 33315}, - {"sub_7ff7de27af90", 33316}, - {"sub_7ff7de2805c0", 33317}, - {"sub_7ff7de281650", 33318}, - {"sub_7ff7de281b20", 33319}, - {"transfermarkstonewscriptmodel", 33320}, - {"setwatersheeting", 33321}, - {"setweaponhudiconoverride", 33324}, - {"getweaponhudiconoverride", 33325}, - {"setempjammed", 33326}, - {"playersetexpfog", 33327}, - {"sub_7ff7de27ce50", 33328}, - {"sub_7ff7de27d7c0", 33329}, - {"isitemunlocked", 33330}, - {"getplayerdata", 33331}, - {"vehicleturretcontroloff", 33332}, - {"isturretready", 33333}, - {"vehicledriveto", 33334}, - {"vehicle_dospawn", 33335}, - {"isphysveh", 33336}, - {"phys_crash", 33337}, - {"sub_7ff7de465f30", 33338}, - {"phys_launch", 33339}, - {"phys_disablecrashing", 33340}, - {"phys_enablecrashing", 33341}, - {"phys_setspeed", 33342}, - {"phys_setconveyerbelt", 33343}, - {"sub_7ff7de289db0", 33345}, - {"sub_7ff7de28a490", 33346}, - {"sub_7ff7de2725e0", 33347}, - {"sub_7ff7de272a80", 33348}, - {"sub_7ff7de273020", 33349}, - {"getclanidhigh", 33350}, - {"sub_7ff7de27e9d0", 33351}, - {"sub_7ff7de27ed80", 33352}, - {"sub_7ff7de27eee0", 33353}, - {"sub_7ff7de27f360", 33354}, - {"sub_7ff7de277b30", 33355}, - {"sub_7ff7de278050", 33356}, - {"sub_7ff7de2741b0", 33358}, - {"_setwhizbyspreads", 33359}, - {"_switchtoweaponimmediate", 33360}, - {"sub_7ff7de28a070", 33361}, - {"sub_7ff7de2722f0", 33362}, - {"sub_7ff7de272890", 33363}, - {"trackerupdate", 33364}, - {"botisrandomized", 33366}, - {"sub_7ff7de247a30", 33370}, - {"setjitterparams", 33372}, - {"sethoverparams", 33373}, - {"joltbody", 33374}, - {"freevehicle", 33375}, - {"getwheelsurface", 33376}, - {"getvehicleowner", 33377}, - {"setvehiclelookattext", 33378}, - {"setvehicleteam", 33379}, - {"neargoalnotifydist", 33380}, - {"setgoalpos", 33381}, - {"setgoalyaw", 33382}, - {"cleargoalyaw", 33383}, - {"settargetyaw", 33384}, - {"cleartargetyaw", 33385}, - {"vehicle_helisetai", 33386}, - {"setturrettargetvec", 33387}, - {"setturrettargetent", 33388}, - {"clearturrettargetent", 33389}, - {"vehicle_canturrettargetpoint", 33390}, - {"setlookatent", 33391}, - {"clearlookatent", 33392}, - {"setvehweapon", 33393}, - {"fireweapon", 33394}, - {"vehicleturretcontrolon", 33395}, - {"physicslaunchserver", 33408}, - {"physicslaunchserveritem", 33409}, - {"clonebrushmodeltoscriptmodel", 33410}, - {"vehicle_teleport", 33414}, - {"attachpath", 33415}, - {"getattachpos", 33416}, - {"startpath", 33417}, - {"setswitchnode", 33418}, - {"setwaitspeed", 33419}, - {"vehicle_setspeed", 33421}, - {"vehicle_setspeedimmediate", 33422}, - {"vehicle_rotateyaw", 33423}, - {"vehicle_getspeed", 33424}, - {"vehicle_getvelocity", 33425}, - {"vehicle_getbodyvelocity", 33426}, - {"vehicle_getsteering", 33427}, - {"vehicle_getthrottle", 33428}, - {"vehicle_turnengineoff", 33429}, - {"vehicle_turnengineon", 33430}, - {"_vehicledriveto", 33431}, - {"getgoalspeedmph", 33432}, - {"setacceleration", 33433}, - {"setdeceleration", 33434}, - {"resumespeed", 33435}, - {"setyawspeed", 33436}, - {"setyawspeedbyname", 33437}, - {"setmaxpitchroll", 33438}, - {"setairresitance", 33439}, - {"setturningability", 33440}, - {"sub_7ff7de2445f0", 33441}, - {"weaponlocknoclearance", 33453}, - {"showhudsplash", 33455}, - {"setperk", 33456}, - {"hasperk", 33457}, - {"clearperks", 33458}, - {"unsetperk", 33459}, - {"noclip", 33462}, - {"ufo", 33463}, - {"moveto", 33464}, - {"movex", 33465}, - {"movey", 33466}, - {"movez", 33467}, - {"movegravity", 33468}, - {"moveslide", 33469}, - {"stopmoveslide", 33470}, - {"rotateto", 33471}, - {"rotatepitch", 33472}, - {"rotateyaw", 33473}, - {"rotateroll", 33474}, - {"addpitch", 33475}, - {"addyaw", 33476}, - {"addroll", 33477}, - {"vibrate", 33478}, - {"rotatevelocity", 33479}, - {"solid", 33480}, - {"notsolid", 33481}, - {"setcandamage", 33482}, - {"setcanradiusdamage", 33483}, - {"physicslaunchclient", 33484}, - {"disableweaponpickup", 33493}, - {"enableweaponpickup", 33494}, - {"issplitscreenplayer", 33495}, - {"getweaponslistoffhands", 33497}, - {"getweaponslistitems", 33498}, - {"getweaponslistexclusives", 33499}, - {"getweaponslist", 33500}, - {"canplayerplacesentry", 33501}, - {"canplayerplacetank", 33502}, - {"sub_7ff7de246ff0", 33503}, - {"visionsetnakedforplayer", 33504}, - {"visionsetnightforplayer", 33505}, - {"visionsetmissilecamforplayer", 33506}, - {"visionsetthermalforplayer", 33507}, - {"setblurforplayer", 33508}, - {"getplayerweaponmodel", 33509}, - {"getplayerknifemodel", 33510}, - {"updateplayermodelwithweapons", 33511}, - {"notifyonplayercommand", 33512}, - {"canmantle", 33513}, - {"forcemantle", 33514}, - {"ismantling", 33515}, - {"playfx", 33516}, - {"player_recoilscaleon", 33517}, - {"player_recoilscaleoff", 33518}, - {"weaponlockstart", 33519}, - {"weaponlockfinalize", 33520}, - {"weaponlockfree", 33521}, - {"weaponlocktargettooclose", 33522}, - {"getviewmodel", 33528}, - {"fragbuttonpressed", 33529}, - {"secondaryoffhandbuttonpressed", 33530}, - {"getcurrentweaponclipammo", 33531}, - {"setvelocity", 33532}, - {"getplayerviewheight", 33533}, - {"getnormalizedmovement", 33534}, - {"playlocalsound", 33535}, - {"stoplocalsound", 33536}, - {"setweaponammoclip", 33537}, - {"setweaponammostock", 33538}, - {"getweaponammoclip", 33539}, - {"getweaponammostock", 33540}, - {"hasreloadmultipleanim", 33541}, - {"regweaponforfxremoval", 33542}, - {"setclientdvar", 33543}, - {"setclientdvars", 33544}, - {"allowads", 33547}, - {"allowjump", 33548}, - {"sub_7ff7de244a60", 33549}, - {"seteyesonuplinkenabled", 33550}, - {"allowsprint", 33551}, - {"setspreadoverride", 33552}, - {"resetspreadoverride", 33553}, - {"setaimspreadmovementscale", 33554}, - {"setactionslot", 33555}, - {"setviewkickscale", 33556}, - {"getviewkickscale", 33557}, - {"getweaponslistall", 33558}, - {"getweaponslistprimaries", 33559}, - {"getnormalizedcameramovement", 33560}, - {"giveweapon", 33561}, - {"takeweapon", 33562}, - {"takeallweapons", 33563}, - {"getcurrentweapon", 33564}, - {"getcurrentprimaryweapon", 33565}, - {"getcurrentoffhand", 33566}, - {"hasweapon", 33567}, - {"switchtoweapon", 33568}, - {"switchtoweaponimmediate", 33569}, - {"sub_7ff7de248580", 33570}, - {"switchtooffhand", 33571}, - {"setoffhandsecondaryclass", 33572}, - {"getoffhandsecondaryclass", 33573}, - {"beginlocationselection", 33574}, - {"endlocationselection", 33575}, - {"disableweapons", 33576}, - {"enableweapons", 33577}, - {"disableoffhandweapons", 33578}, - {"enableoffhandweapons", 33579}, - {"disableweaponswitch", 33580}, - {"enableweaponswitch", 33581}, - {"openpopupmenu", 33582}, - {"openpopupmenunomouse", 33583}, - {"closepopupmenu", 33584}, - {"openmenu", 33585}, - {"closemenu", 33586}, - {"freezecontrols", 33588}, - {"disableusability", 33589}, - {"enableusability", 33590}, - {"setwhizbyspreads", 33591}, - {"setwhizbyradii", 33592}, - {"setreverb", 33593}, - {"deactivatereverb", 33594}, - {"setvolmod", 33595}, - {"givestartammo", 33596}, - {"givemaxammo", 33597}, - {"getfractionstartammo", 33598}, - {"getfractionmaxammo", 33599}, - {"isdualwielding", 33600}, - {"isreloading", 33601}, - {"isswitchingweapon", 33602}, - {"setorigin", 33603}, - {"getvelocity", 33604}, - {"setplayerangles", 33605}, - {"getplayerangles", 33606}, - {"usebuttonpressed", 33607}, - {"attackbuttonpressed", 33608}, - {"adsbuttonpressed", 33609}, - {"meleebuttonpressed", 33610}, - {"playerads", 33611}, - {"isonground", 33612}, - {"isusingturret", 33613}, - {"setviewmodel", 33614}, - {"setoffhandprimaryclass", 33615}, - {"getoffhandprimaryclass", 33616}, - {"sub_7ff7de242960", 33617}, - {"sub_7ff7de242c00", 33618}, - {"sub_7ff7de242e80", 33619}, - {"sub_7ff7de243060", 33620}, - {"sub_7ff7de251fb0", 33621}, - {"nullsub_743", 33622}, - {"sub_7ff7de242cf0", 33625}, - {"sub_7ff7de244800", 33627}, - {"sub_7ff7de276990", 33681}, - {"sub_7ff7de2453f0", 33684}, - {"sub_7ff7de250b00", 33712}, - {"sub_7ff7de250bb0", 33713}, - {"sub_7ff7de250c20", 33714}, - {"sub_7ff7de250c90", 33715}, - {"sub_7ff7de297660", 33716}, - {"sub_7ff7de2442c0", 33717}, - {"sub_7ff7de244450", 33718}, - {"sub_7ff7de24bbd0", 33719}, - {"sub_7ff7de2979e0", 33720}, - {"sub_7ff7de297b10", 33721}, - {"sub_7ff7de24ba80", 33722}, - {"sub_7ff7de24bb60", 33723}, - {"sub_7ff7de24baf0", 33724}, - {"nullsub_325", 33727}, - {"sub_7ff7de242d70", 33728}, - {"sub_7ff7de242f50", 33729}, - {"sub_7ff7de466e70", 33730}, - {"sub_7ff7de466e80", 33731}, - {"sub_7ff7de27e040", 33733}, - {"sub_7ff7de27b9a0", 33734}, - {"sub_7ff7de27b9d0", 33735}, - {"sub_7ff7de244780", 33736}, - {"sub_7ff7de469360", 33737}, - {"sub_7ff7de469410", 33738}, - {"sub_7ff7de469490", 33739}, - {"sub_7ff7de26f6b0", 33740}, - {"sub_7ff7de247bc0", 33741}, - {"sub_7ff7de247cb0", 33742}, - {"sub_7ff7de2484d0", 33743}, - {"sub_7ff7de29a5a0", 33744}, - {"sub_7ff7de2c1100", 33745}, - {"sub_7ff7de468a10", 33746}, - {"nullsub_485_0", 33747}, - {"sub_7ff7de26f640", 33748}, - {"sub_7ff7de22c410", 33749}, - {"sub_7ff7de22c4a0", 33750}, - {"sub_7ff7de22c760", 33751}, - {"sub_7ff7de22c860", 33752}, - {"sub_7ff7de22caa0", 33753}, - {"sub_7ff7de22ca30", 33754}, - {"sub_7ff7de22cb10", 33755}, - {"sub_7ff7de22cb70", 33756}, - {"sub_7ff7de295440", 33764}, - {"sub_7ff7de2432f0", 33765}, - {"sub_7ff7de271fd0", 33766}, - {"sub_7ff7de22a5a0", 33767}, - {"setclothtype", 33768}, - {"sub_7ff7de28f2d0", 33769}, - {"sub_7ff7de28f3f0", 33770}, - {"ismlgspectator", 33771}, - {"sub_7ff7de29bd60", 33772}, - {"sub_7ff7de2893f0", 33775}, - {"sub_7ff7de289bc0", 33777}, - {"sub_7ff7de283f60", 33778}, - {"aiphysicstracepassed", 33779}, - {"nullsub_342", 33780}, - {"sub_7ff7de297230", 33781}, - {"sub_7ff7de297360", 33782}, - {"visionsetstage", 33783}, - {"hudoutlineenableforclients", 33784}, - {"sub_7ff7de286060", 33785}, - {"sub_7ff7de286be0", 33786}, - {"sub_7ff7de2953e0", 33788}, - {"sub_7ff7de288f20", 33790}, - {"sub_7ff7de287c60", 33791}, - {"makevehiclenotcollidewithplayers", 33792}, - {"dotrajectory", 33793}, - {"setwallruncost", 33794}, - {"setscriptablepartstate", 33795}, - {"nullsub_347", 33796}, - {"sub_7ff7de289560", 33797}, - {"sub_7ff7de468d50", 33798}, - {"nullsub_495", 33799}, - {"nullsub_353", 33800}, - {"thermaldrawdisable", 33801}, - {"motionblurhqenable", 33802}, - {"sub_7ff7de2914d0", 33803}, - {"enableautoreload", 33804}, - {"sub_7ff7de22bdd0", 33805}, - {"sub_7ff7de27c370", 33806}, - {"sub_7ff7de27a200", 33807}, - {"sub_7ff7de22a860", 33808}, - {"visionsetpostapplyforplayer", 33810}, - {"sub_7ff7de24c7b0", 33811}, - {"sub_7ff7de27a600", 33812}, - {"sub_7ff7de27a710", 33813}, - {"sub_7ff7de27dc50", 33814}, - {"sub_7ff7de24c020", 33816}, - {"sub_7ff7de24c070", 33817}, - {"sub_7ff7de2970f0", 33818}, - {"sub_7ff7de295900", 33819}, - {"tablelookupistring", 33820}, - {"sub_7ff7de29ab00", 33821}, - {"sub_7ff7de29abb0", 33822}, - {"sub_7ff7de29ac60", 33823}, - {"physicsgetlinvel", 33824}, - {"physicsgetangvel", 33825}, - {"sub_7ff7de29aec0", 33826}, - {"nullsub_348", 33834}, - {"nullsub_735", 33835}, - {"nullsub_350", 33836}, - {"nullsub_351", 33837}, - {"turretsetbarrelspinenabled", 33838}, - {"sub_7ff7de288470", 33841}, - {"sub_7ff7de288680", 33842}, - {"sub_7ff7de29bc10", 33844}, - {"sub_7ff7de29bde0", 33845}, - {"sub_7ff7de29be80", 33846}, - {"sub_7ff7de292800", 33848}, - {"sub_7ff7de246730", 33854}, - {"sub_7ff7de246820", 33855}, - {"sub_7ff7de246970", 33856}, - {"nullsub_340", 33857}, - {"getlinkedchildren", 33858}, - {"sub_7ff7de242bb0", 33861}, - {"setscriptabledamageowner", 33864}, - {"sub_7ff7de2727e0", 33865}, - {"sub_7ff7de22cbe0", 33867}, - {"sub_7ff7de22cc80", 33868}, - {"sub_7ff7de248480", 33869}, - {"sub_7ff7de22d100", 33870}, - {"getlinkedparent", 33871}, - {"nullsub_335", 33872}, - {"sub_7ff7de464d80", 33873}, - {"sub_7ff7de469550", 33874}, - {"sub_7ff7de285c10", 33875}, - {"sub_7ff7de2496f0", 33876}, - {"sub_7ff7de298600", 33877}, - {"sub_7ff7de298640", 33878}, - {"sub_7ff7de2730a0", 33879}, - {"nullsub_354", 33880}, - {"nullsub_744", 33881}, - {"sub_7ff7de243200", 33882}, - {"turretfiredisable", 33883}, - {"sub_7ff7de276920", 33884}, - {"sub_7ff7de4696d0", 33885}, - {"sub_7ff7de4696f0", 33886}, - {"sub_7ff7de469710", 33887}, - {"sub_7ff7de469730", 33888}, - {"sub_7ff7de2935d0", 33889}, - {"sub_7ff7de293910", 33890}, - {"sub_7ff7de469610", 33891}, - {"sub_7ff7de244e00", 33892}, - {"sub_7ff7de243990", 33893}, - {"sub_7ff7de294050", 33894}, - {"_geteye", 33897}, - {"sub_7ff7de290080", 33898}, - {"sub_7ff7de290150", 33899}, - {"sub_7ff7de248ad0", 33900}, - {"sub_7ff7de28f640", 33903}, - {"sub_7ff7de286f80", 33904}, - {"sub_7ff7de24a6e0", 33908}, - {"sub_7ff7de243510", 33909}, - {"makecollidewithitemclip", 33910}, - {"issplitscreenplayerprimary", 33911}, - {"sub_7ff7de29b340", 33913}, - {"hasfemalecustomizationmodel", 33914}, - {"sub_7ff7de274cc0", 33915}, - {"sub_7ff7de275750", 33916}, - {"sub_7ff7de275ab0", 33917}, - {"sub_7ff7de275fd0", 33918}, - {"sub_7ff7de276a00", 33919}, - {"sub_7ff7de2441f0", 33920}, - {"sub_7ff7de2976f0", 33921}, - {"sub_7ff7de4697b0", 33922}, - {"sub_7ff7de4697f0", 33923}, - {"sub_7ff7de469850", 33924}, - {"sub_7ff7de4698a0", 33925}, - {"sub_7ff7de4698c0", 33926}, - {"sub_7ff7de271d10", 33927}, - {"sub_7ff7de272270", 33928}, - {"sub_7ff7de247920", 33929}, - {"sub_7ff7de297810", 33930}, - {"sub_7ff7de297910", 33931}, - {"nullsub_332", 33932}, - {"nullsub_333", 33933}, - {"sub_7ff7de468ac0", 33934}, - {"sub_7ff7de468b40", 33935}, - {"sub_7ff7de2454b0", 33936}, - {"sub_7ff7de2457f0", 33937}, - {"sub_7ff7de27e600", 33938}, - {"sub_7ff7de272ed0", 33939}, - {"nullsub_327", 33940}, - {"nullsub_328", 33941}, - {"sub_7ff7de466640", 33943}, - {"sub_7ff7de469760", 33944}, - {"sub_7ff7de29bcb0", 33947}, - {"nullsub_326", 33948}, - {"sub_7ff7de4666c0", 33949}, - {"sub_7ff7de4666b0", 33950}, - {"sub_7ff7de2485d0", 33951}, - {"sub_7ff7de2488c0", 33952}, - {"sub_7ff7de248b80", 33953}, - {"sub_7ff7de24b520", 33954}, - {"nullsub_356", 33955}, - {"sub_7ff7de293cc0", 33958}, - {"sub_7ff7de293dc0", 33959}, - {"sub_7ff7de24c4a0", 33960}, - {"sub_7ff7de242500", 33963}, - {"sub_7ff7de2427e0", 33964}, - {"nullsub_293", 33965}, - {"setturretteam", 33976}, - {"sub_7ff7de284950", 33977}, - {"sub_7ff7de285050", 33978}, - {"sub_7ff7de285900", 33979}, - {"sub_7ff7de467960", 33980}, - {"sub_7ff7de27a0a0", 33981}, - {"turretfireenable", 33982}, - {"sub_7ff7de244ae0", 33983}, - {"sub_7ff7de468170", 33984}, - {"sub_7ff7de468270", 33985}, - {"nullsub_343", 33987}, - {"sub_7ff7de272650", 33988}, - {"sub_7ff7de2733a0", 33989}, - {"sub_7ff7de273890", 33990}, - {"sub_7ff7de273ae0", 33991}, - {"nullsub_766", 33992}, - {"nullsub_357", 33993}, - {"sub_7ff7de4672b0", 33994}, - {"sub_7ff7de2856b0", 33995}, - {"sub_7ff7de247650", 33998}, - {"sub_7ff7de2476c0", 33999}, - {"sub_7ff7de247d90", 34002}, - {"sub_7ff7de248120", 34003}, - {"sub_7ff7de280a60", 34005}, - {"sub_7ff7de4645f0", 34006}, - {"usinggamepad", 34009}, - {"sub_7ff7de2425d0", 34010}, - {"sub_7ff7de242620", 34011}, - {"getgoalpos", 34012}, - {"sub_7ff7de466450", 34013}, - {"sub_7ff7de464610", 34015}, - {"sub_7ff7de2892d0", 34016}, - {"sub_7ff7de289670", 34017}, - {"maketurretsolid", 34018}, - {"sub_7ff7de2873e0", 34019}, - {"sub_7ff7de2874a0", 34020}, - {"stopfiring", 34021}, - {"sub_7ff7de287770", 34022}, - {"sub_7ff7de2878f0", 34023}, - {"sub_7ff7de287a00", 34024}, - {"sub_7ff7de287b30", 34025}, - {"sub_7ff7de24a420", 34027}, - {"sub_7ff7de29afa0", 34028}, - {"sub_7ff7de229910", 34030}, - {"sub_7ff7de468640", 34031}, - {"sub_7ff7de277290", 34034}, - {"sub_7ff7de251060", 34035}, - {"sub_7ff7de464650", 34036}, - {"sub_7ff7de2491d0", 34038}, - {"nullsub_307", 34039}, - {"sub_7ff7de298450", 34040}, - {"nullsub_358", 34041}, - {"getjointype", 34042}, - {"sub_7ff7de247b60", 34043}, - {"sub_7ff7de247c50", 34044}, - {"clientsetentunusable", 34045}, - {"sub_7ff7de27e3a0", 34046}, - {"sub_7ff7de272d70", 34047}, - {"corpsetomovingplatformtrace", 34048}, - {"sub_7ff7de27fdf0", 34049}, - {"sub_7ff7de27ded0", 34050}, - {"sub_7ff7de4657f0", 34051}, - {"sub_7ff7de465900", 34052}, - {"nullsub_361", 34053}, - {"nullsub_750", 34054}, - {"sub_7ff7de2776b0", 34055}, - {"sub_7ff7de277910", 34056}, - {"nullsub_761", 34057}, - {"sub_7ff7de277b20", 34058}, - {"sub_7ff7de277c10", 34059}, - {"sub_7ff7de277f00", 34060}, - {"nullsub_364", 34061}, - {"sub_7ff7de2877e0", 34062}, - {"sub_7ff7de274a00", 34063}, - {"sub_7ff7de274bc0", 34064}, - {"sub_7ff7de2870c0", 34068}, - {"sub_7ff7de285980", 34069}, - {"sub_7ff7de278c70", 34071}, - {"sub_7ff7de293580", 34077}, - {"sub_7ff7de248e00", 34078}, - {"sub_7ff7de250a20", 34079}, - {"sub_7ff7de286f10", 34081}, - {"sub_7ff7de287030", 34082}, - {"sub_7ff7de27cca0", 34083}, - {"sub_7ff7de242690", 34084}, - {"isplayernumber", 34085}, - {"sub_7ff7de464680", 34086}, - {"sub_7ff7de4646a0", 34087}, - {"rangecheckfailure", 34088}, - {"sub_7ff7de243050", 34089}, - {"sub_7ff7de27c1d0", 34090}, - {"sub_7ff7de2523f0", 34092}, - {"sub_7ff7de243260", 34094}, - {"sub_7ff7de287c40", 34095}, - {"sub_7ff7de287230", 34096}, - {"sub_7ff7de29b020", 34097}, - {"sub_7ff7de26f400", 34098}, - {"visionsetpainforplayer", 34101}, - {"nullsub_365", 34103}, - {"sub_7ff7de2861a0", 34104}, - {"sub_7ff7de250a90", 34107}, - {"sub_7ff7de279090", 34109}, - {"sub_7ff7de27aff0", 34110}, - {"sub_7ff7de278210", 34113}, - {"sub_7ff7de278680", 34128}, - {"sub_7ff7de243cb0", 34129}, - {"sub_7ff7de281e10", 34132}, - {"sub_7ff7de278890", 34133}, - {"sub_7ff7de2450c0", 34140}, - {"sub_7ff7de288e40", 34145}, - {"sub_7ff7de29b2c0", 34148}, - {"sub_7ff7de27b8d0", 34149}, - {"nullsub_337", 34157}, - {"nullsub_338", 34158}, - {"nullsub_339", 34159}, - {"sub_7ff7de28a2b0", 34161}, - {"sub_7ff7de2750f0", 34162}, - {"sub_7ff7de288180", 34163}, - {"sub_7ff7de288570", 34164}, - {"sub_7ff7de27b4f0", 34165}, - {"setplayerspread", 34166}, - {"sub_7ff7de29bb10", 34167}, - {"sub_7ff7de2b4ad0", 34168}, - {"sub_7ff7de228a00", 34169}, - {"sub_7ff7de28f940", 34170}, - {"sub_7ff7de22a0b0", 34171}, - {"sub_7ff7de273fd0", 34172}, - {"setdefaultdroppitch", 34173}, - {"sub_7ff7de27ab80", 34174}, - {"sub_7ff7de279100", 34175}, - {"drivevehicleandcontrolturret", 34176}, - {"sub_7ff7de279750", 34177}, - {"sub_7ff7de26f820", 34178}, - {"sub_7ff7de26f840", 34179}, - {"sub_7ff7de26f8c0", 34180}, - {"sub_7ff7de22a0f0", 34181}, - {"closeingamemenu", 34182}, - {"removecomworld", 34183}, - {"sub_7ff7de248f80", 34184}, - {"sub_7ff7de249270", 34185}, - {"getentitynumber", 34188}, - {"cleartargetentity", 34189}, - {"nullsub_359", 34192}, - {"sub_7ff7de243f60", 34197}, - {"sub_7ff7de24bd50", 34198}, - {"getmaxturnspeed", 34199}, - {"sub_7ff7de26f9e0", 34200}, - {"loadcustomizationplayerview", 34201}, - {"sub_7ff7de2446e0", 34202}, - {"getclanidlow", 34203}, - {"sub_7ff7de244e40", 34204}, - {"sub_7ff7de22c600", 34205}, - {"sub_7ff7de4666f0", 34206}, - {"sub_7ff7de293610", 34207}, - {"sub_7ff7de293710", 34208}, - {"sub_7ff7de465b10", 34209}, - {"sub_7ff7de466760", 34210}, - {"sub_7ff7de245040", 34211}, - {"sub_7ff7de244f70", 34212}, - {"sub_7ff7de466b80", 34213}, - {"sub_7ff7de2982b0", 34214}, - {"sub_7ff7de2983e0", 34215}, - {"sub_7ff7de272ca0", 34216}, - {"sub_7ff7de293780", 34217}, - {"setmlgcameradefaults", 34218}, - {"sub_7ff7de26f920", 34219}, - {"sub_7ff7de274a50", 34220}, - {"sub_7ff7de274100", 34224}, - {"sub_7ff7de2820a0", 34225}, - {"sub_7ff7de27aee0", 34226}, - {"sub_7ff7de286200", 34227}, - {"sub_7ff7de286cf0", 34228}, - {"playersetgroundreferenceent", 34229}, - {"sub_7ff7de248070", 34230}, - {"sub_7ff7de248230", 34231}, - {"sub_7ff7de2473f0", 34232}, - {"sub_7ff7de247510", 34233}, - {"sub_7ff7de2475e0", 34234}, - {"sub_7ff7de245740", 34235}, - {"cleartargetent", 34236}, - {"sub_7ff7de466870", 34237}, - {"sub_7ff7de2938b0", 34238}, - {"sub_7ff7de4667e0", 34239}, - {"sub_7ff7de466c00", 34240}, - {"sub_7ff7de466920", 34241}, - {"sub_7ff7de26f7a0", 34242}, - {"sub_7ff7de466df0", 34243}, - {"sub_7ff7de288ed0", 34244}, - {"sub_7ff7de4669a0", 34245}, - {"sub_7ff7de466a10", 34246}, - {"sub_7ff7de466a90", 34247}, - {"sub_7ff7de466b00", 34248}, - {"sub_7ff7de26f7e0", 34249}, - {"sub_7ff7de26f890", 34250}, - {"sub_7ff7de26f980", 34251}, - {"nullsub_488_0", 34252}, - {"sub_7ff7de279350", 34253}, - {"gethybridscopestate", 34254}, - {"setagentattacker", 34255}, - {"usebuttonpressed", 34256}, - {"begin", 34257}, - {"nullsub_727", 34258}, + {"player", 794}, + {"default_start", 10126}, }; } diff --git a/src/game/scripting/functions.cpp b/src/game/scripting/functions.cpp index 029bd7d9..56f3b8e8 100644 --- a/src/game/scripting/functions.cpp +++ b/src/game/scripting/functions.cpp @@ -71,6 +71,18 @@ namespace scripting } } + unsigned int find_token_id(const std::string& name) + { + const auto result = token_map.find(name); + + if (result != token_map.end()) + { + return result->second; + } + + return 0; + } + script_function find_function(const std::string& name, const bool prefer_global) { const auto index = find_function_index(name, prefer_global); diff --git a/src/game/scripting/functions.hpp b/src/game/scripting/functions.hpp index b49d2feb..2227753b 100644 --- a/src/game/scripting/functions.hpp +++ b/src/game/scripting/functions.hpp @@ -5,8 +5,10 @@ namespace scripting { extern std::unordered_map method_map; extern std::unordered_map function_map; + extern std::unordered_map token_map; using script_function = void(*)(game::scr_entref_t); + unsigned int find_token_id(const std::string& name); script_function find_function(const std::string& name, const bool prefer_global); } diff --git a/src/game/scripting/lua/context.cpp b/src/game/scripting/lua/context.cpp index 453f3595..8f7efc7f 100644 --- a/src/game/scripting/lua/context.cpp +++ b/src/game/scripting/lua/context.cpp @@ -300,6 +300,18 @@ namespace scripting::lua return convert(s, entity.get(field)); }; + entity_type["struct"] = sol::property([](const entity& entity, const sol::this_state s) + { + const auto id = entity.get_entity_id(); + return scripting::lua::entity_to_struct(s, id); + }); + + entity_type["getstruct"] = [](const entity& entity, const sol::this_state s) + { + const auto id = entity.get_entity_id(); + return scripting::lua::entity_to_struct(s, id); + }; + struct game { }; diff --git a/src/game/scripting/lua/value_conversion.cpp b/src/game/scripting/lua/value_conversion.cpp index 8a34c4cb..3cfd31c9 100644 --- a/src/game/scripting/lua/value_conversion.cpp +++ b/src/game/scripting/lua/value_conversion.cpp @@ -1,5 +1,7 @@ #include #include "value_conversion.hpp" +#include "../functions.hpp" +#include "../execution.hpp" namespace scripting::lua { @@ -18,7 +20,7 @@ namespace scripting::lua std::unordered_map values; - const auto offset = 40960 * (id & 3); + const auto offset = 0xA000 * (id & 3); auto current = game::scr_VarGlob->objectVariableChildren[id].firstChild; auto idx = 1; @@ -137,6 +139,89 @@ namespace scripting::lua return script_value(variable); } + + sol::lua_value convert_function(lua_State* state, const char* pos) + { + return [pos](const entity& entity, const sol::this_state s, sol::variadic_args va) + { + std::vector arguments{}; + + for (auto arg : va) + { + arguments.push_back(convert({s, arg})); + } + + return convert(s, scripting::exec_ent_thread(entity, pos, arguments)); + }; + } + } + + sol::lua_value entity_to_struct(lua_State* state, unsigned int parent_id) + { + auto table = sol::table::create(state); + auto metatable = sol::table::create(state); + + const auto offset = 0xA000 * (parent_id & 3); + + metatable[sol::meta_function::new_index] = [offset, parent_id](const sol::table t, const sol::this_state s, + const sol::lua_value& field, const sol::lua_value& value) + { + const auto id = field.is() + ? scripting::find_token_id(field.as()) + : field.as(); + + if (!id) + { + return; + } + + const auto variable_id = game::FindVariable(parent_id, id); + if (!variable_id) + { + return; + } + + const auto variable = &game::scr_VarGlob->childVariableValue[variable_id + offset]; + + const auto new_variable = convert({ s, value }).get_raw(); + + game::AddRefToValue(new_variable.type, new_variable.u); + game::RemoveRefToValue(variable->type, variable->u.u); + + variable->type = (char)new_variable.type; + variable->u.u = new_variable.u; + }; + + metatable[sol::meta_function::index] = [offset, parent_id](const sol::table t, const sol::this_state s, + const sol::lua_value& field) + { + const auto id = field.is() + ? scripting::find_token_id(field.as()) + : field.as(); + + if (!id) + { + return sol::lua_value{s, sol::lua_nil}; + } + + const auto variable_id = game::FindVariable(parent_id, id); + if (!variable_id) + { + return sol::lua_value{s, sol::lua_nil}; + } + + const auto variable = game::scr_VarGlob->childVariableValue[variable_id + offset]; + + game::VariableValue result{}; + result.u = variable.u.u; + result.type = (game::scriptType_e)variable.type; + + return convert(s, result); + }; + + table[sol::metatable_key] = metatable; + + return {state, table}; } script_value convert(const sol::lua_value& value) @@ -206,11 +291,21 @@ namespace scripting::lua return {state, value.as()}; } + if (value.is>()) + { + return entity_to_struct(state, value.get_raw().u.uintValue); + } + if (value.is>()) { return entity_to_array(state, value.get_raw().u.uintValue); } + if (value.is>()) + { + return convert_function(state, value.get_raw().u.codePosValue); + } + if (value.is()) { return {state, value.as()}; diff --git a/src/game/scripting/lua/value_conversion.hpp b/src/game/scripting/lua/value_conversion.hpp index 27acaad3..93256f80 100644 --- a/src/game/scripting/lua/value_conversion.hpp +++ b/src/game/scripting/lua/value_conversion.hpp @@ -4,6 +4,8 @@ namespace scripting::lua { + sol::lua_value entity_to_struct(lua_State* state, unsigned int parent_id); + script_value convert(const sol::lua_value& value); sol::lua_value convert(lua_State* state, const script_value& value); } diff --git a/src/game/scripting/script_value.cpp b/src/game/scripting/script_value.cpp index 5d8eefa8..f41e4a89 100644 --- a/src/game/scripting/script_value.cpp +++ b/src/game/scripting/script_value.cpp @@ -2,7 +2,6 @@ #include "script_value.hpp" #include "entity.hpp" - namespace scripting { /*************************************************************** @@ -207,6 +206,34 @@ namespace scripting return type == game::SCRIPT_ARRAY; } + /*************************************************************** + * Struct + **************************************************************/ + + template <> + bool script_value::is>() const + { + if (this->get_raw().type != game::SCRIPT_OBJECT) + { + return false; + } + + const auto id = this->get_raw().u.uintValue; + const auto type = game::scr_VarGlob->objectVariableValue[id].w.type; + + return type == game::SCRIPT_STRUCT; + } + + /*************************************************************** + * Function + **************************************************************/ + + template <> + bool script_value::is>() const + { + return this->get_raw().type == game::SCRIPT_FUNCTION; + } + /*************************************************************** * Entity **************************************************************/ diff --git a/src/game/structs.hpp b/src/game/structs.hpp index e3af8923..949ce5d6 100644 --- a/src/game/structs.hpp +++ b/src/game/structs.hpp @@ -611,7 +611,9 @@ namespace game SCRIPT_FLOAT = 5, SCRIPT_INTEGER = 6, SCRIPT_END = 8, - SCRIPT_ARRAY = 22 + SCRIPT_FUNCTION = 9, + SCRIPT_STRUCT = 19, + SCRIPT_ARRAY = 22, }; struct VariableStackBuffer diff --git a/src/game/symbols.hpp b/src/game/symbols.hpp index e90904ed..361dd0bb 100644 --- a/src/game/symbols.hpp +++ b/src/game/symbols.hpp @@ -7,7 +7,10 @@ namespace game // Functions WEAK symbol AddRefToValue{0x5C0EB0}; + WEAK symbol AddRefToObject{0x5C0EA0}; + WEAK symbol AllocThread{0x5C1200}; WEAK symbol RemoveRefToValue{0x5C29B0}; + WEAK symbol RemoveRefToObject{0x5C28A0}; WEAK symbol Cbuf_AddText{0x59A050}; @@ -44,6 +47,7 @@ namespace game WEAK symbol CL_IsCgameInitialized{0x3CA0C0}; + WEAK symbol FindVariable{0x5C1D50}; WEAK symbol FindEntityId{0x5C1C50}; WEAK symbol GetEntityFieldValue{0x5C6100}; @@ -69,6 +73,8 @@ namespace game WEAK symbol Scr_SetObjectField{0x512190}; WEAK symbol Scr_NotifyId{0x5C8240}; + WEAK symbol VM_Execute{0x5C8DB0}; + WEAK symbol R_AddCmdDrawStretchPic{0x3C9710}; WEAK symbol #include #include +#include #ifdef max #undef max