Lobby2ClientGFx3Impl.h 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /*
  2. * Copyright (c) 2014, Oculus VR, Inc.
  3. * All rights reserved.
  4. *
  5. * This source code is licensed under the BSD-style license found in the
  6. * LICENSE file in the root directory of this source tree. An additional grant
  7. * of patent rights can be found in the PATENTS file in the same directory.
  8. *
  9. */
  10. #ifndef __LOBBY_2_CLIENT_GFX3_IMPL_H
  11. #define __LOBBY_2_CLIENT_GFX3_IMPL_H
  12. #include "WindowsIncludes.h"
  13. #include "RakNetTypes.h"
  14. #include "FxGameDelegate.h"
  15. #include "Lobby2Message.h"
  16. #include "PluginInterface2.h"
  17. #define ACTIONSCRIPT_CALLABLE_HEADER(functionName) virtual void functionName(const FxDelegateArgs& pparams);
  18. #define ACTIONSCRIPT_CALLABLE_FUNCTION(className, functionName) \
  19. void functionName(const FxDelegateArgs& pparams) \
  20. { \
  21. ((className*)pparams.GetHandler())->functionName(pparams); \
  22. } \
  23. void className::functionName(const FxDelegateArgs& pparams)
  24. namespace RakNet {
  25. // GFxPlayerTinyD3D9.cpp has an instance of this class, and callls the corresponding 3 function
  26. // This keeps the patching code out of the GFx sample as much as possible
  27. class Lobby2ClientGFx3Impl : public FxDelegateHandler, public RakNet::Lobby2Callbacks, public PluginInterface2
  28. {
  29. public:
  30. Lobby2ClientGFx3Impl();
  31. ~Lobby2ClientGFx3Impl();
  32. void Init(RakNet::Lobby2Client *_lobby2Client, RakNet::Lobby2MessageFactory *_messageFactory, RakPeerInterface *_rakPeer, GPtr<FxDelegate> pDelegate, GPtr<GFxMovieView> pMovie);
  33. void Update(void);
  34. void Shutdown(void);
  35. // Update all callbacks from flash
  36. void Accept(CallbackProcessor* cbreg);
  37. // Calls from Flash
  38. ACTIONSCRIPT_CALLABLE_HEADER(f2c_ResetDatabase);
  39. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Connect);
  40. ACTIONSCRIPT_CALLABLE_HEADER(f2c_RecoverPasswordByUsername);
  41. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetPasswordByPasswordRecoveryAnswer);
  42. ACTIONSCRIPT_CALLABLE_HEADER(f2c_RegisterAccountStateQuery);
  43. ACTIONSCRIPT_CALLABLE_HEADER(f2c_DeleteAccount);
  44. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetAccountDetails);
  45. ACTIONSCRIPT_CALLABLE_HEADER(f2c_LoginToAccount);
  46. ACTIONSCRIPT_CALLABLE_HEADER(f2c_DisconnectFromServer);
  47. ACTIONSCRIPT_CALLABLE_HEADER(f2c_CheckCDKey);
  48. ACTIONSCRIPT_CALLABLE_HEADER(f2c_RegisterAccount);
  49. ACTIONSCRIPT_CALLABLE_HEADER(f2c_ValidateHandle);
  50. ACTIONSCRIPT_CALLABLE_HEADER(f2c_ChangeHandle);
  51. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Logoff);
  52. ACTIONSCRIPT_CALLABLE_HEADER(f2c_UpdateAccount);
  53. ACTIONSCRIPT_CALLABLE_HEADER(f2c_StartIgnore);
  54. ACTIONSCRIPT_CALLABLE_HEADER(f2c_StopIgnore);
  55. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetIgnoreList);
  56. ACTIONSCRIPT_CALLABLE_HEADER(f2c_SendInvite);
  57. ACTIONSCRIPT_CALLABLE_HEADER(f2c_AcceptInvite);
  58. ACTIONSCRIPT_CALLABLE_HEADER(f2c_RejectInvite);
  59. ACTIONSCRIPT_CALLABLE_HEADER(f2c_RemoveFriend);
  60. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetFriendInvites);
  61. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetFriends);
  62. ACTIONSCRIPT_CALLABLE_HEADER(f2c_SendEmail);
  63. ACTIONSCRIPT_CALLABLE_HEADER(f2c_DeleteEmail);
  64. ACTIONSCRIPT_CALLABLE_HEADER(f2c_UpdateEmail);
  65. ACTIONSCRIPT_CALLABLE_HEADER(f2c_GetEmails);
  66. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_Create);
  67. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SetProperties);
  68. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GetProperties);
  69. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SetMyMemberProperties);
  70. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GrantLeader);
  71. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SetSubleaderStatus);
  72. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SetMemberRank);
  73. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GetMemberProperties);
  74. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_ChangeHandle);
  75. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_Leave);
  76. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_Get);
  77. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SendJoinInvitation);
  78. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_WithdrawJoinInvitation);
  79. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_AcceptJoinInvitation);
  80. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_RejectJoinInvitation);
  81. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_DownloadInvitationList);
  82. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_SendJoinRequest);
  83. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_WithdrawJoinRequest);
  84. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_AcceptJoinRequest);
  85. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_RejectJoinRequest);
  86. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_DownloadRequestList);
  87. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_KickAndBlacklistUser);
  88. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_UnblacklistUser);
  89. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GetBlacklist);
  90. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GetMembers);
  91. ACTIONSCRIPT_CALLABLE_HEADER(f2c_Clans_GetList);
  92. // Callbacks from lobby
  93. virtual void MessageResult(RakNet::CDKey_GetStatus *message);
  94. virtual void MessageResult(RakNet::System_DeleteAccount *message);
  95. virtual void MessageResult(RakNet::Client_Login *message);
  96. virtual void MessageResult(RakNet::System_CreateDatabase *message);
  97. virtual void MessageResult(RakNet::System_CreateTitle *message);
  98. virtual void MessageResult(RakNet::Client_ValidateHandle *message);
  99. virtual void MessageResult(RakNet::Client_RegisterAccount *message);
  100. virtual void MessageResult(RakNet::Client_UpdateAccount *message);
  101. virtual void MessageResult(RakNet::Client_ChangeHandle *message);
  102. virtual void MessageResult(RakNet::Client_GetAccountDetails *message);
  103. virtual void MessageResult(RakNet::Client_StartIgnore *message);
  104. virtual void MessageResult(RakNet::Client_StopIgnore *message);
  105. virtual void MessageResult(RakNet::Client_GetIgnoreList *message);
  106. virtual void MessageResult(RakNet::Client_GetPasswordRecoveryQuestionByHandle *message);
  107. virtual void MessageResult(RakNet::Client_GetPasswordByPasswordRecoveryAnswer *message);
  108. virtual void MessageResult(RakNet::Friends_SendInvite *message);
  109. virtual void MessageResult(RakNet::Friends_AcceptInvite *message);
  110. virtual void MessageResult(RakNet::Friends_RejectInvite *message);
  111. virtual void MessageResult(RakNet::Friends_Remove *message);
  112. virtual void MessageResult(RakNet::Friends_GetInvites *message);
  113. virtual void MessageResult(RakNet::Friends_GetFriends *message);
  114. virtual void MessageResult(RakNet::Emails_Send *message);
  115. virtual void MessageResult(RakNet::Emails_Delete *message);
  116. virtual void MessageResult(RakNet::Emails_SetStatus *message);
  117. virtual void MessageResult(RakNet::Emails_Get *message);
  118. virtual void MessageResult(RakNet::Clans_Create *message);
  119. virtual void MessageResult(RakNet::Clans_SetProperties *message);
  120. virtual void MessageResult(RakNet::Clans_GetProperties *message);
  121. virtual void MessageResult(RakNet::Clans_SetMyMemberProperties *message);
  122. virtual void MessageResult(RakNet::Clans_GrantLeader *message);
  123. virtual void MessageResult(RakNet::Clans_SetSubleaderStatus *message);
  124. virtual void MessageResult(RakNet::Clans_SetMemberRank *message);
  125. virtual void MessageResult(RakNet::Clans_GetMemberProperties *message);
  126. virtual void MessageResult(RakNet::Clans_ChangeHandle *message);
  127. virtual void MessageResult(RakNet::Clans_Leave *message);
  128. virtual void MessageResult(RakNet::Clans_Get *message);
  129. virtual void MessageResult(RakNet::Clans_SendJoinInvitation *message);
  130. virtual void MessageResult(RakNet::Clans_WithdrawJoinInvitation *message);
  131. virtual void MessageResult(RakNet::Clans_AcceptJoinInvitation *message);
  132. virtual void MessageResult(RakNet::Clans_RejectJoinInvitation *message);
  133. virtual void MessageResult(RakNet::Clans_DownloadInvitationList *message);
  134. virtual void MessageResult(RakNet::Clans_SendJoinRequest *message);
  135. virtual void MessageResult(RakNet::Clans_WithdrawJoinRequest *message);
  136. virtual void MessageResult(RakNet::Clans_AcceptJoinRequest *message);
  137. virtual void MessageResult(RakNet::Clans_RejectJoinRequest *message);
  138. virtual void MessageResult(RakNet::Clans_DownloadRequestList *message);
  139. virtual void MessageResult(RakNet::Clans_KickAndBlacklistUser *message);
  140. virtual void MessageResult(RakNet::Clans_UnblacklistUser *message);
  141. virtual void MessageResult(RakNet::Clans_GetBlacklist *message);
  142. virtual void MessageResult(RakNet::Clans_GetMembers *message);
  143. virtual void MessageResult(RakNet::Clans_GetList *message);
  144. virtual void MessageResult(RakNet::Notification_Client_RemoteLogin *message);
  145. virtual void MessageResult(RakNet::Notification_Client_IgnoreStatus *message);
  146. virtual void MessageResult(RakNet::Notification_Friends_StatusChange *message);
  147. virtual void MessageResult(RakNet::Notification_User_ChangedHandle *message);
  148. virtual void MessageResult(RakNet::Notification_Friends_CreatedClan *message);
  149. virtual void MessageResult(RakNet::Notification_Emails_Received *message);
  150. virtual void MessageResult(RakNet::Notification_Clans_GrantLeader *message);
  151. virtual void MessageResult(RakNet::Notification_Clans_SetSubleaderStatus *message);
  152. virtual void MessageResult(RakNet::Notification_Clans_SetMemberRank *message);
  153. virtual void MessageResult(RakNet::Notification_Clans_ChangeHandle *message);
  154. virtual void MessageResult(RakNet::Notification_Clans_Leave *message);
  155. virtual void MessageResult(RakNet::Notification_Clans_PendingJoinStatus *message);
  156. virtual void MessageResult(RakNet::Notification_Clans_NewClanMember *message);
  157. virtual void MessageResult(RakNet::Notification_Clans_KickAndBlacklistUser *message);
  158. virtual void MessageResult(RakNet::Notification_Clans_UnblacklistUser *message);
  159. virtual void MessageResult(RakNet::Notification_Clans_Destroyed *message);
  160. static void OpenSite(const FxDelegateArgs& pparams);
  161. // PluginInterface2
  162. virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason );
  163. virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming);
  164. virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason);
  165. GPtr<FxDelegate> delegate;
  166. GPtr<GFxMovieView> movie;
  167. RakNet::Lobby2Client *lobby2Client;
  168. RakNet::Lobby2MessageFactory *messageFactory;
  169. RakNet::RakPeerInterface *rakPeer;
  170. };
  171. } // namespace RakNet
  172. #endif // __LOBBY_2_CLIENT_GFX3_IMPL_H
粤ICP备19079148号