// ClientMain.h: interface for the CClientMain class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_CLIENTMAIN_H__5547537B_9A6B_4077_96C4_62EAB9D06E84__INCLUDED_) #define AFX_CLIENTMAIN_H__5547537B_9A6B_4077_96C4_62EAB9D06E84__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "Network.h" #include "BaseGraphicsLayer.h" #include "SceneManager.h" #include "BaseGUI.h" #include "StringTable.h" #include "CommonInterface.h" #include "CharStatus.h" #include "CharacterControl.h" #include #define CLIENT_LOGO 0 #define CLIENT_MAIN 1 #define CLIENT_NATIONSELECT 2 #define CLIENT_CHARACTERSELECT 3 #define CLIENT_GAME 4 #define CLIENT_END 5 #define CLIENT_CHARACTERSELECTLOADING 6 #define CLIENT_GAMELOADING 7 #define CLIENT_ZONEMOVE 8 #define NATION_HUMAN 0 #define NATION_AKHAN 1 #define NATION_UNKNONE 2 #define CURSOR_NORMAL 0 #define CURSOR_CLICK 1 #define CURSOR_PICKUP 2 #define CURSOR_ATTACK 3 #define CURSOR_DIALOG 4 #define CURSOR_REPAIR 5 #define CURSOR_TOOLTIP 6 #define CURSOR_POPUP 7 #define WriteLog(s) WriteLogtoFile(s, __FILE__, __LINE__) using namespace std; class CClientMain { public: void ProjectPt( D3DXVECTOR3 *V, float *xScreen, float *yScreen ); void SetTipBroadTimer(long lTimer); void SetSkillCoolDown(unsigned short wSkill); void ResetTerrain(void); void PrintException(EXCEPTION_RECORD &SavedExceptRec, CONTEXT &SavedContext); void SetSkillClearCoolDown(void); void SetPotionCoolDown(void); void SetSkillCoolDown(unsigned short wGrade, unsigned char cEndCooldown); void WriteLogtoFile(const char *strLog, const char *strFileName, int nLine); void ProcessScreenshot(void); void RenderMain(void); static vector3 GetMonsterMinBox(unsigned long dwChrID); static vector3 GetMonsterMaxBox(unsigned long dwChrID); static void SetChangeWeapon(BOOL bChangeWeapon); static void SetAutoRun(BOOL bAutoRun); static BOOL GetAutoRun(void); static void CheckTargetforSkill(unsigned long &dwTargetID, BOOL bCheckLength); static void SetKillCounter(long lKillCounter); static BOOL CheckAttackable(void); unsigned long GetScreenPosChr(POINT &Point, int nMode, float fLength); DWORD m_dwSoundTickCount; ISoundObject *m_CheckSoundBuffer; bool CheckSoundBufferSpeedHack(); BOOL GetSpeedHack(void); static char *GetMotionSheet(char *strWeaponName, char *strShieldName, unsigned short wClass); static unsigned long GetWeaponType(char *strWeaponName); static char m_strSheet[MAX_PATH]; static BOOL CheckSkillStart(BOOL bDown); static BOOL CheckStillCasting(unsigned long &dwFunction); static void ChangeWeapon(void); BOOL GetChangeWeapon(void); void SetPickItem(CItemInstance *lpItem, BOOL bSound = TRUE); LPFieldInstance GetFieldObject(unsigned long dwFieldInstanceID); void DeleteFieldObject(unsigned long dwFieldInstanceID); void AddFieldObject(LPFieldObject lpObject); void SetDayTimer(void); BOOL CreateNationInterface(unsigned long dwNation); void EnterClient(void); void Destroy(void); HINSTANCE m_hInstance; HWND m_hWnd; char m_strClientPath[MAX_PATH]; char m_strIP[MAX_PATH]; unsigned long m_dwUserID, m_dwSessionID, m_dwChannelID, m_dwVersion, m_dwServerID; float m_fClientVersion; unsigned long m_dwClientMode; unsigned long m_dwClientNation; unsigned long m_nShowInterfaceTimerID; unsigned long m_nSceneManagerTimerID; // unsigned long m_nSystemUpdateTimerID; unsigned long m_nWeatherTimerID; unsigned long m_dwServerTime; unsigned long m_dwStartTime; unsigned long m_dwPartyInfoTimerID; unsigned long m_dwSpeedHackCheckTimerID; unsigned long m_dwUpdateAddressTimerID; unsigned long m_dwUpdateFlushTimerID; unsigned long m_dwCheckStatusTimerID; unsigned long m_dwPingTimerID; unsigned long m_dwNumScreenShot; unsigned long m_dwFunction; BOOL m_bShowInfo; BOOL m_bUpdateMove; BOOL m_bMovieVersion; unsigned long m_dwInternationalCode; BOOL m_bTestServerVersion; BOOL m_bAdminMode; //////////////////////////////////////////////////////////////////////////////////////////////////// // Game Data unsigned long m_dwStartQuickSlot; unsigned long m_dwMyChrID; // ³» ij¸¯ÅÍ ID vector3 m_vecStartPosition; CCharStatus m_csStatus; BOOL m_bMouseMode; BOOL m_bAutoRunMode; BOOL m_bSimpleMode; unsigned long m_dwTradingNpcID; unsigned long m_dwCursorTimer; BOOL m_bCursorToggle; BOOL m_bHardwareCursor; BOOL m_bShowCursor; BOOL m_bSystemConsoleShow; unsigned long m_dwKindCursor; unsigned long m_dwMessageBoxResult; char m_strRecentChatChrID[MAX_PATH]; char m_strWhisperChrID[MAX_PATH]; BOOL m_bInstanceWhisper; BOOL m_bTargetMouseMode; BOOL m_bChangeWeapon; BOOL m_bInterfaceAlreadyLoad; BOOL m_bStreetStallEnter; long m_lTipBroadCounterSeed; long m_lTipBroadCounter; vector m_lstTipBroad; long m_lKillCounter; unsigned long m_dwPresentZone; unsigned long m_dwNextZone; unsigned long m_dwRespawnResult; unsigned long m_dwPeaceModeResult; unsigned long m_dwPeaceMode; unsigned long m_dwAuthorizeResult; unsigned long m_dwAuthorizeCasterID; unsigned char m_cAuthorizeCmd; unsigned long m_dwFriendResult; char m_strFriendName[MAX_PATH]; bool m_bPeaceMode; RejectOption m_roOption; BOOL m_bPartyFind; BOOL m_bPartyPlayerFind; unsigned char m_cNumMember; unsigned char m_cNumParty; char m_cEliteNation; unsigned char m_cEliteLevel; MemberFindParty m_mfpMember[30]; PartyFindMember m_pfmParty[30]; unsigned long m_dwSelectMemberSlot; unsigned long m_dwSelectPartySlot; char m_strChatMessage[3][MAX_PATH]; // µµ¹è ¹æÁö CItemInstance *m_lpPickItem; list m_lstFieldItem; CEffScript *m_ClassEffectPtr; // ÀüÁ÷ ÀÌÆÑÆ® ½ºÅ©¸³Æ® pointer int m_ClassEffectAlpha; // ÀüÁ÷ ÀÌÆÑÆ®½Ã ³ª¿À´Â ±ÛÀÚÀÇ alpha value CEffScript *m_pEnemySelectEff; CEffScript *m_pEnemySkillSelectEff; CEffScript *m_pPlayerSelectEff; CEffScript *m_pPlayerSkillSelectEff; ISoundObject *m_lpBackGroundMusic; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Login CHAR_VIEW m_scLoginChar[3]; // ·Î±×ÀΠij¸¯ÅÍ Á¤º¸(3¸í) vector3 m_vecCharSelectPos[3]; unsigned long m_dwSelectChr; unsigned long m_dwClientState; BOOL m_bCreateChar; BOOL m_bDeleteChar; BOOL m_bSelectChar; BOOL m_bGameStartState[2]; //////////////////////////////////////////////////////////////////////////////////////////////////// CInitValue m_InitValue; // Init Value Class /Video,Adapter,Mode/ BaseGraphicsLayer m_BaseGraphicLayer; // BaseGraphics Layer Class CSceneManager *m_lpSceneManager; // SceneManager Class CNetwork m_Network; // Network CBaseGUI *m_lpInterface; CCommonInterface *m_lpCommonInterface; BOOL Init(HINSTANCE hInstance); void Update(void); void ProcessLogin(void); void Render(void); // void ResetTerrain(void); unsigned long ClientProc(HWND hWnd, unsigned int uMsg, WPARAM wParam, LPARAM lParam); void SetFocus(void) { ::SetFocus(m_hWnd); } CClientMain(void); ~CClientMain(void); }; extern CClientMain g_ClientMain; extern CCharacterControl g_CharacterData; #endif // !defined(AFX_CLIENTMAIN_H__5547537B_9A6B_4077_96C4_62EAB9D06E84__INCLUDED_)