├── Project IC.sln ├── Project IC ├── Project IC.vcxproj ├── Project IC.vcxproj.filters ├── Project IC.vcxproj.user └── Project IC │ ├── DLLMain.cpp │ ├── Features │ ├── Aimbot │ │ ├── Aimbot.cpp │ │ └── Aimbot.h │ ├── Menu │ │ ├── Input │ │ │ ├── Input.cpp │ │ │ └── Input.h │ │ ├── Menu.cpp │ │ └── Menu.h │ ├── Misc │ │ ├── Misc.cpp │ │ └── Misc.h │ ├── Prediction │ │ ├── Prediction.cpp │ │ └── Prediction.h │ ├── Triggerbot │ │ ├── TriggerBot.cpp │ │ ├── TriggerBot.h │ │ ├── TriggerShoot │ │ │ ├── TriggerShoot.cpp │ │ │ └── TriggerShoot.h │ │ └── TriggerStab │ │ │ ├── TriggerStab.cpp │ │ │ └── TriggerStab.h │ └── Visuals │ │ ├── Chams │ │ ├── Chams.cpp │ │ └── Chams.h │ │ ├── ESP │ │ ├── ESP.cpp │ │ └── ESP.h │ │ ├── Radar │ │ ├── Radar.cpp │ │ └── Radar.h │ │ ├── SpectatorList │ │ ├── SpectatorList.cpp │ │ └── SpectatorList.h │ │ ├── SpyWarning │ │ ├── SpyWarning.cpp │ │ └── SpyWarning.h │ │ ├── Visuals.cpp │ │ └── Visuals.h │ ├── Hooks │ ├── ClientHook │ │ ├── ClientHook.cpp │ │ └── ClientHook.h │ ├── ClientModeHook │ │ ├── ClientModeHook.cpp │ │ └── ClientModeHook.h │ ├── EngineClientHook │ │ ├── EngineClientHook.cpp │ │ └── EngineClientHook.h │ ├── EngineVGuiHook │ │ ├── EngineVGuiHook.cpp │ │ └── EngineVGuiHook.h │ ├── Hooks.cpp │ ├── Hooks.h │ ├── ModelRenderHook │ │ ├── ModelRenderHook.cpp │ │ └── ModelRenderHook.h │ ├── PanelHook │ │ ├── PanelHook.cpp │ │ └── PanelHook.h │ ├── PredictionHook │ │ ├── PredictionHook.cpp │ │ └── PredictionHook.h │ ├── SurfaceHook │ │ ├── SurfaceHook.cpp │ │ └── SurfaceHook.h │ └── WndProcHook │ │ ├── WndProcHook.cpp │ │ └── WndProcHook.h │ ├── SDK │ ├── Includes │ │ ├── Classes.h │ │ ├── Const.h │ │ ├── Enums.h │ │ ├── Includes.h │ │ ├── MD5.cpp │ │ ├── MD5.h │ │ ├── Structs.h │ │ ├── dt_common.h │ │ ├── dt_recv.h │ │ └── icons.h │ ├── Interfaces │ │ ├── BaseClientDLL │ │ │ └── BaseClientDLL.h │ │ ├── ClientDLLSharedAppSystems │ │ │ └── ClientDLLSharedAppSystems.h │ │ ├── ClientEntityList │ │ │ └── ClientEntityList.h │ │ ├── ClientModeShared │ │ │ └── ClientModeShared.h │ │ ├── ConVar │ │ │ ├── ConVar.cpp │ │ │ └── ConVar.h │ │ ├── DebugOverlay │ │ │ └── DebugOverlay.h │ │ ├── EngineClient │ │ │ └── EngineClient.h │ │ ├── EngineTrace │ │ │ └── EngineTrace.h │ │ ├── EngineVGui │ │ │ └── EngineVGui.h │ │ ├── GameEvent │ │ │ └── GameEvent.h │ │ ├── GameMovement │ │ │ └── GameMovement.h │ │ ├── GlobalVarsBase │ │ │ └── GlobalVarsBase.h │ │ ├── Interfaces.cpp │ │ ├── Interfaces.h │ │ ├── Material │ │ │ └── Material.h │ │ ├── ModelInfo │ │ │ └── ModelInfo.h │ │ ├── ModelRender │ │ │ └── ModelRender.h │ │ ├── MoveHelper │ │ │ └── MoveHelper.h │ │ ├── NetChannel │ │ │ ├── NetChannel.cpp │ │ │ └── NetChannel.h │ │ ├── Panel │ │ │ └── Panel.h │ │ ├── Prediction │ │ │ └── Prediction.h │ │ ├── RenderView │ │ │ └── RenderView.h │ │ ├── Steam │ │ │ ├── AppTicketCommon.h │ │ │ ├── AppsCommon.h │ │ │ ├── BillingCommon.h │ │ │ ├── BridgeCommon.h │ │ │ ├── CCallback.h │ │ │ ├── CGameID.h │ │ │ ├── CSteamAPIContext.h │ │ │ ├── CSteamID.h │ │ │ ├── ClientCommon.h │ │ │ ├── ContentServerCommon.h │ │ │ ├── ControllerCommon.h │ │ │ ├── ECurrencyCode.h │ │ │ ├── EResult.h │ │ │ ├── ESteamAppUpdateStatsQueryType.h │ │ │ ├── ESteamBufferMethod.h │ │ │ ├── ESteamError.h │ │ │ ├── ESteamFindFilter.h │ │ │ ├── ESteamNotify.h │ │ │ ├── ESteamPaymentCardType.h │ │ │ ├── ESteamSeekMethod.h │ │ │ ├── ESteamServerType.h │ │ │ ├── ESteamSubscriptionBillingInfoType.h │ │ │ ├── ESteamSubscriptionStatus.h │ │ │ ├── EVoiceResult.h │ │ │ ├── FriendGameInfo.h │ │ │ ├── FriendsCommon.h │ │ │ ├── GameCoordinatorCommon.h │ │ │ ├── GameServerCommon.h │ │ │ ├── GameServerStatsCommon.h │ │ │ ├── GameStatsCommon.h │ │ │ ├── HTTPCommon.h │ │ │ ├── IClientAppManager.h │ │ │ ├── IClientApps.h │ │ │ ├── IClientAudio.h │ │ │ ├── IClientBilling.h │ │ │ ├── IClientConfigStore.h │ │ │ ├── IClientContentServer.h │ │ │ ├── IClientDepotBuilder.h │ │ │ ├── IClientDeviceAuth.h │ │ │ ├── IClientEngine.h │ │ │ ├── IClientFriends.h │ │ │ ├── IClientGameCoordinator.h │ │ │ ├── IClientGameServer.h │ │ │ ├── IClientGameServerStats.h │ │ │ ├── IClientGameStats.h │ │ │ ├── IClientHTTP.h │ │ │ ├── IClientInventory.h │ │ │ ├── IClientMasterServerUpdater.h │ │ │ ├── IClientMatchmaking.h │ │ │ ├── IClientMatchmakingServers.h │ │ │ ├── IClientMusic.h │ │ │ ├── IClientNetworkDeviceManager.h │ │ │ ├── IClientNetworking.h │ │ │ ├── IClientProductBuilder.h │ │ │ ├── IClientRemoteStorage.h │ │ │ ├── IClientScreenshots.h │ │ │ ├── IClientShortcuts.h │ │ │ ├── IClientStreamClient.h │ │ │ ├── IClientStreamLauncher.h │ │ │ ├── IClientUGC.h │ │ │ ├── IClientUnifiedMessages.h │ │ │ ├── IClientUser.h │ │ │ ├── IClientUserStats.h │ │ │ ├── IClientUtils.h │ │ │ ├── ISteam003.h │ │ │ ├── ISteam004.h │ │ │ ├── ISteam005.h │ │ │ ├── ISteam006.h │ │ │ ├── ISteam2Bridge001.h │ │ │ ├── ISteam2Bridge002.h │ │ │ ├── ISteamAppList001.h │ │ │ ├── ISteamAppTicket001.h │ │ │ ├── ISteamApps001.h │ │ │ ├── ISteamApps002.h │ │ │ ├── ISteamApps003.h │ │ │ ├── ISteamApps004.h │ │ │ ├── ISteamApps005.h │ │ │ ├── ISteamApps006.h │ │ │ ├── ISteamApps007.h │ │ │ ├── ISteamBilling001.h │ │ │ ├── ISteamBilling002.h │ │ │ ├── ISteamClient006.h │ │ │ ├── ISteamClient007.h │ │ │ ├── ISteamClient008.h │ │ │ ├── ISteamClient009.h │ │ │ ├── ISteamClient010.h │ │ │ ├── ISteamClient011.h │ │ │ ├── ISteamClient012.h │ │ │ ├── ISteamClient013.h │ │ │ ├── ISteamClient014.h │ │ │ ├── ISteamClient015.h │ │ │ ├── ISteamClient016.h │ │ │ ├── ISteamClient017.h │ │ │ ├── ISteamContentServer001.h │ │ │ ├── ISteamContentServer002.h │ │ │ ├── ISteamController001.h │ │ │ ├── ISteamFriends001.h │ │ │ ├── ISteamFriends002.h │ │ │ ├── ISteamFriends003.h │ │ │ ├── ISteamFriends004.h │ │ │ ├── ISteamFriends005.h │ │ │ ├── ISteamFriends006.h │ │ │ ├── ISteamFriends007.h │ │ │ ├── ISteamFriends008.h │ │ │ ├── ISteamFriends009.h │ │ │ ├── ISteamFriends010.h │ │ │ ├── ISteamFriends011.h │ │ │ ├── ISteamFriends012.h │ │ │ ├── ISteamFriends013.h │ │ │ ├── ISteamFriends014.h │ │ │ ├── ISteamFriends015.h │ │ │ ├── ISteamGameCoordinator001.h │ │ │ ├── ISteamGameServer002.h │ │ │ ├── ISteamGameServer003.h │ │ │ ├── ISteamGameServer004.h │ │ │ ├── ISteamGameServer005.h │ │ │ ├── ISteamGameServer006.h │ │ │ ├── ISteamGameServer007.h │ │ │ ├── ISteamGameServer008.h │ │ │ ├── ISteamGameServer009.h │ │ │ ├── ISteamGameServer010.h │ │ │ ├── ISteamGameServer011.h │ │ │ ├── ISteamGameServer012.h │ │ │ ├── ISteamGameServerStats001.h │ │ │ ├── ISteamGameStats001.h │ │ │ ├── ISteamHTTP001.h │ │ │ ├── ISteamHTTP002.h │ │ │ ├── ISteamInventory001.h │ │ │ ├── ISteamMasterServerUpdater001.h │ │ │ ├── ISteamMatchmaking001.h │ │ │ ├── ISteamMatchmaking002.h │ │ │ ├── ISteamMatchmaking003.h │ │ │ ├── ISteamMatchmaking004.h │ │ │ ├── ISteamMatchmaking005.h │ │ │ ├── ISteamMatchmaking006.h │ │ │ ├── ISteamMatchmaking007.h │ │ │ ├── ISteamMatchmaking008.h │ │ │ ├── ISteamMatchmaking009.h │ │ │ ├── ISteamMatchmakingServers001.h │ │ │ ├── ISteamMatchmakingServers002.h │ │ │ ├── ISteamMusic001.h │ │ │ ├── ISteamNetworking001.h │ │ │ ├── ISteamNetworking002.h │ │ │ ├── ISteamNetworking003.h │ │ │ ├── ISteamNetworking004.h │ │ │ ├── ISteamNetworking005.h │ │ │ ├── ISteamOAuth001.h │ │ │ ├── ISteamRemoteStorage001.h │ │ │ ├── ISteamRemoteStorage002.h │ │ │ ├── ISteamRemoteStorage003.h │ │ │ ├── ISteamRemoteStorage004.h │ │ │ ├── ISteamRemoteStorage005.h │ │ │ ├── ISteamRemoteStorage006.h │ │ │ ├── ISteamRemoteStorage007.h │ │ │ ├── ISteamRemoteStorage008.h │ │ │ ├── ISteamRemoteStorage009.h │ │ │ ├── ISteamRemoteStorage010.h │ │ │ ├── ISteamRemoteStorage011.h │ │ │ ├── ISteamRemoteStorage012.h │ │ │ ├── ISteamScreenshots001.h │ │ │ ├── ISteamScreenshots002.h │ │ │ ├── ISteamStreamLauncher001.h │ │ │ ├── ISteamUGC001.h │ │ │ ├── ISteamUGC002.h │ │ │ ├── ISteamUGC003.h │ │ │ ├── ISteamUnifiedMessages001.h │ │ │ ├── ISteamUser004.h │ │ │ ├── ISteamUser005.h │ │ │ ├── ISteamUser006.h │ │ │ ├── ISteamUser007.h │ │ │ ├── ISteamUser008.h │ │ │ ├── ISteamUser009.h │ │ │ ├── ISteamUser010.h │ │ │ ├── ISteamUser011.h │ │ │ ├── ISteamUser012.h │ │ │ ├── ISteamUser013.h │ │ │ ├── ISteamUser014.h │ │ │ ├── ISteamUser015.h │ │ │ ├── ISteamUser016.h │ │ │ ├── ISteamUser017.h │ │ │ ├── ISteamUserStats001.h │ │ │ ├── ISteamUserStats002.h │ │ │ ├── ISteamUserStats003.h │ │ │ ├── ISteamUserStats004.h │ │ │ ├── ISteamUserStats005.h │ │ │ ├── ISteamUserStats006.h │ │ │ ├── ISteamUserStats007.h │ │ │ ├── ISteamUserStats008.h │ │ │ ├── ISteamUserStats009.h │ │ │ ├── ISteamUserStats010.h │ │ │ ├── ISteamUserStats011.h │ │ │ ├── ISteamUtils001.h │ │ │ ├── ISteamUtils002.h │ │ │ ├── ISteamUtils003.h │ │ │ ├── ISteamUtils004.h │ │ │ ├── ISteamUtils005.h │ │ │ ├── ISteamUtils006.h │ │ │ ├── ISteamUtils007.h │ │ │ ├── Interface_OSW.h │ │ │ ├── InventoryCommon.h │ │ │ ├── MasterServerUpdaterCommon.h │ │ │ ├── MatchMakingKeyValuePair.h │ │ │ ├── MatchmakingCommon.h │ │ │ ├── MatchmakingServersCommon.h │ │ │ ├── MusicCommon.h │ │ │ ├── NetworkingCommon.h │ │ │ ├── OAuthCommon.h │ │ │ ├── POSIXLibrary.h │ │ │ ├── RemoteStorageCommon.h │ │ │ ├── ScreenshotsCommon.h │ │ │ ├── Steam.h │ │ │ ├── SteamAPI.h │ │ │ ├── SteamSalt.h │ │ │ ├── SteamTypes.h │ │ │ ├── Steamclient.h │ │ │ ├── SteamclientAPI.h │ │ │ ├── Steamworks.h │ │ │ ├── StreamLauncherCommon.h │ │ │ ├── TSteamApp.h │ │ │ ├── TSteamAppDependencyInfo.h │ │ │ ├── TSteamAppLaunchOption.h │ │ │ ├── TSteamAppStats.h │ │ │ ├── TSteamAppVersion.h │ │ │ ├── TSteamDiscountQualifier.h │ │ │ ├── TSteamElemInfo.h │ │ │ ├── TSteamError.h │ │ │ ├── TSteamExternalBillingInfo.h │ │ │ ├── TSteamGlobalUserID.h │ │ │ ├── TSteamOfflineStatus.h │ │ │ ├── TSteamPaymentCardInfo.h │ │ │ ├── TSteamPaymentCardReceiptInfo.h │ │ │ ├── TSteamPrepurchaseInfo.h │ │ │ ├── TSteamPrepurchaseReceiptInfo.h │ │ │ ├── TSteamProgress.h │ │ │ ├── TSteamSplitLocalUserID.h │ │ │ ├── TSteamSubscription.h │ │ │ ├── TSteamSubscriptionBillingInfo.h │ │ │ ├── TSteamSubscriptionDiscount.h │ │ │ ├── TSteamSubscriptionReceipt.h │ │ │ ├── TSteamSubscriptionStats.h │ │ │ ├── TSteamUpdateStats.h │ │ │ ├── UGCCommon.h │ │ │ ├── UnifiedMessagesCommon.h │ │ │ ├── UserCommon.h │ │ │ ├── UserStatsCommon.h │ │ │ ├── UtilsCommon.h │ │ │ ├── Win32Library.h │ │ │ ├── gameserveritem.h │ │ │ └── servernetadr.h │ │ ├── Surface │ │ │ └── Surface.h │ │ └── ViewRender │ │ │ └── ViewRender.h │ ├── Main │ │ ├── BaseCombatWeapon │ │ │ ├── BaseCombatWeapon.cpp │ │ │ └── BaseCombatWeapon.h │ │ ├── BaseEntity │ │ │ ├── AnimState │ │ │ │ ├── Activity.h │ │ │ │ ├── BaseAnimatingOverlay.h │ │ │ │ ├── MultiPlayerAnimState.h │ │ │ │ └── TFPlayerAnimState.h │ │ │ ├── BaseEntity.cpp │ │ │ └── BaseEntity.h │ │ ├── BaseObject │ │ │ ├── BaseObject.cpp │ │ │ └── BaseObject.h │ │ ├── ConVars │ │ │ ├── ConVars.cpp │ │ │ └── ConVars.h │ │ ├── DrawUtils │ │ │ ├── DrawUtils.cpp │ │ │ └── DrawUtils.h │ │ ├── EntityCache │ │ │ ├── EntityCache.cpp │ │ │ └── EntityCache.h │ │ ├── GlobalInfo │ │ │ └── GlobalInfo.h │ │ └── VisCheck │ │ │ ├── VisCheck.cpp │ │ │ └── VisCheck.h │ ├── NetVars │ │ ├── NetVars.cpp │ │ └── NetVars.h │ └── SDK.h │ └── Utils │ ├── Color │ └── Color.h │ ├── Hash │ ├── Hash.cpp │ └── Hash.h │ ├── Interface │ ├── Interface.cpp │ └── Interface.h │ ├── Math │ └── Math.h │ ├── Pattern │ ├── Pattern.cpp │ └── Pattern.h │ ├── Utils.h │ ├── UtlVector │ └── UtlVector.h │ ├── VFunc │ └── VFunc.h │ └── VMT │ └── VMT.h └── README.md /Project IC.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29905.134 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IC", "Project IC\Project IC.vcxproj", "{B0E892F3-31FF-4AC4-9D80-C58D98FD5E3F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x86 = Debug|x86 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B0E892F3-31FF-4AC4-9D80-C58D98FD5E3F}.Debug|x86.ActiveCfg = Debug|Win32 15 | {B0E892F3-31FF-4AC4-9D80-C58D98FD5E3F}.Debug|x86.Build.0 = Debug|Win32 16 | {B0E892F3-31FF-4AC4-9D80-C58D98FD5E3F}.Release|x86.ActiveCfg = Release|Win32 17 | {B0E892F3-31FF-4AC4-9D80-C58D98FD5E3F}.Release|x86.Build.0 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {E75861D4-4DA3-4D9A-A9E0-213AA9064809} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Project IC/Project IC.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Project IC/Project IC/DLLMain.cpp: -------------------------------------------------------------------------------- 1 | #include "Hooks/Hooks.h" 2 | 3 | #include "Features/Visuals/Chams/Chams.h" 4 | 5 | DWORD WINAPI MainThread(LPVOID lpParam) 6 | { 7 | gSteam.Init(); 8 | gInts.Init(); 9 | gNetVars.Init(); 10 | gHooks.Init(); 11 | gConVars.Init(); 12 | gChams.InitMaterials(); 13 | gDraw.InitFonts 14 | ({ 15 | //FONT_ESP 16 | { 0x0, "Tahoma", 12, 0, FONTFLAG_NONE }, 17 | //FONT_ESP_OUTLINED 18 | { 0x0, "Tahoma", 12, 0, FONTFLAG_OUTLINE }, 19 | 20 | //FONT_ESP_NAME 21 | { 0x0, "Tahoma", 13, 0, FONTFLAG_NONE }, 22 | //FONT_ESP_NAME_OUTLINED 23 | { 0x0, "Tahoma", 13, 0, FONTFLAG_OUTLINE }, 24 | 25 | //FONT_ESP_COND 26 | { 0x0, "Consolas", 10, 0, FONTFLAG_NONE }, 27 | //FONT_ESP_COND_OUTLINED 28 | { 0x0, "Consolas", 10, 0, FONTFLAG_OUTLINE }, 29 | 30 | //FONT_ESP_PICKUPS 31 | { 0x0, "Tahoma", 11, 0, FONTFLAG_NONE }, 32 | //FONT_ESP_PICKUPS_OUTLINED 33 | { 0x0, "Tahoma", 11, 0, FONTFLAG_OUTLINE }, 34 | 35 | //FONT_DEBUG 36 | { 0x0, "Arial", 16, 0, FONTFLAG_OUTLINE }, 37 | //FONT_MENU 38 | { 0x0, "Segoe UI", 13, 0, FONTFLAG_ANTIALIAS }, 39 | //FONT_MENU_NAME 40 | { 0x0, "Segoe UI", 20, 0, FONTFLAG_ANTIALIAS } 41 | }); 42 | 43 | //CSteamID csLocal = gSteam.User->GetSteamID(); 44 | //csLocal.Render() = Steam ID 45 | //csLocal.SteamRender() = Steam ID3 46 | 47 | //Stuck at this, as long as "panic" key is not pressed. 48 | while (!(GetAsyncKeyState(VK_F11) & 0x8000)) 49 | std::this_thread::sleep_for(std::chrono::seconds(1)); 50 | 51 | //releasing them in DLL DETACH just crashed the game on a normal exit 52 | //when our dll unloads after the game and baseclass is inaccessible 53 | gHooks.Release(); 54 | FreeLibraryAndExitThread(static_cast(lpParam), EXIT_SUCCESS); 55 | } 56 | 57 | BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 58 | { 59 | switch (fdwReason) 60 | { 61 | case DLL_PROCESS_ATTACH: { 62 | if (HANDLE hMain = CreateThread(0, 0, MainThread, hinstDLL, 0, 0)) CloseHandle(hMain); 63 | break; 64 | } 65 | 66 | default: break; 67 | } 68 | 69 | return TRUE; 70 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Menu/Input/Input.cpp: -------------------------------------------------------------------------------- 1 | #include "Input.h" 2 | 3 | void C_Input::Update() 4 | { 5 | for (auto &Key : gInput.m_Keyboard) { 6 | if (Key.second != EKeyState::NONE) 7 | Key.second = EKeyState::HELD; 8 | } 9 | 10 | if (gInput.m_RMouse != EKeyState::NONE) 11 | gInput.m_RMouse = EKeyState::HELD; 12 | 13 | if (gInput.m_LMouse != EKeyState::NONE) 14 | gInput.m_LMouse = EKeyState::HELD; 15 | 16 | if (gInput.m_MMouse != EKeyState::NONE) 17 | gInput.m_MMouse = EKeyState::HELD; 18 | } 19 | 20 | EKeyState C_Input::GetKey(int key) 21 | { 22 | return m_Keyboard[key]; 23 | } 24 | 25 | EKeyState C_Input::GetMouse(int key) 26 | { 27 | switch (key) 28 | { 29 | case VK_RBUTTON: { return m_RMouse; } 30 | case VK_LBUTTON: { return m_LMouse; } 31 | case VK_MBUTTON: { return m_MMouse; } 32 | } 33 | 34 | return {}; 35 | } 36 | 37 | C_Input gInput; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Menu/Input/Input.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/Includes/Includes.h" 3 | 4 | enum struct EKeyState { 5 | NONE, 6 | PRESSED, 7 | HELD 8 | }; 9 | 10 | enum struct EScrollWheelState { 11 | NONE, 12 | UP, 13 | DOWN 14 | }; 15 | 16 | class C_Input 17 | { 18 | public: 19 | std::map m_Keyboard = {}; 20 | EKeyState m_RMouse = {}; 21 | EKeyState m_LMouse = {}; 22 | EKeyState m_MMouse = {}; 23 | EScrollWheelState m_Wheel = {}; 24 | 25 | void Update(); 26 | 27 | EKeyState GetKey(int key); 28 | EKeyState GetMouse(int key); 29 | }; 30 | 31 | extern C_Input gInput; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Menu/Menu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | enum struct EItemType { 5 | DEFAULT, 6 | INT, 7 | FLOAT, 8 | BOOL 9 | }; 10 | 11 | class CItemBase 12 | { 13 | public: 14 | std::string m_Name = {}; 15 | EItemType e_Type = EItemType::DEFAULT; 16 | CItemBase(EItemType type, const std::string &name) : e_Type(type), m_Name(name) {}; 17 | }; 18 | 19 | class CItemInt : public CItemBase 20 | { 21 | public: 22 | int *m_Ptr = nullptr; 23 | std::vector> m_Aliases = {}; 24 | int m_Min = std::numeric_limits::min(); 25 | int m_Max = std::numeric_limits::max(); 26 | 27 | int m_AliasIdx = 0; 28 | 29 | CItemInt(const std::string &name, 30 | int *ptr, 31 | std::vector> aliases = {}, 32 | int min = std::numeric_limits::min(), 33 | int max = std::numeric_limits::max()) 34 | : CItemBase(EItemType::INT, name), m_Ptr(ptr), m_Aliases(aliases), m_Min(min), m_Max(max) 35 | { 36 | if (!m_Aliases.empty()) 37 | { 38 | bool Found = false; 39 | 40 | for (const auto &Alias : this->m_Aliases) 41 | { 42 | if (*reinterpret_cast(this->m_Ptr) == Alias.first) { 43 | this->m_AliasIdx = Alias.first; 44 | Found = true; 45 | break; 46 | } 47 | } 48 | 49 | if (!Found) 50 | *reinterpret_cast(this->m_Ptr) = this->m_Aliases.at(0).first; 51 | } 52 | } 53 | }; 54 | 55 | class CItemFloat : public CItemBase 56 | { 57 | public: 58 | float *m_Ptr = nullptr; 59 | float m_Step = 1.0f; 60 | float m_Min = std::numeric_limits::min(); 61 | float m_Max = std::numeric_limits::max(); 62 | 63 | CItemFloat(const std::string &name, 64 | float *ptr, 65 | float step = 1.0f, 66 | float min = std::numeric_limits::min(), 67 | float max = std::numeric_limits::max()) 68 | : CItemBase(EItemType::FLOAT, name), m_Ptr(ptr), m_Step(step), m_Min(min), m_Max(max) {} 69 | }; 70 | 71 | class CItemBool : public CItemBase 72 | { 73 | public: 74 | bool *m_Ptr = nullptr; 75 | CItemBool(const std::string &name, bool *ptr) : CItemBase(EItemType::BOOL, name), m_Ptr(ptr) {} 76 | }; 77 | 78 | class CItemGroup 79 | { 80 | public: 81 | std::string m_Name = {}; 82 | std::vector m_Items = {}; 83 | bool m_Open = true; 84 | }; 85 | 86 | class CItemList 87 | { 88 | public: 89 | std::string m_Name = {}; 90 | std::vector m_ItemGroups = {}; 91 | }; 92 | 93 | class CMenu 94 | { 95 | private: 96 | std::vector m_ItemLists = {}; 97 | void CreateLists(); 98 | 99 | public: 100 | bool m_Open = false; 101 | bool m_OnAimbotFOV = false; 102 | 103 | ~CMenu(); 104 | void Run(); 105 | }; 106 | 107 | extern CMenu gMenu; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Misc/Misc.cpp: -------------------------------------------------------------------------------- 1 | #include "Misc.h" 2 | 3 | void C_Misc::DoBunnyhop(C_UserCmd *pCmd) 4 | { 5 | if (auto pLocal{ gEntCache.pLocal }) 6 | { 7 | if (!bBunnyhop || 8 | !pLocal->IsAlive() || 9 | pLocal->IsSwimming()) 10 | return; 11 | 12 | static bool bJumpState = false; 13 | 14 | if (pCmd->buttons & IN_JUMP) 15 | { 16 | if (!bJumpState && !pLocal->IsOnGround()) 17 | pCmd->buttons &= ~IN_JUMP; 18 | 19 | else if (bJumpState) 20 | bJumpState = false; 21 | } 22 | 23 | else if (!bJumpState) 24 | bJumpState = true; 25 | } 26 | } 27 | 28 | void C_Misc::DoStrafe(C_UserCmd* pCmd) 29 | { 30 | //I hope this aint too complicated 31 | if (auto pLocal{ gEntCache.pLocal }) 32 | { 33 | if (!bAutoStrafe || 34 | !pLocal->IsAlive() || 35 | pLocal->IsSwimming() || 36 | pLocal->IsOnGround()) 37 | return; 38 | 39 | if (pCmd->mousedx > 1 || pCmd->mousedx < -1) 40 | pCmd->sidemove = pCmd->mousedx > 1 ? 450.f : -450.f; 41 | } 42 | } 43 | 44 | //Very simple, comparing if we are on ground currently and predicted. 45 | void C_Misc::DoEdgeJump(C_UserCmd* pCmd, int nOldFlags) 46 | { 47 | if (auto pLocal{ gEntCache.pLocal }) 48 | { 49 | if (!bEdgeJump || !pLocal->IsAlive() || pLocal->IsSwimming()) 50 | return; 51 | 52 | if (!(pLocal->GetFlags() & FL_ONGROUND) && nOldFlags & FL_ONGROUND) 53 | pCmd->buttons |= IN_JUMP; 54 | } 55 | } 56 | 57 | C_Misc gMisc; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Misc/Misc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | class C_Misc 5 | { 6 | public: 7 | bool bBunnyhop = true; 8 | bool bEdgeJump = false; 9 | bool bAutoStrafe = false; 10 | 11 | void DoBunnyhop(C_UserCmd *pCmd); 12 | void DoEdgeJump(C_UserCmd* pCmd, int nOldFlags); 13 | void DoStrafe(C_UserCmd* pCmd); 14 | }; 15 | 16 | extern C_Misc gMisc; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Prediction/Prediction.cpp: -------------------------------------------------------------------------------- 1 | #include "Prediction.h" 2 | 3 | int C_LocalPrediction::GetTickbase(C_UserCmd *pCmd, C_BaseEntity *pLocal) 4 | { 5 | static int nTick = 0; 6 | static C_UserCmd *pLastCmd = nullptr; 7 | 8 | if (pCmd) 9 | { 10 | if (!pLastCmd || pLastCmd->hasbeenpredicted) 11 | nTick = pLocal->GetTickBase(); 12 | 13 | else nTick++; 14 | 15 | pLastCmd = pCmd; 16 | } 17 | 18 | return nTick; 19 | } 20 | 21 | void C_LocalPrediction::Start(C_UserCmd *pCmd) 22 | { 23 | if (!gInts.MoveHelper || !gGlobalInfo.m_bPPUCP) 24 | return; 25 | 26 | C_BaseEntity *pLocal = gEntCache.pLocal; 27 | 28 | if (pLocal && pLocal->IsAlive()) 29 | { 30 | pLocal->SetCurrentCmd(pCmd); 31 | 32 | *gInts.RandomSeed = MD5_PseudoRandom(pCmd->command_number) & std::numeric_limits::max(); 33 | 34 | fOldCurrentTime = gInts.GlobalVars->curtime; 35 | fOldFrameTime = gInts.GlobalVars->frametime; 36 | nOldTickCount = gInts.GlobalVars->tickcount; 37 | nOldFlags = pLocal->GetFlags(); 38 | 39 | const int nOldTickBase = pLocal->GetTickBase(); 40 | const bool bOldIsFirstPrediction = gInts.Prediction->m_bFirstTimePredicted; 41 | const bool bOldInPrediction = gInts.Prediction->m_bInPrediction; 42 | 43 | gInts.GlobalVars->curtime = TICKS_TO_TIME(GetTickbase(pCmd, pLocal)); 44 | gInts.GlobalVars->frametime = (gInts.Prediction->m_bEnginePaused ? 0.0f : TICK_INTERVAL); 45 | gInts.GlobalVars->tickcount = GetTickbase(pCmd, pLocal); 46 | 47 | gInts.Prediction->m_bFirstTimePredicted = false; 48 | gInts.Prediction->m_bInPrediction = true; 49 | 50 | //skipped buttons 51 | 52 | //TODO: CheckMovingGround(pLocal, gInts.GlobalVars->frametime); 53 | 54 | gInts.Prediction->SetLocalViewAngles(pCmd->viewangles); 55 | 56 | gInts.MoveHelper->SetHost(pLocal); 57 | 58 | gInts.Prediction->SetupMove(pLocal, pCmd, gInts.MoveHelper, &moveData); 59 | gInts.GameMovement->ProcessMovement(pLocal, &moveData); 60 | gInts.Prediction->FinishMove(pLocal, pCmd, &moveData); 61 | 62 | pLocal->SetTickBase(nOldTickBase); 63 | 64 | gInts.Prediction->m_bInPrediction = bOldInPrediction; 65 | gInts.Prediction->m_bFirstTimePredicted = bOldIsFirstPrediction; 66 | } 67 | } 68 | 69 | void C_LocalPrediction::End(C_UserCmd *pCmd) 70 | { 71 | if (!gInts.MoveHelper || !gGlobalInfo.m_bPPUCP) 72 | return; 73 | 74 | C_BaseEntity *pLocal = gEntCache.pLocal; 75 | 76 | if (pLocal && pLocal->IsAlive()) 77 | { 78 | gInts.MoveHelper->SetHost(nullptr); 79 | 80 | gInts.GlobalVars->curtime = fOldCurrentTime; 81 | gInts.GlobalVars->frametime = fOldFrameTime; 82 | gInts.GlobalVars->tickcount = nOldTickCount; 83 | 84 | pLocal->SetCurrentCmd(nullptr); 85 | 86 | *gInts.RandomSeed = -1; 87 | } 88 | } 89 | 90 | C_LocalPrediction gPrediction; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Prediction/Prediction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | class C_LocalPrediction 5 | { 6 | private: 7 | C_MoveData moveData = { }; 8 | float fOldCurrentTime = 0.0f; 9 | float fOldFrameTime = 0.0f; 10 | int nOldTickCount = 0; 11 | 12 | private: 13 | int GetTickbase(C_UserCmd *pCmd, C_BaseEntity *pLocal); 14 | 15 | public: 16 | void Start(C_UserCmd *pCmd); 17 | void End(C_UserCmd *pCmd); 18 | 19 | int nOldFlags = 0; 20 | }; 21 | 22 | extern C_LocalPrediction gPrediction; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Triggerbot/TriggerBot.cpp: -------------------------------------------------------------------------------- 1 | #include "TriggerBot.h" 2 | 3 | bool C_TriggerBot::IsTriggerKeyDown() 4 | { 5 | switch (nTriggerKey) 6 | { 7 | case 0: { 8 | return true; 9 | } 10 | case 1: { 11 | return (GetAsyncKeyState(VK_SHIFT) & 0x8000); 12 | } 13 | case 2: { 14 | return (GetAsyncKeyState(VK_XBUTTON1) & 0x8000); 15 | } 16 | case 3: { 17 | return (GetAsyncKeyState(VK_XBUTTON2) & 0x8000); 18 | } 19 | 20 | //... 21 | 22 | default: { 23 | return false; 24 | } 25 | } 26 | 27 | return false; 28 | } 29 | 30 | void C_TriggerBot::Run(C_UserCmd *pCmd) 31 | { 32 | if (!bActive || !IsTriggerKeyDown()) 33 | return; 34 | 35 | gTriggerShoot.Run(pCmd); 36 | gTriggerStab.Run(pCmd); 37 | } 38 | 39 | C_TriggerBot gTriggerBot; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Triggerbot/TriggerBot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "TriggerShoot/TriggerShoot.h" 3 | #include "TriggerStab/TriggerStab.h" 4 | 5 | class C_TriggerBot 6 | { 7 | private: 8 | bool IsTriggerKeyDown(); 9 | 10 | public: 11 | bool bActive = false; 12 | int nTriggerKey = 0; //0 always 1 lshift 2 xbutton1 3 xbutton2 13 | 14 | void Run(C_UserCmd *pCmd); 15 | }; 16 | 17 | extern C_TriggerBot gTriggerBot; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Triggerbot/TriggerShoot/TriggerShoot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/SDK.h" 3 | 4 | class C_TriggerShoot 5 | { 6 | private: 7 | bool ShouldRun(C_BaseEntity *pLocal, C_BaseCombatWeapon *pLocalWeapon); 8 | bool IsTraceEntityValid(C_BaseEntity *pLocal, C_BaseEntity *pEntity); 9 | 10 | public: 11 | bool bActive = false; 12 | int nHitbox = 0; //0 all 1 head only 13 | float fHeadScale = 0.9f; 14 | bool bIgnoreCloaked = false; 15 | 16 | void Run(C_UserCmd *pCmd); 17 | }; 18 | 19 | extern C_TriggerShoot gTriggerShoot; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Triggerbot/TriggerStab/TriggerStab.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/SDK.h" 3 | 4 | class C_TriggerStab 5 | { 6 | private: 7 | bool ShouldRun(C_BaseEntity *pLocal, C_BaseCombatWeapon *pLocalWeapon); 8 | bool IsEntityValid(C_BaseEntity *pLocal, C_BaseEntity *pEntity); 9 | bool CanBackstab(const Vec3 &vecSrc, const Vec3 &vecDst, Vec3 vecWSCDelta); 10 | bool TraceMelee(C_BaseEntity *pLocal, C_BaseCombatWeapon *pLocalWeapon, const Vec3 &vecViewAngles, C_BaseEntity **pEntityOut = nullptr); 11 | 12 | public: 13 | bool bActive = false; 14 | bool bRage = false; 15 | 16 | void Run(C_UserCmd *pCmd); 17 | }; 18 | 19 | extern C_TriggerStab gTriggerStab; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/Chams/Chams.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../../SDK/SDK.h" 4 | 5 | class C_Chams 6 | { 7 | public: 8 | void Paint(const DrawModelState_t& pState, const ModelRenderInfo_t& pInfo, const char* szModel); 9 | void InitMaterials(); 10 | 11 | bool bRemoveHands = false; 12 | int nNoTeammatePlayers = 2; //0 off 1 all 2 keep friends 13 | int nNoCloakedPlayers = 0; //0 off 1 all 2 enemies only 14 | int nHandMat = 0; //0 off ... 15 | int nPlayerMat = 0; //0 off ... 16 | 17 | private: 18 | IMaterial* GetMat(int nIndex); 19 | 20 | bool ShouldRun(); 21 | Color_t GetDrawColor(C_BaseEntity* pLocal, C_BaseEntity* pEntity, bool bIsFriend); 22 | 23 | const Color_t TargetColor = { 153, 128, 250, 255 }; 24 | const Color_t InvulnColor = { 59, 59, 152, 255 }; 25 | const Color_t CloakColor = { 165, 177, 194, 255 }; 26 | const Color_t FriendColor = { 152, 255, 152, 255 }; 27 | 28 | private: //Some mats I was testing dont look here 29 | IMaterial* m_matGlow = nullptr; 30 | IMaterial* m_matGold = nullptr; 31 | IMaterial* m_matIce = nullptr; 32 | IMaterial* m_matHolo = nullptr; 33 | IMaterial* m_matRobo = nullptr; 34 | IMaterial* m_matGoldW = nullptr; 35 | IMaterial* m_matBlur = nullptr; 36 | IMaterial* m_matMotion = nullptr; 37 | }; 38 | 39 | extern C_Chams gChams; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/ESP/ESP.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/SDK.h" 3 | 4 | class C_ESP 5 | { 6 | public: 7 | bool bActive = true; 8 | int nOutline = 1; //0 off 1 text only 2 all 9 | 10 | bool bPlayers = true; 11 | int nNoTeammatePlayers = 2; //0 off 1 all 2 keep friends 12 | int nNoCloakedPlayers = 0; //0 off 1 all 2 enemies only 13 | bool bPlayerName = true; 14 | bool bPlayerClass = true; 15 | bool bPlayerHealth = false; 16 | bool bPlayerCond = true; 17 | bool bPlayerHealthBar = true; 18 | int nPlayerBox = 2; //0 off 1 simple 2 corners 19 | 20 | bool bBuildings = true; 21 | bool bNoTeammateBuildings = true; 22 | bool bBuildingName = true; 23 | bool bBuildingHealth = false; 24 | bool bBuildingLevel = true; 25 | bool bBuildingCond = true; 26 | bool bBuildingHealthBar = true; 27 | int nBuildingBox = 2; //0 off 1 simple 2 corners 28 | 29 | bool bPickups = true; 30 | bool bHealth = true; 31 | bool bAmmo = true; 32 | 33 | private: 34 | std::wstring ConvertUtf8ToWide(const std::string &str); 35 | std::string szGetFlag(int nHash); 36 | 37 | private: 38 | bool ShouldRun(); 39 | bool GetDrawBounds(C_BaseEntity *pEntity, int &x, int &y, int &w, int &h); 40 | Color_t GetDrawColor(C_BaseEntity *pLocal, C_BaseEntity *pEntity); 41 | 42 | public: 43 | void Run(); 44 | 45 | private: 46 | Color_t OutlineColor = { 0, 0, 0, 180 }; 47 | Color_t CondColor = { 254, 202, 87, 255 }; 48 | Color_t TargetColor = { 153, 128, 250, 255 }; 49 | Color_t InvulnColor = { 59, 59, 152, 255 }; 50 | Color_t CloakColor = { 165, 177, 194, 255 }; 51 | Color_t FriendColor = { 152, 255, 152, 255 }; 52 | Color_t OverhealColor = { 84, 160, 255, 255 }; 53 | 54 | Color_t HealthColor = { 0, 230, 64, 255 }; 55 | Color_t AmmoColor = { 191, 191, 191, 255 }; 56 | }; 57 | 58 | extern C_ESP gESP; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/Radar/Radar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../../SDK/SDK.h" 4 | 5 | struct RadarInfo_t 6 | { 7 | int m_nTeam; 8 | int m_nClass; 9 | int m_nHealth; 10 | int m_nMaxHealth; 11 | int m_nTexture; 12 | float m_flDistance; 13 | bool m_bIsFriend; 14 | Vec3 m_vOrigin; 15 | Color_t m_clrColor; 16 | Color_t m_clrHealth; 17 | }; 18 | 19 | class C_Radar 20 | { 21 | public: 22 | void Paint(); 23 | 24 | bool bActive = false; 25 | int nNoTeammatePlayers = 2; //0 off 1 all 2 keep friends 26 | int nNoCloakedPlayers = 0; //0 off 1 all 2 enemies only 27 | float flRadarSize = 90; 28 | float flRange = 2000.0f; 29 | 30 | private: 31 | void Drag(int& x, int& y, int w, int h); 32 | bool ShouldRun(); 33 | bool GetPlayers(C_BaseEntity* pLocal, Vec3 vLocal); 34 | 35 | Color_t GetDrawColor(C_BaseEntity* pLocal, C_BaseEntity* pEntity, bool bIsFriend); 36 | 37 | const Color_t OutlineColor = { 0, 0, 0, 180 }; 38 | const Color_t CondColor = { 254, 202, 87, 255 }; 39 | const Color_t TargetColor = { 153, 128, 250, 255 }; 40 | const Color_t InvulnColor = { 59, 59, 152, 255 }; 41 | const Color_t CloakColor = { 165, 177, 194, 255 }; 42 | const Color_t FriendColor = { 152, 255, 152, 255 }; 43 | const Color_t OverhealColor = { 84, 160, 255, 255 }; 44 | 45 | std::vector m_vecInfo; 46 | }; 47 | 48 | extern C_Radar gRadar; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/SpectatorList/SpectatorList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/SDK.h" 3 | 4 | class C_SpectatorList 5 | { 6 | private: 7 | std::wstring ConvertUtf8ToWide(const std::string &str); 8 | 9 | private: 10 | struct Spectator_t 11 | { 12 | std::string sName = ""; 13 | std::string sMode = ""; 14 | }; 15 | 16 | std::vector Spectators; 17 | 18 | bool GetSpectators(C_BaseEntity *pLocal); 19 | 20 | private: 21 | bool ShouldRun(C_BaseEntity *pLocal); 22 | 23 | public: 24 | bool bActive = true; 25 | 26 | void Run(); 27 | }; 28 | 29 | extern C_SpectatorList gSpectatorList; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/SpyWarning/SpyWarning.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../../SDK/SDK.h" 3 | 4 | class C_SpyWarning 5 | { 6 | private: 7 | bool ShouldRun(C_BaseEntity *pLocal); 8 | bool IsEntityValid(C_BaseEntity *pEntity); 9 | bool CanBackstab(const Vec3 &vecSrc, const Vec3 &vecDst, Vec3 vecWSCDelta); 10 | void DrawArrowTo(const Vec3 &vecFromPos, const Vec3 &vecToPos); 11 | 12 | std::vector Spies; 13 | 14 | public: 15 | bool bActive = true; 16 | void Run(); 17 | }; 18 | 19 | extern C_SpyWarning gSpyWarning; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/Visuals.cpp: -------------------------------------------------------------------------------- 1 | #include "Visuals.h" 2 | #include "../Menu/Menu.h" 3 | 4 | bool C_Visuals::DoRemoveScope(int iCurPanel) 5 | { 6 | if (!bNoScope) return false; 7 | return iCurPanel == Hash::HudScope; 8 | } 9 | 10 | void C_Visuals::DoFov(C_ViewSetup *pViewSetup) 11 | { 12 | C_BaseEntity *pLocal = gEntCache.pLocal; 13 | 14 | if (pLocal && pViewSetup) 15 | { 16 | if (pLocal->GetObserverMode() == OBS_MODE_FIRSTPERSON) 17 | return; 18 | 19 | if (!bNoZoom && pLocal->IsScoped()) 20 | return; 21 | 22 | pViewSetup->fov = nCustomFov; 23 | 24 | if (pLocal->IsAlive()) 25 | pLocal->SetFov(nCustomFov); 26 | } 27 | } 28 | 29 | C_Visuals gVisuals; -------------------------------------------------------------------------------- /Project IC/Project IC/Features/Visuals/Visuals.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | class C_Visuals 5 | { 6 | public: 7 | bool bNoZoom = true; 8 | bool bNoScope = true; 9 | float nCustomFov = 110; 10 | 11 | bool DoRemoveScope(int iCurPanel); 12 | void DoFov(C_ViewSetup *pViewSetup); 13 | }; 14 | 15 | extern C_Visuals gVisuals; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/ClientHook/ClientHook.cpp: -------------------------------------------------------------------------------- 1 | #include "ClientHook.h" 2 | 3 | void __stdcall ClientHook::PreEntity::Hook(char const *szMapName) 4 | { 5 | Table.Original(index)(gInts.Client, szMapName); 6 | 7 | //... 8 | } 9 | 10 | void __stdcall ClientHook::PostEntity::Hook() 11 | { 12 | Table.Original(index)(gInts.Client); 13 | 14 | //... 15 | } 16 | 17 | void __stdcall ClientHook::ShutDown::Hook() 18 | { 19 | Table.Original(index)(gInts.Client); 20 | 21 | gEntCache.Clear(); 22 | } 23 | 24 | void __stdcall ClientHook::FrameStageNotify::Hook(ClientFrameStage_t FrameStage) 25 | { 26 | Table.Original(index)(gInts.Client, FrameStage); 27 | 28 | switch (FrameStage) 29 | { 30 | case ClientFrameStage_t::FRAME_NET_UPDATE_START: 31 | { 32 | gEntCache.Clear(); 33 | break; 34 | } 35 | 36 | case ClientFrameStage_t::FRAME_NET_UPDATE_END: 37 | { 38 | gEntCache.Fill(); 39 | break; 40 | } 41 | 42 | case ClientFrameStage_t::FRAME_RENDER_START: 43 | { 44 | 45 | break; 46 | } 47 | 48 | default: break; 49 | } 50 | } 51 | 52 | VMT::Table ClientHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/ClientHook/ClientHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace ClientHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace PreEntity 9 | { 10 | const int index = 5; 11 | using fn = void(__thiscall *)(C_BaseClientDLL *, char const *); 12 | void __stdcall Hook(char const *szMapName); 13 | } 14 | 15 | namespace PostEntity 16 | { 17 | const int index = 6; 18 | using fn = void(__thiscall *)(C_BaseClientDLL *); 19 | void __stdcall Hook(); 20 | } 21 | 22 | namespace ShutDown 23 | { 24 | const int index = 7; 25 | using fn = void(__thiscall *)(C_BaseClientDLL *); 26 | void __stdcall Hook(); 27 | } 28 | 29 | namespace FrameStageNotify 30 | { 31 | const int index = 35; 32 | using fn = void(__thiscall *)(C_BaseClientDLL *, ClientFrameStage_t); 33 | void __stdcall Hook(ClientFrameStage_t FrameStage); 34 | } 35 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/ClientModeHook/ClientModeHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace ClientModeHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace OverrideView 9 | { 10 | const int index = 16; 11 | using fn = void(__thiscall *)(C_ClientModeShared *, C_ViewSetup *); 12 | void __stdcall Hook(C_ViewSetup *pView); 13 | } 14 | 15 | namespace ShouldDrawViewModel 16 | { 17 | const int index = 24; 18 | using fn = bool(__thiscall *)(C_ClientModeShared *); 19 | bool __stdcall Hook(); 20 | } 21 | 22 | namespace CreateMove 23 | { 24 | const int index = 21; 25 | using fn = bool(__thiscall *)(C_ClientModeShared *, float, C_UserCmd*); 26 | bool __stdcall Hook(float input_sample_frametime, C_UserCmd *pCmd); 27 | } 28 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/EngineClientHook/EngineClientHook.cpp: -------------------------------------------------------------------------------- 1 | #include "EngineClientHook.h" 2 | 3 | bool __stdcall EngineClientHook::IsPlayingTimeDemo::Hook() 4 | { 5 | static DWORD dwInterpolateServerEntities = gPattern.Find("client.dll", "55 8B EC 83 EC 30 8B 0D ? ? ? ? 53 33 DB 89 5D DC 89 5D E0"); 6 | 7 | if (gGlobalInfo.bNoInterpolation) 8 | { 9 | C_BaseEntity *pLocal = gEntCache.pLocal; 10 | 11 | if (pLocal) 12 | { 13 | if (reinterpret_cast(_ReturnAddress()) == (dwInterpolateServerEntities + 0xB8)) 14 | return true; 15 | } 16 | } 17 | 18 | return Table.Original(index)(gInts.Engine); 19 | } 20 | 21 | VMT::Table EngineClientHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/EngineClientHook/EngineClientHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace EngineClientHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace IsPlayingTimeDemo 9 | { 10 | const int index = 78; 11 | using fn = bool(__thiscall *)(C_EngineClient *); 12 | bool __stdcall Hook(); 13 | } 14 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/EngineVGuiHook/EngineVGuiHook.cpp: -------------------------------------------------------------------------------- 1 | #include "EngineVGuiHook.h" 2 | 3 | #include "../../Features/Aimbot/Aimbot.h" 4 | #include "../../Features/Menu/Menu.h" 5 | #include "../../Features/Visuals/ESP/ESP.h" 6 | #include "../../Features/Visuals/SpectatorList/SpectatorList.h" 7 | #include "../../Features/Visuals/SpyWarning/SpyWarning.h" 8 | #include "../../Features/Visuals/Visuals.h" 9 | #include "../../Features/Visuals/Radar/Radar.h" 10 | 11 | #include "../../SDK/Includes/icons.h" 12 | 13 | 14 | void __stdcall EngineVGuiHook::Paint::Hook(int mode) 15 | { 16 | if (!gScreenSize.w || !gScreenSize.h) 17 | gScreenSize.Update(); 18 | 19 | static auto StartDrawing = reinterpret_cast(gPattern.Find("vguimatsurface.dll", "55 8B EC 64 A1 ? ? ? ? 6A FF 68 ? ? ? ? 50 64 89 25 ? ? ? ? 83 EC 14")); 20 | static auto FinishDrawing = reinterpret_cast(gPattern.Find("vguimatsurface.dll", "55 8B EC 6A FF 68 ? ? ? ? 64 A1 ? ? ? ? 50 64 89 25 ? ? ? ? 51 56 6A 00")); 21 | 22 | //HACK: for some reason we need to do this 23 | { 24 | static bool bInitIcons = false; 25 | 26 | if (!bInitIcons) 27 | { 28 | for (int nIcon = 0; nIcon < ICONS::TEXTURE_AMOUNT; nIcon++) 29 | gDraw.Texture(-200, 0, 18, 18, nIcon); 30 | 31 | bInitIcons = true; 32 | } 33 | } 34 | 35 | Table.Original(index)(gInts.EngineVGui, mode); 36 | 37 | if (mode & PAINT_UIPANELS) 38 | { 39 | //let's update WorldToProjection VMatrix here 40 | { 41 | C_ViewSetup ViewSetup = {}; 42 | 43 | if (gInts.Client->GetPlayerView(ViewSetup)) 44 | { 45 | VMatrix WorldToView = {}, ViewToProjection = {}, WorldToPixels = {}; 46 | gInts.RenderView->GetMatricesForView(ViewSetup, &WorldToView, &ViewToProjection, &gGlobalInfo.WorldToProjection, &WorldToPixels); 47 | } 48 | } 49 | 50 | StartDrawing(gInts.Surface); 51 | { 52 | gESP.Run(); 53 | gSpectatorList.Run(); 54 | gSpyWarning.Run(); 55 | gAimbot.Paint(); 56 | gMenu.Run(); 57 | gRadar.Paint(); 58 | } 59 | FinishDrawing(gInts.Surface); 60 | } 61 | } 62 | 63 | VMT::Table EngineVGuiHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/EngineVGuiHook/EngineVGuiHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../SDK/SDK.h" 4 | 5 | namespace EngineVGuiHook 6 | { 7 | extern VMT::Table Table; 8 | 9 | namespace Paint 10 | { 11 | using fn = void(__thiscall *)(C_EngineVGui *, int); 12 | constexpr int index = 13; 13 | void __stdcall Hook(int mode); 14 | } 15 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/Hooks.cpp: -------------------------------------------------------------------------------- 1 | #include "Hooks.h" 2 | 3 | void C_Hooks::Init() 4 | { 5 | if (gInts.Client) 6 | { 7 | using namespace ClientHook; 8 | 9 | Table.Init(gInts.Client); 10 | Table.Hook(PreEntity::index, &PreEntity::Hook); 11 | Table.Hook(PostEntity::index, &PostEntity::Hook); 12 | Table.Hook(ShutDown::index, &ShutDown::Hook); 13 | Table.Hook(FrameStageNotify::index, &FrameStageNotify::Hook); 14 | } 15 | 16 | if (gInts.ClientMode) 17 | { 18 | using namespace ClientModeHook; 19 | 20 | Table.Init(gInts.ClientMode); 21 | Table.Hook(OverrideView::index, &OverrideView::Hook); 22 | Table.Hook(ShouldDrawViewModel::index, &ShouldDrawViewModel::Hook); 23 | Table.Hook(CreateMove::index, &CreateMove::Hook); 24 | } 25 | 26 | if (gInts.Prediction) 27 | { 28 | using namespace PredictionHook; 29 | 30 | Table.Init(gInts.Prediction); 31 | Table.Hook(RunCommand::index, &RunCommand::Hook); 32 | } 33 | 34 | if (gInts.Surface) 35 | { 36 | using namespace SurfaceHook; 37 | 38 | Table.Init(gInts.Surface); 39 | Table.Hook(OnScreenSizeChanged::index, &OnScreenSizeChanged::Hook); 40 | Table.Hook(LockCursor::index, &LockCursor::Hook); 41 | } 42 | 43 | if (gInts.Panel) 44 | { 45 | using namespace PanelHook; 46 | 47 | Table.Init(gInts.Panel); 48 | Table.Hook(PaintTraverse::index, &PaintTraverse::Hook); 49 | } 50 | 51 | if (gInts.EngineVGui) 52 | { 53 | using namespace EngineVGuiHook; 54 | 55 | Table.Init(gInts.EngineVGui); 56 | Table.Hook(Paint::index, &Paint::Hook); 57 | } 58 | 59 | if (gInts.Engine) 60 | { 61 | using namespace EngineClientHook; 62 | 63 | Table.Init(gInts.Engine); 64 | Table.Hook(IsPlayingTimeDemo::index, &IsPlayingTimeDemo::Hook); 65 | } 66 | 67 | if (gInts.ModelRender) 68 | { 69 | using namespace ModelRenderHook; 70 | 71 | Table.Init(gInts.ModelRender); 72 | Table.Hook(DrawModelExecute::index, &DrawModelExecute::Hook); 73 | } 74 | 75 | //if (gInts.WinApi) 76 | { 77 | while (!Window) 78 | Window = FindWindowA(0, "Team Fortress 2"); 79 | 80 | WndProcHook::WndProc = (WNDPROC)SetWindowLongPtr(Window, GWL_WNDPROC, (LONG_PTR)WndProcHook::Hook); 81 | } 82 | } 83 | 84 | void C_Hooks::Release() 85 | { 86 | ClientHook::Table.RestoreTable(); 87 | ClientModeHook::Table.RestoreTable(); 88 | PredictionHook::Table.RestoreTable(); 89 | SurfaceHook::Table.RestoreTable(); 90 | PanelHook::Table.RestoreTable(); 91 | EngineVGuiHook::Table.RestoreTable(); 92 | EngineClientHook::Table.RestoreTable(); 93 | ModelRenderHook::Table.RestoreTable(); 94 | 95 | SetWindowLongPtr(Window, GWL_WNDPROC, (LONG_PTR)WndProcHook::WndProc); 96 | } 97 | 98 | C_Hooks gHooks; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/Hooks.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ClientHook/ClientHook.h" 4 | #include "ClientModeHook/ClientModeHook.h" 5 | #include "PredictionHook/PredictionHook.h" 6 | #include "SurfaceHook/SurfaceHook.h" 7 | #include "PanelHook/PanelHook.h" 8 | #include "EngineVGuiHook/EngineVGuiHook.h" 9 | #include "EngineClientHook/EngineClientHook.h" 10 | #include "ModelRenderHook/ModelRenderHook.h" 11 | #include "WndProcHook/WndProcHook.h" 12 | 13 | class C_Hooks 14 | { 15 | private: 16 | HWND Window = 0; 17 | 18 | public: 19 | void Init(); 20 | void Release(); 21 | }; 22 | 23 | extern C_Hooks gHooks; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/ModelRenderHook/ModelRenderHook.cpp: -------------------------------------------------------------------------------- 1 | #include "ModelRenderHook.h" 2 | 3 | #include "../../Features/Visuals/Chams/Chams.h" 4 | 5 | constexpr float flDefaultColor[3] = { 1, 1, 1 }; 6 | 7 | void __stdcall ModelRenderHook::DrawModelExecute::Hook(const DrawModelState_t& pState, const ModelRenderInfo_t& pInfo, matrix3x4* pBoneToWorld) 8 | { 9 | const char* szModel = gInts.ModelInfo->GetModelName(pInfo.m_pModel); 10 | 11 | if (!szModel) 12 | return; 13 | 14 | if (gChams.bRemoveHands && strstr(szModel, "arms")) 15 | return; 16 | 17 | gChams.Paint(pState, pInfo, szModel); 18 | 19 | Table.Original(index)(gInts.ModelRender, pState, pInfo, pBoneToWorld); 20 | 21 | gInts.RenderView->SetBlend(1); 22 | gInts.RenderView->SetColorModulation(flDefaultColor); 23 | gInts.ModelRender->ForcedMaterialOverride(nullptr); 24 | } 25 | 26 | VMT::Table ModelRenderHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/ModelRenderHook/ModelRenderHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../SDK/SDK.h" 4 | 5 | namespace ModelRenderHook 6 | { 7 | extern VMT::Table Table; 8 | 9 | namespace DrawModelExecute 10 | { 11 | using fn = void(__thiscall*)(C_ModelRender*, const DrawModelState_t&, const ModelRenderInfo_t&, matrix3x4*); 12 | constexpr int index = 19; 13 | void __stdcall Hook(const DrawModelState_t& pState, const ModelRenderInfo_t& pInfo, matrix3x4* pBoneToWorld); 14 | } 15 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/PanelHook/PanelHook.cpp: -------------------------------------------------------------------------------- 1 | #include "PanelHook.h" 2 | 3 | #include "../../Features/Visuals/Visuals.h" 4 | 5 | void __stdcall PanelHook::PaintTraverse::Hook(unsigned int vgui_panel, bool force_repaint, bool allow_force) 6 | { 7 | int nCurPanel = Hash::String(gInts.Panel->GetName(vgui_panel)); 8 | 9 | if (gVisuals.DoRemoveScope(nCurPanel)) 10 | return; 11 | 12 | Table.Original(index)(gInts.Panel, vgui_panel, force_repaint, allow_force); 13 | 14 | if (gGlobalInfo.m_nFocusOverlay == 0) { 15 | if (nCurPanel == Hash::FocusOverlayPanel) 16 | gGlobalInfo.m_nFocusOverlay = vgui_panel; 17 | } 18 | 19 | //... 20 | } 21 | 22 | VMT::Table PanelHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/PanelHook/PanelHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace PanelHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace PaintTraverse 9 | { 10 | const int index = 41; 11 | using fn = void(__thiscall *)(C_Panel*, unsigned int, bool, bool); 12 | void __stdcall Hook(unsigned int vgui_panel, bool force_repaint, bool allow_force); 13 | } 14 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/PredictionHook/PredictionHook.cpp: -------------------------------------------------------------------------------- 1 | #include "PredictionHook.h" 2 | 3 | void __stdcall PredictionHook::RunCommand::Hook(C_BaseEntity *pEntity, C_UserCmd *pCmd, C_MoveHelper *pMoveHelper) 4 | { 5 | Table.Original(index)(gInts.Prediction, pEntity, pCmd, pMoveHelper); 6 | 7 | if (pMoveHelper && !gInts.MoveHelper) 8 | gInts.MoveHelper = pMoveHelper; 9 | 10 | //... 11 | } 12 | 13 | VMT::Table PredictionHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/PredictionHook/PredictionHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace PredictionHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace RunCommand 9 | { 10 | const int index = 17; 11 | using fn = void(__thiscall *)(C_Prediction *, C_BaseEntity *, C_UserCmd *, C_MoveHelper *); 12 | void __stdcall Hook(C_BaseEntity *pEntity, C_UserCmd *pCmd, C_MoveHelper *pMoveHelper); 13 | } 14 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/SurfaceHook/SurfaceHook.cpp: -------------------------------------------------------------------------------- 1 | #include "SurfaceHook.h" 2 | 3 | #include "../../Features/Menu/Menu.h" 4 | 5 | void __stdcall SurfaceHook::OnScreenSizeChanged::Hook(int OldWidht, int OldHeight) 6 | { 7 | Table.Original(index)(gInts.Surface, OldWidht, OldHeight); 8 | 9 | gScreenSize.Update(); 10 | gDraw.ReloadFonts(); 11 | } 12 | 13 | void __stdcall SurfaceHook::LockCursor::Hook() 14 | { 15 | gMenu.m_Open ? gInts.Surface->UnlockCursor() : Table.Original(index)(gInts.Surface); 16 | } 17 | 18 | VMT::Table SurfaceHook::Table; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/SurfaceHook/SurfaceHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | namespace SurfaceHook 5 | { 6 | extern VMT::Table Table; 7 | 8 | namespace OnScreenSizeChanged 9 | { 10 | const int index = 111; 11 | using fn = void(__thiscall *)(C_Surface *, int, int); 12 | void __stdcall Hook(int OldWidht, int OldHeight); 13 | } 14 | 15 | namespace LockCursor 16 | { 17 | const int index = 62; 18 | using fn = void(__thiscall *)(C_Surface *); 19 | void __stdcall Hook(); 20 | } 21 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/WndProcHook/WndProcHook.cpp: -------------------------------------------------------------------------------- 1 | #include "WndProcHook.h" 2 | #include "../../Features/Menu/Input/Input.h" 3 | #include "../../Features/Menu/Menu.h" 4 | 5 | LONG __stdcall WndProcHook::Hook(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 6 | { 7 | switch (uMsg) 8 | { 9 | case WM_KEYDOWN: { 10 | gInput.m_Keyboard[wParam] = EKeyState::PRESSED; 11 | break; 12 | } 13 | 14 | case WM_KEYUP: { 15 | gInput.m_Keyboard[wParam] = EKeyState::NONE; 16 | break; 17 | } 18 | 19 | case WM_RBUTTONDOWN: 20 | { 21 | if (wParam & MK_RBUTTON) 22 | gInput.m_RMouse = EKeyState::PRESSED; 23 | 24 | break; 25 | } 26 | 27 | case WM_LBUTTONDOWN: 28 | { 29 | if (wParam & MK_LBUTTON) 30 | gInput.m_LMouse = EKeyState::PRESSED; 31 | 32 | break; 33 | } 34 | 35 | case WM_MBUTTONDOWN: 36 | { 37 | if (wParam & MK_MBUTTON) 38 | gInput.m_MMouse = EKeyState::PRESSED; 39 | 40 | break; 41 | } 42 | 43 | case WM_RBUTTONUP: 44 | { 45 | gInput.m_RMouse = EKeyState::NONE; 46 | break; 47 | } 48 | 49 | case WM_LBUTTONUP: 50 | { 51 | gInput.m_LMouse = EKeyState::NONE; 52 | break; 53 | } 54 | 55 | case WM_MBUTTONUP: 56 | { 57 | gInput.m_MMouse = EKeyState::NONE; 58 | break; 59 | } 60 | 61 | case WM_MOUSEWHEEL: { 62 | gInput.m_Wheel = ((int)wParam < 0 ? EScrollWheelState::UP : EScrollWheelState::DOWN); 63 | break; 64 | } 65 | } 66 | 67 | if (gMenu.m_Open && (gInts.Engine->Con_IsVisible() || gInts.EngineVGui->IsGameUIVisible())) 68 | return 1; 69 | 70 | return CallWindowProc(WndProc, hWnd, uMsg, wParam, lParam); 71 | } 72 | 73 | WNDPROC WndProcHook::WndProc; -------------------------------------------------------------------------------- /Project IC/Project IC/Hooks/WndProcHook/WndProcHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../SDK/SDK.h" 3 | 4 | typedef LONG(WINAPI *WNDPROC)(HWND, UINT, WPARAM, LPARAM); 5 | 6 | namespace WndProcHook 7 | { 8 | extern WNDPROC WndProc; 9 | LONG WINAPI Hook(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 10 | } -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/Const.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lak3/ProjectIC_TF2/c12c588932e8482b1b38c7939d72b70992619cf0/Project IC/Project IC/SDK/Includes/Const.h -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/Includes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Classes.h" 3 | #include "Const.h" 4 | #include "Enums.h" 5 | #include "Structs.h" 6 | 7 | #include "MD5.h" 8 | 9 | #include -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/MD5.h: -------------------------------------------------------------------------------- 1 | //========= Copyright Valve Corporation, All rights reserved. ============// 2 | // 3 | // Purpose: Generic MD5 hashing algo 4 | // 5 | //=============================================================================// 6 | 7 | #ifndef CHECKSUM_MD5_H 8 | #define CHECKSUM_MD5_H 9 | 10 | #ifdef _WIN32 11 | #pragma once 12 | #endif 13 | 14 | // 16 bytes == 128 bit digest 15 | #define MD5_DIGEST_LENGTH 16 16 | #define MD5_BIT_LENGTH ( MD5_DIGEST_LENGTH * sizeof(unsigned char) ) 17 | struct MD5Value_t 18 | { 19 | unsigned char bits[MD5_DIGEST_LENGTH]; 20 | 21 | void Zero(); 22 | bool IsZero() const; 23 | 24 | bool operator==(const MD5Value_t &src) const; 25 | bool operator!=(const MD5Value_t &src) const; 26 | 27 | }; 28 | 29 | // MD5 Hash 30 | typedef struct 31 | { 32 | unsigned int buf[4]; 33 | unsigned int bits[2]; 34 | unsigned char in[64]; 35 | } MD5Context_t; 36 | 37 | void MD5Init(MD5Context_t *context); 38 | void MD5Update(MD5Context_t *context, unsigned char const *buf, unsigned int len); 39 | void MD5Final(unsigned char digest[MD5_DIGEST_LENGTH], MD5Context_t *context); 40 | 41 | char *MD5_Print(unsigned char *digest, int hashlen); 42 | 43 | /// Convenience wrapper to calculate the MD5 for a buffer, all in one step, without 44 | /// bothering with the context object. 45 | void MD5_ProcessSingleBuffer(const void *p, int len, MD5Value_t &md5Result); 46 | 47 | unsigned int MD5_PseudoRandom(unsigned int nSeed); 48 | 49 | /// Returns true if the values match. 50 | bool MD5_Compare(const MD5Value_t &data, const MD5Value_t &compare); 51 | 52 | inline bool MD5Value_t::operator==(const MD5Value_t &src) const 53 | { 54 | return MD5_Compare(*this, src); 55 | } 56 | 57 | inline bool MD5Value_t::operator!=(const MD5Value_t &src) const 58 | { 59 | return !MD5_Compare(*this, src); 60 | } 61 | 62 | #endif // CHECKSUM_MD5_H -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/dt_common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lak3/ProjectIC_TF2/c12c588932e8482b1b38c7939d72b70992619cf0/Project IC/Project IC/SDK/Includes/dt_common.h -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/dt_recv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lak3/ProjectIC_TF2/c12c588932e8482b1b38c7939d72b70992619cf0/Project IC/Project IC/SDK/Includes/dt_recv.h -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Includes/icons.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace ICONS 6 | { 7 | inline constexpr int WIDHT = 64; 8 | inline constexpr int HEIGHT = 64; 9 | inline constexpr int TEXTURE_AMOUNT = 30; 10 | inline constexpr int UNDEFINED = -1; 11 | 12 | inline int ID[TEXTURE_AMOUNT] = 13 | { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 16 | }; 17 | 18 | inline std::string TEXTURE[TEXTURE_AMOUNT] = 19 | { 20 | "hud/leaderboard_class_teleporter.vtf", 21 | "hud/leaderboard_class_scout.vtf", 22 | "hud/leaderboard_class_sniper.vtf", 23 | "hud/leaderboard_class_soldier.vtf", 24 | "hud/leaderboard_class_demo.vtf", 25 | "hud/leaderboard_class_medic.vtf", 26 | "hud/leaderboard_class_heavy.vtf", 27 | "hud/leaderboard_class_pyro.vtf", 28 | "hud/leaderboard_class_spy.vtf", 29 | "hud/leaderboard_class_engineer.vtf", 30 | "hud/eng_build_sentry.vtf", 31 | "hud/class_scoutred.vtf", 32 | "hud/class_sniperred.vtf", 33 | "hud/class_soldierred.vtf", 34 | "hud/class_demored.vtf", 35 | "hud/class_medicred.vtf", 36 | "hud/class_heavyred.vtf", 37 | "hud/class_pyrored.vtf", 38 | "hud/class_spyred.vtf", 39 | "hud/class_engired.vtf", 40 | "vgui/class_portraits/spy_blue_grey.vtf", 41 | "hud/class_scoutblue.vtf", 42 | "hud/class_sniperblue.vtf", 43 | "hud/class_soldierblue.vtf", 44 | "hud/class_demoblue.vtf", 45 | "hud/class_medicblue.vtf", 46 | "hud/class_heavyblue.vtf", 47 | "hud/class_pyroblue.vtf", 48 | "hud/class_spyblue.vtf", 49 | "hud/class_engiblue.vtf", 50 | }; 51 | } 52 | 53 | /* 54 | "vgui/class_portraits/scout.vtf", 55 | "vgui/class_portraits/sniper.vtf", 56 | "vgui/class_portraits/soldier.vtf", 57 | "vgui/class_portraits/demoman.vtf", 58 | "vgui/class_portraits/medic.vtf", 59 | "vgui/class_portraits/heavy.vtf", 60 | "vgui/class_portraits/pyro.vtf", 61 | "vgui/class_portraits/spy.vtf", 62 | "vgui/class_portraits/engineer.vtf", 63 | "vgui/class_portraits/spy_blue_grey.vtf", // 64 | "vgui/class_portraits/scout_blue.vtf", 65 | "vgui/class_portraits/sniper_blue.vtf", 66 | "vgui/class_portraits/soldier_blue.vtf", 67 | "vgui/class_portraits/demoman_blue.vtf", 68 | "vgui/class_portraits/medic_blue.vtf", 69 | "vgui/class_portraits/heavy_blue.vtf", 70 | "vgui/class_portraits/pyro_blue.vtf", 71 | "vgui/class_portraits/spy_blue.vtf", 72 | "vgui/class_portraits/engineer_blue.vtf" 73 | */ -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/BaseClientDLL/BaseClientDLL.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_BaseClientDLL 5 | { 6 | public: 7 | C_ClientClass *GetAllClasses() 8 | { 9 | typedef C_ClientClass *(__thiscall *FN)(PVOID); 10 | return GetVFunc(this, 8)(this); 11 | } 12 | 13 | bool GetPlayerView(C_ViewSetup &playerView) 14 | { 15 | typedef bool (__thiscall *FN)(PVOID, C_ViewSetup &); 16 | return GetVFunc(this, 59)(this, playerView); 17 | } 18 | }; 19 | 20 | #define CLIENT_DLL_INTERFACE_VERSION "VClient017" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/ClientDLLSharedAppSystems/ClientDLLSharedAppSystems.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_ClientDLLSharedAppSystems 5 | { 6 | public: 7 | virtual int Count() = 0; 8 | virtual char const *GetDllName(int idx) = 0; 9 | virtual char const *GetInterfaceName(int idx) = 0; 10 | }; 11 | 12 | #define CLIENT_DLL_SHARED_APPSYSTEMS "VClientDllSharedAppSystems001" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/ClientEntityList/ClientEntityList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_ClientEntityList 5 | { 6 | public: 7 | C_BaseEntity *GetClientEntity(int nEntityIndex) 8 | { 9 | typedef C_BaseEntity *(__thiscall *FN)(PVOID, int); 10 | return GetVFunc(this, 3)(this, nEntityIndex); 11 | } 12 | 13 | C_BaseEntity *GetClientEntityFromHandle(int hEntity) 14 | { 15 | typedef C_BaseEntity *(__thiscall *FN)(PVOID, int); 16 | return GetVFunc(this, 4)(this, hEntity); 17 | } 18 | 19 | int GetHighestEntityIndex() 20 | { 21 | typedef int(__thiscall *FN)(PVOID); 22 | return GetVFunc(this, 6)(this); 23 | } 24 | }; 25 | 26 | #define VCLIENTENTITYLIST_INTERFACE_VERSION "VClientEntityList003" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/ClientModeShared/ClientModeShared.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_BaseHudChat 5 | { 6 | public: 7 | void ChatPrintf(int pIndex, const char *fmt, ...) 8 | { 9 | typedef void *(__thiscall *FN)(PVOID, int, const char *); 10 | GetVFunc(this, 19)(this, pIndex, fmt); 11 | } 12 | }; 13 | 14 | class C_ClientModeShared 15 | { 16 | public: 17 | char szPad[28]; 18 | C_BaseHudChat *m_pChatElement; 19 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/EngineTrace/EngineTrace.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_EngineTrace 5 | { 6 | public: 7 | void TraceRay(const Ray_t &Ray, unsigned int Mask, C_TraceFilter *TraceFilter, C_GameTrace *GameTrace) 8 | { 9 | typedef void(__thiscall *FN)(PVOID, const Ray_t &, unsigned int, C_TraceFilter *, C_GameTrace *); 10 | return GetVFunc(this, 4)(this, Ray, Mask, TraceFilter, GameTrace); 11 | } 12 | }; 13 | 14 | #define VENGINE_TRACE_CLIENT_INTERFACE_VERSION "EngineTraceClient003" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/EngineVGui/EngineVGui.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_EngineVGui 5 | { 6 | public: 7 | virtual ~C_EngineVGui(void) { } 8 | virtual unsigned int GetPanel(VGuiPanel_t type) = 0; 9 | virtual bool IsGameUIVisible() = 0; 10 | }; 11 | 12 | #define VENGINE_VGUI_VERSION "VEngineVGui001" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/GameEvent/GameEvent.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class C_GameEvent 4 | { 5 | public: 6 | virtual ~C_GameEvent() { }; 7 | virtual const char* GetName() const = 0; 8 | 9 | virtual bool IsReliable() const = 0; 10 | virtual bool IsLocal() const = 0; 11 | virtual bool IsEmpty(const char* szKey = 0) = 0; 12 | 13 | virtual bool GetBool(const char* szKey = 0, bool bDefault = false) = 0; 14 | virtual int GetInt(const char* szKey = 0, int nDefault = 0) = 0; 15 | virtual float GetFloat(const char* szKey = 0, float flDefault = 0.0f) = 0; 16 | virtual const char* GetString(const char* szKey = 0, const char* szDefault = "") = 0; 17 | 18 | virtual void SetBool(const char* szKey, bool bNew) = 0; 19 | virtual void SetInt(const char* szKey, int nNew) = 0; 20 | virtual void SetFloat(const char* szKey, float flNew) = 0; 21 | virtual void SetString(const char* szKey, const char* szNew) = 0; 22 | }; 23 | 24 | class C_GameEventListener 25 | { 26 | public: 27 | virtual ~C_GameEventListener(void) {}; 28 | 29 | virtual void FireGameEvent(C_GameEvent* pEvent) = 0; 30 | }; 31 | 32 | class C_GameEventManager 33 | { 34 | public: 35 | bool AddListener(C_GameEventListener* pListener, const char* szName, bool ServerSide) { 36 | typedef bool(__thiscall* FN)(PVOID, C_GameEventListener*, const char*, bool); 37 | return GetVFunc(this, 3)(this, pListener, szName, ServerSide); 38 | } 39 | }; 40 | 41 | #define GAMEEVENTSMANAGER_ENGINE_INTERFACE "GAMEEVENTSMANAGER002" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/GameMovement/GameMovement.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_GameMovement 5 | { 6 | public: 7 | virtual ~C_GameMovement(void) {} 8 | 9 | // Process the current movement command 10 | virtual void ProcessMovement(C_BaseEntity *pPlayer, C_MoveData *pMove) = 0; 11 | virtual void StartTrackPredictionErrors(C_BaseEntity *pPlayer) = 0; 12 | virtual void FinishTrackPredictionErrors(C_BaseEntity *pPlayer) = 0; 13 | virtual void DiffPrint(char const *fmt, ...) = 0; 14 | 15 | // Allows other parts of the engine to find out the normal and ducked player bbox sizes 16 | virtual Vec3 GetPlayerMins(bool ducked) const = 0; 17 | virtual Vec3 GetPlayerMaxs(bool ducked) const = 0; 18 | virtual Vec3 GetPlayerViewOffset(bool ducked) const = 0; 19 | }; 20 | 21 | #define CLIENT_GAMEMOVEMENT_INTERFACE_VERSION "GameMovement001" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/GlobalVarsBase/GlobalVarsBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_GlobalVarsBase 5 | { 6 | public: 7 | float realtime; 8 | int framecount; 9 | float absoluteframetime; 10 | float curtime; 11 | float frametime; 12 | int maxclients; 13 | int tickcount; 14 | float interval_per_tick; 15 | float interpolation_amount; 16 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Material/Material.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../Includes/Includes.h" 4 | 5 | typedef unsigned short MaterialHandle_t; 6 | 7 | class C_MaterialSystem 8 | { 9 | public: 10 | IMaterial* Find(char const* szMat, const char* szTextureGroup, bool bComplain = true, const char* szPrefix = NULL) 11 | { 12 | typedef IMaterial* (__thiscall* FN)(PVOID, const char*, const char*, bool, const char*); 13 | return GetVFunc(this, 73)(this, szMat, szTextureGroup, bComplain, szPrefix); 14 | } 15 | 16 | IMaterial* Create(char const* szName, KeyValues* pKV) 17 | { 18 | typedef IMaterial* (__thiscall* FN)(PVOID, const char*, KeyValues*); 19 | return GetVFunc(this, 72)(this, szName, pKV); 20 | } 21 | 22 | IMaterial* Get(MaterialHandle_t hMat) 23 | { 24 | typedef IMaterial* (__thiscall* FN)(PVOID, MaterialHandle_t); 25 | return GetVFunc(this, 78)(this, hMat); 26 | } 27 | 28 | MaterialHandle_t First() 29 | { 30 | typedef MaterialHandle_t(__thiscall* FN)(PVOID); 31 | return GetVFunc(this, 75)(this); 32 | } 33 | 34 | MaterialHandle_t Invalid() 35 | { 36 | typedef MaterialHandle_t(__thiscall* FN)(PVOID); 37 | return GetVFunc(this, 77)(this); 38 | } 39 | 40 | MaterialHandle_t Next(MaterialHandle_t hMat) 41 | { 42 | typedef MaterialHandle_t(__thiscall* FN)(PVOID, MaterialHandle_t); 43 | return GetVFunc(this, 76)(this, hMat); 44 | } 45 | }; 46 | 47 | #define VMATERIALSYSTEM_INTERFACE "VMaterialSystem081" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/ModelInfo/ModelInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_ModelInfoClient 5 | { 6 | public: 7 | model_t *GetModel(int index) 8 | { 9 | typedef model_t *(__thiscall *FN)(PVOID, int); 10 | return GetVFunc(this, 1)(this, index); 11 | } 12 | 13 | int GetModelIndex(const char *name) 14 | { 15 | typedef int (__thiscall *FN)(PVOID, const char *); 16 | return GetVFunc(this, 2)(this, name); 17 | } 18 | 19 | const char *GetModelName(const model_t *model) 20 | { 21 | typedef const char *(__thiscall *FN)(PVOID, const model_t *); 22 | return GetVFunc(this, 3)(this, model); 23 | } 24 | 25 | studiohdr_t *GetStudioModel(const model_t *model) 26 | { 27 | typedef studiohdr_t *(__thiscall *FN)(PVOID, const model_t *); 28 | return GetVFunc(this, 28)(this, model); 29 | } 30 | }; 31 | 32 | #define VMODELINFO_CLIENT_INTERFACE_VERSION "VModelInfoClient006" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/ModelRender/ModelRender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../../Includes/Includes.h" 4 | 5 | class C_ModelRender 6 | { 7 | public: 8 | void ForcedMaterialOverride(IMaterial* mat, OverrideType_t type = OverrideType_t::OVERRIDE_NORMAL) 9 | { 10 | typedef void(__thiscall* FN)(PVOID, IMaterial*, OverrideType_t); 11 | return GetVFunc(this, 1)(this, mat, type); 12 | } 13 | 14 | void DrawModelExecute(const DrawModelState_t* pState, const ModelRenderInfo_t& pInfo, matrix3x4* pBoneToWorld) 15 | { 16 | typedef void(__thiscall* FN)(PVOID, const DrawModelState_t*, const ModelRenderInfo_t&, matrix3x4*); 17 | return GetVFunc(this, 19)(this, pState, pInfo, pBoneToWorld); 18 | } 19 | }; 20 | 21 | #define VENGINE_MODELRENDER_INTERFACE "VEngineModel016" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/MoveHelper/MoveHelper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_MoveHelper 5 | { 6 | public: 7 | void SetHost(C_BaseEntity *host) 8 | { 9 | typedef void(__thiscall *FN)(PVOID, C_BaseEntity *); 10 | GetVFunc(this, 0)(this, host); 11 | } 12 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/NetChannel/NetChannel.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lak3/ProjectIC_TF2/c12c588932e8482b1b38c7939d72b70992619cf0/Project IC/Project IC/SDK/Interfaces/NetChannel/NetChannel.cpp -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Panel/Panel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../../Includes/Includes.h" 3 | 4 | class C_Panel 5 | { 6 | public: 7 | const char *GetName(unsigned int vgui_panel) 8 | { 9 | typedef const char *(__thiscall *FN)(PVOID, unsigned int); 10 | return GetVFunc(this, 36)(this, vgui_panel); 11 | } 12 | 13 | void SetMouseInputEnabled(unsigned int panel, bool state) 14 | { 15 | typedef void(__thiscall *FN)(void *, int, bool); 16 | GetVFunc(this, 32)(this, panel, state); 17 | } 18 | 19 | void SetTopmostPopup(unsigned int panel, bool state) 20 | { 21 | typedef void(__thiscall *FN)(void *, int, bool); 22 | GetVFunc(this, 59)(this, panel, state); 23 | } 24 | }; 25 | 26 | #define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel009" -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/AppTicketCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef APPTICKETCOMMON_H 18 | #define APPTICKETCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define STEAMAPPTICKET_INTERFACE_VERSION_001 "STEAMAPPTICKET_INTERFACE_VERSION001" 24 | 25 | #endif // APPTICKETCOMMON_H 26 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/BridgeCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef BRIDGECOMMON_H 18 | #define BRIDGECOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define STEAM2BRIDGE_INTERFACE_VERSION_001 "STEAM2BRIDGE_INTERFACE_VERSION001" 24 | #define STEAM2BRIDGE_INTERFACE_VERSION_002 "STEAM2BRIDGE_INTERFACE_VERSION002" 25 | 26 | #endif // BRIDGECOMMON_H 27 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ClientCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef CLIENTCOMMON_H 18 | #define CLIENTCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // interface predec 24 | class ISteamClient; 25 | class ISteamUser; 26 | class ISteamGameServer; 27 | class ISteamFriends; 28 | class ISteamUtils; 29 | class ISteamMatchmaking; 30 | class ISteamContentServer; 31 | class ISteamMasterServerUpdater; 32 | class ISteamMatchmakingServers; 33 | class ISteam2Bridge; 34 | class ISteamUserStats; 35 | class ISteamApps; 36 | class ISteamBilling; 37 | class IVAC; 38 | class ISteamNetworking; 39 | class ISteamRemoteStorage; 40 | class ISteamGameServerItems; 41 | class ISteamGameServerStats; 42 | class ISteamHTTP; 43 | class ISteamScreenshots; 44 | class ISteamUnifiedMessages; 45 | class ISteamController; 46 | class ISteamUGC; 47 | class ISteamAppList; 48 | class ISteamMusic; 49 | class ISteamMusicRemote; 50 | class ISteamHTMLSurface; 51 | class ISteamInventory; 52 | class ISteamVideo; 53 | 54 | #define CLIENTENGINE_INTERFACE_VERSION "CLIENTENGINE_INTERFACE_VERSION004" 55 | 56 | #define STEAMCLIENT_INTERFACE_VERSION_006 "SteamClient006" 57 | #define STEAMCLIENT_INTERFACE_VERSION_007 "SteamClient007" 58 | #define STEAMCLIENT_INTERFACE_VERSION_008 "SteamClient008" 59 | #define STEAMCLIENT_INTERFACE_VERSION_009 "SteamClient009" 60 | #define STEAMCLIENT_INTERFACE_VERSION_010 "SteamClient010" 61 | #define STEAMCLIENT_INTERFACE_VERSION_011 "SteamClient011" 62 | #define STEAMCLIENT_INTERFACE_VERSION_012 "SteamClient012" 63 | #define STEAMCLIENT_INTERFACE_VERSION_017 "SteamClient017" 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ContentServerCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef CONTENTSERVERCOMMON_H 18 | #define CONTENTSERVERCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define CLIENTCONTENTSERVER_INTERFACE_VERSION "CLIENTCONTENTSERVER_INTERFACE_VERSION001" 24 | 25 | #define STEAMCONTENTSERVER_INTERFACE_VERSION_001 "SteamContentServer001" 26 | #define STEAMCONTENTSERVER_INTERFACE_VERSION_002 "SteamContentServer002" 27 | 28 | typedef enum EConnectionPriority 29 | { 30 | k_EConnectionPriorityLow = 0, 31 | k_EConnectionPriorityMedium = 1, 32 | k_EConnectionPriorityHigh = 2, 33 | } EConnectionPriority; 34 | 35 | #pragma pack( push, 8 ) 36 | struct CSClientApprove_t 37 | { 38 | enum { k_iCallback = k_iSteamContentServerCallbacks + 1 }; 39 | 40 | CSteamID m_SteamID; 41 | uint32 m_uContentID; 42 | }; 43 | 44 | struct CSClientDeny_t 45 | { 46 | enum { k_iCallback = k_iSteamContentServerCallbacks + 2 }; 47 | 48 | CSteamID m_SteamID; 49 | uint32 m_uContentID; 50 | EDenyReason m_eDenyReason; 51 | }; 52 | #pragma pack( pop ) 53 | 54 | #endif // CONTENTSERVERCOMMON_H 55 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ECurrencyCode.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ECURRENCYCODE_H 18 | #define ECURRENCYCODE_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ECurrencyCode 24 | { 25 | k_ECurrencyCodeInvalid = 0, 26 | k_ECurrencyCodeUSD = 1, 27 | k_ECurrencyCodeGBP = 2, 28 | k_ECurrencyCodeEUR = 3, 29 | k_ECurrencyCodeCHF = 4, 30 | k_ECurrencyCodeRUB = 5, 31 | k_ECurrencyCodePLN = 6, 32 | k_ECurrencyCodeBRL = 7, 33 | k_ECurrencyCodeJPY = 8, 34 | k_ECurrencyCodeNOK = 9, 35 | k_ECurrencyCodeIDR = 10, 36 | k_ECurrencyCodeMYR = 11, 37 | k_ECurrencyCodePHP = 12, 38 | k_ECurrencyCodeSGD = 13, 39 | k_ECurrencyCodeTHB = 14, 40 | k_ECurrencyCodeVND = 15, 41 | k_ECurrencyCodeKRW = 16, 42 | k_ECurrencyCodeTRY = 17, 43 | k_ECurrencyCodeUAH = 18, 44 | k_ECurrencyCodeMXN = 19, 45 | k_ECurrencyCodeCAD = 20, 46 | k_ECurrencyCodeAUD = 21, 47 | k_ECurrencyCodeNZD = 22, 48 | k_ECurrencyCodeCNY = 23, 49 | k_ECurrencyCodeINR = 24, 50 | k_ECurrencyCodeCLP = 25, 51 | k_ECurrencyCodePEN = 26, 52 | k_ECurrencyCodeCOP = 27, 53 | k_ECurrencyCodeZAR = 28, 54 | k_ECurrencyCodeHKD = 29, 55 | k_ECurrencyCodeTWD = 30, 56 | k_ECurrencyCodeSAR = 31, 57 | k_ECurrencyCodeAED = 32, 58 | //k_ECurrencyCodeMax = 33, 59 | } ECurrencyCode; 60 | 61 | #endif // ECURRENCYCODE_H 62 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamAppUpdateStatsQueryType.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMAPPUPDATESTATSQUERYTYPE_H 18 | #define ESTEAMAPPUPDATESTATSQUERYTYPE_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamAppUpdateStatsQueryType 24 | { 25 | ePhysicalBytesReceivedThisSession = 1, 26 | eAppReadyToLaunchStatus = 2, 27 | eAppPreloadStatus = 3, 28 | eAppEntireDepot = 4, 29 | eCacheBytesPresent = 5, 30 | } ESteamAppUpdateStatsQueryType; 31 | 32 | #endif // ESTEAMAPPUPDATESTATSQUERYTYPE_H 33 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamBufferMethod.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMBUFFERMETHOD_H 18 | #define ESTEAMBUFFERMETHOD_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamBufferMethod 24 | { 25 | eSteamBufferMethodFBF = 0, 26 | eSteamBufferMethodNBF = 1 27 | } ESteamBufferMethod; 28 | 29 | #endif // ESTEAMBUFFERMETHOD_H 30 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamFindFilter.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMFINDFILTER_H 18 | #define ESTEAMFINDFILTER_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamFindFilter /* Filter elements returned by SteamFind{First,Next} */ 24 | { 25 | eSteamFindLocalOnly, /* limit search to local filesystem */ 26 | eSteamFindRemoteOnly, /* limit search to remote repository */ 27 | eSteamFindAll /* do not limit search (duplicates allowed) */ 28 | } ESteamFindFilter; 29 | 30 | #endif // ESTEAMFINDFILTER_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamNotify.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMNOTIFICATIONCALLBACKEVENT_H 18 | #define ESTEAMNOTIFICATIONCALLBACKEVENT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamNotify 24 | { 25 | eSteamNotifyTicketsWillExpire = 0, 26 | eSteamNotifyAccountInfoChanged = 1, 27 | eSteamNotifyContentDescriptionChanged = 2, 28 | eSteamNotifyPleaseShutdown = 3, 29 | eSteamNotifyNewContentServer = 4, 30 | eSteamNotifySubscriptionStatusChanged = 5, 31 | eSteamNotifyContentServerConnectionLost = 6, 32 | eSteamNotifyCacheLoadingCompleted = 7, 33 | eSteamNotifyCacheNeedsDecryption = 8, 34 | eSteamNotifyCacheNeedsRepair = 9, 35 | eSteamNotifyAppDownloading = 10, 36 | eSteamNotifyAppDownloadingPaused = 11, 37 | } ESteamNotify; 38 | 39 | #endif // ESTEAMNOTIFICATIONCALLBACKEVENT_H 40 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamPaymentCardType.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMPAYMENTCARDTYPE_H 18 | #define ESTEAMPAYMENTCARDTYPE_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamPaymentCardType 24 | { 25 | eVisa = 1, 26 | eMaster = 2, 27 | eAmericanExpress = 3, 28 | eDiscover = 4, 29 | eDinnersClub = 5, 30 | eJCB = 6, 31 | } ESteamPaymentCardType; 32 | 33 | #endif // ESTEAMPAYMENTCARDTYPE_H 34 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamSeekMethod.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMSEEKMETHOD_H 18 | #define ESTEAMSEEKMETHOD_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamSeekMethod 24 | { 25 | eSteamSeekMethodSet = 0, 26 | eSteamSeekMethodCur = 1, 27 | eSteamSeekMethodEnd = 2 28 | } ESteamSeekMethod; 29 | 30 | #endif // ESTEAMSEEKMETHOD_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamServerType.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMSERVERTYPE_H 18 | #define ESTEAMSERVERTYPE_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamServerType 24 | { 25 | eSteamValveCDKeyValidationServer = 0, 26 | eSteamHalfLifeMasterServer = 1, 27 | eSteamFriendsServer = 2, 28 | eSteamCSERServer = 3, 29 | eSteamHalfLife2MasterServer = 4, 30 | eSteamRDKFMasterServer = 5, 31 | eMaxServerTypes = 6, 32 | } ESteamServerType; 33 | 34 | #endif // ESTEAMSERVERTYPE_H 35 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamSubscriptionBillingInfoType.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMSUBSCRIPTIONBILLINGINFOTYPE_H 18 | #define ESTEAMSUBSCRIPTIONBILLINGINFOTYPE_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamSubscriptionBillingInfoType 24 | { 25 | ePaymentCardInfo = 1, 26 | ePrepurchasedInfo = 2, 27 | eAccountBillingInfo = 3, 28 | eExternalBillingInfo = 4, // indirect billing via ISP etc (not supported yet) 29 | ePaymentCardReceipt = 5, 30 | ePrepurchaseReceipt = 6, 31 | eEmptyReceipt = 7, 32 | } ESteamSubscriptionBillingInfoType; 33 | 34 | #endif // ESTEAMSUBSCRIPTIONBILLINGINFOTYPE_H 35 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ESteamSubscriptionStatus.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ESTEAMSUBSCRIPTIONSTATUS_H 18 | #define ESTEAMSUBSCRIPTIONSTATUS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum ESteamSubscriptionStatus 24 | { 25 | eSteamSubscriptionOK = 0, 26 | eSteamSubscriptionPending = 1, 27 | eSteamSubscriptionPreorder = 2, 28 | eSteamSubscriptionPrepurchaseTransferred = 3, 29 | eSteamSubscriptionPrepurchaseInvalid = 4, 30 | eSteamSubscriptionPrepurchaseRejected = 5, 31 | eSteamSubscriptionPrepurchaseRevoked = 6, 32 | eSteamSubscriptionPaymentCardDeclined = 7, 33 | eSteamSubscriptionCancelledByUser = 8, 34 | eSteamSubscriptionCancelledByVendor = 9, 35 | eSteamSubscriptionPaymentCardUseLimit = 10, 36 | eSteamSubscriptionPaymentCardAlert = 11, 37 | eSteamSubscriptionFailed = 12, 38 | eSteamSubscriptionPaymentCardAVSFailure = 13, 39 | eSteamSubscriptionPaymentCardInsufficientFunds = 14, 40 | eSteamSubscriptionRestrictedCountry = 15, 41 | } ESteamSubscriptionStatus; 42 | 43 | #endif // ESTEAMSUBSCRIPTIONSTATUS_H 44 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/EVoiceResult.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef EVOICERESULT_H 18 | #define EVOICERESULT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // Error codes for use with the voice functions 24 | typedef enum EVoiceResult 25 | { 26 | k_EVoiceResultOK = 0, 27 | k_EVoiceResultNotInitialized = 1, 28 | k_EVoiceResultNotRecording = 2, 29 | k_EVoiceResultNoData = 3, 30 | k_EVoiceResultBufferTooSmall = 4, 31 | k_EVoiceResultDataCorrupted = 5, 32 | k_EVoiceResultRestricted = 6, 33 | k_EVoiceResultUnsupportedCodec = 7, 34 | } EVoiceResult; 35 | 36 | #endif // EVOICERESULT_H 37 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/FriendGameInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef FRIENDGAMEINFO_H 18 | #define FRIENDGAMEINFO_H 19 | #ifndef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #pragma pack( push, 8 ) 24 | 25 | // friend game played information 26 | struct FriendGameInfo_t 27 | { 28 | CGameID m_gameID; 29 | uint32 m_unGameIP; 30 | uint16 m_usGamePort; 31 | uint16 m_usQueryPort; 32 | CSteamID m_steamIDLobby; 33 | }; 34 | 35 | #pragma pack( pop ) 36 | 37 | #endif // FRIENDGAMEINFO_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/GameStatsCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef GAMESTATSCOMMON_H 18 | #define GAMESTATSCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define STEAMGAMESTATS_INTERFACE_VERSION_001 "SteamGameStats001" 24 | 25 | #define CLIENTGAMESTATS_INTERFACE_VERSION "CLIENTGAMESTATS_INTERFACE_VERSION001" 26 | 27 | //----------------------------------------------------------------------------- 28 | // Purpose: nAccountType for GetNewSession 29 | //----------------------------------------------------------------------------- 30 | enum EGameStatsAccountType 31 | { 32 | k_EGameStatsAccountType_Steam = 1, // ullAccountID is a 64-bit SteamID for a player 33 | k_EGameStatsAccountType_Xbox = 2, // ullAccountID is a 64-bit XUID 34 | k_EGameStatsAccountType_SteamGameServer = 3, // ullAccountID is a 64-bit SteamID for a game server 35 | }; 36 | 37 | #pragma pack( push, 8 ) 38 | //----------------------------------------------------------------------------- 39 | // Purpose: callback for GetNewSession() method 40 | //----------------------------------------------------------------------------- 41 | struct GameStatsSessionIssued_t 42 | { 43 | enum { k_iCallback = k_iSteamGameStatsCallbacks + 1 }; 44 | 45 | uint64 m_ulSessionID; 46 | EResult m_eResult; 47 | bool m_bCollectingAny; 48 | bool m_bCollectingDetails; 49 | }; 50 | 51 | //----------------------------------------------------------------------------- 52 | // Purpose: callback for EndSession() method 53 | //----------------------------------------------------------------------------- 54 | struct GameStatsSessionClosed_t 55 | { 56 | enum { k_iCallback = k_iSteamGameStatsCallbacks + 2 }; 57 | 58 | uint64 m_ulSessionID; 59 | EResult m_eResult; 60 | }; 61 | #pragma pack( pop ) 62 | 63 | #endif // GAMESTATSCOMMON_H 64 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientApps.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTAPPS_H 18 | #define ICLIENTAPPS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppsCommon.h" 25 | 26 | abstract_class UNSAFE_INTERFACE IClientApps 27 | { 28 | public: 29 | // returns 0 if the key does not exist 30 | // this may be true on first call, since the app data may not be cached locally yet 31 | // If you expect it to exists wait for the AppDataChanged_t after the first failure and ask again 32 | virtual int32 GetAppData(AppId_t unAppID, const char *pchKey, char *pchValue, int32 cchValueMax) = 0; 33 | 34 | virtual bool SetLocalAppConfig(AppId_t unAppID, uint8 *pchBuffer, int32 cbBuffer) = 0; 35 | 36 | virtual AppId_t GetInternalAppIDFromGameID(CGameID nGameID) = 0; 37 | 38 | virtual int32 GetAllOwnedMultiplayerApps(uint32 *punAppIDs, int32 cAppIDsMax) = 0; 39 | 40 | virtual int32 GetAppDataSection(AppId_t unAppID, EAppInfoSection eSection, uint8 *pchBuffer, int32 cbBufferMax, bool bSharedKVSymbols) = 0; 41 | virtual bool RequestAppInfoUpdate(const AppId_t *pAppIDs, int32 nNumAppIDs) = 0; 42 | 43 | virtual void NotifyAppEventTriggered(AppId_t unAppID, EAppEvent eAppEvent) = 0; 44 | 45 | virtual int32 GetDLCCount(AppId_t unAppID) = 0; 46 | virtual bool BGetDLCDataByIndex(AppId_t unAppID, int32 iDLC, AppId_t* pDlcAppID, bool *pbAvailable, char *pchName, int32 cchNameBufferSize) = 0; 47 | }; 48 | 49 | #endif // ICLIENTAPPS_H 50 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientContentServer.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTCONTENTSERVER_H 18 | #define ICLIENTCONTENTSERVER_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "ContentServerCommon.h" 25 | #include "UserCommon.h" 26 | 27 | abstract_class UNSAFE_INTERFACE IClientContentServer 28 | { 29 | virtual HSteamUser GetHSteamUser() = 0; 30 | 31 | STEAMWORKS_STRUCT_RETURN_0(CSteamID, GetSteamID) /*virtual CSteamID GetSteamID() = 0;*/ 32 | 33 | virtual void LogOn(uint32 uContentServerID) = 0; 34 | virtual void LogOff() = 0; 35 | 36 | virtual bool BLoggedOn() = 0; 37 | virtual ELogonState GetLogonState() = 0; 38 | virtual bool BConnected() = 0; 39 | 40 | virtual int RaiseConnectionPriority(EConnectionPriority eConnectionPriority) = 0; 41 | virtual void ResetConnectionPriority(int hRaiseConnectionPriorityPrev) = 0; 42 | 43 | virtual void SetCellID(CellID_t cellID) = 0; 44 | 45 | virtual bool SendClientContentAuthRequest(CSteamID steamID, uint32 unContentID, bool bUseToken, uint64 ulSessionToken, bool bTokenPresent) = 0; 46 | virtual bool BCheckTicket(CSteamID steamID, uint32 uContentID, const void *pvTicketData, uint32 cubTicketLength) = 0; 47 | }; 48 | 49 | #endif // ICLIENTCONTENTSERVER_H 50 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientDeviceAuth.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTDEVICEAUTH_H 18 | #define ICLIENTDEVICEAUTH_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | 25 | #define CLIENTDEVICEAUTH_INTERFACE_VERSION "CLIENTDEVICEAUTH_INTERFACE_VERSION001" 26 | 27 | abstract_class UNSAFE_INTERFACE IClientDeviceAuth 28 | { 29 | public: 30 | virtual uint64 AuthorizeLocalDevice(const char * pubUnk, uint32 cubUnk) = 0; 31 | virtual uint64 DeauthorizeLocalDevice(uint32 uUnk) = 0; 32 | 33 | virtual uint64 DeauthorizeRemoteDevice(uint64 uUnk) = 0; 34 | virtual uint64 RequestAuthorizationInfos() = 0; 35 | virtual uint32 GetDeviceAuthorizations(uint64 *, uint32, bool) = 0; 36 | virtual bool GetDeviceAuthorizationInfo(uint64, uint32 *, uint32 *, bool *, char *, int32, char *, int32, char *, int32, uint32 *) = 0; 37 | 38 | virtual uint32 GetAuthorizedBorrowsers(uint32 *, uint32) = 0; 39 | virtual uint32 GetLocalUsers(uint32 *, uint32) = 0; 40 | virtual bool GetBorrowserInfo(uint32, char *, int32, bool *) = 0; 41 | virtual uint64 UpateAuthorizedBorrowers(const uint32 *, uint32, bool) = 0; 42 | 43 | virtual uint32 GetSharedLibraryLockedBy(uint32 uUnk) = 0; 44 | virtual uint32 GetSharedLibraryOwners(uint32 *, uint32) = 0; 45 | }; 46 | 47 | #endif // ICLIENTDEVICEAUTH_H 48 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientGameCoordinator.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTGAMECOORDINATOR_H 18 | #define ICLIENTGAMECOORDINATOR_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "GameCoordinatorCommon.h" 25 | 26 | abstract_class IClientGameCoordinator 27 | { 28 | public: 29 | virtual EGCResults SendMessage(AppId_t unAppID, uint32 unMsgType, const void *pubData, uint32 cubData) = 0; 30 | 31 | virtual bool IsMessageAvailable(AppId_t unAppID, uint32 *pcubMsgSize) = 0; 32 | 33 | virtual EGCResults RetrieveMessage(AppId_t unAppID, uint32 *punMsgType, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize) = 0; 34 | }; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientProductBuilder.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTPRODUCTBUILDER_H 18 | #define ICLIENTPRODUCTBUILDER_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | 25 | // Not a typo, it seem that IClientProductBuilder's version string is really the same as IClientDepotBuilder's. 26 | // Valid as of Steamclient beta 22nd March 2014 (1395164792) 27 | #define CLIENTPRODUCTBUILDER_INTERFACE_VERSION "CLIENTDEPOTBUILDER_INTERFACE_VERSION001" 28 | 29 | abstract_class IClientProductBuilder 30 | { 31 | public: 32 | virtual uint64 SignInstallScript(uint32, const char *, const char *) = 0; 33 | virtual uint64 DRMWrap(uint32, const char *, const char *, const char *, uint32) = 0; 34 | virtual uint64 CEGWrap(uint32, const char *, const char *, const char *) = 0; 35 | }; 36 | 37 | #endif // ICLIENTPRODUCTBUILDER_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientStreamClient.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTSTREAMCLIENT_H 18 | #define ICLIENTSTREAMCLIENT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | 25 | #define CLIENTSTREAMCLIENT_INTERFACE_VERSION "CLIENTSTREAMCLIENT_INTERFACE_VERSION001" 26 | 27 | abstract_class UNSAFE_INTERFACE IClientStreamClient 28 | { 29 | public: 30 | virtual void Launched(CGameID gameID) = 0; 31 | virtual void FocusGained(CGameID gameID, bool) = 0; 32 | virtual void FocusLost(CGameID gameID) = 0; 33 | virtual void Finished(CGameID gameID, EResult eResult) = 0; 34 | virtual const char * GetSystemInfo() = 0; 35 | virtual void StartStreamingSession(CGameID gameID) = 0; 36 | virtual void ReportStreamingSessionEvent(CGameID gameID, const char *) = 0; 37 | virtual void FinishStreamingSession(CGameID gameID, const char *, const char *) = 0; 38 | }; 39 | 40 | #endif // ICLIENTSTREAMCLIENT_H 41 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientStreamLauncher.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTSTREAMLAUNCHER_H 18 | #define ICLIENTSTREAMLAUNCHER_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "StreamLauncherCommon.h" 25 | 26 | abstract_class UNSAFE_INTERFACE IClientStreamLauncher 27 | { 28 | public: 29 | virtual EStreamLauncherResult StartStreaming(const char *cszFilePath) = 0; 30 | virtual void StopStreaming() = 0; 31 | }; 32 | 33 | #endif // ICLIENTSTREAMLAUNCHER_H 34 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/IClientUnifiedMessages.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ICLIENTUNIFIEDMESSAGES_H 18 | #define ICLIENTUNIFIEDMESSAGES_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "UnifiedMessagesCommon.h" 25 | 26 | abstract_class UNSAFE_INTERFACE IClientUnifiedMessages 27 | { 28 | public: 29 | virtual uint64 SendMethod(const char *, const void *, uint32, uint64) = 0; 30 | virtual bool GetMethodResponseInfo(uint64, uint32 *, EResult *) = 0; 31 | virtual bool GetMethodResponseData(uint64, void *, uint32, bool) = 0; 32 | virtual bool ReleaseMethod(uint64) = 0; 33 | virtual bool SendNotification(const char *, const void *, uint32) = 0; 34 | }; 35 | 36 | #endif // ICLIENTUNIFIEDMESSAGES_H 37 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteam2Bridge001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAM2BRIDGE001_H 18 | #define ISTEAM2BRIDGE001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "BridgeCommon.h" 25 | 26 | abstract_class ISteam2Bridge001 27 | { 28 | public: 29 | virtual void SetSteam2Ticket(uint8 *pubTicket, int cubTicket) = 0; 30 | 31 | virtual bool SetAccountName(const char *pchAccountName) = 0; 32 | virtual bool SetPassword(const char *pchPassword) = 0; 33 | virtual bool SetAccountCreationTime(RTime32 rt) = 0; 34 | 35 | virtual bool CreateProcess(void *lpVACBlob, uint32 cbBlobSize, char const *lpApplicationName, char *lpCommandLine, uint32 dwCreationFlags, void *lpEnvironment, char *lpCurrentDirectory, uint32 nGameID) = 0; 36 | 37 | virtual EUniverse GetConnectedUniverse() = 0; 38 | virtual const char *GetIPCountry() = 0; 39 | 40 | virtual uint32 GetNumLicenses() = 0; 41 | 42 | virtual int32 GetLicensePackageID(uint32 nLicenseIndex) = 0; 43 | virtual RTime32 GetLicenseTimeCreated(uint32 nLicenseIndex) = 0; 44 | virtual RTime32 GetLicenseTimeNextProcess(uint32 nLicenseIndex) = 0; 45 | virtual int32 GetLicenseMinuteLimit(uint32 nLicenseIndex) = 0; 46 | virtual int32 GetLicenseMinutesUsed(uint32 nLicenseIndex) = 0; 47 | virtual EPaymentMethod GetLicensePaymentMethod(uint32 nLicenseIndex) = 0; 48 | virtual ELicenseFlags GetLicenseFlags(uint32 nLicenseIndex) = 0; 49 | virtual const char *GetLicensePurchaseCountryCode(uint32 nLicenseIndex) = 0; 50 | 51 | virtual bool SetOfflineMode(bool bOffline) = 0; 52 | }; 53 | 54 | #endif // ISTEAM2BRIDGE001_H 55 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamAppList001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMAPPLIST001_H 18 | #define ISTEAMAPPLIST001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: interface to app data 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamAppList001 30 | { 31 | public: 32 | virtual unknown_ret GetNumInstalledApps() = 0; 33 | virtual unknown_ret GetInstalledApps(uint32 * puUnk, uint32 uUnk) = 0; 34 | virtual unknown_ret GetAppName(uint32 uUnk, char * pUnk, int32 iUnk) = 0; 35 | virtual unknown_ret GetAppInstallDir(uint32 uUnk, char * pUnk, int32 iUnk) = 0; 36 | virtual unknown_ret GetAppBuildId(uint32 uUnk) = 0; 37 | }; 38 | 39 | #endif // ISTEAMAPPS001_H 40 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamAppTicket001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMAPPTICKET001_H 18 | #define ISTEAMAPPTICKET001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppTicketCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: hand out a reasonable "future proof" view of an app ownership ticket 28 | // the raw (signed) buffer, and indices into that buffer where the appid and 29 | // steamid are located. the sizes of the appid and steamid are implicit in 30 | // (each version of) the interface - currently uin32 appid and uint64 steamid 31 | //----------------------------------------------------------------------------- 32 | abstract_class ISteamAppTicket001 33 | { 34 | public: 35 | virtual uint32 GetAppOwnershipTicketData(AppId_t nAppId, void *pvSignedTicket, uint32 cbSignedTicket, uint32 *piAppId, uint32 *piSteamId, uint32 *piSignature, uint32 *pcbSignature) = 0; 36 | }; 37 | 38 | #endif // ISTEAMAPPTICKET001_H 39 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamApps001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMAPPS001_H 18 | #define ISTEAMAPPS001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: interface to app data 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamApps001 30 | { 31 | public: 32 | // returns 0 if the key does not exist 33 | // this may be true on first call, since the app data may not be cached locally yet 34 | // If you expect it to exists wait for the AppDataChanged_t after the first failure and ask again 35 | virtual int GetAppData(AppId_t nAppID, const char *pchKey, char *pchValue, int cchValueMax) = 0; 36 | }; 37 | 38 | #endif // ISTEAMAPPS001_H 39 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamApps002.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMAPPS002_H 18 | #define ISTEAMAPPS002_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: interface to app data 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamApps002 30 | { 31 | public: 32 | virtual bool BIsSubscribed() = 0; 33 | virtual bool BIsLowViolence() = 0; 34 | virtual bool BIsCybercafe() = 0; 35 | virtual bool BIsVACBanned() = 0; 36 | 37 | virtual const char *GetCurrentGameLanguage() = 0; 38 | virtual const char *GetAvailableGameLanguages() = 0; 39 | 40 | // only use this member if you need to check ownership of another game related to yours, a demo for example 41 | virtual bool BIsSubscribedApp(AppId_t nAppID) = 0; 42 | }; 43 | 44 | #endif // ISTEAMAPPS002_H 45 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamApps003.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMAPPS003_H 18 | #define ISTEAMAPPS003_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "AppsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: interface to app data 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamApps003 30 | { 31 | public: 32 | virtual bool BIsSubscribed() = 0; 33 | virtual bool BIsLowViolence() = 0; 34 | virtual bool BIsCybercafe() = 0; 35 | virtual bool BIsVACBanned() = 0; 36 | virtual const char *GetCurrentGameLanguage() = 0; 37 | virtual const char *GetAvailableGameLanguages() = 0; 38 | 39 | // only use this member if you need to check ownership of another game related to yours, a demo for example 40 | virtual bool BIsSubscribedApp(AppId_t nAppID) = 0; 41 | 42 | // Takes AppID of DLC and checks if the user owns the DLC & if the DLC is installed 43 | virtual bool BIsDlcInstalled(AppId_t nAppID) = 0; 44 | }; 45 | 46 | #endif // ISTEAMAPPS003_H 47 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamContentServer001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMCONTENTSERVER001_H 18 | #define ISTEAMCONTENTSERVER001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "ContentServerCommon.h" 25 | 26 | abstract_class ISteamContentServer001 27 | { 28 | public: 29 | virtual bool LogOn(uint32 uContentServerID) = 0; 30 | virtual bool LogOff() = 0; 31 | 32 | virtual bool BLoggedOn() = 0; 33 | 34 | virtual void SendClientContentAuthRequest(CSteamID steamID, uint32 unContentID) = 0; 35 | }; 36 | 37 | #endif // ISTEAMCONTENTSERVER001_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamContentServer002.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMCONTENTSERVER002_H 18 | #define ISTEAMCONTENTSERVER002_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "ContentServerCommon.h" 25 | 26 | abstract_class ISteamContentServer002 27 | { 28 | public: 29 | virtual bool LogOn(uint32 uContentServerID) = 0; 30 | virtual bool LogOff() = 0; 31 | 32 | virtual bool BLoggedOn() = 0; 33 | 34 | virtual void SendClientContentAuthRequest(CSteamID steamID, uint32 uContentID, uint64 ulSessionToken, bool bTokenPresent) = 0; 35 | 36 | virtual bool BCheckTicket(CSteamID steamID, uint32 uContentID, const void *pvTicketData, uint32 cubTicketLength) = 0; 37 | }; 38 | 39 | #endif // ISTEAMCONTENTSERVER001_H 40 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamController001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMCONTROLLER001_H 18 | #define ISTEAMCONTROLLER001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "ControllerCommon.h" 25 | 26 | abstract_class ISteamController001 27 | { 28 | public: 29 | // 30 | // Native controller support API 31 | // 32 | 33 | // Must call init and shutdown when starting/ending use of the interface 34 | virtual bool Init(const char *pchAbsolutePathToControllerConfigVDF) = 0; 35 | virtual bool Shutdown() = 0; 36 | 37 | // Pump callback/callresult events, SteamAPI_RunCallbacks will do this for you, 38 | // normally never need to call directly. 39 | virtual void RunFrame() = 0; 40 | 41 | // Get the state of the specified controller, returns false if that controller is not connected 42 | virtual bool GetControllerState(uint32 unControllerIndex, SteamControllerState_t *pState) = 0; 43 | 44 | // Trigger a haptic pulse on the controller 45 | virtual void TriggerHapticPulse(uint32 unControllerIndex, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec) = 0; 46 | 47 | // Set the override mode which is used to choose to use different base/legacy bindings from your config file 48 | virtual void SetOverrideMode(const char *pchMode) = 0; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamGameCoordinator001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMGAMECOORDINATOR001_H 18 | #define ISTEAMGAMECOORDINATOR001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "GameCoordinatorCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: Functions for sending and receiving messages from the Game Coordinator 28 | // for this application 29 | //----------------------------------------------------------------------------- 30 | abstract_class ISteamGameCoordinator001 31 | { 32 | public: 33 | 34 | // sends a message to the Game Coordinator 35 | virtual EGCResults SendMessage(uint32 unMsgType, const void *pubData, uint32 cubData) = 0; 36 | 37 | // returns true if there is a message waiting from the game coordinator 38 | virtual bool IsMessageAvailable(uint32 *pcubMsgSize) = 0; 39 | 40 | // fills the provided buffer with the first message in the queue and returns k_EGCResultOK or 41 | // returns k_EGCResultNoMessage if there is no message waiting. pcubMsgSize is filled with the message size. 42 | // If the provided buffer is not large enough to fit the entire message, k_EGCResultBufferTooSmall is returned 43 | // and the message remains at the head of the queue. 44 | virtual EGCResults RetrieveMessage(uint32 *punMsgType, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize) = 0; 45 | }; 46 | 47 | #endif // ISTEAMGAMECOORDINATOR001_H 48 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamGameStats001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMGAMESTATS001_H 18 | #define ISTEAMGAMESTATS001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "GameStatsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: Functions for recording game play sessions and details thereof 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamGameStats001 30 | { 31 | public: 32 | virtual SteamAPICall_t GetNewSession(int8 nAccountType, uint64 ulAccountID, int32 nAppID, RTime32 rtTimeStarted) = 0; 33 | virtual SteamAPICall_t EndSession(uint64 ulSessionID, RTime32 rtTimeEnded, int nReasonCode) = 0; 34 | virtual EResult AddSessionAttributeInt(uint64 ulSessionID, const char* pstrName, int32 nData) = 0; 35 | virtual EResult AddSessionAttributeString(uint64 ulSessionID, const char* pstrName, const char *pstrData) = 0; 36 | virtual EResult AddSessionAttributeFloat(uint64 ulSessionID, const char* pstrName, float fData) = 0; 37 | 38 | virtual EResult AddNewRow(uint64 *pulRowID, uint64 ulSessionID, const char *pstrTableName) = 0; 39 | virtual EResult CommitRow(uint64 ulRowID) = 0; 40 | virtual EResult CommitOutstandingRows(uint64 ulSessionID) = 0; 41 | virtual EResult AddRowAttributeInt(uint64 ulRowID, const char *pstrName, int32 nData) = 0; 42 | virtual EResult AddRowAtributeString(uint64 ulRowID, const char *pstrName, const char *pstrData) = 0; 43 | virtual EResult AddRowAttributeFloat(uint64 ulRowID, const char *pstrName, float fData) = 0; 44 | 45 | virtual EResult AddSessionAttributeInt64(uint64 ulSessionID, const char *pstrName, int64 llData) = 0; 46 | virtual EResult AddRowAttributeInt64(uint64 ulRowID, const char *pstrName, int64 llData) = 0; 47 | }; 48 | 49 | #endif // ISTEAMGAMESERVERSTATS001_H 50 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamMusic001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMMUSIC001_H 18 | #define ISTEAMMUSIC001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "MusicCommon.h" 25 | 26 | abstract_class ISteamMusic001 27 | { 28 | public: 29 | virtual bool BIsEnabled() = 0; 30 | virtual bool BIsPlaying() = 0; 31 | 32 | virtual AudioPlayback_Status GetPlaybackStatus() = 0; 33 | 34 | virtual void Play() = 0; 35 | virtual void Pause() = 0; 36 | virtual void PlayPrevious() = 0; 37 | virtual void PlayNext() = 0; 38 | 39 | // volume is between 0.0 and 1.0 40 | virtual void SetVolume(float flVolume) = 0; 41 | virtual float GetVolume() = 0; 42 | }; 43 | 44 | #endif // ISTEAMMUSIC001_H 45 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamOAuth001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMOAUTH001_H 18 | #define ISTEAMOAUTH001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "OAuthCommon.h" 25 | 26 | abstract_class OBSOLETE_INTERFACE ISteamOAuth001 27 | { 28 | public: 29 | virtual SteamAPICall_t RequestOAuthTokenForApp(const char *cszOAuthScope) = 0; 30 | virtual bool GetOAuthTokenForApp(void *pubBuffer, int32 cubBuffer, uint32 *puTokenSize) = 0; 31 | virtual void InvalidateOAuthTokenForApp() = 0; 32 | }; 33 | 34 | #endif // ISTEAMOAUTH001_H 35 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamRemoteStorage001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMREMOTESTORAGE001_H 18 | #define ISTEAMREMOTESTORAGE001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "RemoteStorageCommon.h" 25 | 26 | abstract_class ISteamRemoteStorage001 27 | { 28 | public: 29 | virtual bool FileWrite(const char *filename, void const *data, int) = 0; 30 | 31 | virtual uint32 GetFileSize(const char *filename) = 0; 32 | 33 | virtual bool FileRead(const char *filename, void *buffer, int size) = 0; 34 | 35 | virtual bool FileExists(const char *filename) = 0; 36 | virtual OBSOLETE_FUNCTION bool FileDelete(const char *filename) = 0; 37 | 38 | virtual uint32 GetFileCount() = 0; 39 | 40 | virtual const char *GetFileNameAndSize(int index, int *size) = 0; 41 | 42 | virtual bool GetQuota(int *current, int *maximum) = 0; 43 | }; 44 | 45 | #endif // ISTEAMREMOTESTORAGE001_H 46 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamRemoteStorage002.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMREMOTESTORAGE002_H 18 | #define ISTEAMREMOTESTORAGE002_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "RemoteStorageCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: Functions for accessing, reading and writing files stored remotely 28 | // and cached locally 29 | //----------------------------------------------------------------------------- 30 | abstract_class ISteamRemoteStorage002 31 | { 32 | public: 33 | // NOTE 34 | // 35 | // Filenames are case-insensitive, and will be converted to lowercase automatically. 36 | // So "foo.bar" and "Foo.bar" are the same file, and if you write "Foo.bar" then 37 | // iterate the files, the filename returned will be "foo.bar". 38 | // 39 | 40 | // file operations 41 | virtual bool FileWrite(const char *pchFile, const void *pvData, int32 cubData) = 0; 42 | virtual int32 GetFileSize(const char *pchFile) = 0; 43 | virtual int32 FileRead(const char *pchFile, void *pvData, int32 cubDataToRead) = 0; 44 | virtual bool FileExists(const char *pchFile) = 0; 45 | 46 | // iteration 47 | virtual int32 GetFileCount() = 0; 48 | virtual const char *GetFileNameAndSize(int iFile, int32 *pnFileSizeInBytes) = 0; 49 | 50 | // quota management 51 | virtual bool GetQuota(int32 *pnTotalBytes, int32 *puAvailableBytes) = 0; 52 | }; 53 | 54 | #endif // ISTEAMREMOTESTORAGE_H 55 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamStreamLauncher001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMSTREAMLAUNCHER001_H 18 | #define ISTEAMSTREAMLAUNCHER001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "StreamLauncherCommon.h" 25 | 26 | abstract_class ISteamStreamLauncher001 27 | { 28 | public: 29 | virtual EStreamLauncherResult StartStreaming(const char *cszFilePath) = 0; 30 | virtual void StopStreaming() = 0; 31 | }; 32 | 33 | #endif // ISTEAMSTREAMLAUNCHER001_H 34 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamUnifiedMessages001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMUNIFIEDMESSAGES001_H 18 | #define ISTEAMUNIFIEDMESSAGES001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "UnifiedMessagesCommon.h" 25 | 26 | abstract_class ISteamUnifiedMessages001 27 | { 28 | public: 29 | virtual uint64 SendMethod(const char *, const void *, uint32, uint64) = 0; 30 | virtual bool GetMethodResponseInfo(uint64, uint32 *, EResult *) = 0; 31 | virtual bool GetMethodResponseData(uint64, void *, uint32, bool) = 0; 32 | virtual bool ReleaseMethod(uint64) = 0; 33 | virtual bool SendNotification(const char *, const void *, uint32) = 0; 34 | }; 35 | 36 | #endif // ISTEAMUNIFIEDMESSAGES001_H 37 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/ISteamUtils001.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef ISTEAMUTILS001_H 18 | #define ISTEAMUTILS001_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | #include "UtilsCommon.h" 25 | 26 | //----------------------------------------------------------------------------- 27 | // Purpose: interface to user independent utility functions 28 | //----------------------------------------------------------------------------- 29 | abstract_class ISteamUtils001 30 | { 31 | public: 32 | // return the number of seconds since the user 33 | virtual uint32 GetSecondsSinceAppActive() = 0; 34 | virtual uint32 GetSecondsSinceComputerActive() = 0; 35 | 36 | // the universe this client is connecting to 37 | virtual EUniverse GetConnectedUniverse() = 0; 38 | 39 | // server time - in PST, number of seconds since January 1, 1970 (i.e unix time) 40 | virtual uint32 GetServerRealTime() = 0; 41 | }; 42 | 43 | #endif // ISTEAMUTILS001_H 44 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/MasterServerUpdaterCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef MASTERSERVERUPDATERCOMMON_H 18 | #define MASTERSERVERUPDATERCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define CLIENTMASTERSERVERUPDATER_INTERFACE_VERSION "CLIENTMASTERSERVERUPDATER_INTERFACE_VERSION001" 24 | 25 | #define STEAMMASTERSERVERUPDATER_INTERFACE_VERSION_001 "SteamMasterServerUpdater001" 26 | 27 | #define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1) 28 | 29 | #endif // MASTERSERVERUPDATERCOMMON_H 30 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/MatchMakingKeyValuePair.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef MATCHMAKINGKEYVALUEPAIR_H 18 | #define MATCHMAKINGKEYVALUEPAIR_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #ifdef _S4N_ 24 | #define strncpy(...) 25 | #else 26 | #include 27 | #include 28 | #endif 29 | 30 | struct MatchMakingKeyValuePair_t 31 | { 32 | MatchMakingKeyValuePair_t() { m_szKey[0] = m_szValue[0] = 0; } 33 | 34 | #ifdef _MSC_VER 35 | #pragma warning(push) 36 | #pragma warning(disable: 4996) 37 | #endif 38 | 39 | MatchMakingKeyValuePair_t(const char *pchKey, const char *pchValue) 40 | { 41 | strncpy(m_szKey, pchKey, sizeof(m_szKey)); // this is a public header, use basic c library string funcs only! 42 | m_szKey[sizeof(m_szKey) - 1] = '\0'; 43 | strncpy(m_szValue, pchValue, sizeof(m_szValue)); 44 | m_szValue[sizeof(m_szValue) - 1] = '\0'; 45 | } 46 | 47 | #ifdef _MSC_VER 48 | #pragma warning(pop) 49 | #endif 50 | 51 | char m_szKey[256]; 52 | char m_szValue[256]; 53 | }; 54 | 55 | #endif // MATCHMAKINGKEYVALUEPAIR_H 56 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/MusicCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef MUSICCOMMON_H 18 | #define MUSICCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | enum AudioPlayback_Status 24 | { 25 | AudioPlayback_Undefined = 0, 26 | AudioPlayback_Playing = 1, 27 | AudioPlayback_Paused = 2, 28 | AudioPlayback_Idle = 3 29 | }; 30 | 31 | #define STEAMMUSIC_INTERFACE_VERSION_001 "STEAMMUSIC_INTERFACE_VERSION001" 32 | 33 | #endif // MUSICCOMMON_H 34 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/OAuthCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef OAUTHCOMMON_H 18 | #define OAUTHCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #define STEAMOAUTH_INTERFACE_VERSION_001 "SteamOAuth001" 24 | 25 | #endif // OAUTHCOMMON_H 26 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/POSIXLibrary.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #pragma once 18 | #include 19 | 20 | class DynamicLibrary 21 | { 22 | public: 23 | DynamicLibrary(const char* cszPath) 24 | { 25 | m_handle = dlopen(cszPath, RTLD_LAZY); 26 | } 27 | 28 | ~DynamicLibrary() 29 | { 30 | if(m_handle) 31 | dlclose(m_handle); 32 | } 33 | 34 | void * GetSymbol(const char* cszSymbol) const 35 | { 36 | if(!m_handle) 37 | return NULL; 38 | 39 | return dlsym(m_handle, cszSymbol); 40 | } 41 | 42 | bool IsLoaded() const 43 | { 44 | return m_handle != NULL; 45 | } 46 | 47 | private: 48 | void *m_handle; 49 | 50 | DynamicLibrary(const DynamicLibrary&); 51 | void operator=(const DynamicLibrary&); 52 | }; 53 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/SteamAPI.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef STEAMAPI_H 18 | #define STEAMAPI_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // includes 24 | #include "SteamTypes.h" 25 | 26 | // extern function declarations 27 | #include "Steam.h" 28 | 29 | // inline interface utils 30 | #include "Interface_OSW.h" 31 | 32 | #endif // STEAMAPI_H 33 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/SteamSalt.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef STEAMSALT_H 18 | #define STEAMSALT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct SteamSalt 24 | { 25 | unsigned char uchSalt[STEAM_SALT_SIZE]; 26 | } SteamSalt_t; 27 | 28 | #endif // STEAMSALT_H 29 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/SteamclientAPI.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef STEAMCLIENTAPI_H 18 | #define STEAMCLIENTAPI_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // includes 24 | #include "SteamTypes.h" 25 | 26 | // extern function declarations 27 | #include "Steamclient.h" 28 | 29 | // inline interface utils 30 | #include "Interface_OSW.h" 31 | 32 | #endif // STEAMCLIENTAPI_H 33 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/Steamworks.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef STEAMWORKS_H 18 | #define STEAMWORKS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | #include "SteamTypes.h" 24 | 25 | #ifndef NO_STEAM 26 | // steam.dll 27 | #include "SteamAPI.h" 28 | #endif 29 | 30 | #ifndef NO_STEAMCLIENT 31 | // steamclient.dll / steam_api.dll 32 | #include "SteamclientAPI.h" 33 | #endif 34 | 35 | #endif // STEAMWORKS_H 36 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/StreamLauncherCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef STREAMLAUNCHERCOMMON_H 18 | #define STREAMLAUNCHERCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // versions 24 | #define CLIENTSTREAMLAUNCHER_INTERFACE_VERSION "CLIENTSTREAMLAUNCHER_INTERFACE_VERSION001" 25 | #define STEAMSTREAMLAUNCHER_INTERFACE_VERSION_001 "STEAMSTREAMLAUNCHER_INTERFACE_VERSION001" 26 | 27 | enum EStreamLauncherResult 28 | { 29 | // TODO: Reverse this enum 30 | }; 31 | 32 | // callbacks 33 | #pragma pack( push, 8 ) 34 | 35 | #pragma pack( pop ) 36 | 37 | #endif // STREAMLAUNCHERCOMMON_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamApp.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMAPP_H 18 | #define TSTEAMAPP_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamApp 24 | { 25 | char *szName; 26 | unsigned int uMaxNameChars; 27 | char *szLatestVersionLabel; 28 | unsigned int uMaxLatestVersionLabelChars; 29 | char *szCurrentVersionLabel; 30 | unsigned int uMaxCurrentVersionLabelChars; 31 | char* szInstallDirName; 32 | unsigned int uMaxInstallDirNameChars; 33 | unsigned int uId; 34 | unsigned int uLatestVersionId; 35 | unsigned int uCurrentVersionId; 36 | unsigned int uMinCacheFileSizeMB; 37 | unsigned int uMaxCacheFileSizeMB; 38 | unsigned int uNumLaunchOptions; 39 | unsigned int uNumIcons; 40 | unsigned int uNumVersions; 41 | unsigned int uNumDependencies; 42 | } TSteamApp; 43 | 44 | #endif // TSTEAMAPP_H 45 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamAppDependencyInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMAPPDEPENDENCYINFO_H 18 | #define TSTEAMAPPDEPENDENCYINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamAppDependencyInfo 24 | { 25 | unsigned int AppId; 26 | unsigned int IsRequired; 27 | char szMountName[STEAM_MAX_PATH]; 28 | } TSteamAppDependencyInfo; 29 | 30 | #endif // TSTEAMAPPDEPENDENCYINFO_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamAppLaunchOption.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMAPPLAUNCHOPTION_H 18 | #define TSTEAMAPPLAUNCHOPTION_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamAppLaunchOption 24 | { 25 | char *szDesc; 26 | unsigned int uMaxDescChars; 27 | char *szCmdLine; 28 | unsigned int uMaxCmdLineChars; 29 | unsigned int uIndex; 30 | unsigned int uIconIndex; 31 | int bNoDesktopShortcut; 32 | int bNoStartMenuShortcut; 33 | int bIsLongRunningUnattended; 34 | } TSteamAppLaunchOption; 35 | 36 | #endif // TSTEAMAPPLAUNCHOPTION_H 37 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamAppStats.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMAPPSTATS_H 18 | #define TSTEAMAPPSTATS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamAppStats 24 | { 25 | unsigned int uNumApps; 26 | unsigned int uMaxNameChars; 27 | unsigned int uMaxInstallDirNameChars; 28 | unsigned int uMaxVersionLabelChars; 29 | unsigned int uMaxLaunchOptions; 30 | unsigned int uMaxLaunchOptionDescChars; 31 | unsigned int uMaxLaunchOptionCmdLineChars; 32 | unsigned int uMaxNumIcons; 33 | unsigned int uMaxIconSize; 34 | unsigned int uMaxDependencies; 35 | } TSteamAppStats; 36 | 37 | #endif // TSTEAMAPPSTATS_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamAppVersion.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMAPPVERSION_H 18 | #define TSTEAMAPPVERSION_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamAppVersion 24 | { 25 | char *szLabel; 26 | unsigned int uMaxLabelChars; 27 | unsigned int uVersionId; 28 | int bIsNotAvailable; 29 | } TSteamAppVersion; 30 | 31 | #endif // TSTEAMAPPVERSION_H 32 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamDiscountQualifier.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMDISCOUNTQUALIFIER_H 18 | #define TSTEAMDISCOUNTQUALIFIER_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamDiscountQualifier 24 | { 25 | char szName[STEAM_MAX_PATH]; 26 | unsigned int uRequiredSubscription; 27 | int bIsDisqualifier; 28 | } TSteamDiscountQualifier; 29 | 30 | #endif // TSTEAMDISCOUNTQUALIFIER_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamElemInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMELEMINFO_H 18 | #define TSTEAMELEMINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamElemInfo 24 | { 25 | int bIsDir; /* If non-zero, element is a directory; if zero, element is a file */ 26 | unsigned int uSizeOrCount; /* If element is a file, this contains size of file in bytes */ 27 | int bIsLocal; /* If non-zero, reported item is a standalone element on local filesystem */ 28 | char cszName[STEAM_MAX_PATH]; /* Base element name (no path) */ 29 | long lLastAccessTime; /* Seconds since 1/1/1970 (like time_t) when element was last accessed */ 30 | long lLastModificationTime; /* Seconds since 1/1/1970 (like time_t) when element was last modified */ 31 | long lCreationTime; /* Seconds since 1/1/1970 (like time_t) when element was created */ 32 | } TSteamElemInfo; 33 | 34 | typedef struct TSteamElemInfo64 35 | { 36 | int bIsDir; /* If non-zero, element is a directory; if zero, element is a file */ 37 | unsigned long long ullSizeOrCount; /* If element is a file, this contains size of file in bytes */ 38 | int bIsLocal; /* If non-zero, reported item is a standalone element on local filesystem */ 39 | char cszName[STEAM_MAX_PATH]; /* Base element name (no path) */ 40 | long long llLastAccessTime; /* Seconds since 1/1/1970 (like time_t) when element was last accessed */ 41 | long long llLastModificationTime; /* Seconds since 1/1/1970 (like time_t) when element was last modified */ 42 | long long llCreationTime; /* Seconds since 1/1/1970 (like time_t) when element was created */ 43 | } TSteamElemInfo64; 44 | 45 | #endif // TSTEAMELEMINFO_H 46 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamError.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMERROR_H 18 | #define TSTEAMERROR_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum EDetailedPlatformErrorType 24 | { 25 | eNoDetailedErrorAvailable, 26 | eStandardCerrno, 27 | eWin32LastError, 28 | eWinSockLastError, 29 | eDetailedPlatformErrorCount 30 | } EDetailedPlatformErrorType; 31 | 32 | typedef struct TSteamError 33 | { 34 | ESteamError eSteamError; 35 | EDetailedPlatformErrorType eDetailedErrorType; 36 | int nDetailedErrorCode; 37 | char szDesc[STEAM_MAX_PATH]; 38 | } TSteamError; 39 | 40 | #endif // TSTEAMERROR_H 41 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamExternalBillingInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMEXTERNALBILLINGINFO_H 18 | #define TSTEAMEXTERNALBILLINGINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamExternalBillingInfo 24 | { 25 | char szAccountName[STEAM_EXTERNAL_ACCOUNTNAME_SIZE + 1]; 26 | char szPassword[STEAM_EXTERNAL_ACCOUNTPASSWORD_SIZE + 1]; 27 | } TSteamExternalBillingInfo; 28 | 29 | #endif // TSTEAMEXTERNALBILLINGINFO_H 30 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamGlobalUserID.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMGLOBALUSERID_H 18 | #define TSTEAMGLOBALUSERID_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // Applications need to be able to authenticate Steam users from ANY instance. 24 | // So a SteamIDTicket contains SteamGlobalUserID, which is a unique combination of 25 | // instance and user id. 26 | typedef struct TSteamGlobalUserID 27 | { 28 | SteamInstanceID_t m_SteamInstanceID; 29 | 30 | union m_SteamLocalUserID 31 | { 32 | SteamLocalUserID_t As64bits; 33 | TSteamSplitLocalUserID Split; 34 | } m_SteamLocalUserID; 35 | } TSteamGlobalUserID; 36 | 37 | #endif // TSTEAMGLOBALUSERID_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamOfflineStatus.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMOFFLINESTATUS_H 18 | #define TSTEAMOFFLINESTATUS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamOfflineStatus 24 | { 25 | int eOfflineNow; 26 | int eOfflineNextSession; 27 | } TSteamOfflineStatus; 28 | 29 | #endif // TSTEAMOFFLINESTATUS_H 30 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamPaymentCardInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMPAYMENTCARDINFO_H 18 | #define TSTEAMPAYMENTCARDINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamPaymentCardInfo 24 | { 25 | ESteamPaymentCardType eCardType; 26 | char szCardNumber[STEAM_CARD_NUMBER_SIZE + 1]; 27 | char szCardHolderName[STEAM_CARD_HOLDERNAME_SIZE + 1]; 28 | char szCardExpYear[STEAM_CARD_EXPYEAR_SIZE + 1]; 29 | char szCardExpMonth[STEAM_CARD_EXPMONTH_SIZE + 1]; 30 | char szCardCVV2[STEAM_CARD_CVV2_SIZE + 1]; 31 | char szBillingAddress1[STEAM_BILLING_ADDRESS1_SIZE + 1]; 32 | char szBillingAddress2[STEAM_BILLING_ADDRESS2_SIZE + 1]; 33 | char szBillingCity[STEAM_BILLING_CITY_SIZE + 1]; 34 | char szBillingZip[STEAM_BILLING_ZIP_SIZE + 1]; 35 | char szBillingState[STEAM_BILLING_STATE_SIZE + 1]; 36 | char szBillingCountry[STEAM_BILLING_COUNTRY_SIZE + 1]; 37 | char szBillingPhone[STEAM_BILLING_PHONE_SIZE + 1]; 38 | char szBillingEmailAddress[STEAM_BILLING_EMAIL_SIZE + 1]; 39 | unsigned int uExpectedCostInCents; 40 | unsigned int uExpectedTaxInCents; 41 | char szShippingName[STEAM_CARD_HOLDERNAME_SIZE + 1]; 42 | char szShippingAddress1[STEAM_BILLING_ADDRESS1_SIZE + 1]; 43 | char szShippingAddress2[STEAM_BILLING_ADDRESS2_SIZE + 1]; 44 | char szShippingCity[STEAM_BILLING_CITY_SIZE + 1]; 45 | char szShippingZip[STEAM_BILLING_ZIP_SIZE + 1]; 46 | char szShippingState[STEAM_BILLING_STATE_SIZE + 1]; 47 | char szShippingCountry[STEAM_BILLING_COUNTRY_SIZE + 1]; 48 | char szShippingPhone[STEAM_BILLING_PHONE_SIZE + 1]; 49 | unsigned int uExpectedShippingCostInCents; 50 | } TSteamPaymentCardInfo; 51 | 52 | #endif // TSTEAMPAYMENTCARDINFO_H 53 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamPaymentCardReceiptInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMPAYMENTCARDRECEIPTINFO_H 18 | #define TSTEAMPAYMENTCARDRECEIPTINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamPaymentCardReceiptInfo 24 | { 25 | ESteamPaymentCardType eCardType; 26 | char szCardLastFourDigits[STEAM_CARD_LASTFOURDIGITS_SIZE + 1]; 27 | char szCardHolderName[STEAM_CARD_HOLDERNAME_SIZE + 1]; 28 | char szBillingAddress1[STEAM_BILLING_ADDRESS1_SIZE + 1]; 29 | char szBillingAddress2[STEAM_BILLING_ADDRESS2_SIZE + 1]; 30 | char szBillingCity[STEAM_BILLING_CITY_SIZE + 1]; 31 | char szBillingZip[STEAM_BILLING_ZIP_SIZE + 1]; 32 | char szBillingState[STEAM_BILLING_STATE_SIZE + 1]; 33 | char szBillingCountry[STEAM_BILLING_COUNTRY_SIZE + 1]; 34 | char szCardApprovalCode[STEAM_CARD_APPROVAL_CODE_SIZE + 1]; 35 | char szTransDate[STEAM_DATE_SIZE + 1]; 36 | char szTransTime[STEAM_TIME_SIZE + 1]; 37 | unsigned int uPriceWithoutTax; 38 | unsigned int uTaxAmount; 39 | unsigned int uShippingCost; 40 | } TSteamPaymentCardReceiptInfo; 41 | 42 | #endif // TSTEAMPAYMENTCARDRECEIPTINFO_H 43 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamPrepurchaseInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMPREPURCHASEINFO_H 18 | #define TSTEAMPREPURCHASEINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamPrepurchaseInfo 24 | { 25 | char szTypeOfProofOfPurchase[STEAM_TYPE_OF_PROOF_OF_PURCHASE_SIZE + 1]; 26 | 27 | // A ProofOfPurchase token is not necessarily a nul-terminated string; it may be binary data 28 | // (perhaps encrypted). Hence we need a length and an array of bytes. 29 | unsigned int uLengthOfBinaryProofOfPurchaseToken; 30 | char cBinaryProofOfPurchaseToken[STEAM_PROOF_OF_PURCHASE_TOKEN_SIZE + 1]; 31 | } TSteamPrepurchaseInfo; 32 | 33 | #endif // TSTEAMPREPURCHASEINFO_H 34 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamPrepurchaseReceiptInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMPREPURCHASERECEIPTINFO_H 18 | #define TSTEAMPREPURCHASERECEIPTINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamPrepurchaseReceiptInfo 24 | { 25 | char szTypeOfProofOfPurchase[STEAM_TYPE_OF_PROOF_OF_PURCHASE_SIZE + 1]; 26 | } TSteamPrepurchaseReceiptInfo; 27 | 28 | #endif // TSTEAMPREPURCHASERECEIPTINFO_H 29 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamProgress.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMPROGRESS_H 18 | #define TSTEAMPROGRESS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamProgress 24 | { 25 | int bValid; // non-zero if call provides progress info 26 | unsigned int uPercentDone; // 0 to 100 if bValid 27 | char szProgress[STEAM_MAX_PATH]; // additional progress info 28 | } TSteamProgress; 29 | 30 | #endif // TSTEAMPROGRESS_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSplitLocalUserID.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSPLITLOCALUSERID_H 18 | #define TSTEAMSPLITLOCALUSERID_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // Applications need to be able to authenticate Steam users from ANY instance. 24 | // So a SteamIDTicket contains SteamGlobalUserID, which is a unique combination of 25 | // instance and user id. 26 | 27 | // SteamLocalUserID is an unsigned 64-bit integer. 28 | // For platforms without 64-bit int support, we provide access via a union that splits it into 29 | // high and low unsigned 32-bit ints. Such platforms will only need to compare LocalUserIDs 30 | // for equivalence anyway - not perform arithmetic with them. 31 | typedef struct TSteamSplitLocalUserID 32 | { 33 | unsigned int Low32bits; 34 | unsigned int High32bits; 35 | } TSteamSplitLocalUserID; 36 | 37 | #endif // TSTEAMSPLITLOCALUSERID_H 38 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSubscription.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSUBSCRIPTION_H 18 | #define TSTEAMSUBSCRIPTION_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef enum EBillingType 24 | { 25 | eNoCost = 0, 26 | eBillOnceOnly = 1, 27 | eBillMonthly = 2, 28 | eProofOfPrepurchaseOnly = 3, 29 | eGuestPass = 4, 30 | eHardwarePromo = 5, 31 | eGift = 6, 32 | eAutoGrant = 7, 33 | OEMTicket = 8, 34 | eRecurringOption = 9, 35 | eNumBillingTypes = 10, 36 | } EBillingType; 37 | 38 | typedef struct TSteamSubscription 39 | { 40 | char* szName; 41 | unsigned int uMaxNameChars; 42 | unsigned int* puAppIds; 43 | unsigned int uMaxAppIds; 44 | unsigned int uId; 45 | unsigned int uNumApps; 46 | EBillingType eBillingType; 47 | unsigned int uCostInCents; 48 | unsigned int uNumDiscounts; 49 | int bIsPreorder; 50 | int bRequiresShippingAddress; 51 | unsigned int uDomesticShippingCostInCents; 52 | unsigned int uInternationalShippingCostInCents; 53 | bool bIsCyberCafeSubscription; 54 | unsigned int uGameCode; 55 | char szGameCodeDesc[STEAM_MAX_PATH]; 56 | bool bIsDisabled; 57 | bool bRequiresCD; 58 | unsigned int uTerritoryCode; 59 | bool bIsSteam3Subscription; 60 | } TSteamSubscription; 61 | 62 | #endif // TSTEAMSUBSCRIPTION_H 63 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSubscriptionBillingInfo.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSUBSCRIPTIONBILLINGINFO_H 18 | #define TSTEAMSUBSCRIPTIONBILLINGINFO_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamSubscriptionBillingInfo 24 | { 25 | ESteamSubscriptionBillingInfoType eBillingInfoType; 26 | union 27 | { 28 | TSteamPaymentCardInfo PaymentCardInfo; 29 | TSteamPrepurchaseInfo PrepurchaseInfo; 30 | TSteamExternalBillingInfo ExternalBillingInfo; 31 | char bUseAccountBillingInfo; 32 | }; 33 | } TSteamSubscriptionBillingInfo; 34 | 35 | #endif // TSTEAMSUBSCRIPTIONBILLINGINFO_H 36 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSubscriptionDiscount.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSUBSCRIPTIONDISCOUNT_H 18 | #define TSTEAMSUBSCRIPTIONDISCOUNT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamSubscriptionDiscount 24 | { 25 | char szName[STEAM_MAX_PATH]; 26 | unsigned int uDiscountInCents; 27 | unsigned int uNumQualifiers; 28 | } TSteamSubscriptionDiscount; 29 | 30 | #endif // TSTEAMSUBSCRIPTIONDISCOUNT_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSubscriptionReceipt.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSUBSCRIPTIONRECEIPT_H 18 | #define TSTEAMSUBSCRIPTIONRECEIPT_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamSubscriptionReceipt 24 | { 25 | ESteamSubscriptionStatus eStatus; 26 | ESteamSubscriptionStatus ePreviousStatus; 27 | ESteamSubscriptionBillingInfoType eReceiptInfoType; 28 | 29 | char szConfirmationCode[STEAM_CONFIRMATION_CODE_SIZE + 1]; 30 | 31 | union 32 | { 33 | TSteamPaymentCardReceiptInfo PaymentCardReceiptInfo; 34 | TSteamPrepurchaseReceiptInfo PrepurchaseReceiptInfo; 35 | }; 36 | } TSteamSubscriptionReceipt; 37 | 38 | #endif // TSTEAMSUBSCRIPTIONRECEIPT_H 39 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamSubscriptionStats.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMSUBSCRIPTIONSTATS_H 18 | #define TSTEAMSUBSCRIPTIONSTATS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamSubscriptionStats 24 | { 25 | unsigned int uNumSubscriptions; 26 | unsigned int uMaxNameChars; 27 | unsigned int uMaxApps; 28 | } TSteamSubscriptionStats; 29 | 30 | #endif // TSTEAMSUBSCRIPTIONSTATS_H 31 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/TSteamUpdateStats.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef TSTEAMUPDATESTATS_H 18 | #define TSTEAMUPDATESTATS_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | typedef struct TSteamUpdateStats 24 | { 25 | SteamUnsigned64_t uBytesTotal; 26 | SteamUnsigned64_t uBytesPresent; 27 | } TSteamUpdateStats; 28 | 29 | #endif // TSTEAMUPDATESTATS_H 30 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/UnifiedMessagesCommon.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #ifndef UNIFIEDMESSAGESCOMMON_H 18 | #define UNIFIEDMESSAGESCOMMON_H 19 | #ifdef _WIN32 20 | #pragma once 21 | #endif 22 | 23 | // versions 24 | #define CLIENTUNIFIEDMESSAGES_INTERFACE_VERSION "CLIENTUNIFIEDMESSAGES_INTERFACE_VERSION001" 25 | #define STEAMUNIFIEDMESSAGES_INTERFACE_VERSION_001 "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001" 26 | 27 | // callbacks 28 | #pragma pack( push, 8 ) 29 | 30 | #pragma pack( pop ) 31 | 32 | #endif // UNIFIEDMESSAGESCOMMON_H 33 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Interfaces/Steam/Win32Library.h: -------------------------------------------------------------------------------- 1 | //========================== Open Steamworks ================================ 2 | // 3 | // This file is part of the Open Steamworks project. All individuals associated 4 | // with this project do not claim ownership of the contents 5 | // 6 | // The code, comments, and all related files, projects, resources, 7 | // redistributables included with this project are Copyright Valve Corporation. 8 | // Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the 9 | // Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, 10 | // Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the 11 | // Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition 12 | // Zero are trademarks and or registered trademarks of Valve Corporation. 13 | // All other trademarks are property of their respective owners. 14 | // 15 | //============================================================================= 16 | 17 | #pragma once 18 | 19 | class DynamicLibrary 20 | { 21 | public: 22 | DynamicLibrary(const char* cszPath) 23 | { 24 | m_handle = LoadLibraryA(cszPath); 25 | } 26 | 27 | ~DynamicLibrary() 28 | { 29 | if(m_handle) 30 | FreeLibrary(m_handle); 31 | } 32 | 33 | void * GetSymbol(const char* cszSymbol) const 34 | { 35 | if(!m_handle) 36 | return NULL; 37 | 38 | return (void *)GetProcAddress(m_handle, cszSymbol); 39 | } 40 | 41 | bool IsLoaded() const 42 | { 43 | return m_handle != NULL; 44 | } 45 | 46 | private: 47 | HMODULE m_handle; 48 | 49 | DynamicLibrary(const DynamicLibrary&); 50 | void operator=(const DynamicLibrary&); 51 | }; 52 | -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/BaseCombatWeapon/BaseCombatWeapon.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../BaseEntity/BaseEntity.h" 3 | 4 | class C_BaseCombatWeapon : public C_BaseEntity 5 | { 6 | public: 7 | WeaponData_t GetWeaponData(); 8 | int GetWeaponID(); 9 | int GetClip1(); 10 | int GetClip2(); 11 | int GetSlot(); 12 | float GetChargeTime(); 13 | float GetChargeDamage(); 14 | int GetItemDefinitionIndex(); 15 | float GetLastFireTime(); 16 | float GetSwingRange(C_BaseEntity *pLocal); 17 | bool DoSwingTrace(C_GameTrace &Trace); 18 | Vec3 &GetBulletSpread(); 19 | int GetDamageType(); 20 | bool CanFireCriticalShot(bool bHeadShot = false); 21 | bool CanWeaponHeadShot(); 22 | bool WillCrit(); 23 | float GetNextPrimaryAttack(); 24 | float GetNextSecondaryAttack(); 25 | bool CanShoot(C_BaseEntity *pLocal); 26 | bool CanSecondaryAttack(C_BaseEntity* pLocal); 27 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/BaseEntity/AnimState/BaseAnimatingOverlay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Activity.h" 3 | 4 | #define ANIM_LAYER_ACTIVE 0x0001 5 | #define ANIM_LAYER_AUTOKILL 0x0002 6 | #define ANIM_LAYER_KILLME 0x0004 7 | #define ANIM_LAYER_DONTRESTORE 0x0008 8 | #define ANIM_LAYER_CHECKACCESS 0x0010 9 | #define ANIM_LAYER_DYING 0x0020 10 | 11 | class C_BaseAnimatingOverlay; 12 | 13 | class CAnimationLayer 14 | { 15 | public: 16 | int m_fFlags; 17 | bool m_bSequenceFinished; 18 | bool m_bLooping; 19 | int m_nSequence; 20 | float m_flCycle; 21 | float m_flPrevCycle; 22 | float m_flWeight; 23 | float m_flPlaybackRate; 24 | float m_flBlendIn; 25 | float m_flBlendOut; 26 | float m_flKillRate; 27 | float m_flKillDelay; 28 | float m_flLayerAnimtime; 29 | float m_flLayerFadeOuttime; 30 | 31 | Activity m_nActivity; 32 | 33 | int m_nPriority; 34 | int m_nOrder; 35 | 36 | bool IsActive() { return ((m_fFlags & ANIM_LAYER_ACTIVE) != 0); } 37 | bool IsAutokill() { return ((m_fFlags & ANIM_LAYER_AUTOKILL) != 0); } 38 | bool IsKillMe() { return ((m_fFlags & ANIM_LAYER_KILLME) != 0); } 39 | bool IsAutoramp() { return (m_flBlendIn != 0.0 || m_flBlendOut != 0.0); } 40 | void KillMe() { m_fFlags |= ANIM_LAYER_KILLME; } 41 | void Dying() { m_fFlags |= ANIM_LAYER_DYING; } 42 | bool IsDying() { return ((m_fFlags & ANIM_LAYER_DYING) != 0); } 43 | void Dead() { m_fFlags &= ~ANIM_LAYER_DYING; } 44 | 45 | float m_flLastEventCheck; 46 | float m_flLastAccess; 47 | 48 | // Network state changes get forwarded here. 49 | C_BaseAnimatingOverlay *m_pOwnerEntity; 50 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/BaseEntity/AnimState/TFPlayerAnimState.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "MultiPlayerAnimState.h" 3 | 4 | class CTFPlayerAnimState : public CMultiPlayerAnimState 5 | { 6 | public: 7 | C_BaseEntity *GetTFPlayer() { return m_pTFPlayer; } 8 | 9 | virtual void ClearAnimationState() = 0; 10 | virtual Activity TranslateActivity(Activity actDesired) = 0; 11 | virtual void Update(float eyeYaw, float eyePitch) = 0; 12 | virtual void CheckStunAnimation() = 0; 13 | virtual Activity CalcMainActivity() = 0; 14 | virtual void ComputePoseParam_AimYaw(CStudioHdr *pStudioHdr) = 0; 15 | virtual float GetCurrentMaxGroundSpeed() = 0; 16 | virtual float GetGesturePlaybackRate() = 0; 17 | virtual bool ShouldUpdateAnimState() = 0; 18 | virtual void GetOuterAbsVelocity(Vec3 &vel) = 0; 19 | virtual void RestartGesture(int iGestureSlot, Activity iGestureActivity, bool bAutoKill = true) = 0; 20 | void SetRenderAngles(const Vec3 &angles) { m_angRender = angles; } 21 | 22 | C_BaseEntity *m_pTFPlayer; 23 | bool m_bInAirWalk; 24 | float m_flHoldDeployedPoseUntilTime; 25 | float m_flTauntMoveX; 26 | float m_flTauntMoveY; 27 | float m_flVehicleLeanVel; 28 | float m_flVehicleLeanPos; 29 | Vec3 m_vecSmoothedUp; 30 | }; 31 | 32 | #define MAXSTUDIOPOSEPARAM 24 -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/BaseObject/BaseObject.cpp: -------------------------------------------------------------------------------- 1 | #include "BaseObject.h" 2 | 3 | bool C_BaseObject::IsControlled() 4 | { 5 | DYNVAR_RETURN(bool, this, "DT_ObjectSentrygun", "m_bPlayerControlled"); 6 | } 7 | 8 | bool C_BaseObject::IsConstructing() 9 | { 10 | DYNVAR_RETURN(bool, this, "DT_BaseObject", "m_bBuilding"); 11 | } 12 | 13 | float C_BaseObject::GetConstructed() 14 | { 15 | DYNVAR_RETURN(float, this, "DT_BaseObject", "m_flPercentageConstructed"); 16 | } 17 | 18 | int C_BaseObject::GetMetal() 19 | { 20 | DYNVAR_RETURN(int, this, "DT_ObjectDispenser", "m_iAmmoMetal"); 21 | } 22 | 23 | int C_BaseObject::GetAmmo() 24 | { 25 | DYNVAR_RETURN(int, this, "DT_ObjectSentrygun", "m_iAmmoShells"); 26 | } 27 | 28 | int C_BaseObject::GetRockets() 29 | { 30 | DYNVAR_RETURN(int, this, "DT_ObjectSentrygun", "m_iAmmoRockets"); 31 | } 32 | 33 | C_BaseEntity *C_BaseObject::GetOwner() 34 | { 35 | DYNVAR_RETURN(C_BaseEntity *, this, "DT_BaseObject", "m_hBuilder"); 36 | } 37 | 38 | int C_BaseObject::GetLevel() 39 | { 40 | DYNVAR_RETURN(int, this, "DT_BaseObject", "m_iUpgradeLevel"); 41 | } 42 | 43 | bool C_BaseObject::IsSapped() 44 | { 45 | DYNVAR_RETURN(bool, this, "DT_BaseObject", "m_bHasSapper"); 46 | } 47 | 48 | bool C_BaseObject::IsPlasmaDisabled() 49 | { 50 | DYNVAR_RETURN(bool, this, "DT_BaseObject", "m_bPlasmaDisable"); //cowmangler's secondary attack I think 51 | } 52 | 53 | bool C_BaseObject::IsDisabled() 54 | { 55 | DYNVAR_RETURN(bool, this, "DT_BaseObject", "m_bDisabled"); 56 | } 57 | 58 | int C_BaseObject::GetHealth() 59 | { 60 | DYNVAR_RETURN(int, this, "DT_BaseObject", "m_iHealth"); 61 | } 62 | 63 | int C_BaseObject::GetMaxHealth() 64 | { 65 | DYNVAR_RETURN(int, this, "DT_BaseObject", "m_iMaxHealth"); 66 | } 67 | 68 | bool C_BaseObject::IsCarried() 69 | { 70 | DYNVAR_RETURN(int, this, "DT_BaseObject", "m_bCarried"); 71 | } -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/BaseObject/BaseObject.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../BaseEntity/BaseEntity.h" 3 | 4 | class C_BaseObject : public C_BaseEntity 5 | { 6 | public: 7 | bool IsControlled(); 8 | float GetConstructed(); 9 | int GetMetal(); 10 | int GetAmmo(); 11 | int GetRockets(); 12 | bool IsConstructing(); 13 | C_BaseEntity *GetOwner(); 14 | int GetLevel(); 15 | bool IsSapped(); 16 | bool IsPlasmaDisabled(); 17 | bool IsDisabled(); 18 | int GetHealth(); 19 | int GetMaxHealth(); 20 | bool IsCarried(); 21 | }; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/ConVars/ConVars.cpp: -------------------------------------------------------------------------------- 1 | #include "ConVars.h" 2 | 3 | void ConVars_t::Init() 4 | { 5 | cl_interp = gInts.CVars->FindVar("cl_interp"); 6 | cl_interp_ratio = gInts.CVars->FindVar("cl_interp_ratio"); 7 | cl_updaterate = gInts.CVars->FindVar("cl_updaterate"); 8 | 9 | tf_crit_cap = gInts.CVars->FindVar("tf_weapon_criticals_bucket_cap"); 10 | tf_crit_bottom = gInts.CVars->FindVar("tf_weapon_criticals_bucket_bottom"); 11 | tf_crit_default = gInts.CVars->FindVar("tf_weapon_criticals_bucket_default"); 12 | 13 | sv_gravity = gInts.CVars->FindVar("sv_gravity"); 14 | cl_flipviewmodels = gInts.CVars->FindVar("cl_flipviewmodels"); 15 | 16 | sv_maxunlag = gInts.CVars->FindVar("sv_maxunlag"); 17 | } 18 | 19 | ConVars_t gConVars; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/ConVars/ConVars.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../BaseEntity/BaseEntity.h" 3 | 4 | struct ConVars_t 5 | { 6 | ConVar* cl_interp = nullptr; 7 | ConVar* cl_interp_ratio = nullptr; 8 | ConVar* cl_updaterate = nullptr; 9 | ConVar* tf_crit_cap = nullptr; 10 | ConVar* tf_crit_bottom = nullptr; 11 | ConVar* tf_crit_default = nullptr; 12 | 13 | ConVar* sv_gravity = nullptr; 14 | ConVar* cl_flipviewmodels = nullptr; 15 | ConVar* sv_maxunlag = nullptr; 16 | 17 | void Init(); 18 | }; 19 | 20 | extern ConVars_t gConVars; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/EntityCache/EntityCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../BaseEntity/BaseEntity.h" 4 | #include "../BaseCombatWeapon/BaseCombatWeapon.h" 5 | #include "../BaseObject/BaseObject.h" 6 | 7 | enum struct GroupType_t 8 | { 9 | PLAYERS_ALL, 10 | PLAYERS_ENEMIES, 11 | PLAYERS_TEAMMATES, 12 | 13 | BUILDINGS_ALL, 14 | BUILDINGS_ENEMIES, 15 | BUILDINGS_TEAMMATES, 16 | 17 | PROJECTILES_ALL, 18 | PROJECTILES_ENEMIES, 19 | PROJECTILES_TEAMMATES, 20 | 21 | AMMOPACKS_ALL, 22 | HEALTHPACKS_ALL 23 | }; 24 | 25 | class C_EntityCache 26 | { 27 | private: 28 | std::map> Groups; 29 | 30 | public: 31 | C_BaseEntity *pLocal = nullptr; 32 | C_BaseCombatWeapon *pLocalWeapon = nullptr; 33 | 34 | void Fill(); 35 | void Clear(); 36 | const std::vector &GetGroup(const GroupType_t &group); 37 | }; 38 | 39 | extern C_EntityCache gEntCache; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/GlobalInfo/GlobalInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../BaseEntity/BaseEntity.h" 3 | 4 | struct GlobalInfo_t 5 | { 6 | //vars 7 | int nCurrentTargetIdx = 0; 8 | bool bWeaponCanHeadShot = false; 9 | bool bWeaponCanShoot = false; 10 | float fChargeTime = 0.0f; 11 | Vec3 vecUCMDAngles = Vec3(); 12 | 13 | //temporary place for some features I guess 14 | bool bNoInterpolation = true; 15 | Vec3 vecPredictedPos = Vec3(); 16 | 17 | //Fuck 18 | bool m_bDrawMenu = false; 19 | int m_nFocusOverlay = 0; 20 | bool m_bPPUCP = true; 21 | 22 | VMatrix WorldToProjection = {}; 23 | }; 24 | 25 | inline GlobalInfo_t gGlobalInfo; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/Main/VisCheck/VisCheck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../BaseEntity/BaseEntity.h" 3 | 4 | class C_TraceFilterHitscan : public C_TraceFilter 5 | { 6 | public: 7 | virtual bool ShouldHitEntity(void* pEntityHandle, int nContentsMask); 8 | virtual TraceType_t GetTraceType() const; 9 | C_BaseEntity* pSkip = nullptr; 10 | }; 11 | 12 | class C_TraceFilterWorldAndPropsOnly : public C_TraceFilter 13 | { 14 | public: 15 | virtual bool ShouldHitEntity(void *pEntityHandle, int nContentsMask); 16 | virtual TraceType_t GetTraceType() const; 17 | C_BaseEntity *pSkip = nullptr; 18 | }; 19 | 20 | class C_TraceFilterWorldAndPropsOnlyOther : public C_TraceFilter 21 | { 22 | public: 23 | virtual bool ShouldHitEntity(void *pEntityHandle, int nContentsMask); 24 | virtual TraceType_t GetTraceType() const; 25 | C_BaseEntity *pSkip = nullptr; 26 | }; 27 | 28 | class C_VisCheck 29 | { 30 | public: 31 | bool Pos(C_BaseEntity* pSkip, C_BaseEntity* pEntity, const Vec3& from, const Vec3& to); 32 | bool PosHitboxId(C_BaseEntity* pSkip, C_BaseEntity* pEntity, const Vec3& from, const Vec3& to, int nHitbox); 33 | bool PosHitboxIdOut(C_BaseEntity* pSkip, C_BaseEntity* pEntity, const Vec3& from, const Vec3& to, int& nHitboxOut); 34 | bool PosFraction(C_BaseEntity *pSkip, const Vec3 &from, const Vec3 &to); 35 | }; 36 | 37 | extern C_VisCheck gVisCheck; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/NetVars/NetVars.cpp: -------------------------------------------------------------------------------- 1 | #include "NetVars.h" 2 | 3 | #undef GetProp 4 | 5 | void C_NetVars::Init() 6 | { 7 | const auto *client_class = gInts.Client->GetAllClasses(); 8 | 9 | while (client_class != nullptr) 10 | { 11 | const auto class_info = std::make_shared(0); 12 | RecvTable *recv_table = reinterpret_cast(client_class->pRecvTable); 13 | populate_nodes(recv_table, &class_info->nodes); 14 | nodes.emplace(recv_table->GetName(), class_info); 15 | 16 | client_class = client_class->pNextClass; 17 | } 18 | } 19 | 20 | void C_NetVars::populate_nodes(RecvTable *recv_table, map_type *map) 21 | { 22 | for (auto i = 0; i < recv_table->GetNumProps(); i++) 23 | { 24 | const auto *prop = recv_table->GetPropW(i); 25 | const auto prop_info = std::make_shared(prop->GetOffset()); 26 | 27 | if (prop->GetType() == DPT_DataTable) 28 | populate_nodes(prop->GetDataTable(), &prop_info->nodes); 29 | 30 | map->emplace(prop->GetName(), prop_info); 31 | } 32 | } 33 | 34 | C_NetVars gNetVars; -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/NetVars/NetVars.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../Interfaces/Interfaces.h" 4 | 5 | //TODO: Rewrite 6 | 7 | //Made by Emily and some other dude 8 | class C_NetVars 9 | { 10 | struct node; 11 | using map_type = std::unordered_map>; 12 | 13 | struct node { 14 | node(DWORD offset) : offset(offset) {} 15 | map_type nodes; 16 | DWORD offset; 17 | }; 18 | 19 | map_type nodes; 20 | 21 | public: 22 | void Init(); 23 | 24 | private: 25 | void populate_nodes(class RecvTable *recv_table, map_type *map); 26 | 27 | DWORD get_offset_recursive(map_type &map, int acc, const char *name) { 28 | return acc + map[name]->offset; 29 | } 30 | 31 | template 32 | DWORD get_offset_recursive(map_type &map, int acc, const char *name, args_t ...args) { 33 | const auto &node = map[name]; 34 | return get_offset_recursive(node->nodes, acc + node->offset, args...); 35 | } 36 | 37 | public: 38 | template 39 | DWORD get_offset(const char *name, args_t ...args) { 40 | const auto &node = nodes[name]; 41 | return get_offset_recursive(node->nodes, node->offset, args...); 42 | } 43 | }; 44 | 45 | extern C_NetVars gNetVars; 46 | 47 | template 48 | class CDynamicNetvar 49 | { 50 | DWORD off; 51 | 52 | public: 53 | template 54 | CDynamicNetvar(args_t... a) { 55 | off = gNetVars.get_offset(a...); 56 | } 57 | 58 | template 59 | CDynamicNetvar(int offset, args_t... a) { 60 | off = gNetVars.get_offset(a...) + offset; 61 | } 62 | 63 | T GetValue(PVOID base) { 64 | return *reinterpret_cast((DWORD)base + (DWORD)off); 65 | } 66 | 67 | void SetValue(PVOID base, T val) { 68 | *reinterpret_cast((DWORD)(base)+((DWORD)(off))) = val; 69 | } 70 | }; 71 | 72 | #define DYNVAR(name, type, ...) static CDynamicNetvar ##name( __VA_ARGS__ ) 73 | #define DYNVAR_RETURN(type, base, ...) DYNVAR(n, type, __VA_ARGS__); return n.GetValue(base) 74 | #define DYNVAR_SET(type, base, value, ...) DYNVAR(n, type, __VA_ARGS__); n.SetValue(base,value) -------------------------------------------------------------------------------- /Project IC/Project IC/SDK/SDK.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Main/BaseEntity/BaseEntity.h" 4 | #include "Main/BaseCombatWeapon/BaseCombatWeapon.h" 5 | #include "Main/BaseObject/BaseObject.h" 6 | 7 | #include "Main/DrawUtils/DrawUtils.h" 8 | #include "Main/EntityCache/EntityCache.h" 9 | #include "Main/VisCheck/VisCheck.h" 10 | #include "Main/GlobalInfo/GlobalInfo.h" 11 | #include "Main/ConVars/ConVars.h" 12 | 13 | #define TIME_TO_TICKS( dt ) ( (int)( 0.5f + (float)(dt) / gInts.GlobalVars->interval_per_tick ) ) 14 | #define TICKS_TO_TIME( t ) ( gInts.GlobalVars->interval_per_tick * ( t ) ) 15 | #define TICK_INTERVAL ( gInts.GlobalVars->interval_per_tick ) 16 | 17 | namespace Util 18 | { 19 | inline void TraceHull(const Vec3 &vecStart, const Vec3 &vecEnd, const Vec3 &vecHullMin, const Vec3 &vecHullMax, 20 | unsigned int nMask, C_TraceFilter *pFilter, C_GameTrace *pTrace) 21 | { 22 | Ray_t ray; 23 | ray.Init(vecStart, vecEnd, vecHullMin, vecHullMax); 24 | gInts.EngineTrace->TraceRay(ray, nMask, pFilter, pTrace); 25 | } 26 | 27 | inline int RandInt(int min, int max) { 28 | std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> distr(min, max); 29 | return distr(gen); 30 | } 31 | 32 | inline Color_t RandColor(byte min = 0, bool bRandAlpha = false) 33 | { 34 | byte r = static_cast(RandInt(0, 255)); 35 | byte g = static_cast(RandInt(0, 255)); 36 | byte b = static_cast(RandInt(0, 255)); 37 | byte a = static_cast(bRandAlpha ? RandInt(0, 255) : 255); 38 | 39 | if (min) 40 | { 41 | r = std::clamp(r, min, static_cast(255)); 42 | g = std::clamp(g, min, static_cast(255)); 43 | b = std::clamp(b, min, static_cast(255)); 44 | a = std::clamp(a, min, static_cast(255)); 45 | } 46 | 47 | return Color_t{r, g, b, a}; 48 | } 49 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Color/Color.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../Math/Math.h" 3 | 4 | using byte = unsigned char; 5 | 6 | struct Color_t { byte r = 0, g = 0, b = 0, a = 0; }; 7 | 8 | namespace Color 9 | { 10 | inline float TOFLOAT(byte x) { 11 | return (static_cast(x) / 255.0f); 12 | } 13 | 14 | inline Vec3 TOVEC3(const Color_t &x) { 15 | return Vec3(TOFLOAT(x.r), TOFLOAT(x.g), TOFLOAT(x.b)); 16 | } 17 | 18 | inline unsigned long TODWORD(const Color_t &x) { 19 | return (static_cast(((x.r & 0xFF) << 24) | ((x.g & 0xFF) << 16) | ((x.b & 0xFF) << 8) | (x.a & 0xFF))); 20 | } 21 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Hash/Hash.cpp: -------------------------------------------------------------------------------- 1 | #include "Hash.h" 2 | 3 | //The magic of number 33, i.e. why it works better than many other constants, 4 | //prime or not, has never been adequately explained by anyone. 5 | int Hash::String(const char* szOrg) { 6 | int iHash = 5381; 7 | 8 | while (int iStr = *szOrg++) iHash = iHash * 33 + iStr; 9 | 10 | return iHash; 11 | } 12 | 13 | bool Hash::m_bIsHealth(int nHash) { 14 | switch (nHash) { 15 | case MedKitSmall: 16 | case MedKitMedium: 17 | case MedKitLarge: 18 | case MedKitSmallBday: 19 | case MedKitMediumBday: 20 | case MedKitLargeBday: 21 | case MedKitSmallHalloween: 22 | case MedKitMediumHalloween: 23 | case MedKitLargeHalloween: 24 | case MedKitPlate: 25 | case MedKitSteak: 26 | case MedKitLargeMushRoom: 27 | return true; 28 | default: 29 | return false; 30 | } 31 | } 32 | 33 | bool Hash::m_bIsAmmo(int nHash) { 34 | switch (nHash) { 35 | case AmmoSmall: 36 | case AmmoMedium: 37 | case AmmoLarge: 38 | case AmmoMediumBday: 39 | case AmmoLargeBday: 40 | return true; 41 | default: 42 | return false; 43 | } 44 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Hash/Hash.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //Main hash function 4 | //And prehashed strings allowing for fast comparisong. 5 | namespace Hash 6 | { 7 | int String(const char* szOrg); 8 | 9 | //Panels 10 | constexpr int HudScope = 200208064; 11 | constexpr int FocusOverlayPanel = -861513321; 12 | 13 | //Health packs (Probably missing some) 14 | constexpr int MedKitSmall = 1941719626; 15 | constexpr int MedKitMedium = 642350162; 16 | constexpr int MedKitLarge = 1102367452; 17 | constexpr int MedKitSmallBday = -2020233079; 18 | constexpr int MedKitMediumBday = -1898223727; 19 | constexpr int MedKitLargeBday = -1183884197; 20 | constexpr int MedKitPlate = -159986486; 21 | constexpr int MedKitSteak = -1325824063; 22 | constexpr int MedKitSmallHalloween = 1667112440; 23 | constexpr int MedKitMediumHalloween = 170247616; 24 | constexpr int MedKitLargeHalloween = 827760266; 25 | constexpr int MedKitLargeMushRoom = 687823304; 26 | 27 | //Ammo packs (Probably missing some) 28 | constexpr int AmmoSmall = 913481717; 29 | constexpr int AmmoMedium = 1070237533; 30 | constexpr int AmmoLarge = 74129543; 31 | constexpr int AmmoLargeBday = 1933898982; 32 | constexpr int AmmoMediumBday = -2090593924; 33 | 34 | //Atombomb is MvM's bomb, briefcase is CTF's intel. 35 | //Check this when making the intel ESP, both are CCaptureFlag. 36 | constexpr int AtomBomb = -1938815603; 37 | constexpr int BriefCase = 381882864; 38 | 39 | bool m_bIsAmmo(int nHash); 40 | bool m_bIsHealth(int nHash); 41 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Interface/Interface.cpp: -------------------------------------------------------------------------------- 1 | #include "Interface.h" 2 | 3 | PVOID CInterface::Get(PCCH szModule, PCCH szObject) 4 | { 5 | HMODULE Module = GetModuleHandleA(szModule); 6 | 7 | if (!Module) 8 | return nullptr; 9 | 10 | DWORD CreateInterface = (DWORD)GetProcAddress(Module, "CreateInterface"); 11 | DWORD ShortJump = (DWORD)CreateInterface + 5; 12 | DWORD Jump = (((DWORD)CreateInterface + 5) + *(DWORD *)ShortJump) + 4; 13 | Interface_t *List = **(Interface_t ***)(Jump + 6); 14 | 15 | while (List) 16 | { 17 | if (List && (strstr(List->szInterfaceName, szObject) && (strlen(List->szInterfaceName) - strlen(szObject)) < 5)) 18 | return List->Interface(); 19 | 20 | List = List->NextInterface; 21 | } 22 | 23 | return nullptr; 24 | } 25 | 26 | CInterface gInterface; -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Interface/Interface.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | class CInterface 5 | { 6 | private: 7 | typedef PVOID(*InstantiateInterface)(); 8 | 9 | struct Interface_t 10 | { 11 | InstantiateInterface Interface; 12 | PCHAR szInterfaceName; 13 | Interface_t *NextInterface; 14 | }; 15 | 16 | public: 17 | PVOID Get(PCCH szModule, PCCH szObject); 18 | }; 19 | 20 | extern CInterface gInterface; -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Pattern/Pattern.cpp: -------------------------------------------------------------------------------- 1 | #include "Pattern.h" 2 | 3 | #define INRANGE(x,a,b) (x >= a && x <= b) 4 | #define GetBits(x) (INRANGE((x&(~0x20)),'A','F') ? ((x&(~0x20)) - 'A' + 0xa) : (INRANGE(x,'0','9') ? x - '0' : 0)) 5 | #define GetByte(x) (GetBits(x[0]) << 4 | GetBits(x[1])) 6 | 7 | DWORD CPattern::FindPattern(DWORD dwAddress, DWORD dwLength, PCCH szPattern) 8 | { 9 | PCCH szPat = szPattern; 10 | DWORD dwFirstMatch = 0x0; 11 | 12 | for (DWORD pCur = dwAddress; pCur < dwLength; pCur++) 13 | { 14 | if (!*szPat) 15 | return dwFirstMatch; 16 | 17 | if (*(PBYTE)szPat == '\?' || *(BYTE *)pCur == GetByte(szPat)) 18 | { 19 | if (!dwFirstMatch) 20 | dwFirstMatch = pCur; 21 | 22 | if (!szPat[2]) 23 | return dwFirstMatch; 24 | 25 | if (*(PWORD)szPat == '\?\?' || *(PBYTE)szPat != '\?') 26 | szPat += 3; 27 | 28 | else szPat += 2; 29 | } 30 | 31 | else { 32 | szPat = szPattern; 33 | dwFirstMatch = 0; 34 | } 35 | } 36 | 37 | return 0x0; 38 | } 39 | 40 | HMODULE CPattern::GetModuleHandleSafe(PCCH szModuleName) 41 | { 42 | HMODULE hmModuleHandle = 0; 43 | 44 | do 45 | { 46 | hmModuleHandle = GetModuleHandleA(szModuleName); 47 | Sleep(1); 48 | } while (hmModuleHandle == 0); 49 | 50 | return hmModuleHandle; 51 | } 52 | 53 | DWORD CPattern::Find(PCCH szModuleName, PCCH szPattern) 54 | { 55 | HMODULE hmModule = GetModuleHandleSafe(szModuleName); 56 | PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER)hmModule; 57 | PIMAGE_NT_HEADERS pNTHeaders = (PIMAGE_NT_HEADERS)(((DWORD)hmModule) + pDOSHeader->e_lfanew); 58 | 59 | return FindPattern(((DWORD)hmModule) + pNTHeaders->OptionalHeader.BaseOfCode, ((DWORD)hmModule) + pNTHeaders->OptionalHeader.SizeOfCode, szPattern); 60 | } 61 | 62 | CPattern gPattern; -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Pattern/Pattern.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | class CPattern 5 | { 6 | private: 7 | DWORD FindPattern(DWORD dwAddress, DWORD dwLength, PCCH szPattern); 8 | HMODULE GetModuleHandleSafe(PCCH szModuleName); 9 | public: 10 | DWORD Find(PCCH szModuleName, PCCH szPattern); 11 | }; 12 | 13 | extern CPattern gPattern; -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/Utils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Color/Color.h" //this includes math 3 | #include "Interface/Interface.h" 4 | #include "VFunc/VFunc.h" 5 | #include "VMT/VMT.h" 6 | #include "Pattern/Pattern.h" 7 | #include "Hash/Hash.h" 8 | #include "UtlVector/UtlVector.h" 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #undef min 23 | #undef max -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/VFunc/VFunc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | inline void **&GetVTable(void *inst, size_t offset = 0) 4 | { 5 | return *reinterpret_cast((size_t)inst + offset); 6 | } 7 | 8 | inline const void **GetVTable(const void *inst, size_t offset = 0) 9 | { 10 | return *reinterpret_cast((size_t)inst + offset); 11 | } 12 | 13 | template 14 | inline T GetVFunc(const void *inst, size_t index, size_t offset = 0) 15 | { 16 | return reinterpret_cast(GetVTable(inst, offset)[index]); 17 | } -------------------------------------------------------------------------------- /Project IC/Project IC/Utils/VMT/VMT.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //std::unique_ptr 4 | #include 5 | 6 | //Written by a pleb 7 | namespace VMT 8 | { 9 | class Table 10 | { 11 | private: 12 | unsigned int **baseclass = nullptr; 13 | std::unique_ptr current; 14 | unsigned int *original = nullptr; 15 | int size = 0; 16 | 17 | public: 18 | void Init(const void *base) 19 | { 20 | baseclass = (unsigned int **)(base); 21 | 22 | if (size == 0) { 23 | while (static_cast(*baseclass)[size]) 24 | size++; 25 | } 26 | 27 | original = *baseclass; 28 | current = std::make_unique(size); 29 | std::memcpy(current.get(), original, size * sizeof(unsigned int)); 30 | *baseclass = current.get(); 31 | }; 32 | 33 | template 34 | inline FN Original(const int index) { return reinterpret_cast(original[index]); } 35 | inline void Hook(const int index, void *function) { current[index] = reinterpret_cast(function); } 36 | inline void Unhook(const int index) { current[index] = original[index]; } 37 | inline bool Initialized() { return size && original != nullptr; } 38 | inline void RestoreTable() { if (Initialized()) *baseclass = original; } 39 | }; 40 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ProjectIC_TF2 2 | A training software source code for Team Fortress 2 video game. Meant for offline use / training. 3 | 4 | Contributors: 5 | * https://github.com/spook953 6 | * https://github.com/elitepleb 7 | * https://github.com/Lak3 8 | 9 | --------------------------------------------------------------------------------