123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- /*
- * This file is part of UAS2.
- *
- * UAS2 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * UAS2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with UASv1; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
- /**
- * @file Job.h
- */
-
- #ifndef __JOB_H
- #define __JOB_H
-
- #include <winsock2.h>
- #include <list>
-
- #include "Shared.h"
-
- #define JOB_NORMAL 0
- #define JOB_DISABLE 1
- #define JOB_REMOVE 2
-
- #define JOB_INFINITE -1
-
- typedef int (*MessageCall)( LPVOID a, LPVOID b );
-
- class cJob
- {
- public:
- cJob( )
- : m_fEnabled( FALSE )
- {
- }
- cJob( MessageCall func, LPVOID wp, LPVOID lp, int iFreq, int iNumReps, char *szName, int iJobID )
- : m_mcFunction( func ),
- m_wParam ( wp ),
- m_lParam ( lp ),
- m_iNumTimes ( iNumReps ),
- m_iJobID ( iJobID ),
- m_iCounter ( 0 ),
- m_iFrequency( iFreq ),
- m_fEnabled ( TRUE )
- {
- lstrcpy( m_szJobName, szName );
- }
-
- ~cJob( )
- {
- }
-
- int Tick ( );
-
- inline LPVOID GetWParam ( ) { return m_wParam; }
- inline LPVOID GetLParam ( ) { return m_lParam; }
- inline void SetWParam ( LPVOID wp ) { m_wParam = wp; }
- inline void SetLParam ( LPVOID lp ) { m_lParam = lp; }
- inline int GetJobID ( ) { return m_iJobID; }
- inline char *GetName ( ) { return m_szJobName; }
- inline void SetFrequency( int iFreq ) { m_iFrequency = iFreq; }
- inline int GetFrequency( ) { return m_iFrequency; }
- inline void Enable ( BOOL fState ) { m_fEnabled = fState; }
-
- private:
- MessageCall m_mcFunction;
- LPVOID m_wParam;
- LPVOID m_lParam;
- int m_iJobID;
- int m_iFrequency;
- int m_iNumTimes;
- int m_iCounter;
- char m_szJobName[100];
- BOOL m_fEnabled;
- };
-
-
- class cJobPool
- {
- public:
- cJobPool( )
- : m_iJobID( 0 )
- {
- NextTickTime = clock()/(CLOCKS_PER_SEC/TICKS_PER_SEC);
- }
-
- ~cJobPool( )
- {
- while ( !m_lstJobList.empty( ) )
- {
- SAFEDELETE( m_lstJobList.front( ) )
- m_lstJobList.pop_front( );
- }
- }
-
- void Tick ( );
- int CreateJob ( MessageCall mc, LPVOID wParam, LPVOID lParam, char *szName, int iFreq, int iNumTimes );
- cJob *GetJobByID ( int iID );
- int GetJobIDByName ( char *szName );
- void RemoveJob ( int iID );
-
- static clock_t longtime;
- static clock_t NextTickTime;
-
- private:
- int m_iJobID;
- std::list< cJob * > m_lstJobList;
- };
-
- class cWarJobParam
- {
- friend class cAvatar;
- public:
- cWarJobParam()
- {
- }
-
- cWarJobParam( DWORD SpellID, DWORD CasterGUID, DWORD TargetGUID, cLocation CastLocation, DWORD SpellSequence)
- : m_dwSpellID ( SpellID ),
- m_dwCasterGUID ( CasterGUID ),
- m_dwTargetGUID ( TargetGUID ),
- m_CastLocation ( CastLocation ),
- m_dwSpellSequence ( SpellSequence )
- {
- }
-
- ~cWarJobParam()
- {
- }
-
- inline DWORD GetSpellID ( ) { return m_dwSpellID; }
- inline DWORD GetCasterGUID ( ) { return m_dwCasterGUID; }
- inline DWORD GetTargetGUID ( ) { return m_dwTargetGUID; }
- inline cLocation GetCastLocation ( ) { return m_CastLocation; }
- inline DWORD GetSpellSequence ( ) { return m_dwSpellSequence; }
-
- private:
- DWORD m_dwSpellID;
- DWORD m_dwCasterGUID;
- DWORD m_dwTargetGUID;
- cLocation m_CastLocation;
- DWORD m_dwSpellSequence;
-
- };
-
- class cSpellMoveParam
- {
- public:
- cSpellMoveParam()
- {
- }
-
- cSpellMoveParam( DWORD CasterGUID, cLocation CastLocation, DWORD WarSpellGUID )
- : m_dwCasterGUID ( CasterGUID ),
- m_CastLocation ( CastLocation ),
- m_dwWarSpellGUID ( WarSpellGUID )
- {
- }
-
- ~cSpellMoveParam()
- {
- }
-
- inline DWORD GetCasterGUID ( ) { return m_dwCasterGUID; }
- inline cLocation GetCastLocation ( ) { return m_CastLocation; }
- inline DWORD GetWarSpellGUID ( ) { return m_dwWarSpellGUID; }
-
- private:
- DWORD m_dwCasterGUID;
- cLocation m_CastLocation;
- DWORD m_dwWarSpellGUID;
-
- };
-
- class cMonsterDeathParam
- {
- public:
- cMonsterDeathParam()
- {
- }
-
- cMonsterDeathParam( DWORD MonsterGUID, DWORD MonsterModelID, DWORD ClientGUID )
- : m_dwMonsterGUID ( MonsterGUID ),
- m_dwMonsterModelID ( MonsterModelID ),
- m_dwClientGUID ( ClientGUID )
- {
- }
-
- ~cMonsterDeathParam()
- {
- }
-
- inline DWORD GetMonsterGUID ( ) { return m_dwMonsterGUID; }
- inline DWORD GetMonsterModelID ( ) { return m_dwMonsterModelID;}
- inline DWORD GetClientGUID ( ) { return m_dwClientGUID; }
-
- private:
- DWORD m_dwMonsterGUID;
- DWORD m_dwMonsterModelID;
- DWORD m_dwClientGUID;
-
- };
-
-
- class cAvatarGenericAnimation
- {
- public:
- cAvatarGenericAnimation()
- {
- }
-
- ~cAvatarGenericAnimation()
- {
- }
- };
-
- #endif // #ifndef __JOB_H
|