/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2008.01.10 * ³» ¿ë : ¸ó½ºÅÍ ´ÙÀ̾ó·Î±× * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Button.h" #include "NumericEdit.h" #include "CheckListCtrl.h" #include "Resource.h" class cMonsterInfo; class cMonsterGroup; class cMonsterSceneNode; class cPattern; /// ¸ó½ºÅÍ ´ÙÀ̾ó·Î±× class cMonsterDialog : public CDialog { DECLARE_DYNAMIC(cMonsterDialog) public: cMonsterDialog(); ~cMonsterDialog(); /// void Clear(); /// void SelectGroup( cMonsterGroup* group ); void SelectNode( cMonsterSceneNode* node ); /// µ¥ÀÌŸ °»½Å void UpdateCombo( const tMap& infoMap ); void UpdateGroupList( const tMap& groupMap ); void UpdateList( const tList& nodeList ); void UpdateNodeTransform( cMonsterSceneNode* node ); void UpdateFamilyList( tMap* pFamilyMap ); /// Ȱ¼ºÈ­ ¿©ºÎ void SetGroupEnabled( bool enabled ); void SetEnabled( bool enabled ); /// À§Ä¡ NiPoint3 GetTranslate() const; /// ȸÀü float GetRotateAngle() const; void UpdatePatternCombo( tPointerHashMap* infoMap ); protected: virtual void DoDataExchange( CDataExchange* dx ); BOOL OnInitDialog(); protected: afx_msg void OnClickedSave(); afx_msg void OnClickedGroupCreate(); afx_msg void OnClickedGroupDelete(); afx_msg void OnSelchangeGroup(); afx_msg void OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnCheckedGroupFirstRegen(); afx_msg void OnCheckedChannelCheck(); afx_msg void OnClickedCreate(); afx_msg void OnClickedChange(); afx_msg void OnClickedDelete(); afx_msg void OnClickedFamilyNumNew(); afx_msg void OnClickedFamilyNumChange(); afx_msg void OnSelchangeMonsterPatternIndex(); afx_msg void OnSelchangeNode(); afx_msg LRESULT OnChangedNumber( WPARAM id, LPARAM ); DECLARE_MESSAGE_MAP() private: cButton mSaveButton; /// ¸ó½ºÅÍ ±×·ì cNumericEdit mGroupIndexNum; cNumericEdit mMapGroupIndex; cButton mGroupCreateButton; cButton mGroupDeleteButton; cNumericEdit mGroupRegenPercentNum; cNumericEdit mGroupRegenRangeNum; cNumericEdit mGroupRegenWaitTimeNum; cMonsterGroup* mSelMonsterGroup; /// ¸ó½ºÅÍ cButton mCreateButton; cButton mChangeButton; cButton mDeleteButton; cNumericEdit mTxNum; cNumericEdit mTyNum; cNumericEdit mRzNum; cNumericEdit mRegenWaitTimeNum; cNumericEdit mRegenLifeTimeNum; /// CCheckListCtrl mNextRegenGroupList; bool mInitedNextRegenGroupList; /// µ¿Á· cNumericEdit mFamilyNum; cButton mFamilyNewButton; cButton mFamilyChangeButton; cMonsterSceneNode* mSelMonster; }; inline void cMonsterDialog::SetGroupEnabled( bool enabled ) { if( enabled ) { mMapGroupIndex.SetEnabled( true ); mGroupRegenPercentNum.SetEnabled( true ); mGroupRegenRangeNum.SetEnabled( true ); mGroupRegenWaitTimeNum.SetEnabled( true ); } else { mMapGroupIndex.SetEnabled( false ); mGroupRegenPercentNum.SetEnabled( false ); mGroupRegenRangeNum.SetEnabled( false ); mGroupRegenWaitTimeNum.SetEnabled( false ); } } inline void cMonsterDialog::SetEnabled( bool enabled ) { mTxNum.SetEnabled( enabled ); mTyNum.SetEnabled( enabled ); mRzNum.SetEnabled( enabled ); mRegenWaitTimeNum.SetEnabled( enabled ); mRegenLifeTimeNum.SetEnabled( enabled ); mFamilyNum.SetEnabled( enabled ); mFamilyNewButton.EnableWindow( enabled ); mFamilyChangeButton.EnableWindow( enabled ); CListBox* list = (CListBox*)GetDlgItem(IDC_LIST_MONSTER_FAMILY); list->EnableWindow( enabled ); if( enabled == false ) { GetDlgItem(IDC_EDIT_MONSTER_INDEX)->SetWindowText( "" ); GetDlgItem(IDC_EDIT_MONSTER_NAME)->SetWindowText( "" ); GetDlgItem(IDC_EDIT_MONSTER_MODEL)->SetWindowText( "" ); } mNextRegenGroupList.EnableWindow( enabled ); } inline NiPoint3 cMonsterDialog::GetTranslate() const { float x = mTxNum.GetValue() * 100; float y = mTyNum.GetValue() * 100; return NiPoint3( x, y, 0.0f ); } inline float cMonsterDialog::GetRotateAngle() const { return D3DXToRadian( mRzNum.GetValue() ); }