Clone of UAS2 @ https://github.com/drudgedance/uas2

Job.h 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /*
  2. * This file is part of UAS2.
  3. *
  4. * UAS2 is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * UAS2 is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. * You should have received a copy of the GNU General Public License
  14. * along with UASv1; if not, write to the Free Software
  15. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  16. */
  17. /**
  18. * @file Job.h
  19. */
  20. #ifndef __JOB_H
  21. #define __JOB_H
  22. #include <winsock2.h>
  23. #include <list>
  24. #include "Shared.h"
  25. #define JOB_NORMAL 0
  26. #define JOB_DISABLE 1
  27. #define JOB_REMOVE 2
  28. #define JOB_INFINITE -1
  29. typedef int (*MessageCall)( LPVOID a, LPVOID b );
  30. class cJob
  31. {
  32. public:
  33. cJob( )
  34. : m_fEnabled( FALSE )
  35. {
  36. }
  37. cJob( MessageCall func, LPVOID wp, LPVOID lp, int iFreq, int iNumReps, char *szName, int iJobID )
  38. : m_mcFunction( func ),
  39. m_wParam ( wp ),
  40. m_lParam ( lp ),
  41. m_iNumTimes ( iNumReps ),
  42. m_iJobID ( iJobID ),
  43. m_iCounter ( 0 ),
  44. m_iFrequency( iFreq ),
  45. m_fEnabled ( TRUE )
  46. {
  47. lstrcpy( m_szJobName, szName );
  48. }
  49. ~cJob( )
  50. {
  51. }
  52. int Tick ( );
  53. inline LPVOID GetWParam ( ) { return m_wParam; }
  54. inline LPVOID GetLParam ( ) { return m_lParam; }
  55. inline void SetWParam ( LPVOID wp ) { m_wParam = wp; }
  56. inline void SetLParam ( LPVOID lp ) { m_lParam = lp; }
  57. inline int GetJobID ( ) { return m_iJobID; }
  58. inline char *GetName ( ) { return m_szJobName; }
  59. inline void SetFrequency( int iFreq ) { m_iFrequency = iFreq; }
  60. inline int GetFrequency( ) { return m_iFrequency; }
  61. inline void Enable ( BOOL fState ) { m_fEnabled = fState; }
  62. private:
  63. MessageCall m_mcFunction;
  64. LPVOID m_wParam;
  65. LPVOID m_lParam;
  66. int m_iJobID;
  67. int m_iFrequency;
  68. int m_iNumTimes;
  69. int m_iCounter;
  70. char m_szJobName[100];
  71. BOOL m_fEnabled;
  72. };
  73. class cJobPool
  74. {
  75. public:
  76. cJobPool( )
  77. : m_iJobID( 0 )
  78. {
  79. NextTickTime = clock()/(CLOCKS_PER_SEC/TICKS_PER_SEC);
  80. }
  81. ~cJobPool( )
  82. {
  83. while ( !m_lstJobList.empty( ) )
  84. {
  85. SAFEDELETE( m_lstJobList.front( ) )
  86. m_lstJobList.pop_front( );
  87. }
  88. }
  89. void Tick ( );
  90. int CreateJob ( MessageCall mc, LPVOID wParam, LPVOID lParam, char *szName, int iFreq, int iNumTimes );
  91. cJob *GetJobByID ( int iID );
  92. int GetJobIDByName ( char *szName );
  93. void RemoveJob ( int iID );
  94. static clock_t longtime;
  95. static clock_t NextTickTime;
  96. private:
  97. int m_iJobID;
  98. std::list< cJob * > m_lstJobList;
  99. };
  100. class cWarJobParam
  101. {
  102. friend class cAvatar;
  103. public:
  104. cWarJobParam()
  105. {
  106. }
  107. cWarJobParam( DWORD SpellID, DWORD CasterGUID, DWORD TargetGUID, cLocation CastLocation, DWORD SpellSequence)
  108. : m_dwSpellID ( SpellID ),
  109. m_dwCasterGUID ( CasterGUID ),
  110. m_dwTargetGUID ( TargetGUID ),
  111. m_CastLocation ( CastLocation ),
  112. m_dwSpellSequence ( SpellSequence )
  113. {
  114. }
  115. ~cWarJobParam()
  116. {
  117. }
  118. inline DWORD GetSpellID ( ) { return m_dwSpellID; }
  119. inline DWORD GetCasterGUID ( ) { return m_dwCasterGUID; }
  120. inline DWORD GetTargetGUID ( ) { return m_dwTargetGUID; }
  121. inline cLocation GetCastLocation ( ) { return m_CastLocation; }
  122. inline DWORD GetSpellSequence ( ) { return m_dwSpellSequence; }
  123. private:
  124. DWORD m_dwSpellID;
  125. DWORD m_dwCasterGUID;
  126. DWORD m_dwTargetGUID;
  127. cLocation m_CastLocation;
  128. DWORD m_dwSpellSequence;
  129. };
  130. class cSpellMoveParam
  131. {
  132. public:
  133. cSpellMoveParam()
  134. {
  135. }
  136. cSpellMoveParam( DWORD CasterGUID, cLocation CastLocation, DWORD WarSpellGUID )
  137. : m_dwCasterGUID ( CasterGUID ),
  138. m_CastLocation ( CastLocation ),
  139. m_dwWarSpellGUID ( WarSpellGUID )
  140. {
  141. }
  142. ~cSpellMoveParam()
  143. {
  144. }
  145. inline DWORD GetCasterGUID ( ) { return m_dwCasterGUID; }
  146. inline cLocation GetCastLocation ( ) { return m_CastLocation; }
  147. inline DWORD GetWarSpellGUID ( ) { return m_dwWarSpellGUID; }
  148. private:
  149. DWORD m_dwCasterGUID;
  150. cLocation m_CastLocation;
  151. DWORD m_dwWarSpellGUID;
  152. };
  153. class cMonsterDeathParam
  154. {
  155. public:
  156. cMonsterDeathParam()
  157. {
  158. }
  159. cMonsterDeathParam( DWORD MonsterGUID, DWORD MonsterModelID, DWORD ClientGUID )
  160. : m_dwMonsterGUID ( MonsterGUID ),
  161. m_dwMonsterModelID ( MonsterModelID ),
  162. m_dwClientGUID ( ClientGUID )
  163. {
  164. }
  165. ~cMonsterDeathParam()
  166. {
  167. }
  168. inline DWORD GetMonsterGUID ( ) { return m_dwMonsterGUID; }
  169. inline DWORD GetMonsterModelID ( ) { return m_dwMonsterModelID;}
  170. inline DWORD GetClientGUID ( ) { return m_dwClientGUID; }
  171. private:
  172. DWORD m_dwMonsterGUID;
  173. DWORD m_dwMonsterModelID;
  174. DWORD m_dwClientGUID;
  175. };
  176. class cAvatarGenericAnimation
  177. {
  178. public:
  179. cAvatarGenericAnimation()
  180. {
  181. }
  182. ~cAvatarGenericAnimation()
  183. {
  184. }
  185. };
  186. #endif // #ifndef __JOB_H