#pragma once #include "uiBase.h" #include "HeroCustomInfoParser.h" #define MAX_KIND_CHARACTER 5 class InterfaceManager; struct WEAPON_DISPLAY_TYPE { std::string name; DWORD itemcode; }; struct ARMOR_DISPLAY_TYPE { std::string name; DWORD itemcode[MAX_ARMORCODE]; }; #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE #define CREATE_CLASS_COUNT 8 #else #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID #define CREATE_CLASS_COUNT 7 #else //_NA_000000_20130812_NEW_CHARACTER_HELLROID #define CREATE_CLASS_COUNT 6 #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE class CreateCharCustomDialog : public uiBase { typedef std::vector WEAPON_DISPLAY_VECTOR_TYPE; typedef std::vector ARMOR_DISPLAY_VECTOR_TYPE; public: enum CONTROL_ID { NAME_EDIT, NAMECONFIRM_BTN, #ifdef _NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT CHECK_RACE1, CHECK_RACE2, CHECK_RACE3, CHECK_RACE4, CHECK_RACE5, CHECK_RACE6, #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID CHECK_RACE7, #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE CHECK_RACE8, #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE CHECK_CLASS_BERSERKER, CHECK_CLASS_DRAGON, CHECK_CLASS_SHADOW, CHECK_CLASS_VALKYRIE, CHECK_CLASS_ELEMENTALIST, CHECK_CLASS_MYSTIC, #ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID CHECK_CLASS_HELLROID, #endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE CHECK_CLASS_WITCHBLADE, #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE #else BERSERKER_CLASS_CHECK, DRAGON_CLASS_CHECK, SHADOW_CLASS_CHECK, VALKYRIE_CLASS_CHECK, ELEMENTALIST_CLASS_CHECK, #endif//_NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT HAIR_FORWARD_BTN, HAIR_BACKWARD_BTN, FACE_FORWARD_BTN, FACE_BACKWARD_BTN, HEIGHT_FORWARD_BTN, HEIGHT_BACKWARD_BTN, HAIR_TEXT, FACE_TEXT, HEIGHT_TEXT, WEAPON_FORWARD_BTN, WEAPON_BACKWARD_BTN, ARMOR_FORWARD_BTN, ARMOR_BACKWARD_BTN, WEAPON_TEXT, ARMOR_TEXT, #ifdef _NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT #else WEAR_BTN, INIT_BTN, COSTUME_TEXT, // ÇöÀç±îÁö ±â´ÉÀº ¾øÀ½ #endif//_NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT NAME_TEXT, // À̸§À» ÀÔ·ÂÇØ ÁÖ¼¼¿ä. MAX_CONTROL }; CreateCharCustomDialog( InterfaceManager * pUIman); virtual ~CreateCharCustomDialog( void ); virtual VOID Init( CDrawBase * pDrawBase ); virtual VOID Release(); virtual VOID MessageProc( SI_MESSAGE * pMessage ); virtual VOID OnUpdateSolarDialog(); void InitText(); virtual VOID OnShowWindow( BOOL val ); CControlWZ * getControl( POSTYPE AtPos ); POSTYPE getCtrlIDToPos( WzID wzId ); void SetClass( BYTE byClass ); void GetCharName( TCHAR *szName, BOOL bClear = FALSE ); void SetCharName( TCHAR * szName ); void UpdateVariationText(); BOOL LoadParts(DWORD object_key); BOOL InsertParts( void ); BOOL DeleteParts( void ); void first_setting_reset(); void first_setting_name_off() { is_first_setting_name_ = false; } void first_setting_hair_off() { is_first_setting_hair_ = false; } void first_setting_face_off() { is_first_setting_face_ = false; } void first_setting_height_off() { is_first_setting_height_ = false; } void first_setting_costume_off() { is_first_setting_costume_ = false; } void first_setting_weapon_off() { is_first_setting_weapon_ = false; } void first_setting_armor_off() { is_first_setting_armor_ = false; } bool is_first_setting_name() { return is_first_setting_name_; } bool is_first_setting_hair() { return is_first_setting_hair_; } bool is_first_setting_face() { return is_first_setting_face_; } bool is_first_setting_height() { return is_first_setting_height_; } bool is_first_setting_costume() { return is_first_setting_costume_; } bool is_first_setting_weapon() { return is_first_setting_weapon_; } bool is_first_setting_armor() { return is_first_setting_armor_; } BOOL InsertWeaponParts(eCHAR_TYPE select_class_type); #ifdef _NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT void OnClickClass(eCHAR_TYPE select_class); void OnClickRace(eCHAR_TYPE select_race); #else void RefreshClassTabState(); #endif//_NA_005003_20120612_NEW_CHARACTER_MYSTIC_FOR_CLIENT eCHAR_TYPE GetSelectedCharacterClass(); GenderType::Value GetSelectedCharacterGender(); void set_selected_character_object_key(DWORD val){ selected_character_object_key_ = val; } DWORD selected_character_object_key(){ return selected_character_object_key_; } #ifdef _NA_000000_20130114_RENEWER_UI struct stTARGETOVER_ { RECT image_source_; POSTYPE screen_position; bool is_over_mouse; }; void RenderMouseOver(); virtual VOID OnRenderSolarDialog(); #endif private: static WzID m_wzId[MAX_CONTROL]; CCtrlButtonCheckWZ * m_pExpainBtn; CCtrlButtonCheckWZ * m_pCustomBtn; CCtrlStaticWZ * m_pWeaponName; CCtrlStaticWZ * m_pArmorName; WEAPON_DISPLAY_VECTOR_TYPE m_WeaponItemVec; ARMOR_DISPLAY_VECTOR_TYPE m_ArmorItemVec; std::string m_ArmorName; int m_WeaponPos; int m_ArmorPos; DWORD m_BasicWeaponCode[MAX_KIND_CHARACTER]; //! óÀ½ º¸À϶§´Â ¼³Á¤ txt ¿¡ ¼³Á¤´ë½Å À̸§À» º¸¿©ÁÖ±â À§ÇÔ bool is_first_setting_name_; bool is_first_setting_hair_; bool is_first_setting_face_; bool is_first_setting_height_; bool is_first_setting_costume_; bool is_first_setting_weapon_; bool is_first_setting_armor_; DWORD selected_character_object_key_; POSTYPE mouse_over_pos_; CDrawBase* draw_base_; HANDLE background_texture_; // ¹è°æ ÅØ½ºÃ³ (init()¿¡¼­ ·ÎµåÇØÁØ´Ù.) //³»°¡ ¼±ÅÃÇÑ Å¬·¡½º eCHAR_TYPE is_now_char_Type_; #ifdef _NA_000000_20130114_RENEWER_UI stTARGETOVER_ render_over_iamge_[CREATE_CLASS_COUNT*2]; RECT isFillRectPos; HANDLE render_over_texture_; #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE HANDLE render_over_texture2_; // Common_bg02.tga À§Ä¡ºí·¹À̵å texture°¡ ¿©±â¿¡ ÀÖ½À´Ï´Ù. #endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE #endif };