You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
270 lines
7.2 KiB
270 lines
7.2 KiB
//===== Copyright c 1996-2009, Valve Corporation, All rights reserved. ======//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//===========================================================================//
|
|
|
|
#ifndef IMATCHEXT_PORTAL2_H
|
|
#define IMATCHEXT_PORTAL2_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#pragma warning( push )
|
|
#pragma warning( disable : 4201 )
|
|
#endif
|
|
|
|
#define STORAGE_COUNT_FOR_BITS( aStorageType, numBits ) ( ( (numBits) + 8*sizeof( aStorageType ) - 1 ) / ( 8* sizeof( aStorageType ) ) )
|
|
|
|
|
|
//
|
|
//
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
// This structure TitleData1 should remain
|
|
// intact after we ship otherwise
|
|
// users profiles will be busted.
|
|
// You are allowed to add fields at the end
|
|
// as long as structure size stays under
|
|
// XPROFILE_SETTING_MAX_SIZE = 1000 bytes.
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
//
|
|
struct TitleData1
|
|
{
|
|
uint32 uiSinglePlayerProgressChapter;
|
|
|
|
struct CoopData_t
|
|
{
|
|
enum MapBits_t
|
|
{
|
|
#define CFG( fieldname, ctx, idx, num ) fieldname,
|
|
#define CFG_DISABLED( fieldname, ctx, idx, num ) CFG( fieldname )
|
|
#include "xlast_portal2/inc_coop_maps.inc"
|
|
#undef CFG_DISABLED
|
|
#undef CFG
|
|
mapbits_last_bit_used,
|
|
mapbits_total_basegame = 42,
|
|
mapbits_total = 160 // leave room for total 160 maps
|
|
};
|
|
uint32 mapbits[ STORAGE_COUNT_FOR_BITS( uint32, mapbits_total ) ];
|
|
|
|
enum TauntBits_t
|
|
{
|
|
#define CFG( fieldname ) taunt_##fieldname,
|
|
#define CFG_DISABLED( fieldname ) CFG( fieldname )
|
|
#include "xlast_portal2/inc_coop_taunts.inc"
|
|
#undef CFG_DISABLED
|
|
#undef CFG
|
|
tauntbits_last_bit_used,
|
|
tauntbits_total = 48 // leave room for total 48 taunts
|
|
};
|
|
uint32 tauntbitsOwned[ STORAGE_COUNT_FOR_BITS( uint32, tauntbits_total ) ];
|
|
uint32 tauntbitsUsed[ STORAGE_COUNT_FOR_BITS( uint32, tauntbits_total ) ];
|
|
enum TauntEquipSlots_t
|
|
{
|
|
#define CFG( fieldname ) taunt_equipslot_##fieldname,
|
|
#define CFG_DISABLED( fieldname ) CFG( fieldname )
|
|
#include "xlast_portal2/inc_coop_taunts_equipslots.inc"
|
|
#undef CFG_DISABLED
|
|
#undef CFG
|
|
taunt_equipslots_total
|
|
};
|
|
uint8 tauntsEquipSlots[taunt_equipslots_total];
|
|
};
|
|
CoopData_t coop;
|
|
|
|
struct GameInstructorData_t
|
|
{
|
|
enum LessonsBits_t
|
|
{
|
|
#define CFG( fieldname ) lesson_##fieldname,
|
|
#define CFG_DISABLED( fieldname ) CFG( fieldname )
|
|
#include "xlast_portal2/inc_gameinstructor_lessons.inc"
|
|
#undef CFG_DISABLED
|
|
#undef CFG
|
|
lessonbits_last_bit_used,
|
|
lessonbits_total = 48 // leave room for total 48 lessons
|
|
};
|
|
|
|
union LessonInfo_t
|
|
{
|
|
uint8 u8dummy;
|
|
struct
|
|
{
|
|
uint8 display : 4;
|
|
uint8 success : 4;
|
|
};
|
|
} lessoninfo[ lessonbits_total ];
|
|
};
|
|
GameInstructorData_t gameinstructor;
|
|
};
|
|
|
|
//
|
|
//
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
// This structure TitleData2 should remain
|
|
// intact after we ship otherwise
|
|
// users profiles will be busted.
|
|
// You are allowed to add fields at the end
|
|
// as long as structure size stays under
|
|
// XPROFILE_SETTING_MAX_SIZE = 1000 bytes.
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
//
|
|
struct TitleData2
|
|
{
|
|
// Achievement component bits
|
|
enum AchievementBits_t
|
|
{
|
|
kAchievementComponentTotalCount = 0
|
|
#define CFG( name, compcount, ... ) \
|
|
+ STORAGE_COUNT_FOR_BITS( uint32, compcount )
|
|
#include "xlast_portal2/inc_achievements.inc"
|
|
#undef CFG
|
|
};
|
|
uint32 bitsAchievementsComponents[ kAchievementComponentTotalCount ];
|
|
|
|
// Add a padding for future progress achievement bits
|
|
uint32 bitsAchievementFuture[ 64 ];
|
|
|
|
// Awards bitfields
|
|
enum AwardBits_t
|
|
{
|
|
#define CFG( award, ... ) bitAward##award,
|
|
#include "xlast_portal2/inc_asset_awards.inc"
|
|
#undef CFG
|
|
bitAward_last_bit_used,
|
|
bitAwards_total = 32 // leave room for total 32 awards
|
|
};
|
|
uint32 awardbits[ STORAGE_COUNT_FOR_BITS( uint32, bitAwards_total ) ];
|
|
|
|
// Custom achievements data
|
|
enum { kAchievement_SpreadTheLove_FriendsHuggedCount = 3 };
|
|
uint64 ach_SpreadTheLove_FriendsHugged[ kAchievement_SpreadTheLove_FriendsHuggedCount ];
|
|
enum { kAchievement_SpeedRunCoop_QualifiedRunsCount = 3 };
|
|
uint16 ach_SpeedRunCoop_MapsQualified[ kAchievement_SpeedRunCoop_QualifiedRunsCount ];
|
|
|
|
// Add a padding for future custom achievements data
|
|
uint32 bitsAchievementDataFuture[ 64 ];
|
|
|
|
// DLC ownership bits
|
|
uint32 dlcbits[2];
|
|
};
|
|
|
|
//
|
|
//
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
// This structure TitleData3 should remain
|
|
// intact after we ship otherwise
|
|
// users profiles will be busted.
|
|
// You are allowed to add fields at the end
|
|
// as long as structure size stays under
|
|
// XPROFILE_SETTING_MAX_SIZE = 1000 bytes.
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
//
|
|
// struct TitleData3
|
|
// {
|
|
// uint64 unused; // unused, free for taking
|
|
// };
|
|
//
|
|
//
|
|
//
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
// This structure TitleData3 should remain
|
|
// intact after we ship otherwise
|
|
// users profiles will be busted.
|
|
// You are allowed to add fields at the end
|
|
// as long as structure size stays under
|
|
// XPROFILE_SETTING_MAX_SIZE = 1000 bytes.
|
|
// WARNING!! WARNING!! WARNING!! WARNING!!
|
|
//
|
|
struct TitleData3
|
|
{
|
|
uint32 version;
|
|
|
|
struct ConVarsSystem_t
|
|
{
|
|
#define CFG( name, scfgType, cppType, ... ) cppType name;
|
|
#include "xlast_portal2/inc_gameconsole_settings_sys.inc"
|
|
#undef CFG
|
|
uint8 unused_uint8[2];
|
|
uint32 unused_values[9];
|
|
|
|
enum Bits_bitfields_t
|
|
{
|
|
#define CFG( name ) name,
|
|
#include "xlast_portal2/inc_gameconsole_settings_sys_bits.inc"
|
|
#undef CFG
|
|
bit_last
|
|
};
|
|
uint32 bitfields[ STORAGE_COUNT_FOR_BITS( uint32, bit_last ) ];
|
|
|
|
uint32 unused[10];
|
|
};
|
|
ConVarsSystem_t cvSystem;
|
|
|
|
struct ConVarsUser_t
|
|
{
|
|
#define CFG( name, scfgType, cppType ) cppType name;
|
|
#include "xlast_portal2/inc_gameconsole_settings_usr.inc"
|
|
#undef CFG
|
|
uint32 unused_values[8];
|
|
|
|
enum Bits_bitfields_t
|
|
{
|
|
#define CFG( name ) name,
|
|
#include "xlast_portal2/inc_gameconsole_settings_usr_bits.inc"
|
|
#undef CFG
|
|
bit_last
|
|
};
|
|
uint32 bitfields[ STORAGE_COUNT_FOR_BITS( uint32, bit_last ) ];
|
|
|
|
uint32 unused[10];
|
|
};
|
|
ConVarsUser_t cvUser;
|
|
ConVarsUser_t cvUserSS;
|
|
|
|
struct GameStats_t
|
|
{
|
|
#define CFG( name, scfgType, cppType ) cppType name;
|
|
#include "xlast_portal2/inc_gamestats.inc"
|
|
#undef CFG
|
|
uint32 unused_values[50];
|
|
};
|
|
GameStats_t gamestats;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define PORTAL2_LOBBY_CONFIG_COOP( szNetwork, szAccess ) \
|
|
" system { " \
|
|
" network " szNetwork " " \
|
|
" access " szAccess " " \
|
|
" } " \
|
|
" game { " \
|
|
" mode coop " \
|
|
" map default " \
|
|
" } "
|
|
|
|
|
|
#define PORTAL2_DLCID_RETAIL_DLC1 ( 1ull << 0x01 )
|
|
#define PORTAL2_DLCID_RETAIL_DLC2 ( 1ull << 0x02 )
|
|
#define PORTAL2_DLCID_COOP_BOT_SKINS ( 1ull << 0x12 )
|
|
#define PORTAL2_DLCID_COOP_BOT_HELMETS ( 1ull << 0x13 )
|
|
#define PORTAL2_DLCID_COOP_BOT_ANTENNA ( 1ull << 0x14 )
|
|
#define PORTAL2_DLC_ALLMASK ( PORTAL2_DLCID_RETAIL_DLC1 | PORTAL2_DLCID_RETAIL_DLC2 | PORTAL2_DLCID_COOP_BOT_SKINS | PORTAL2_DLCID_COOP_BOT_HELMETS | PORTAL2_DLCID_COOP_BOT_ANTENNA )
|
|
|
|
#define PORTAL2_DLC_APPID_COOP_BOT_SKINS 651
|
|
#define PORTAL2_DLC_APPID_COOP_BOT_HELMETS 652
|
|
#define PORTAL2_DLC_APPID_COOP_BOT_ANTENNA 653
|
|
|
|
#define PORTAL2_DLC_PKGID_COOP_BOT_SKINS 7364
|
|
#define PORTAL2_DLC_PKGID_COOP_BOT_HELMETS 7365
|
|
#define PORTAL2_DLC_PKGID_COOP_BOT_ANTENNA 7366
|
|
|
|
#define PORTAL2_DLC_PKGID_PCSTEAMPLAY 7397
|
|
|
|
|
|
#ifdef _WIN32
|
|
#pragma warning( pop )
|
|
#endif
|
|
#endif // IMATCHEXT_PORTAL2_H
|