SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
steampp.h
Go to the documentation of this file.
1
5#pragma once
6
7#include <cstddef>
8#include <string>
9#include <string_view>
10#include <unordered_map>
11#include <vector>
12
13#include <sourcepp/Math.h>
14
15namespace steampp {
16
17using AppID = uint32_t;
18
19class Steam {
20public:
21 Steam();
22
23 [[nodiscard]] std::string_view getInstallDir() const;
24
25 [[nodiscard]] const std::vector<std::string>& getLibraryDirs() const;
26
27 [[nodiscard]] std::string getSourceModDir() const;
28
29 [[nodiscard]] std::vector<AppID> getInstalledApps() const;
30
31 [[nodiscard]] bool isAppInstalled(AppID appID) const;
32
33 [[nodiscard]] std::string_view getAppName(AppID appID) const;
34
35 [[nodiscard]] std::string getAppInstallDir(AppID appID) const;
36
37 [[nodiscard]] std::string getAppIconPath(AppID appID) const;
38
39 [[nodiscard]] std::string getAppLogoPath(AppID appID) const;
40
41 [[nodiscard]] std::string getAppBoxArtPath(AppID appID) const;
42
43 [[nodiscard]] std::string getAppStoreArtPath(AppID appID) const;
44
45 [[nodiscard]] bool isAppUsingGoldSrcEngine(AppID appID) const;
46
47 [[nodiscard]] bool isAppUsingSourceEngine(AppID appID) const;
48
49 [[nodiscard]] bool isAppUsingSource2Engine(AppID appID) const;
50
51 [[nodiscard]] explicit operator bool() const;
52
53private:
54 struct GameInfo {
55 std::string name;
56 std::string installDir;
57 std::size_t libraryInstallDirsIndex;
58 };
59
60 std::unordered_map<AppID, GameInfo> gameDetails;
61 std::string steamInstallDir;
62 std::vector<std::string> libraryDirs;
63};
64
65} // namespace steampp
std::vector< AppID > getInstalledApps() const
Definition: steampp.cpp:270
bool isAppUsingSourceEngine(AppID appID) const
Definition: steampp.cpp:360
bool isAppUsingGoldSrcEngine(AppID appID) const
Definition: steampp.cpp:356
std::string getAppBoxArtPath(AppID appID) const
Definition: steampp.cpp:328
std::string getSourceModDir() const
Definition: steampp.cpp:266
const std::vector< std::string > & getLibraryDirs() const
Definition: steampp.cpp:262
bool isAppUsingSource2Engine(AppID appID) const
Definition: steampp.cpp:364
std::string getAppStoreArtPath(AppID appID) const
Definition: steampp.cpp:342
std::string_view getAppName(AppID appID) const
Definition: steampp.cpp:279
bool isAppInstalled(AppID appID) const
Definition: steampp.cpp:275
std::string getAppLogoPath(AppID appID) const
Definition: steampp.cpp:314
std::string getAppInstallDir(AppID appID) const
Definition: steampp.cpp:286
std::string_view getInstallDir() const
Definition: steampp.cpp:258
std::string getAppIconPath(AppID appID) const
Definition: steampp.cpp:293
Based on SteamAppPathProvider.
Definition: steampp.h:15
uint32_t AppID
Definition: steampp.h:17