internal void ShowAllQuestUI(Action <QuestUIResponse> callback)
 {
     C.QuestManager_ShowAllUI(
         mServices.AsHandle(),
         InternalQuestUICallback,
         Callbacks.ToIntPtr <QuestUIResponse>(callback, QuestUIResponse.FromPointer));
 }
 internal IEnumerable <NativeQuest> Data()
 {
     return(PInvokeUtilities.ToEnumerable <NativeQuest>(
                C.QuestManager_FetchListResponse_GetData_Length(SelfPtr()),
                index => new NativeQuest(
                    C.QuestManager_FetchListResponse_GetData_GetElement(SelfPtr(), index))));
 }
 internal void Accept(NativeQuest quest, Action <AcceptResponse> callback)
 {
     C.QuestManager_Accept(
         mServices.AsHandle(),
         quest.AsPointer(),
         InternalAcceptCallback,
         Callbacks.ToIntPtr <AcceptResponse>(callback, AcceptResponse.FromPointer));
 }
            internal NativeQuest Data()
            {
                if (!RequestSucceeded())
                {
                    return(null);
                }

                return(new NativeQuest(C.QuestManager_FetchResponse_GetData(SelfPtr())));
            }
 internal void Fetch(Types.DataSource source, string questId, Action <FetchResponse> callback)
 {
     C.QuestManager_Fetch(
         mServices.AsHandle(),
         source,
         questId,
         InternalFetchCallback,
         Callbacks.ToIntPtr <FetchResponse>(callback, FetchResponse.FromPointer));
 }
 internal void ShowQuestUI(NativeQuest quest, Action <QuestUIResponse> callback)
 {
     C.QuestManager_ShowUI(
         mServices.AsHandle(),
         quest.AsPointer(),
         InternalQuestUICallback,
         Callbacks.ToIntPtr <QuestUIResponse>(
             callback, QuestUIResponse.FromPointer));
 }
            internal NativeQuest AcceptedQuest()
            {
                if (!RequestSucceeded())
                {
                    return(null);
                }

                return(new NativeQuest(C.QuestManager_AcceptResponse_GetAcceptedQuest(SelfPtr())));
            }
 internal void ClaimMilestone(NativeQuestMilestone milestone,
                              Action <ClaimMilestoneResponse> callback)
 {
     C.QuestManager_ClaimMilestone(
         mServices.AsHandle(),
         milestone.AsPointer(),
         InternalClaimMilestoneCallback,
         Callbacks.ToIntPtr <ClaimMilestoneResponse>(
             callback, ClaimMilestoneResponse.FromPointer));
 }
 internal void FetchList(Types.DataSource source, int fetchFlags,
                         Action <FetchListResponse> callback)
 {
     C.QuestManager_FetchList(
         mServices.AsHandle(),
         source,
         fetchFlags,
         InternalFetchListCallback,
         Callbacks.ToIntPtr <FetchListResponse>(callback, FetchListResponse.FromPointer));
 }
            internal NativeQuest Quest()
            {
                if (!RequestSucceeded())
                {
                    return(null);
                }

                var quest = new NativeQuest(C.QuestManager_ClaimMilestoneResponse_GetQuest(SelfPtr()));

                if (quest.Valid())
                {
                    return(quest);
                }
                else
                {
                    quest.Dispose();
                    return(null);
                }
            }
            internal NativeQuestMilestone MilestoneToClaim()
            {
                if (!RequestSucceeded())
                {
                    return(null);
                }

                var milestone = new NativeQuestMilestone(
                    C.QuestManager_QuestUIResponse_GetMilestoneToClaim(SelfPtr()));

                if (milestone.Valid())
                {
                    return(milestone);
                }
                else
                {
                    milestone.Dispose();
                    return(null);
                }
            }
            internal NativeQuest AcceptedQuest()
            {
                if (!RequestSucceeded())
                {
                    return(null);
                }

                var quest = new NativeQuest(
                    C.QuestManager_QuestUIResponse_GetAcceptedQuest(SelfPtr()));

                if (quest.Valid())
                {
                    return(quest);
                }
                else
                {
                    quest.Dispose();
                    return(null);
                }
            }
 internal Status.UIStatus RequestStatus()
 {
     return(C.QuestManager_QuestUIResponse_GetStatus(SelfPtr()));
 }
 internal Status.ResponseStatus ResponseStatus()
 {
     return(C.QuestManager_FetchListResponse_GetStatus(SelfPtr()));
 }
 internal Status.QuestClaimMilestoneStatus ResponseStatus()
 {
     return(C.QuestManager_ClaimMilestoneResponse_GetStatus(SelfPtr()));
 }
 protected override void CallDispose(HandleRef selfPointer)
 {
     C.QuestManager_QuestUIResponse_Dispose(selfPointer);
 }
 internal Status.QuestAcceptStatus ResponseStatus()
 {
     return(C.QuestManager_AcceptResponse_GetStatus(SelfPtr()));
 }