actiondebug.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. class ActionDebugReciveData : ActionReciveData
  2. {
  3. ItemBase m_Item;
  4. int m_DebugActionID;
  5. EntityAI m_Entity;
  6. }
  7. class ActionDebugData : ActionData
  8. {
  9. int m_DebugActionID;
  10. EntityAI m_Entity;
  11. }
  12. #ifdef DIAG_DEVELOPER
  13. class ActionDebug : ActionInstantBase
  14. {
  15. override bool HasTarget()
  16. {
  17. return false;
  18. }
  19. override void CreateConditionComponents()
  20. {
  21. m_ConditionItem = new CCINone;
  22. m_ConditionTarget = new CCTNone;
  23. }
  24. override ActionData CreateActionData()
  25. {
  26. ActionDebugData action_data = new ActionDebugData;
  27. return action_data;
  28. }
  29. override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL)
  30. {
  31. ActionDebugData action_data_d;
  32. Class.CastTo( action_data_d, CreateActionData());
  33. action_data_d.m_Action = this;
  34. action_data_d.m_Player = player;
  35. if (!GetGame().IsDedicatedServer() )
  36. {
  37. ref Param2<EntityAI,int> ndata = Param2<EntityAI,int>.Cast( extra_data );
  38. action_data_d.m_Entity = ndata.param1;
  39. action_data_d.m_DebugActionID = ndata.param2;
  40. }
  41. ActionReciveData action_recive_data = player.GetActionManager().GetReciveData();
  42. if ( action_recive_data )
  43. {
  44. HandleReciveData(action_recive_data,action_data_d);
  45. }
  46. action_data = action_data_d;
  47. return true;
  48. }
  49. override void WriteToContext (ParamsWriteContext ctx, ActionData action_data)
  50. {
  51. ActionDebugData action_data_d;
  52. Class.CastTo( action_data_d, action_data );
  53. ctx.Write(action_data_d.m_Entity);
  54. ctx.Write(action_data_d.m_DebugActionID);
  55. }
  56. override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data )
  57. {
  58. if(!action_recive_data)
  59. {
  60. action_recive_data = new ActionDebugReciveData;
  61. }
  62. ActionDebugReciveData action_recive_data_d = ActionDebugReciveData.Cast(action_recive_data);
  63. EntityAI ent;
  64. int debugActionID;
  65. if(!ctx.Read(ent))
  66. return false;
  67. if(!ctx.Read(debugActionID))
  68. return false;
  69. action_recive_data_d.m_Entity = ent;
  70. action_recive_data_d.m_DebugActionID = debugActionID;
  71. return true;
  72. }
  73. override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
  74. {
  75. ActionDebugReciveData action_recive_data_d = ActionDebugReciveData.Cast(action_recive_data);
  76. ActionDebugData action_data_d = ActionDebugData.Cast(action_data);
  77. action_data_d.m_Entity = action_recive_data_d.m_Entity;
  78. action_data_d.m_DebugActionID = action_recive_data_d.m_DebugActionID;
  79. }
  80. override void Start(ActionData action_data)
  81. {
  82. ActionDebugData action_data_d;
  83. Class.CastTo( action_data_d, action_data );
  84. if (action_data_d.m_Entity && !action_data_d.m_Entity.IsSetForDeletion())
  85. action_data_d.m_Entity.OnAction(action_data_d.m_DebugActionID,action_data_d.m_Player,NULL);
  86. }
  87. override bool UseAcknowledgment()
  88. {
  89. return false;
  90. }
  91. };
  92. #endif