// Arrangement2Dlg.h : Çì´õ ÆÄÀÏ // #pragma once #include "afxwin.h" #include #include using namespace std; // CArrangement2Dlg ´ëÈ­ »óÀÚ class CArrangement2Dlg : public CDialog { // »ý¼º public: CArrangement2Dlg(CWnd* pParent = NULL); // Ç¥ÁØ »ý¼ºÀÚ // ´ëÈ­ »óÀÚ µ¥ÀÌÅÍ enum { IDD = IDD_ARRANGEMENT2_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Áö¿ø // ±¸Çö protected: HICON m_hIcon; // ¸Þ½ÃÁö ¸Ê ÇÔ¼ö¸¦ »ý¼ºÇß½À´Ï´Ù. virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnZoom(UINT nID); afx_msg void OnUpdateZoom(CCmdUI *pCmdUI); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnBnClickedCreatescript(); afx_msg void OnBnClickedVisualkid(); afx_msg void OnCbnSelchangeKidcombo(); afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); afx_msg void OnZone(UINT nID); afx_msg void OnUpdateZone(CCmdUI* pCmdUI); afx_msg void OnBnClickedVisualpid(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnAppExit(); afx_msg void OnCbnSelchangePidcombo(); protected: virtual BOOL DestroyWindow(); public: int m_nPositionX; int m_nPositionY; int m_nPositionZ; int m_nProcess; int m_nPID; BOOL m_bVisualKID; BOOL m_bVisualPID; BOOL m_bVisualLevel; CString m_strName; CString m_strLevel; CString m_strClass; int m_nNumOfKID; int m_nNumOfWorld; CComboBox m_ctrKIDCombo; BOOL m_bErase; short m_wRespawnArea; CComboBox m_ctrPIDCombo; int m_nPartyMemNum; // ------------------------------------------------------------------ // »ç¿ëÀÚ Á¤ÀÇ private: enum _Const { MAP_PAGE_X = 1100, MAP_PAGE_Z = 900, SECTOR_SIZE = 315, MAX_NUM = 0xffff, ID_LENGTH = 8, MONSTER_BIT = 0x80000000, MONSTER_PARTY_BIT = 0x80000000, MAX_STRING_LENGTH = 32, MAX_PARTY_MEMBER_NUM = 10 }; enum Process { ARRANGEMENT = 0, ERASE, PARTY }; enum MovingPattern { PATTERN_AREA = 0, PATTERN_FIX, PATTERN_ROUTE, PATTERN_NONAREA }; enum RespawnArea { DEFAULT_DISTANCE = 32 }; enum SpeacialKindID { // ¼Òȯ¼ö SUMMON_KINDLING = 3500, SUMMON_FLAMEWALKER = 3506, SUMMON_BURNINGSHIELD = 3513, SUMMON_FIREWING = 3520, SUMMON_DEATHBURN = 3527, // ¸í¿¹ÀÇ ¼®»ó STATUE_NEUTRALITY = 4001, STATUE_HUMAN_LOADING = 4002, STATUE_HUMAN_COMPLETE = 4003, STATUE_AKHAN_LOADING = 4004, STATUE_AKHAN_COMPLETE = 4005, // BattleGround Server ¸í¿¹ÀÇ ¼®»ó BG_STATUE_NEUTRALITY = 4006, BG_STATUE_HUMAN_LOADING = 4007, BG_STATUE_HUMAN_COMPLETE = 4008, BG_STATUE_AKHAN_LOADING = 4009, BG_STATUE_AKHAN_COMPLETE = 4010, // ´ÙÅ© Ä«³ª¹ø ¼®»ó POWER_STATUE_NEUTRALITY = 4011, // ÈûÀÇ ¼®»ó POWER_STATUE_HUMAN_LOADING = 4012, POWER_STATUE_HUMAN_COMPLETE = 4013, POWER_STATUE_AKHAN_LOADING = 4014, POWER_STATUE_AKHAN_COMPLETE = 4015, INT_STATUE_NEUTRALITY = 4016, // Áö´ÉÀÇ ¼®»ó INT_STATUE_HUMAN_LOADING = 4017, INT_STATUE_HUMAN_COMPLETE = 4018, INT_STATUE_AKHAN_LOADING = 4019, INT_STATUE_AKHAN_COMPLETE = 4020, EXP_STATUE_NEUTRALITY = 4021, // °æÇèÀÇ ¼®»ó EXP_STATUE_HUMAN_LOADING = 4022, EXP_STATUE_HUMAN_COMPLETE = 4023, EXP_STATUE_AKHAN_LOADING = 4024, EXP_STATUE_AKHAN_COMPLETE = 4025, WEALTH_STATUE_NEUTRALITY = 4026, // ºÎÀÇ ¼®»ó WEALTH_STATUE_HUMAN_LOADING = 4027, WEALTH_STATUE_HUMAN_COMPLETE = 4028, WEALTH_STATUE_AKHAN_LOADING = 4029, WEALTH_STATUE_AKHAN_COMPLETE = 4030, LIFE_EXTRACT_NEUTRALITY = 4031, // »ý¸í ÃàÃâ±â LIFE_EXTRACT_HUMAN_LOADING = 4032, LIFE_EXTRACT_HUMAN_COMPLETE = 4033, LIFE_EXTRACT_AKHAN_LOADING = 4034, LIFE_EXTRACT_AKHAN_COMPLETE = 4035, // ¼®»ó KID (CreatureStructure.h ¿¡µµ Á¤ÀǵǾî ÀÖÀ½) MIN_STATUE_KID = 4001, MAX_STATUE_KID = 4035 }; struct Monster { unsigned long m_dwCID; int m_nKID; int m_nPID; int m_nLevel; BOOL m_bScout; int m_nMovingPattern; short m_wRespawnArea; int m_nPosX; int m_nPosY; int m_nPosZ; Monster() : m_dwCID(0), m_nKID(0), m_nPID(0), m_bScout(FALSE), m_nMovingPattern(0), m_nPosX(0), m_nPosY(0), m_nPosZ(0), m_wRespawnArea(DEFAULT_DISTANCE), m_nLevel(0) { } }; typedef struct _MonsterInfo { int m_nKID; char m_strName[MAX_STRING_LENGTH]; char m_strLevel[MAX_STRING_LENGTH]; char m_strClass[MAX_STRING_LENGTH]; } MonsterInfo, *LPMonsterInfo; int m_nMapStartX; int m_nMapStartZ; UINT_PTR m_nTimer; bool m_bBlink; // ¼®»ó ¸ó½ºÅÍ ID À¯Áö¸¦ À§ÇØ struct sStatueKey { sStatueKey(unsigned short wPosX, unsigned short wPosZ) { m_dwValue = static_cast( (wPosX << 16) | wPosZ ) ; } operator unsigned long() const { return m_dwValue ; } unsigned long m_dwValue ; } ; // ¸ó½ºÅÍ Á¤º¸ÀÇ ¸®½ºÆ® typedef vector MonsterList; typedef std::map MonsterInfoList; typedef std::map StatueIDMap; // MonsterList m_lstMonster; MonsterInfoList m_lstMonsterInfo; StatueIDMap m_mapStatueID; // ¸ÊÀ̹ÌÁö Å©±â unsigned long m_dwPageX; unsigned long m_dwPageZ; // ´ÙÀ̾ó·Î±× °ú°Å¿Í ÇöÁ¦ Å©±â ¹× Â÷ÀÌ int m_nPrevX; int m_nPrevY; int m_nNextX; int m_nNextY; int m_nGapX; int m_nGapY; // ´ÙÀ̾ó·Î±× À§Ä¡ RECT m_rectWindow; // ÀÌ¹Ì ±×·ÁÁø ³à¼®À» À̵¿½Ã ÂüÁ¶ÇÏ´Â º¯¼ö bool m_bDragObject; int m_DragObjectIndex; CPoint DragScreenStartPoint; bool m_bDragScreen; // ÁÜ UINT m_nSelectedZoom; float m_fMagnification; // ¼±ÅõÈ(·ÎµùµÈ Á¸) UINT m_nLoadedZone; // À̹ÌÁö BYTE* m_imageData; SIZE m_imageDims; int m_imageChannels; BITMAPINFO m_bmi; BYTE* m_bmp; void CalculateNumOfKID(int nKID); void CalculateNumOfPID(); void ClearBitmap(); void ClearData(); BOOL OpenJPGFile(LPCTSTR lpszPathName); void RGBA_FPX_to_BGRA(BYTE* data,int width,int height); void InitialUpdate(); void LoadScript(void); void DrawOutLineText(Graphics& graphics, Font& font, PointF pointF, wchar_t* strText); BOOL IsStatue(unsigned short wKID) CONST; template void SetObjectPos(T* pObject); public: afx_msg void OnSize(UINT nType, int cx, int cy); };