gamedataupdateevent.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*
  2. ** Command & Conquer Renegade(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /***********************************************************************************************
  19. *** Confidential - Westwood Studios ***
  20. ***********************************************************************************************
  21. * *
  22. * Project Name : Commando *
  23. * *
  24. * $Archive:: /Commando/Code/Commando/gamedataupdateevent.cpp $*
  25. * *
  26. * $Author:: Steve_t $*
  27. * *
  28. * $Modtime:: 1/17/02 8:32p $*
  29. * *
  30. * $Revision:: 6 $*
  31. * *
  32. *---------------------------------------------------------------------------------------------*
  33. * Functions: *
  34. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  35. #include "gamedataupdateevent.h"
  36. #include "networkobjectfactory.h"
  37. #include "cnetwork.h"
  38. #include "apppackettypes.h"
  39. DECLARE_NETWORKOBJECT_FACTORY(cGameDataUpdateEvent, NETCLASSID_GAMEDATAUPDATEEVENT);
  40. //-----------------------------------------------------------------------------
  41. cGameDataUpdateEvent::cGameDataUpdateEvent(void)
  42. {
  43. Set_App_Packet_Type(APPPACKETTYPE_GAMEDATAUPDATEEVENT);
  44. TimeRemainingSeconds = 0;
  45. //ServerIsGameplayPermitted = true;
  46. }
  47. //-----------------------------------------------------------------------------
  48. void
  49. cGameDataUpdateEvent::Init(int client_id)
  50. {
  51. WWASSERT(cNetwork::I_Am_Server());
  52. //WWASSERT(client_id >= 0);
  53. cGameDataUpdateEvent::cGameDataUpdateEvent();
  54. WWASSERT(The_Game() != NULL);
  55. TimeRemainingSeconds = (int) The_Game()->Get_Time_Remaining_Seconds();
  56. //ServerIsGameplayPermitted = The_Game()->Get_Server_Is_Gameplay_Permitted();
  57. HostedGameNumber = The_Game()->Get_Hosted_Game_Number();
  58. if (client_id == -1) {
  59. Set_Object_Dirty_Bit(BIT_CREATION, true);
  60. } else {
  61. Set_Object_Dirty_Bit(client_id, BIT_CREATION, true);
  62. }
  63. }
  64. //-----------------------------------------------------------------------------
  65. void
  66. cGameDataUpdateEvent::Act(void)
  67. {
  68. WWASSERT(cNetwork::I_Am_Only_Client());
  69. if (The_Game() != NULL && TimeRemainingSeconds > 0)
  70. {
  71. The_Game()->Set_Time_Remaining_Seconds(TimeRemainingSeconds);
  72. //The_Game()->Set_Server_Is_Gameplay_Permitted(ServerIsGameplayPermitted);
  73. }
  74. The_Game()->Set_Hosted_Game_Number(HostedGameNumber);
  75. //Set_Delete_Pending();
  76. }
  77. //-----------------------------------------------------------------------------
  78. void
  79. cGameDataUpdateEvent::Export_Creation(BitStreamClass & packet)
  80. {
  81. WWASSERT(cNetwork::I_Am_Server());
  82. cNetEvent::Export_Creation(packet);
  83. packet.Add(TimeRemainingSeconds);
  84. //packet.Add(ServerIsGameplayPermitted);
  85. packet.Add(HostedGameNumber);
  86. Set_Delete_Pending();
  87. }
  88. //-----------------------------------------------------------------------------
  89. void
  90. cGameDataUpdateEvent::Import_Creation(BitStreamClass & packet)
  91. {
  92. WWASSERT(cNetwork::I_Am_Only_Client());
  93. cNetEvent::Import_Creation(packet);
  94. packet.Get(TimeRemainingSeconds);
  95. //packet.Get(ServerIsGameplayPermitted);
  96. packet.Get(HostedGameNumber);
  97. Act();
  98. Set_Delete_Pending();
  99. }