the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1/************************************************************************/
2/* THIS FILE WAS AUTOMATICALLY GENERATED */
3/* PLEASE DO NOT MODIFY */
4/************************************************************************/
5// Generated from Version: 24, on (9/4/2013 8:47:23 AM)
6
7#include <xtl.h>
8
9#include "SenClientStats.h"
10
11using namespace Sentient;
12
13/************************************************************************/
14/* STATS */
15/************************************************************************/
16
17// PlayerSessionStart
18BOOL SenStatPlayerSessionStart ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT TitleBuildID, INT SkeletonDistanceInInches, INT EnrollmentType, INT NumberOfSkeletonsInView, INT DeploymentType )
19{
20 struct
21 {
22 INT SecondsSinceInitialize;
23 INT ModeID;
24 INT OptionalSubModeID;
25 INT LevelID;
26 INT OptionalSubLevelID;
27 INT TitleBuildID;
28 INT SkeletonDistanceInInches;
29 INT EnrollmentType;
30 INT NumberOfSkeletonsInView;
31 INT DeploymentType;
32 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, TitleBuildID, SkeletonDistanceInInches, EnrollmentType, NumberOfSkeletonsInView, DeploymentType };
33 SenStat st;
34 st.dwUserID = dwUserID;
35 st.dwStatID = 128;
36 st.dwFlags = SenStatFlag_Normal;
37 st.dwNumProperties = 10;
38 st.arrProperties = (CHAR*)&LocalStruct;
39 st.dwNumValues = 0;
40 st.arrValues = NULL;
41 st.arrValueFlags = NULL;
42
43#ifdef SEN_LOGTELEMETRY
44 // if we're in debug build with logging then log the stat to a file for testing
45 SentientDebugLogStatSend("PlayerSessionStart", &st );
46#endif
47
48
49 return Sentient::SentientStatsSend( &st ) == S_OK;
50}
51
52// PlayerSessionExit
53BOOL SenStatPlayerSessionExit ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID )
54{
55 struct
56 {
57 INT SecondsSinceInitialize;
58 INT ModeID;
59 INT OptionalSubModeID;
60 INT LevelID;
61 INT OptionalSubLevelID;
62 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID };
63 SenStat st;
64 st.dwUserID = dwUserID;
65 st.dwStatID = 129;
66 st.dwFlags = SenStatFlag_Normal;
67 st.dwNumProperties = 5;
68 st.arrProperties = (CHAR*)&LocalStruct;
69 st.dwNumValues = 0;
70 st.arrValues = NULL;
71 st.arrValueFlags = NULL;
72
73#ifdef SEN_LOGTELEMETRY
74 // if we're in debug build with logging then log the stat to a file for testing
75 SentientDebugLogStatSend("PlayerSessionExit", &st );
76#endif
77
78
79 return Sentient::SentientStatsSend( &st ) == S_OK;
80}
81
82// HeartBeat
83BOOL SenStatHeartBeat ( DWORD dwUserID, INT SecondsSinceInitialize )
84{
85 struct
86 {
87 INT SecondsSinceInitialize;
88 } LocalStruct = { SecondsSinceInitialize };
89 SenStat st;
90 st.dwUserID = dwUserID;
91 st.dwStatID = 130;
92 st.dwFlags = SenStatFlag_Normal;
93 st.dwNumProperties = 1;
94 st.arrProperties = (CHAR*)&LocalStruct;
95 st.dwNumValues = 0;
96 st.arrValues = NULL;
97 st.arrValueFlags = NULL;
98
99#ifdef SEN_LOGTELEMETRY
100 // if we're in debug build with logging then log the stat to a file for testing
101 SentientDebugLogStatSend("HeartBeat", &st );
102#endif
103
104
105 return Sentient::SentientStatsSend( &st ) == S_OK;
106}
107
108// LevelStart
109BOOL SenStatLevelStart ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SingleOrMultiplayer, INT FriendsOrMatch, INT CompeteOrCoop, INT DifficultyLevel, INT NumberOfLocalPlayers, INT NumberOfOnlinePlayers, INT License, INT DefaultGameControls, INT AudioSettings, INT SkeletonDistanceInInches, INT NumberOfSkeletonsInView )
110{
111 struct
112 {
113 INT SecondsSinceInitialize;
114 INT ModeID;
115 INT OptionalSubModeID;
116 INT LevelID;
117 INT OptionalSubLevelID;
118 INT LevelInstanceID;
119 INT MultiplayerInstanceID;
120 INT SingleOrMultiplayer;
121 INT FriendsOrMatch;
122 INT CompeteOrCoop;
123 INT DifficultyLevel;
124 INT NumberOfLocalPlayers;
125 INT NumberOfOnlinePlayers;
126 INT License;
127 INT DefaultGameControls;
128 INT AudioSettings;
129 INT SkeletonDistanceInInches;
130 INT NumberOfSkeletonsInView;
131 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, SingleOrMultiplayer, FriendsOrMatch, CompeteOrCoop, DifficultyLevel, NumberOfLocalPlayers, NumberOfOnlinePlayers, License, DefaultGameControls, AudioSettings, SkeletonDistanceInInches, NumberOfSkeletonsInView };
132 SenStat st;
133 st.dwUserID = dwUserID;
134 st.dwStatID = 131;
135 st.dwFlags = SenStatFlag_Normal;
136 st.dwNumProperties = 18;
137 st.arrProperties = (CHAR*)&LocalStruct;
138 st.dwNumValues = 0;
139 st.arrValues = NULL;
140 st.arrValueFlags = NULL;
141
142#ifdef SEN_LOGTELEMETRY
143 // if we're in debug build with logging then log the stat to a file for testing
144 SentientDebugLogStatSend("LevelStart", &st );
145#endif
146
147
148 return Sentient::SentientStatsSend( &st ) == S_OK;
149}
150
151// LevelExit
152BOOL SenStatLevelExit ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LevelExitStatus, INT LevelExitProgressStat1, INT LevelExitProgressStat2, INT LevelDurationInSeconds )
153{
154 struct
155 {
156 INT SecondsSinceInitialize;
157 INT ModeID;
158 INT OptionalSubModeID;
159 INT LevelID;
160 INT OptionalSubLevelID;
161 INT LevelInstanceID;
162 INT MultiplayerInstanceID;
163 INT LevelExitStatus;
164 INT LevelExitProgressStat1;
165 INT LevelExitProgressStat2;
166 INT LevelDurationInSeconds;
167 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, LevelExitStatus, LevelExitProgressStat1, LevelExitProgressStat2, LevelDurationInSeconds };
168 SenStat st;
169 st.dwUserID = dwUserID;
170 st.dwStatID = 132;
171 st.dwFlags = SenStatFlag_Normal;
172 st.dwNumProperties = 11;
173 st.arrProperties = (CHAR*)&LocalStruct;
174 st.dwNumValues = 0;
175 st.arrValues = NULL;
176 st.arrValueFlags = NULL;
177
178#ifdef SEN_LOGTELEMETRY
179 // if we're in debug build with logging then log the stat to a file for testing
180 SentientDebugLogStatSend("LevelExit", &st );
181#endif
182
183
184 return Sentient::SentientStatsSend( &st ) == S_OK;
185}
186
187// LevelSaveOrCheckpoint
188BOOL SenStatLevelSaveOrCheckpoint ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LevelExitProgressStat1, INT LevelExitProgressStat2, INT LevelDurationInSeconds, INT SaveOrCheckPointID, INT SaveSizeInBytes )
189{
190 struct
191 {
192 INT SecondsSinceInitialize;
193 INT ModeID;
194 INT OptionalSubModeID;
195 INT LevelID;
196 INT OptionalSubLevelID;
197 INT LevelInstanceID;
198 INT MultiplayerInstanceID;
199 INT LevelExitProgressStat1;
200 INT LevelExitProgressStat2;
201 INT LevelDurationInSeconds;
202 INT SaveOrCheckPointID;
203 INT SaveSizeInBytes;
204 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, LevelExitProgressStat1, LevelExitProgressStat2, LevelDurationInSeconds, SaveOrCheckPointID, SaveSizeInBytes };
205 SenStat st;
206 st.dwUserID = dwUserID;
207 st.dwStatID = 133;
208 st.dwFlags = SenStatFlag_Normal;
209 st.dwNumProperties = 12;
210 st.arrProperties = (CHAR*)&LocalStruct;
211 st.dwNumValues = 0;
212 st.arrValues = NULL;
213 st.arrValueFlags = NULL;
214
215#ifdef SEN_LOGTELEMETRY
216 // if we're in debug build with logging then log the stat to a file for testing
217 SentientDebugLogStatSend("LevelSaveOrCheckpoint", &st );
218#endif
219
220
221 return Sentient::SentientStatsSend( &st ) == S_OK;
222}
223
224// LevelResume
225BOOL SenStatLevelResume ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SingleOrMultiplayer, INT FriendsOrMatch, INT CompeteOrCoop, INT DifficultyLevel, INT NumberOfLocalPlayers, INT NumberOfOnlinePlayers, INT License, INT DefaultGameControls, INT SaveOrCheckPointID, INT AudioSettings, INT SkeletonDistanceInInches, INT NumberOfSkeletonsInView )
226{
227 struct
228 {
229 INT SecondsSinceInitialize;
230 INT ModeID;
231 INT OptionalSubModeID;
232 INT LevelID;
233 INT OptionalSubLevelID;
234 INT LevelInstanceID;
235 INT MultiplayerInstanceID;
236 INT SingleOrMultiplayer;
237 INT FriendsOrMatch;
238 INT CompeteOrCoop;
239 INT DifficultyLevel;
240 INT NumberOfLocalPlayers;
241 INT NumberOfOnlinePlayers;
242 INT License;
243 INT DefaultGameControls;
244 INT SaveOrCheckPointID;
245 INT AudioSettings;
246 INT SkeletonDistanceInInches;
247 INT NumberOfSkeletonsInView;
248 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, SingleOrMultiplayer, FriendsOrMatch, CompeteOrCoop, DifficultyLevel, NumberOfLocalPlayers, NumberOfOnlinePlayers, License, DefaultGameControls, SaveOrCheckPointID, AudioSettings, SkeletonDistanceInInches, NumberOfSkeletonsInView };
249 SenStat st;
250 st.dwUserID = dwUserID;
251 st.dwStatID = 134;
252 st.dwFlags = SenStatFlag_Normal;
253 st.dwNumProperties = 19;
254 st.arrProperties = (CHAR*)&LocalStruct;
255 st.dwNumValues = 0;
256 st.arrValues = NULL;
257 st.arrValueFlags = NULL;
258
259#ifdef SEN_LOGTELEMETRY
260 // if we're in debug build with logging then log the stat to a file for testing
261 SentientDebugLogStatSend("LevelResume", &st );
262#endif
263
264
265 return Sentient::SentientStatsSend( &st ) == S_OK;
266}
267
268// PauseOrInactive
269BOOL SenStatPauseOrInactive ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID )
270{
271 struct
272 {
273 INT SecondsSinceInitialize;
274 INT ModeID;
275 INT OptionalSubModeID;
276 INT LevelID;
277 INT OptionalSubLevelID;
278 INT LevelInstanceID;
279 INT MultiplayerInstanceID;
280 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID };
281 SenStat st;
282 st.dwUserID = dwUserID;
283 st.dwStatID = 135;
284 st.dwFlags = SenStatFlag_Normal;
285 st.dwNumProperties = 7;
286 st.arrProperties = (CHAR*)&LocalStruct;
287 st.dwNumValues = 0;
288 st.arrValues = NULL;
289 st.arrValueFlags = NULL;
290
291#ifdef SEN_LOGTELEMETRY
292 // if we're in debug build with logging then log the stat to a file for testing
293 SentientDebugLogStatSend("PauseOrInactive", &st );
294#endif
295
296
297 return Sentient::SentientStatsSend( &st ) == S_OK;
298}
299
300// UnpauseOrActive
301BOOL SenStatUnpauseOrActive ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID )
302{
303 struct
304 {
305 INT SecondsSinceInitialize;
306 INT ModeID;
307 INT OptionalSubModeID;
308 INT LevelID;
309 INT OptionalSubLevelID;
310 INT LevelInstanceID;
311 INT MultiplayerInstanceID;
312 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID };
313 SenStat st;
314 st.dwUserID = dwUserID;
315 st.dwStatID = 136;
316 st.dwFlags = SenStatFlag_Normal;
317 st.dwNumProperties = 7;
318 st.arrProperties = (CHAR*)&LocalStruct;
319 st.dwNumValues = 0;
320 st.arrValues = NULL;
321 st.arrValueFlags = NULL;
322
323#ifdef SEN_LOGTELEMETRY
324 // if we're in debug build with logging then log the stat to a file for testing
325 SentientDebugLogStatSend("UnpauseOrActive", &st );
326#endif
327
328
329 return Sentient::SentientStatsSend( &st ) == S_OK;
330}
331
332// MenuShown
333BOOL SenStatMenuShown ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT MenuID, INT OptionalMenuSubID, INT LevelInstanceID, INT MultiplayerInstanceID )
334{
335 struct
336 {
337 INT SecondsSinceInitialize;
338 INT ModeID;
339 INT OptionalSubModeID;
340 INT LevelID;
341 INT OptionalSubLevelID;
342 INT MenuID;
343 INT OptionalMenuSubID;
344 INT LevelInstanceID;
345 INT MultiplayerInstanceID;
346 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, MenuID, OptionalMenuSubID, LevelInstanceID, MultiplayerInstanceID };
347 SenStat st;
348 st.dwUserID = dwUserID;
349 st.dwStatID = 137;
350 st.dwFlags = SenStatFlag_Normal;
351 st.dwNumProperties = 9;
352 st.arrProperties = (CHAR*)&LocalStruct;
353 st.dwNumValues = 0;
354 st.arrValues = NULL;
355 st.arrValueFlags = NULL;
356
357#ifdef SEN_LOGTELEMETRY
358 // if we're in debug build with logging then log the stat to a file for testing
359 SentientDebugLogStatSend("MenuShown", &st );
360#endif
361
362
363 return Sentient::SentientStatsSend( &st ) == S_OK;
364}
365
366// AchievementUnlocked
367BOOL SenStatAchievementUnlocked ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT AchievementID, INT AchievementGamerscore )
368{
369 struct
370 {
371 INT SecondsSinceInitialize;
372 INT ModeID;
373 INT OptionalSubModeID;
374 INT LevelID;
375 INT OptionalSubLevelID;
376 INT LevelInstanceID;
377 INT MultiplayerInstanceID;
378 INT AchievementID;
379 INT AchievementGamerscore;
380 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, AchievementID, AchievementGamerscore };
381 SenStat st;
382 st.dwUserID = dwUserID;
383 st.dwStatID = 138;
384 st.dwFlags = SenStatFlag_Normal;
385 st.dwNumProperties = 9;
386 st.arrProperties = (CHAR*)&LocalStruct;
387 st.dwNumValues = 0;
388 st.arrValues = NULL;
389 st.arrValueFlags = NULL;
390
391#ifdef SEN_LOGTELEMETRY
392 // if we're in debug build with logging then log the stat to a file for testing
393 SentientDebugLogStatSend("AchievementUnlocked", &st );
394#endif
395
396
397 return Sentient::SentientStatsSend( &st ) == S_OK;
398}
399
400// MediaShareUpload
401BOOL SenStatMediaShareUpload ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT MediaDestination, INT MediaType )
402{
403 struct
404 {
405 INT SecondsSinceInitialize;
406 INT ModeID;
407 INT OptionalSubModeID;
408 INT LevelID;
409 INT OptionalSubLevelID;
410 INT LevelInstanceID;
411 INT MultiplayerInstanceID;
412 INT MediaDestination;
413 INT MediaType;
414 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, MediaDestination, MediaType };
415 SenStat st;
416 st.dwUserID = dwUserID;
417 st.dwStatID = 139;
418 st.dwFlags = SenStatFlag_Normal;
419 st.dwNumProperties = 9;
420 st.arrProperties = (CHAR*)&LocalStruct;
421 st.dwNumValues = 0;
422 st.arrValues = NULL;
423 st.arrValueFlags = NULL;
424
425#ifdef SEN_LOGTELEMETRY
426 // if we're in debug build with logging then log the stat to a file for testing
427 SentientDebugLogStatSend("MediaShareUpload", &st );
428#endif
429
430
431 return Sentient::SentientStatsSend( &st ) == S_OK;
432}
433
434// UpsellPresented
435BOOL SenStatUpsellPresented ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT UpsellID, INT MarketplaceOfferID )
436{
437 struct
438 {
439 INT SecondsSinceInitialize;
440 INT ModeID;
441 INT OptionalSubModeID;
442 INT LevelID;
443 INT OptionalSubLevelID;
444 INT LevelInstanceID;
445 INT MultiplayerInstanceID;
446 INT UpsellID;
447 INT MarketplaceOfferID;
448 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, UpsellID, MarketplaceOfferID };
449 SenStat st;
450 st.dwUserID = dwUserID;
451 st.dwStatID = 140;
452 st.dwFlags = SenStatFlag_Normal;
453 st.dwNumProperties = 9;
454 st.arrProperties = (CHAR*)&LocalStruct;
455 st.dwNumValues = 0;
456 st.arrValues = NULL;
457 st.arrValueFlags = NULL;
458
459#ifdef SEN_LOGTELEMETRY
460 // if we're in debug build with logging then log the stat to a file for testing
461 SentientDebugLogStatSend("UpsellPresented", &st );
462#endif
463
464
465 return Sentient::SentientStatsSend( &st ) == S_OK;
466}
467
468// UpsellResponded
469BOOL SenStatUpsellResponded ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT UpsellID, INT MarketplaceOfferID, INT UpsellOutcome )
470{
471 struct
472 {
473 INT SecondsSinceInitialize;
474 INT ModeID;
475 INT OptionalSubModeID;
476 INT LevelID;
477 INT OptionalSubLevelID;
478 INT LevelInstanceID;
479 INT MultiplayerInstanceID;
480 INT UpsellID;
481 INT MarketplaceOfferID;
482 INT UpsellOutcome;
483 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, UpsellID, MarketplaceOfferID, UpsellOutcome };
484 SenStat st;
485 st.dwUserID = dwUserID;
486 st.dwStatID = 141;
487 st.dwFlags = SenStatFlag_Normal;
488 st.dwNumProperties = 10;
489 st.arrProperties = (CHAR*)&LocalStruct;
490 st.dwNumValues = 0;
491 st.arrValues = NULL;
492 st.arrValueFlags = NULL;
493
494#ifdef SEN_LOGTELEMETRY
495 // if we're in debug build with logging then log the stat to a file for testing
496 SentientDebugLogStatSend("UpsellResponded", &st );
497#endif
498
499
500 return Sentient::SentientStatsSend( &st ) == S_OK;
501}
502
503// PlayerDiedOrFailed
504BOOL SenStatPlayerDiedOrFailed ( DWORD dwUserID, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LowResMapX, INT LowResMapY, INT LowResMapZ, INT MapID, INT PlayerWeaponID, INT EnemyWeaponID, INT EnemyTypeID, INT SecondsSinceInitialize, INT CopyOfSecondsSinceInitialize )
505{
506 struct
507 {
508 INT ModeID;
509 INT OptionalSubModeID;
510 INT LevelID;
511 INT OptionalSubLevelID;
512 INT LevelInstanceID;
513 INT MultiplayerInstanceID;
514 INT LowResMapX;
515 INT LowResMapY;
516 INT LowResMapZ;
517 INT MapID;
518 INT PlayerWeaponID;
519 INT EnemyWeaponID;
520 INT EnemyTypeID;
521 INT SecondsSinceInitialize;
522 INT CopyOfSecondsSinceInitialize;
523 INT Count;
524 } LocalStruct = { ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, LowResMapX, LowResMapY, LowResMapZ, MapID, PlayerWeaponID, EnemyWeaponID, EnemyTypeID, SecondsSinceInitialize, CopyOfSecondsSinceInitialize, 1 };
525 DWORD arrValueFlags[] = { SenStatValueFlag_Min, SenStatValueFlag_Max, SenStatValueFlag_Inc };
526
527 SenStat st;
528 st.dwUserID = dwUserID;
529 st.dwStatID = 142;
530 st.dwFlags = SenStatFlag_Normal;
531 st.dwNumProperties = 13;
532 st.arrProperties = (CHAR*)&LocalStruct;
533 st.dwNumValues = 3;
534 st.arrValues = (CHAR*)&LocalStruct.SecondsSinceInitialize;
535 st.arrValueFlags = arrValueFlags;
536
537#ifdef SEN_LOGTELEMETRY
538 // if we're in debug build with logging then log the stat to a file for testing
539 SentientDebugLogStatSend("PlayerDiedOrFailed", &st );
540#endif
541
542
543 return Sentient::SentientStatsSend( &st ) == S_OK;
544}
545
546// EnemyKilledOrOvercome
547BOOL SenStatEnemyKilledOrOvercome ( DWORD dwUserID, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LowResMapX, INT LowResMapY, INT LowResMapZ, INT MapID, INT PlayerWeaponID, INT EnemyWeaponID, INT EnemyTypeID, INT SecondsSinceInitialize, INT CopyOfSecondsSinceInitialize )
548{
549 struct
550 {
551 INT ModeID;
552 INT OptionalSubModeID;
553 INT LevelID;
554 INT OptionalSubLevelID;
555 INT LevelInstanceID;
556 INT MultiplayerInstanceID;
557 INT LowResMapX;
558 INT LowResMapY;
559 INT LowResMapZ;
560 INT MapID;
561 INT PlayerWeaponID;
562 INT EnemyWeaponID;
563 INT EnemyTypeID;
564 INT SecondsSinceInitialize;
565 INT CopyOfSecondsSinceInitialize;
566 INT Count;
567 } LocalStruct = { ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, LowResMapX, LowResMapY, LowResMapZ, MapID, PlayerWeaponID, EnemyWeaponID, EnemyTypeID, SecondsSinceInitialize, CopyOfSecondsSinceInitialize, 1 };
568 DWORD arrValueFlags[] = { SenStatValueFlag_Min, SenStatValueFlag_Max, SenStatValueFlag_Inc };
569
570 SenStat st;
571 st.dwUserID = dwUserID;
572 st.dwStatID = 143;
573 st.dwFlags = SenStatFlag_Normal;
574 st.dwNumProperties = 13;
575 st.arrProperties = (CHAR*)&LocalStruct;
576 st.dwNumValues = 3;
577 st.arrValues = (CHAR*)&LocalStruct.SecondsSinceInitialize;
578 st.arrValueFlags = arrValueFlags;
579
580#ifdef SEN_LOGTELEMETRY
581 // if we're in debug build with logging then log the stat to a file for testing
582 SentientDebugLogStatSend("EnemyKilledOrOvercome", &st );
583#endif
584
585
586 return Sentient::SentientStatsSend( &st ) == S_OK;
587}
588
589// SkinChanged
590BOOL SenStatSkinChanged ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SkinID )
591{
592 struct
593 {
594 INT SecondsSinceInitialize;
595 INT ModeID;
596 INT OptionalSubModeID;
597 INT LevelID;
598 INT OptionalSubLevelID;
599 INT LevelInstanceID;
600 INT MultiplayerInstanceID;
601 INT SkinID;
602 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, SkinID };
603 SenStat st;
604 st.dwUserID = dwUserID;
605 st.dwStatID = 144;
606 st.dwFlags = SenStatFlag_Normal;
607 st.dwNumProperties = 8;
608 st.arrProperties = (CHAR*)&LocalStruct;
609 st.dwNumValues = 0;
610 st.arrValues = NULL;
611 st.arrValueFlags = NULL;
612
613#ifdef SEN_LOGTELEMETRY
614 // if we're in debug build with logging then log the stat to a file for testing
615 SentientDebugLogStatSend("SkinChanged", &st );
616#endif
617
618
619 return Sentient::SentientStatsSend( &st ) == S_OK;
620}
621
622// BanLevel
623BOOL SenStatBanLevel ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID )
624{
625 struct
626 {
627 INT SecondsSinceInitialize;
628 INT ModeID;
629 INT OptionalSubModeID;
630 INT LevelID;
631 INT OptionalSubLevelID;
632 INT LevelInstanceID;
633 INT MultiplayerInstanceID;
634 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID };
635 SenStat st;
636 st.dwUserID = dwUserID;
637 st.dwStatID = 145;
638 st.dwFlags = SenStatFlag_Normal;
639 st.dwNumProperties = 7;
640 st.arrProperties = (CHAR*)&LocalStruct;
641 st.dwNumValues = 0;
642 st.arrValues = NULL;
643 st.arrValueFlags = NULL;
644
645#ifdef SEN_LOGTELEMETRY
646 // if we're in debug build with logging then log the stat to a file for testing
647 SentientDebugLogStatSend("BanLevel", &st );
648#endif
649
650
651 return Sentient::SentientStatsSend( &st ) == S_OK;
652}
653
654// UnBanLevel
655BOOL SenStatUnBanLevel ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID )
656{
657 struct
658 {
659 INT SecondsSinceInitialize;
660 INT ModeID;
661 INT OptionalSubModeID;
662 INT LevelID;
663 INT OptionalSubLevelID;
664 INT LevelInstanceID;
665 INT MultiplayerInstanceID;
666 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID };
667 SenStat st;
668 st.dwUserID = dwUserID;
669 st.dwStatID = 146;
670 st.dwFlags = SenStatFlag_Normal;
671 st.dwNumProperties = 7;
672 st.arrProperties = (CHAR*)&LocalStruct;
673 st.dwNumValues = 0;
674 st.arrValues = NULL;
675 st.arrValueFlags = NULL;
676
677#ifdef SEN_LOGTELEMETRY
678 // if we're in debug build with logging then log the stat to a file for testing
679 SentientDebugLogStatSend("UnBanLevel", &st );
680#endif
681
682
683 return Sentient::SentientStatsSend( &st ) == S_OK;
684}
685
686// TexturePackChanged
687BOOL SenStatTexturePackChanged ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT TexturePackId, INT Purchased )
688{
689 struct
690 {
691 INT SecondsSinceInitialize;
692 INT ModeID;
693 INT OptionalSubModeID;
694 INT LevelID;
695 INT OptionalSubLevelID;
696 INT LevelInstanceID;
697 INT MultiplayerInstanceID;
698 INT TexturePackId;
699 INT Purchased;
700 } LocalStruct = { SecondsSinceInitialize, ModeID, OptionalSubModeID, LevelID, OptionalSubLevelID, LevelInstanceID, MultiplayerInstanceID, TexturePackId, Purchased };
701 SenStat st;
702 st.dwUserID = dwUserID;
703 st.dwStatID = 147;
704 st.dwFlags = SenStatFlag_Normal;
705 st.dwNumProperties = 9;
706 st.arrProperties = (CHAR*)&LocalStruct;
707 st.dwNumValues = 0;
708 st.arrValues = NULL;
709 st.arrValueFlags = NULL;
710
711#ifdef SEN_LOGTELEMETRY
712 // if we're in debug build with logging then log the stat to a file for testing
713 SentientDebugLogStatSend("TexturePackChanged", &st );
714#endif
715
716
717 return Sentient::SentientStatsSend( &st ) == S_OK;
718}
719
720namespace Sentient
721{
722
723 extern int statsVersion;
724
725 class StatsVersionClass {
726 public: StatsVersionClass() { statsVersion = 24; }
727 };
728
729 static StatsVersionClass versionClass;
730}
731