Files
VR-WuKong/Packages/PICO Unity Integration SDK-3.3.2-20251111/Platform/Scripts/Framework/MessageQueue.cs
2025-11-13 17:40:28 +08:00

923 lines
39 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
NOTICEAll information contained herein is, and remains the property of
PICO Technology Co., Ltd. The intellectual and technical concepts
contained herein are proprietary to PICO Technology Co., Ltd. and may be
covered by patents, patents in process, and are protected by trade secret or
copyright law. Dissemination of this information or reproduction of this
material is strictly forbidden unless prior written permission is obtained from
PICO Technology Co., Ltd.
*******************************************************************************/
using System;
using Pico.Platform.Models;
namespace Pico.Platform
{
public class MessageQueue
{
public static Message ParseMessage(IntPtr msgPointer)
{
Message msg = null;
MessageType messageType = CLIB.ppf_Message_GetType(msgPointer);
switch (messageType)
{
case MessageType.PlatformInitializeAndroidAsynchronous:
{
msg = new Message<PlatformInitializeResult>(msgPointer, ptr => { return (PlatformInitializeResult) CLIB.ppf_Message_GetInt32(ptr); });
break;
}
case MessageType.CloudStorage_StartNewBackup:
{
msg = new Message(msgPointer);
break;
}
#region speech
case MessageType.Notification_Speech_OnAsrResult:
{
msg = new Message<AsrResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAsrResult(ptr);
return new AsrResult(obj);
});
break;
}
case MessageType.Notification_Speech_OnSpeechError:
{
msg = new Message<SpeechError>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSpeechError(ptr);
return new SpeechError(obj);
});
break;
}
#endregion
#region Highlight
case MessageType.Highlight_StartSession:
{
msg = new Message<string>(msgPointer, ptr => { return CLIB.ppf_Message_GetString(ptr); });
break;
}
case MessageType.Highlight_CaptureScreen:
{
msg = new Message<CaptureInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetCaptureInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new CaptureInfo(obj);
});
break;
}
case MessageType.Highlight_ListMedia:
{
msg = new Message<SessionMedia>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSessionMedia(ptr);
if (obj == IntPtr.Zero) return null;
return new SessionMedia(obj);
});
break;
}
case MessageType.Highlight_SaveMedia:
case MessageType.Highlight_ShareMedia:
case MessageType.Highlight_StartRecord:
{
msg = new Message(msgPointer);
break;
}
case MessageType.Highlight_StopRecord:
case MessageType.Notification_Highlight_OnRecordStop:
{
msg = new Message<RecordInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRecordInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RecordInfo(obj);
});
break;
}
#endregion
#region compliance
case MessageType.Compliance_DetectSensitive:
{
msg = new Message<DetectSensitiveResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetDetectSensitiveResult(ptr);
if (obj == IntPtr.Zero) return null;
return new DetectSensitiveResult(obj);
});
break;
}
#endregion
#region Sport
case MessageType.Sport_GetSummary:
{
msg = new Message<SportSummary>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSportSummary(ptr);
if (obj == IntPtr.Zero) return null;
return new SportSummary(obj);
});
break;
}
case MessageType.Sport_GetDailySummary:
{
msg = new Message<SportDailySummaryList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSportDailySummaryArray(ptr);
if (obj == IntPtr.Zero) return null;
return new SportDailySummaryList(obj);
});
break;
}
case MessageType.Sport_GetUserInfo:
{
msg = new Message<SportUserInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSportUserInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new SportUserInfo(obj);
});
break;
}
#endregion
#region User
case MessageType.User_EntitlementCheck:
{
msg = new Message<EntitlementCheckResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetEntitlementCheckResult(ptr);
if (obj == IntPtr.Zero) return null;
return new EntitlementCheckResult(obj);
});
break;
}
case MessageType.User_GetAuthorizedPermissions:
case MessageType.User_RequestUserPermissions:
{
msg = new Message<PermissionResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetPermissionResult(ptr);
if (obj == IntPtr.Zero) return null;
return new PermissionResult(obj);
});
break;
}
case MessageType.User_GetLoggedInUserFriendsAndRooms:
{
msg = new Message<UserRoomList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetUserAndRoomArray(ptr);
if (obj == IntPtr.Zero) return null;
var data = new UserRoomList(obj);
return data;
});
break;
}
case MessageType.Presence_GetSentInvites:
{
msg = new Message<ApplicationInviteList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetApplicationInviteArray(ptr);
if (obj == IntPtr.Zero) return null;
var data = new ApplicationInviteList(obj);
return data;
});
break;
}
case MessageType.Presence_SendInvites:
{
msg = new Message<SendInvitesResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSendInvitesResult(ptr);
if (obj == IntPtr.Zero) return null;
var data = new SendInvitesResult(obj);
return data;
});
break;
}
case MessageType.Presence_GetDestinations:
{
msg = new Message<DestinationList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetDestinationArray(ptr);
if (obj == IntPtr.Zero) return null;
var data = new DestinationList(obj);
return data;
});
break;
}
case MessageType.User_GetAccessToken:
case MessageType.User_GetIdToken:
case MessageType.Rtc_GetToken:
case MessageType.Notification_Rtc_OnTokenWillExpire:
case MessageType.Notification_Rtc_OnUserStartAudioCapture:
case MessageType.Notification_Rtc_OnUserStopAudioCapture:
case MessageType.Application_LaunchOtherApp:
case MessageType.Application_LaunchStore:
case MessageType.Notification_Room_InviteAccepted:
case MessageType.Notification_Challenge_LaunchByInvite:
case MessageType.Notification_ApplicationLifecycle_LaunchIntentChanged:
{
msg = new Message<string>(msgPointer, ptr => { return CLIB.ppf_Message_GetString(ptr); });
break;
}
case MessageType.Notification_Presence_JoinIntentReceived:
{
msg = new Message<PresenceJoinIntent>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetPresenceJoinIntent(ptr);
if (obj == IntPtr.Zero) return null;
return new PresenceJoinIntent(obj);
});
break;
}
case MessageType.Application_GetVersion:
{
msg = new Message<ApplicationVersion>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetApplicationVersion(ptr);
if (obj == IntPtr.Zero) return null;
return new ApplicationVersion(obj);
});
break;
}
case MessageType.User_GetLoggedInUser:
case MessageType.User_Get:
{
msg = new Message<User>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetUser(ptr);
if (obj == IntPtr.Zero) return null;
return new User(obj);
});
break;
}
case MessageType.User_GetOrgScopedID:
{
msg = new Message<OrgScopedID>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetOrgScopedID(ptr);
if (obj == IntPtr.Zero) return null;
return new OrgScopedID(obj);
});
break;
}
case MessageType.User_LaunchFriendRequestFlow:
{
msg = new Message<LaunchFriendResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetLaunchFriendRequestFlowResult(ptr);
if (obj == IntPtr.Zero) return null;
return new LaunchFriendResult(obj);
});
break;
}
case MessageType.User_GetLoggedInUserFriends:
case MessageType.Room_GetInvitableUsers2:
case MessageType.Presence_GetInvitableUsers:
{
msg = new Message<UserList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetUserArray(ptr);
if (obj == IntPtr.Zero) return null;
return new UserList(obj);
});
break;
}
case MessageType.User_GetRelations:
{
msg = new Message<UserRelationResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetUserRelationResult(ptr);
if (obj == IntPtr.Zero) return null;
return new UserRelationResult(obj);
});
break;
}
#endregion
#region RTC
case MessageType.Notification_Rtc_OnRoomMessageReceived:
{
msg = new Message<RtcRoomMessageReceived>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcRoomMessageReceived(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcRoomMessageReceived(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserMessageReceived:
{
msg = new Message<RtcUserMessageReceived>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcUserMessageReceived(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcUserMessageReceived(obj);
});
break;
}
case MessageType.Notification_Rtc_OnRoomMessageSendResult:
case MessageType.Notification_Rtc_OnUserMessageSendResult:
{
msg = new Message<RtcMessageSendResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcMessageSendResult(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcMessageSendResult(obj);
});
break;
}
case MessageType.Notification_Rtc_OnRoomBinaryMessageReceived:
case MessageType.Notification_Rtc_OnUserBinaryMessageReceived:
{
msg = new Message<RtcBinaryMessageReceived>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcBinaryMessageReceived(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcBinaryMessageReceived(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserPublishScreen:
case MessageType.Notification_Rtc_OnUserPublishStream:
{
msg = new Message<RtcUserPublishInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcUserPublishInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcUserPublishInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserUnPublishScreen:
case MessageType.Notification_Rtc_OnUserUnPublishStream:
{
msg = new Message<RtcUserUnPublishInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcUserUnPublishInfo(ptr);
if (obj == IntPtr.Zero)
{
return null;
}
return new RtcUserUnPublishInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnStreamSyncInfoReceived:
{
msg = new Message<RtcStreamSyncInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcStreamSyncInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcStreamSyncInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnVideoDeviceStateChanged:
{
break;
}
case MessageType.Notification_Rtc_OnRoomError:
{
msg = new Message<RtcRoomError>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcRoomError(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcRoomError(obj);
});
break;
}
case MessageType.Notification_Rtc_OnRoomWarn:
{
msg = new Message<RtcRoomWarn>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcRoomWarn(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcRoomWarn(obj);
});
break;
}
case MessageType.Notification_Rtc_OnConnectionStateChange:
{
msg = new Message<RtcConnectionState>(msgPointer, ptr => { return (RtcConnectionState) CLIB.ppf_Message_GetInt32(ptr); });
break;
}
case MessageType.Notification_Rtc_OnError:
case MessageType.Notification_Rtc_OnWarn:
{
msg = new Message<Int32>(msgPointer, ptr => { return CLIB.ppf_Message_GetInt32(ptr); });
break;
}
case MessageType.Notification_Rtc_OnRoomStats:
{
msg = new Message<RtcRoomStats>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcRoomStats(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcRoomStats(obj);
});
break;
}
case MessageType.Notification_Rtc_OnJoinRoom:
{
msg = new Message<RtcJoinRoomResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcJoinRoomResult(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcJoinRoomResult(obj);
});
break;
}
case MessageType.Notification_Rtc_OnLeaveRoom:
{
msg = new Message<RtcLeaveRoomResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcLeaveRoomResult(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcLeaveRoomResult(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserLeaveRoom:
{
msg = new Message<RtcUserLeaveInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcUserLeaveInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcUserLeaveInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserJoinRoom:
{
msg = new Message<RtcUserJoinInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcUserJoinInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcUserJoinInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnAudioPlaybackDeviceChanged:
{
msg = new Message<RtcAudioPlaybackDevice>(msgPointer, ptr => { return (RtcAudioPlaybackDevice) CLIB.ppf_Message_GetInt32(ptr); });
break;
}
case MessageType.Notification_Rtc_OnMediaDeviceStateChanged:
{
msg = new Message<RtcMediaDeviceChangeInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcMediaDeviceChangeInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcMediaDeviceChangeInfo(obj);
});
break;
}
case MessageType.Notification_Rtc_OnLocalAudioPropertiesReport:
{
msg = new Message<RtcLocalAudioPropertiesReport>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcLocalAudioPropertiesReport(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcLocalAudioPropertiesReport(obj);
});
break;
}
case MessageType.Notification_Rtc_OnRemoteAudioPropertiesReport:
{
msg = new Message<RtcRemoteAudioPropertiesReport>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcRemoteAudioPropertiesReport(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcRemoteAudioPropertiesReport(obj);
});
break;
}
case MessageType.Notification_Rtc_OnUserMuteAudio:
{
msg = new Message<RtcMuteInfo>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRtcMuteInfo(ptr);
if (obj == IntPtr.Zero) return null;
return new RtcMuteInfo(obj);
});
break;
}
#endregion
#region IAP
case MessageType.IAP_GetViewerPurchases:
{
msg = new Message<PurchaseList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetPurchaseArray(ptr);
if (obj == IntPtr.Zero) return null;
return new PurchaseList(obj);
});
break;
}
case MessageType.IAP_GetSubscriptionStatus:
{
msg = new Message<SubscriptionStatus>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetSubscriptionStatus(ptr);
if (obj == IntPtr.Zero) return null;
return new SubscriptionStatus(obj);
});
break;
}
case MessageType.IAP_LaunchCheckoutFlow:
{
msg = new Message<Purchase>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetPurchase(ptr);
if (obj == IntPtr.Zero) return null;
return new Purchase(obj);
});
break;
}
case MessageType.IAP_GetProductsBySKU:
{
msg = new Message<ProductList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetProductArray(ptr);
if (obj == IntPtr.Zero) return null;
return new ProductList(obj);
});
break;
}
#endregion
#region DLC
case MessageType.AssetFile_DeleteById:
case MessageType.AssetFile_DeleteByName:
{
msg = new Message<AssetFileDeleteResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetFileDeleteResult(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetFileDeleteResult(obj);
});
break;
}
case MessageType.AssetFile_DownloadById:
case MessageType.AssetFile_DownloadByName:
{
msg = new Message<AssetFileDownloadResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetFileDownloadResult(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetFileDownloadResult(obj);
});
break;
}
case MessageType.AssetFile_DownloadCancelById:
case MessageType.AssetFile_DownloadCancelByName:
{
msg = new Message<AssetFileDownloadCancelResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetFileDownloadCancelResult(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetFileDownloadCancelResult(obj);
});
break;
}
case MessageType.AssetFile_GetList:
case MessageType.AssetFile_GetNextAssetDetailsArrayPage:
{
msg = new Message<AssetDetailsList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetDetailsArray(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetDetailsList(obj);
});
break;
}
case MessageType.AssetFile_StatusById:
case MessageType.AssetFile_StatusByName:
{
msg = new Message<AssetStatus>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetStatus(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetStatus(obj);
});
break;
}
case MessageType.Notification_AssetFile_DownloadUpdate:
{
msg = new Message<AssetFileDownloadUpdate>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetFileDownloadUpdate(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetFileDownloadUpdate(obj);
});
break;
}
case MessageType.Notification_AssetFile_DeleteForSafety:
{
msg = new Message<AssetFileDeleteForSafety>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAssetFileDeleteForSafety(ptr);
if (obj == IntPtr.Zero) return null;
return new AssetFileDeleteForSafety(obj);
});
break;
}
#endregion
#region stark game
case MessageType.Matchmaking_Cancel2:
case MessageType.Matchmaking_ReportResultInsecure:
case MessageType.Matchmaking_StartMatch:
case MessageType.Room_LaunchInvitableUserFlow:
case MessageType.Challenges_LaunchInvitableUserFlow:
case MessageType.Room_UpdateOwner:
case MessageType.Notification_MarkAsRead:
case MessageType.Notification_Game_StateReset:
case MessageType.Presence_Clear:
case MessageType.Presence_Set:
case MessageType.IAP_ConsumePurchase:
case MessageType.Presence_LaunchInvitePanel:
case MessageType.Presence_ShareMedia:
{
msg = new Message(msgPointer);
break;
}
case MessageType.Matchmaking_GetAdminSnapshot:
{
msg = new Message<MatchmakingAdminSnapshot>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingAdminSnapshot(ptr);
return new MatchmakingAdminSnapshot(obj);
});
break;
}
case MessageType.Matchmaking_Browse2:
{
msg = new Message<MatchmakingBrowseResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingBrowseResult(ptr);
return new MatchmakingBrowseResult(obj);
});
break;
}
case MessageType.Matchmaking_Browse2CustomPage:
{
msg = new Message<MatchmakingBrowseResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingBrowseCustomPageResult(ptr);
return new MatchmakingBrowseResult(obj);
});
break;
}
case MessageType.Matchmaking_Enqueue2:
case MessageType.Matchmaking_EnqueueRoom2:
{
msg = new Message<MatchmakingEnqueueResult>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingEnqueueResult(ptr);
return new MatchmakingEnqueueResult(obj);
});
break;
}
case MessageType.Matchmaking_CreateAndEnqueueRoom2:
{
msg = new Message<MatchmakingEnqueueResultAndRoom>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingEnqueueResultAndRoom(ptr);
return new MatchmakingEnqueueResultAndRoom(obj);
});
break;
}
case MessageType.Matchmaking_GetStats:
{
msg = new Message<MatchmakingStats>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetMatchmakingStats(ptr);
return new MatchmakingStats(obj);
});
break;
}
case MessageType.Room_GetCurrent:
case MessageType.Room_GetCurrentForUser:
case MessageType.Notification_Room_RoomUpdate:
case MessageType.Room_CreateAndJoinPrivate:
case MessageType.Room_CreateAndJoinPrivate2:
case MessageType.Room_InviteUser:
case MessageType.Room_Join:
case MessageType.Room_Join2:
case MessageType.Room_JoinNamed:
case MessageType.Room_KickUser:
case MessageType.Room_Leave:
case MessageType.Room_SetDescription:
case MessageType.Room_UpdateDataStore:
case MessageType.Room_UpdateMembershipLockStatus:
case MessageType.Room_UpdatePrivateRoomJoinPolicy:
case MessageType.Notification_Matchmaking_MatchFound:
case MessageType.Room_Get:
{
msg = new Message<Room>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRoom(ptr);
return new Room(obj);
});
break;
}
case MessageType.Room_GetModeratedRooms:
case MessageType.Room_GetNamedRooms:
case MessageType.Room_GetNextRoomArrayPage:
{
msg = new Message<RoomList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRoomArray(ptr);
return new RoomList(obj);
});
break;
}
case MessageType.PlatformGameInitializeAsynchronous:
{
msg = new Message<GameInitializeResult>(msgPointer, ptr =>
{
var objHandle = CLIB.ppf_Message_GetPlatformGameInitialize(ptr);
var obj = CLIB.ppf_PlatformGameInitialize_GetResult(objHandle);
return obj;
});
break;
}
case MessageType.Notification_Game_ConnectionEvent:
{
msg = new Message<GameConnectionEvent>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetGameConnectionEvent(ptr);
return obj;
});
break;
}
case MessageType.Notification_Game_RequestFailed:
{
msg = new Message<GameRequestFailedReason>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetGameRequestFailedReason(ptr);
return obj;
});
break;
}
case MessageType.Leaderboard_Get:
case MessageType.Leaderboard_GetNextLeaderboardArrayPage:
{
msg = new Message<LeaderboardList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetLeaderboardArray(ptr);
return new LeaderboardList(obj);
});
break;
}
case MessageType.Leaderboard_GetEntries:
case MessageType.Leaderboard_GetEntriesAfterRank:
case MessageType.Leaderboard_GetEntriesByIds:
case MessageType.Leaderboard_GetNextEntries:
case MessageType.Leaderboard_GetPreviousEntries:
{
msg = new Message<LeaderboardEntryList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetLeaderboardEntryArray(ptr);
return new LeaderboardEntryList(obj);
});
break;
}
case MessageType.Leaderboard_WriteEntry:
case MessageType.Leaderboard_WriteEntryWithSupplementaryMetric:
{
msg = new Message<bool>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetLeaderboardUpdateStatus(ptr);
return CLIB.ppf_LeaderboardUpdateStatus_GetDidUpdate(obj);
});
break;
}
case MessageType.Achievements_GetAllDefinitions:
case MessageType.Achievements_GetDefinitionsByName:
case MessageType.Achievements_GetNextAchievementDefinitionArrayPage:
msg = new Message<AchievementDefinitionList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAchievementDefinitionArray(ptr);
return new AchievementDefinitionList(obj);
});
break;
case MessageType.Achievements_GetAllProgress:
case MessageType.Achievements_GetNextAchievementProgressArrayPage:
case MessageType.Achievements_GetProgressByName:
msg = new Message<AchievementProgressList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAchievementProgressArray(ptr);
return new AchievementProgressList(obj);
});
break;
case MessageType.Achievements_AddCount:
case MessageType.Achievements_AddFields:
case MessageType.Achievements_Unlock:
msg = new Message<AchievementUpdate>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetAchievementUpdate(ptr);
return new AchievementUpdate(obj);
});
break;
case MessageType.Notification_GetNextRoomInviteNotificationArrayPage:
case MessageType.Notification_GetRoomInvites:
{
msg = new Message<RoomInviteNotificationList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetRoomInviteNotificationArray(ptr);
return new RoomInviteNotificationList(obj);
});
break;
}
case MessageType.Challenges_Invite:
case MessageType.Challenges_Get:
case MessageType.Challenges_Join:
case MessageType.Challenges_Leave:
{
msg = new Message<Challenge>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetChallenge(ptr);
return new Challenge(obj);
});
break;
}
case MessageType.Challenges_GetList:
{
msg = new Message<ChallengeList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetChallengeArray(ptr);
return new ChallengeList(obj);
});
break;
}
case MessageType.Challenges_GetEntries:
case MessageType.Challenges_GetEntriesAfterRank:
case MessageType.Challenges_GetEntriesByIds:
{
msg = new Message<ChallengeEntryList>(msgPointer, ptr =>
{
var obj = CLIB.ppf_Message_GetChallengeEntryArray(ptr);
return new ChallengeEntryList(obj);
});
break;
}
#endregion stark game
default:
break;
}
return msg;
}
}
}