mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-30 12:02:54 +00:00
# Conflicts: # Minecraft.Client/Network/PlayerChunkMap.cpp # Minecraft.Client/Network/PlayerList.cpp # Minecraft.Client/Network/ServerChunkCache.cpp # Minecraft.Client/Platform/Common/Consoles_App.cpp # Minecraft.Client/Platform/Common/DLC/DLCManager.cpp # Minecraft.Client/Platform/Common/GameRules/LevelGenerationOptions.cpp # Minecraft.Client/Platform/Common/GameRules/LevelRuleset.cpp # Minecraft.Client/Platform/Common/Tutorial/Tutorial.cpp # Minecraft.Client/Platform/Common/Tutorial/TutorialTask.cpp # Minecraft.Client/Platform/Common/UI/IUIScene_CreativeMenu.cpp # Minecraft.Client/Platform/Common/UI/UIComponent_Panorama.cpp # Minecraft.Client/Platform/Common/UI/UIController.cpp # Minecraft.Client/Platform/Common/UI/UIController.h # Minecraft.Client/Platform/Extrax64Stubs.cpp # Minecraft.Client/Platform/Windows64/4JLibs/inc/4J_Input.h # Minecraft.Client/Platform/Windows64/4JLibs/inc/4J_Storage.h # Minecraft.Client/Player/EntityTracker.cpp # Minecraft.Client/Player/ServerPlayer.cpp # Minecraft.Client/Rendering/EntityRenderers/PlayerRenderer.cpp # Minecraft.Client/Textures/Packs/DLCTexturePack.cpp # Minecraft.Client/Textures/Stitching/StitchedTexture.cpp # Minecraft.Client/Textures/Stitching/TextureMap.cpp # Minecraft.Client/Textures/Textures.cpp # Minecraft.World/Blocks/NotGateTile.cpp # Minecraft.World/Blocks/PressurePlateTile.cpp # Minecraft.World/Blocks/TileEntities/PotionBrewing.cpp # Minecraft.World/Enchantments/EnchantmentHelper.cpp # Minecraft.World/Entities/HangingEntity.cpp # Minecraft.World/Entities/LeashFenceKnotEntity.cpp # Minecraft.World/Entities/LivingEntity.cpp # Minecraft.World/Entities/Mobs/Boat.cpp # Minecraft.World/Entities/Mobs/Minecart.cpp # Minecraft.World/Entities/Mobs/Witch.cpp # Minecraft.World/Entities/SyncedEntityData.cpp # Minecraft.World/Items/LeashItem.cpp # Minecraft.World/Items/PotionItem.cpp # Minecraft.World/Level/BaseMobSpawner.cpp # Minecraft.World/Level/CustomLevelSource.cpp # Minecraft.World/Level/Level.cpp # Minecraft.World/Level/Storage/DirectoryLevelStorage.cpp # Minecraft.World/Level/Storage/McRegionLevelStorage.cpp # Minecraft.World/Level/Storage/RegionFileCache.cpp # Minecraft.World/Player/Player.cpp # Minecraft.World/WorldGen/Biomes/BiomeCache.cpp # Minecraft.World/WorldGen/Features/RandomScatteredLargeFeature.cpp # Minecraft.World/WorldGen/Layers/BiomeOverrideLayer.cpp
129 lines
5.3 KiB
C++
129 lines
5.3 KiB
C++
#pragma once
|
|
|
|
enum eAwardType
|
|
{
|
|
eAwardType_Achievement = 0,
|
|
eAwardType_GamerPic,
|
|
eAwardType_Theme,
|
|
eAwardType_AvatarItem,
|
|
};
|
|
|
|
enum eUpsellType
|
|
{
|
|
eUpsellType_Custom = 0, // This is the default, and means that the upsell dialog was initiated in the app code
|
|
eUpsellType_Achievement,
|
|
eUpsellType_GamerPic,
|
|
eUpsellType_Theme,
|
|
eUpsellType_AvatarItem,
|
|
};
|
|
|
|
enum eUpsellResponse
|
|
{
|
|
eUpsellResponse_Declined,
|
|
eUpsellResponse_Accepted_NoPurchase,
|
|
eUpsellResponse_Accepted_Purchase,
|
|
};
|
|
|
|
|
|
|
|
class C_4JProfile
|
|
{
|
|
public:
|
|
struct PROFILESETTINGS
|
|
{
|
|
int iYAxisInversion;
|
|
int iControllerSensitivity;
|
|
int iVibration;
|
|
bool bSwapSticks;
|
|
};
|
|
|
|
|
|
// 4 players have game defined data, puiGameDefinedDataChangedBitmask needs to be checked by the game side to see if there's an update needed - it'll have the bits set for players to be updated
|
|
void Initialise( DWORD dwTitleID,
|
|
DWORD dwOfferID,
|
|
unsigned short usProfileVersion,
|
|
UINT uiProfileValuesC,
|
|
UINT uiProfileSettingsC,
|
|
DWORD *pdwProfileSettingsA,
|
|
int iGameDefinedDataSizeX4,
|
|
unsigned int *puiGameDefinedDataChangedBitmask);
|
|
void SetTrialTextStringTable(CXuiStringTable *pStringTable,int iAccept,int iReject);
|
|
void SetTrialAwardText(eAwardType AwardType,int iTitle,int iText); // achievement popup in the trial game
|
|
int GetLockedProfile();
|
|
void SetLockedProfile(int iProf);
|
|
bool IsSignedIn(int iQuadrant);
|
|
bool IsSignedInLive(int iProf);
|
|
bool IsGuest(int iQuadrant);
|
|
UINT RequestSignInUI(bool bFromInvite,bool bLocalGame,bool bNoGuestsAllowed,bool bMultiplayerSignIn,bool bAddUser, int( *Func)(void*,const bool, const int iPad),void* lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
|
UINT DisplayOfflineProfile(int( *Func)(void*,const bool, const int iPad),void* lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
|
UINT RequestConvertOfflineToGuestUI(int( *Func)(void*,const bool, const int iPad),void* lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
|
void SetPrimaryPlayerChanged(bool bVal);
|
|
bool QuerySigninStatus(void);
|
|
void GetXUID(int iPad, PlayerUID *pXuid,bool bOnlineXuid);
|
|
bool AreXUIDSEqual(PlayerUID xuid1,PlayerUID xuid2);
|
|
bool XUIDIsGuest(PlayerUID xuid);
|
|
bool AllowedToPlayMultiplayer(int iProf);
|
|
bool GetChatAndContentRestrictions(int iPad,bool *pbChatRestricted,bool *pbContentRestricted,int *piAge);
|
|
void StartTrialGame(); // disables saves and leaderboard, and change state to readyforgame from pregame
|
|
void AllowedPlayerCreatedContent(int iPad, bool thisQuadrantOnly, bool *allAllowed, bool *friendsAllowed);
|
|
bool CanViewPlayerCreatedContent(int iPad, bool thisQuadrantOnly, PPlayerUID pXuids, DWORD dwXuidCount );
|
|
void ShowProfileCard(int iPad, PlayerUID targetUid);
|
|
bool GetProfileAvatar(int iPad,int( *Func)(void* lpParam,PBYTE pbThumbnail,DWORD dwThumbnailBytes), void* lpParam);
|
|
void CancelProfileAvatarRequest();
|
|
|
|
|
|
// SYS
|
|
int GetPrimaryPad();
|
|
void SetPrimaryPad(int iPad);
|
|
char* GetGamertag(int iPad);
|
|
std::wstring GetDisplayName(int iPad);
|
|
bool IsFullVersion();
|
|
void SetSignInChangeCallback(void ( *Func)(void*, bool, unsigned int),void* lpParam);
|
|
void SetNotificationsCallback(void ( *Func)(void*, DWORD, unsigned int),void* lpParam);
|
|
bool RegionIsNorthAmerica(void);
|
|
bool LocaleIsUSorCanada(void);
|
|
HRESULT GetLiveConnectionStatus();
|
|
bool IsSystemUIDisplayed();
|
|
void SetProfileReadErrorCallback(void ( *Func)(void*), void* lpParam);
|
|
|
|
|
|
// PROFILE DATA
|
|
int SetDefaultOptionsCallback(int( *Func)(void*,PROFILESETTINGS *, const int iPad),void* lpParam);
|
|
int SetOldProfileVersionCallback(int( *Func)(void*,unsigned char *, const unsigned short,const int),void* lpParam);
|
|
PROFILESETTINGS * GetDashboardProfileSettings(int iPad);
|
|
void WriteToProfile(int iQuadrant, bool bGameDefinedDataChanged=false, bool bOverride5MinuteLimitOnProfileWrites=false);
|
|
void ForceQueuedProfileWrites(int iPad=XUSER_INDEX_ANY);
|
|
void *GetGameDefinedProfileData(int iQuadrant);
|
|
void ResetProfileProcessState(); // after a sign out from the primary player, call this
|
|
void Tick( void );
|
|
|
|
// ACHIEVEMENTS & AWARDS
|
|
|
|
void RegisterAward(int iAwardNumber,int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected=false,
|
|
CXuiStringTable*pStringTable=nullptr, int iTitleStr=-1, int iTextStr=-1, int iAcceptStr=-1, char *pszThemeName=nullptr, unsigned int uiThemeSize=0L);
|
|
int GetAwardId(int iAwardNumber);
|
|
eAwardType GetAwardType(int iAwardNumber);
|
|
bool CanBeAwarded(int iQuadrant, int iAwardNumber);
|
|
void Award(int iQuadrant, int iAwardNumber, bool bForce=false);
|
|
bool IsAwardsFlagSet(int iQuadrant, int iAward);
|
|
|
|
// RICH PRESENCE
|
|
|
|
void RichPresenceInit(int iPresenceCount, int iContextCount);
|
|
void RegisterRichPresenceContext(int iGameConfigContextID);
|
|
void SetRichPresenceContextValue(int iPad,int iContextID, int iVal);
|
|
void SetCurrentGameActivity(int iPad,int iNewPresence, bool bSetOthersToIdle=false);
|
|
|
|
// PURCHASE
|
|
void DisplayFullVersionPurchase(bool bRequired, int iQuadrant, int iUpsellParam = -1);
|
|
void SetUpsellCallback(void ( *Func)(void* lpParam, eUpsellType type, eUpsellResponse response, int iUserData),void* lpParam);
|
|
|
|
// Debug
|
|
void SetDebugFullOverride(bool bVal); // To override the license version (trail/full). Only in debug/release, not ContentPackage
|
|
|
|
};
|
|
|
|
// Singleton
|
|
extern C_4JProfile ProfileManager;
|
|
|