origin_sdk/protocol/
game.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub enum ContentState {
5    #[serde(rename = "UNKNOWN")]
6    Unknown,
7    #[serde(rename = "READY_TO_DOWNLOAD")]
8    ReadyToDownload,
9    #[serde(rename = "SERVER_QUEUED")]
10    ServerQueued,
11    #[serde(rename = "DOWNLOADING")]
12    Downloading,
13    #[serde(rename = "DOWNLOAD_PAUSED")]
14    DownloadPaused,
15    #[serde(rename = "READY_TO_ACTIVATE")]
16    ReadyToActivate,
17    #[serde(rename = "READY_TO_DECRYPT")]
18    ReadyToDecrypt,
19    #[serde(rename = "DECRYPTING")]
20    Decrypting,
21    #[serde(rename = "READY_TO_UNPACK")]
22    ReadyToUnpack,
23    #[serde(rename = "UNPACKING")]
24    Unpacking,
25    #[serde(rename = "READY_TO_INSTALL")]
26    ReadyToInstall,
27    #[serde(rename = "INSTALLING")]
28    Installing,
29    #[serde(rename = "READY_TO_PLAY")]
30    ReadyToPlay,
31    #[serde(rename = "READY_TO_USE")]
32    ReadyToUse,
33    #[serde(rename = "INSTALLED")]
34    Installed,
35    #[serde(rename = "WAITING_TO_DOWNLOAD")]
36    WaitingToDownload,
37    #[serde(rename = "WAITING_TO_DECRYPT")]
38    WaitingToDecrypt,
39    #[serde(rename = "DOWNLOAD_EXPIRED")]
40    DownloadExpired,
41    #[serde(rename = "DECRYPT_EXPIRED")]
42    DecryptExpired,
43    #[serde(rename = "INVALID_CONTENT")]
44    InvalidContent,
45    #[serde(rename = "PLAYING")]
46    Playing,
47    #[serde(rename = "FINALIZING_DOWNLOAD")]
48    FinalizingDownload,
49    #[serde(rename = "PREPARING_DOWNLOAD")]
50    PreparingDownload,
51    #[serde(rename = "UPDATING")]
52    Updating,
53    #[serde(rename = "VERIFYING")]
54    Verifying,
55    #[serde(rename = "READY_TO_UPDATE")]
56    ReadyToUpdate,
57    #[serde(rename = "UPDATE_PAUSED")]
58    UpdatePaused,
59    #[serde(rename = "DOWNLOAD_QUEUED")]
60    DownloadQueued,
61}
62
63#[derive(Debug, Serialize, Deserialize)]
64pub struct CoreContentUpdated {
65    #[serde(rename = "Game", default)]
66    pub games: Vec<Game>,
67}
68
69#[derive(Debug, Serialize, Deserialize)]
70pub struct Dlc {
71    #[serde(rename = "@Name")]
72    pub name: String,
73    #[serde(rename = "@Id")]
74    pub id: String,
75    #[serde(rename = "@Installed")]
76    pub installed: bool,
77}
78
79#[derive(Debug, Serialize, Deserialize)]
80pub struct Game {
81    #[serde(rename = "@contentID")]
82    pub content_id: String,
83    #[serde(rename = "@progressValue")]
84    pub progress_value: f32,
85    #[serde(rename = "@state")]
86    pub state: ContentState,
87    #[serde(rename = "@installedVersion")]
88    pub installed_version: String,
89    #[serde(rename = "@availableVersion")]
90    pub available_version: String,
91    #[serde(rename = "@displayName")]
92    pub display_name: String,
93}
94
95#[derive(Debug, Serialize, Deserialize)]
96pub enum GameInfo {
97    #[serde(rename = "UPTODATE")]
98    Uptodate,
99    #[serde(rename = "LANGUAGES")]
100    Languages,
101    #[serde(rename = "FREETRIAL")]
102    Freetrial,
103    #[serde(rename = "EXPIRATION")]
104    Expiration,
105    #[serde(rename = "EXPIRATION_DURATION")]
106    ExpirationDuration,
107    #[serde(rename = "INSTALLED_VERSION")]
108    InstalledVersion,
109    #[serde(rename = "INSTALLED_LANGUAGE")]
110    InstalledLanguage,
111    #[serde(rename = "AVAILABLE_VERSION")]
112    AvailableVersion,
113    #[serde(rename = "DISPLAY_NAME")]
114    DisplayName,
115    #[serde(rename = "FULLGAME_PURCHASED")]
116    FullgamePurchased,
117    #[serde(rename = "FULLGAME_IS_RELEASED")]
118    FullgameIsReleased,
119    #[serde(rename = "FULLGAME_RELEASE_DATE")]
120    FullgameReleaseDate,
121    #[serde(rename = "MAX_GROUP_SIZE")]
122    MaxGroupSize,
123    #[serde(rename = "ENTITLEMENT_SOURCE")]
124    EntitlementSource,
125}
126
127#[derive(Debug, Serialize, Deserialize)]
128pub struct GameMessageEvent {
129    #[serde(rename = "@GameId")]
130    pub game_id: String,
131    #[serde(rename = "@Message")]
132    pub message: String,
133}
134
135#[derive(Debug, Serialize, Deserialize)]
136pub struct GetAllGameInfo;
137
138#[derive(Debug, Serialize, Deserialize)]
139pub struct GetAllGameInfoResponse {
140    #[serde(rename = "@UpToDate")]
141    pub up_to_date: bool,
142    #[serde(rename = "@Languages")]
143    pub languages: String,
144    #[serde(rename = "@FreeTrial")]
145    pub free_trial: bool,
146    #[serde(rename = "@FullGamePurchased")]
147    pub full_game_purchased: bool,
148    #[serde(rename = "@FullGameReleased")]
149    pub full_game_released: bool,
150    #[serde(rename = "@FullGameReleaseDate")]
151    pub full_game_release_date: String,
152    #[serde(rename = "@Expiration")]
153    pub expiration: String,
154    #[serde(rename = "@SystemTime")]
155    pub system_time: String,
156    #[serde(rename = "@HasExpiration")]
157    pub has_expiration: bool,
158    #[serde(rename = "@InstalledVersion")]
159    pub installed_version: String,
160    #[serde(rename = "@InstalledLanguage")]
161    pub installed_language: String,
162    #[serde(rename = "@AvailableVersion")]
163    pub available_version: String,
164    #[serde(rename = "@DisplayName")]
165    pub display_name: String,
166    #[serde(rename = "@MaxGroupSize")]
167    pub max_group_size: i32,
168    #[serde(rename = "@EntitlementSource")]
169    pub entitlement_source: String,
170}
171
172#[derive(Debug, Serialize, Deserialize)]
173pub struct QueryContent {
174    #[serde(rename = "@UserId")]
175    pub user_id: u64,
176    #[serde(rename = "@MultiplayerId")]
177    pub multiplayer_id: String,
178    #[serde(rename = "@Content")]
179    pub content_type: i32,
180    #[serde(rename = "MasterTitleId", default)]
181    pub game_id: Vec<String>,
182}
183
184#[derive(Debug, Serialize, Deserialize)]
185pub struct QueryContentResponse {
186    #[serde(rename = "Game", default)]
187    pub content: Vec<Game>,
188}
189
190#[derive(Debug, Serialize, Deserialize)]
191pub struct RestartGame {
192    #[serde(rename = "@UserId")]
193    pub user_id: u64,
194    #[serde(rename = "@Options")]
195    pub options: RestartOptions,
196}
197
198#[derive(Debug, Serialize, Deserialize)]
199pub enum RestartOptions {
200    #[serde(rename = "NORMAL")]
201    Normal,
202    #[serde(rename = "FORCE_UPDATE_FOR_GAME")]
203    ForceUpdateForGame,
204}
205
206#[derive(Debug, Serialize, Deserialize)]
207pub struct SendGameMessage {
208    #[serde(rename = "@GameId")]
209    pub game_id: String,
210    #[serde(rename = "@Message")]
211    pub message: String,
212}
213
214#[derive(Debug, Serialize, Deserialize)]
215pub struct StartGame {
216    #[serde(rename = "@GameId")]
217    pub game_id: String,
218    #[serde(rename = "@MultiplayerId")]
219    pub multiplayer_id: String,
220    #[serde(rename = "@CommandLine")]
221    pub command_line: String,
222}