// DlgCharacterCreate.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "DlgCharacterCreate.h" #include "MainFrm.h" #include "WorldCreatorView.h" #include "ShaderScene.h" #include "Shader_BumpSpec.h" #include "Shader_IndexHeader.h" #include "RenderOption.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgCharacterCreate dialog CDlgCharacterCreate::CDlgCharacterCreate(CWnd* pParent /*=NULL*/) : CDialog(CDlgCharacterCreate::IDD, pParent) { //{{AFX_DATA_INIT(CDlgCharacterCreate) m_MonName = _T(""); m_MonEsf = _T(""); m_Sex = 0; m_nFocusCharacter = 0; m_AkanValue = FALSE; m_strNormalTex = _T(""); m_Monster = NULL; m_fBumpScale = 1.0f; //}}AFX_DATA_INIT } void CDlgCharacterCreate::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgCharacterCreate) DDX_Control(pDX, IDC_LIST_TEMP, m_TempList); DDX_Control(pDX, IDC_COMBO_SIMPLESELECT, m_SimpleSelectList); DDX_Control(pDX, IDC_COMBOPIVOT, m_MonPivot); DDX_Control(pDX, IDC_COMBO_WEAPONTYPE, m_WeaponType); DDX_Control(pDX, IDC_COMBO_WEAPON, m_WeaponList); DDX_Control(pDX, IDC_COMBO_SHIELD, m_ShieldList); DDX_Control(pDX, IDC_COMBO_HEAD, m_HeadList); DDX_Control(pDX, IDC_COMBO_HAND, m_HandList); DDX_Control(pDX, IDC_COMBO_FOOT, m_FootList); DDX_Control(pDX, IDC_COMBO_BODY2, m_Body2List); DDX_Control(pDX, IDC_COMBO_BODY1, m_Body1List); DDX_Control(pDX, IDC_COMBO_BODY0, m_Body0List); DDX_Text(pDX, IDC_MON_NAME, m_MonName); DDX_Text(pDX, IDC_MONESFNAME, m_MonEsf); DDX_Radio(pDX, IDC_RADIO1, m_Sex); DDX_Text(pDX, IDC_EDIT_FOCUS, m_nFocusCharacter); DDX_Check(pDX, IDC_AKAN, m_AkanValue); DDX_Text(pDX, IDC_NORMALTEX, m_strNormalTex); DDX_Text(pDX, IDC_EDIT1, m_fBumpScale); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgCharacterCreate, CDialog) //{{AFX_MSG_MAP(CDlgCharacterCreate) ON_BN_CLICKED(IDC_BUTTON_RANDOM, OnButtonRandom) ON_BN_CLICKED(IDC_MONSEARCH, OnMonsearch) ON_BN_CLICKED(IDC_MONADDEFFECT, OnMonaddeffect) ON_BN_CLICKED(IDC_MON_ESFSEARCH, OnMonEsfsearch) ON_EN_CHANGE(IDC_EDIT_FOCUS, OnChangeEditFocus) ON_CBN_EDITCHANGE(IDC_COMBO_SIMPLESELECT, OnEditchangeComboSimpleselect) ON_CBN_SELCHANGE(IDC_COMBO_SIMPLESELECT, OnSelchangeComboSimpleselect) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_NORMALINPUT, OnNormalinput) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_RELOAD, OnReload) ON_BN_CLICKED(IDC_AKAN, OnAkan) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgCharacterCreate message handlers BOOL CDlgCharacterCreate::OnInitDialog() { CDialog::OnInitDialog(); char strNode[256]; // TODO: Add extra initialization here char path[256]; GetCurrentDirectory(256,path); sprintf(path,"%s\\ChrData.txt",path); FILE *fp=fopen(path,"r"); int nReadNode=0; while(fscanf(fp,"%s",strNode)==1) { if(strcmp(strNode,"//HEAD")==0) { nReadNode=0; continue; } if(strcmp(strNode,"//BODY")==0) { nReadNode=1; continue; } if(strcmp(strNode,"//HAND")==0) { nReadNode=2; continue; } if(strcmp(strNode,"//FOOT")==0) { nReadNode=3; continue; } if(strcmp(strNode,"//WEAPON")==0) { nReadNode=4; continue; } if(strcmp(strNode,"//SHIELD")==0) { nReadNode=5; continue; } switch(nReadNode) { case 0: m_HeadList.AddString(strNode); break; case 1: m_Body0List.AddString(strNode); m_Body1List.AddString(strNode); m_Body2List.AddString(strNode); break; case 2: m_HandList.AddString(strNode); break; case 3: m_FootList.AddString(strNode); break; case 4: m_WeaponList.AddString(strNode); break; case 5: m_ShieldList.AddString(strNode); break; } } fclose(fp); m_HeadList.SetCurSel(m_HeadList.FindString(0,"WINGED_HELM")); m_Body0List.SetCurSel(m_Body0List.FindString(0,"COMPOSITE_MAIL")); m_HandList.SetCurSel(m_HandList.FindString(0,"COMPOSITE_GAUNTLET")); m_FootList.SetCurSel(m_FootList.FindString(0,"COMPOSITE_BOOTS")); m_WeaponList.SetCurSel(m_WeaponList.FindString(0,"BASTARD_SWORD")); m_ShieldList.SetCurSel(m_ShieldList.FindString(0,"LARGE_SHIELD")); /* m_HeadList.SetCurSel(m_HeadList.FindString(0,"MDWING")); m_Body0List.SetCurSel(m_Body0List.FindString(0,"ARCHON_HAUBERK")); m_HandList.SetCurSel(m_HandList.FindString(0,"FUR_LEATHER_GLOVE")); m_FootList.SetCurSel(m_FootList.FindString(0,"FUR_LEATHER_BOOTS")); m_WeaponList.SetCurSel(m_WeaponList.FindString(0,"BASTARD_SWORD")); m_ShieldList.SetCurSel(m_ShieldList.FindString(0,"LARGE_SHIELD")); */ m_HeadList.SetCurSel(m_HeadList.FindString(0,"DRAGOON_HELM")); m_Body0List.SetCurSel(m_Body0List.FindString(0,"HARD_LEATHER_SHIRTS")); m_Body1List.SetCurSel(m_Body1List.FindString(0,"BLACK_DRAGONS_TUNIC")); m_Body2List.SetCurSel(m_Body2List.FindString(0,"SACRED_ARMOR")); m_HandList.SetCurSel(m_HandList.FindString(0,"MITTEN_GAUNTLET")); m_FootList.SetCurSel(m_FootList.FindString(0,"COMPOSITE_BOOTS")); m_WeaponList.SetCurSel(m_WeaponList.FindString(0,"CLAYMORE")); m_ShieldList.SetCurSel(m_ShieldList.FindString(0,"HERALDIC_SHIELD")); m_WeaponType.AddString("NO_WEAPON"); m_WeaponType.AddString("NO_WEAPON_B"); m_WeaponType.AddString("WEAPON_ONE_HAND"); m_WeaponType.AddString("WEAPON_TWO_HAND"); m_WeaponType.AddString("WEAPON_BLUNT"); m_WeaponType.AddString("WEAPON_BOW"); m_WeaponType.AddString("WEAPON_DAGGER"); m_WeaponType.AddString("WEAPON_CROSSBOW"); m_WeaponType.AddString("CLASS_ROGUE"); m_WeaponType.AddString("--¾ÆÄ­¿ë--"); m_WeaponType.AddString("NO_WEAPON"); m_WeaponType.AddString("NO_WEAPON_B"); m_WeaponType.AddString("WEAPON_ONE_HAND"); m_WeaponType.AddString("WEAPON_CLAW"); m_WeaponType.AddString("WEAPON_SICKLE"); m_WeaponType.SetCurSel(m_WeaponType.FindString(0,"WEAPON_ONE_HAND")); GetCurrentDirectory(256,path); sprintf(path,"%s\\ChrDataShape.txt",path); fp=fopen(path,"r"); int n=0; while(fscanf(fp,"%s",strNode)==1) { n++; CString strTemp; strTemp.Format("ij¸¯ÅÍ%d",n); m_SimpleSelectList.AddString(strTemp); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); fscanf(fp,"%s",strNode); m_TempList.AddString(strNode); } fclose(fp); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgCharacterCreate::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); matrix *matPos=av->m_BaseGraphicLayer.m_ViewCamera.GetMatPosition(); vector3 vecViewPos=matPos->GetLoc(); //CZ3DGeneralChrModel *pChrmodel=; char strWeaponType[256]; char strShape[15][256]; for(int cShape=0;cShape<15;cShape++) { strcpy(strShape[cShape],""); } CString strNode; m_HeadList.GetWindowText(strNode); strcpy(strShape[0],strNode.LockBuffer()); m_Body0List.GetWindowText(strNode); strcpy(strShape[1],strNode.GetBuffer(0)); m_Body1List.GetWindowText(strNode); strcpy(strShape[2],strNode.GetBuffer(0)); m_Body2List.GetWindowText(strNode); strcpy(strShape[3],strNode.GetBuffer(0)); m_HandList.GetWindowText(strNode); strcpy(strShape[4],strNode.GetBuffer(0)); m_FootList.GetWindowText(strNode); strcpy(strShape[5],strNode.GetBuffer(0)); m_WeaponList.GetWindowText(strNode); strcpy(strShape[11],strNode.GetBuffer(0)); m_ShieldList.GetWindowText(strNode); strcpy(strShape[9],strNode.GetBuffer(0)); //m_WeaponType.GetWindowText(strNode); //strcpy(strWeaponType,strNode.LockBuffer()); //AfxMessageBox(strWeaponType); /* char pChrShape[15][256]; strcpy(pChrShape[0],strShape[0]); strcpy(pChrShape[1],strShape[1]); strcpy(pChrShape[2],strShape[2]); strcpy(pChrShape[3],strShape[3]); strcpy(pChrShape[4],strShape[4]); strcpy(pChrShape[5],strShape[5]); strcpy(pChrShape[6],strShape[6]); strcpy(pChrShape[7],strShape[7]); strcpy(pChrShape[8],strShape[8]); strcpy(pChrShape[9],strShape[9]); strcpy(pChrShape[10],strShape[10]); strcpy(pChrShape[11],strShape[11]); strcpy(pChrShape[12],strShape[12]); strcpy(pChrShape[13],strShape[13]); strcpy(pChrShape[14],strShape[14]); */ //{ if(!m_AkanValue) { if(m_Sex == 0) { int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,0,"rainbow","PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_MAN.GCMDS"); } // CSceneManager::AddCharacter("Mon_Skeleton_warrior.gcmds","FACE01","HAIR01"); else if(m_Sex == 1) { int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,0,"rainbow","PC_WOMAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_WOMAN.GCMDS"); } else if(m_Sex == 2) { int nChrID=av->m_ChrManager.AddCharacter(0x80000000+rand()%1000,0,"rainbow",m_MonName.LockBuffer(), "FACE01", "HAIR01",vector3(vecViewPos.x,vecViewPos.y,vecViewPos.z),0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,m_MonName.LockBuffer()); } } else { if(m_Sex == 0) {// acan ÄÁº£ÅÏÆ® int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,1,"rainbow","PC_Akhan_A.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_Akhan_A.GCMDS"); } else if(m_Sex == 1) {//acan ¿ÀÇǽº·¹ÀÌÅÍ int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,1,"rainbow","PC_Akhan_B.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_Akhan_B.GCMDS"); } else if(m_Sex == 2) { int nChrID=av->m_ChrManager.AddCharacter(0x80000000+rand()%1000,1,"rainbow",m_MonName.LockBuffer(), "FACE01", "HAIR01",vecViewPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,m_MonName.LockBuffer()); } } //nChrID=av->m_ChrManager.AddCharacter(rand()%1000,"PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); //nChrID=av->m_ChrManager.AddCharacter(rand()%1000,"PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,pChrShape); //nChrID=av->m_ChrManager.AddCharacter(rand()%1000,"PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,pChrShape); //nChrID=av->m_ChrManager.AddCharacter(rand()%1000,"PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,vector3(rand()%1000,0.0f,0.0f),0.0f,pChrShape); //if(m_Sex != 2) //av->m_ChrManager.m_lstCharData[0]->m_lpChrModel->SetMotionSheet("WEAPON_ONE_HAND"); //av->m_ChrManager.m_lstCharData[0]->m_lpChrModel->SetMotionSheet( //nChrID=av->m_ChrManager.AddCharacter(rand()%1000,"PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,pChrShape); //m_WeaponTypeList //av->m_ChrManager.AddCharacter(rand()%1000,"MON_LIZARDMANLEADER.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,pChrShape); //} //av->m_ChrManager.AddCharacter("PC_MAN.GCMDS", "FACE01", "HAIR01",vecViewPos,0.0f,strShape); /* int nSel=m_SimpleSelectList.GetCurSel(); CString strNode; m_TempList.SetCurSel(nSel*8+0); m_TempList.GetWindowText(strNode); m_HeadList.SetCurSel(m_ShieldList.FindString(0,strNode)); m_TempList.SetCurSel(nSel*8+1); m_TempList.GetWindowText(strNode); m_Body0List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+2); m_TempList.GetWindowText(strNode); m_Body1List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+3); m_TempList.GetWindowText(strNode); m_Body2List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+4); m_TempList.GetWindowText(strNode); m_HandList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+5); m_TempList.GetWindowText(strNode); m_FootList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+6); m_TempList.GetWindowText(strNode); m_WeaponList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+7); m_TempList.GetWindowText(strNode); m_ShieldList.SetWindowText(strNode); */ /* for(int i=0;i<16;i++) { int nSel=i; CString strNode; m_TempList.GetText(nSel*8+0,strNode); strNode.MakeUpper(); m_HeadList.SetCurSel(m_HeadList.FindString(0,strNode)); m_TempList.GetText(nSel*8+1,strNode); strNode.MakeUpper(); m_Body0List.SetCurSel(m_Body0List.FindString(0,strNode)); m_TempList.GetText(nSel*8+2,strNode); strNode.MakeUpper(); m_Body1List.SetCurSel(m_Body1List.FindString(0,strNode)); m_TempList.GetText(nSel*8+3,strNode); strNode.MakeUpper(); m_Body2List.SetCurSel(m_Body2List.FindString(0,strNode)); m_TempList.GetText(nSel*8+4,strNode); strNode.MakeUpper(); m_HandList.SetCurSel(m_HandList.FindString(0,strNode)); m_TempList.GetText(nSel*8+5,strNode); strNode.MakeUpper(); m_FootList.SetCurSel(m_FootList.FindString(0,strNode)); m_TempList.GetText(nSel*8+6,strNode); strNode.MakeUpper(); m_WeaponList.SetCurSel(m_WeaponList.FindString(0,strNode)); m_TempList.GetText(nSel*8+7,strNode); strNode.MakeUpper(); m_ShieldList.SetCurSel(m_ShieldList.FindString(0,strNode)); m_HeadList.GetWindowText(strNode); strcpy(strShape[0],strNode.LockBuffer()); m_Body0List.GetWindowText(strNode); strcpy(strShape[1],strNode.GetBuffer(0)); m_Body1List.GetWindowText(strNode); strcpy(strShape[2],strNode.GetBuffer(0)); m_Body2List.GetWindowText(strNode); strcpy(strShape[3],strNode.GetBuffer(0)); m_HandList.GetWindowText(strNode); strcpy(strShape[4],strNode.GetBuffer(0)); m_FootList.GetWindowText(strNode); strcpy(strShape[5],strNode.GetBuffer(0)); m_WeaponList.GetWindowText(strNode); strcpy(strShape[11],strNode.GetBuffer(0)); m_ShieldList.GetWindowText(strNode); strcpy(strShape[9],strNode.GetBuffer(0)); vector3 vecChrPos=vecViewPos+vector3(i*200.0f,0.0f,0.0f); vecChrPos.y=av->m_SceneManager->m_HeightField.GetHeight(vecChrPos); int nChrID=av->m_ChrManager.AddCharacter(rand()%10000,"rainbow","PC_MAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); } */ /**/ /* vector3 vecChrPos=vecViewPos; vecChrPos.y=av->m_SceneManager->m_HeightField.GetHeight(vecChrPos); int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,0,"rainbow","PC_WOMAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); */ av->m_ChrManager.m_nFocusCharacter=0; // /* for(int i=0;i<1;i++) { vector3 vecChrPos=vecViewPos+vector3(rand()%5000,0.0f,rand()%5000); vecChrPos.y=av->m_SceneManager->m_HeightField.GetHeight(vecChrPos); int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,0,"rainbow","PC_MAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); /* vector3 vecChrPos=vecViewPos+vector3(rand()%5000,0.0f,rand()%5000); vecChrPos.y=av->m_SceneManager->m_HeightField.GetHeight(vecChrPos); m_HeadList.SetCurSel(rand()%m_HeadList.GetCount()); m_Body0List.SetCurSel(rand()%m_Body0List.GetCount()); m_Body1List.SetCurSel(rand()%m_Body1List.GetCount()); m_Body2List.SetCurSel(rand()%m_Body2List.GetCount()); m_HandList.SetCurSel(rand()%m_HandList.GetCount()); m_FootList.SetCurSel(rand()%m_FootList.GetCount()); m_WeaponList.SetCurSel(rand()%m_WeaponList.GetCount()); m_ShieldList.SetCurSel(rand()%m_ShieldList.GetCount()); CString strNode; m_HeadList.GetWindowText(strNode); strcpy(strShape[0],strNode.GetBuffer(0)); m_Body0List.GetWindowText(strNode); strcpy(strShape[1],strNode.GetBuffer(0)); m_Body1List.GetWindowText(strNode); strcpy(strShape[2],strNode.GetBuffer(0)); m_Body2List.GetWindowText(strNode); strcpy(strShape[3],strNode.GetBuffer(0)); m_HandList.GetWindowText(strNode); strcpy(strShape[4],strNode.GetBuffer(0)); m_FootList.GetWindowText(strNode); strcpy(strShape[5],strNode.GetBuffer(0)); m_WeaponList.GetWindowText(strNode); strcpy(strShape[6],strNode.GetBuffer(0)); m_ShieldList.GetWindowText(strNode); strcpy(strShape[7],strNode.GetBuffer(0)); //strcpy(strShape[0],"CHAIN_HELM"); //strcpy(strShape[1],"GORGON_LEATHER_TUNIC"); av->m_ChrManager.AddCharacter("PC_MAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); */ //} /* CString strNode; pChrmodel->BeginOutfitSetting(); m_HeadList.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "HEAD",strNode.GetBuffer(0)); m_Body0List.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "BODY", strNode); m_Body1List.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "BODY", strNode); m_Body2List.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "BODY", strNode); m_HandList.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "HAND", strNode); m_FootList.GetWindowText(strNode); pChrmodel->SetOutfitSlot( "FOOT", strNode); m_WeaponList.GetWindowText(strNode); pChrmodel->SetAttachmentSlot( "WEAPON", strNode); m_ShieldList.GetWindowText(strNode); pChrmodel->SetAttachmentSlot( "SHIELD", strNode); pChrmodel->EndOutfitSetting(); //pChrmodel->SetDirection( (rand()%628)*0.01f); pChrmodel->SetDirection(0.0f); /* for(int i=0;i<10;i++) { } */ /* for(int iTest = 0; iTest < 300; iTest++) { m_HeadList.SetCurSel(rand()%m_HeadList.GetCount()); m_Body0List.SetCurSel(rand()%m_Body0List.GetCount()); m_Body1List.SetCurSel(rand()%m_Body1List.GetCount()); m_Body2List.SetCurSel(rand()%m_Body2List.GetCount()); m_HandList.SetCurSel(rand()%m_HandList.GetCount()); m_FootList.SetCurSel(rand()%m_FootList.GetCount()); m_WeaponList.SetCurSel(rand()%m_WeaponList.GetCount()); m_ShieldList.SetCurSel(rand()%m_ShieldList.GetCount()); for(int cShape=0;cShape<15;cShape++) { strcpy(strShape[cShape],""); } strNode; m_HeadList.GetWindowText(strNode); strcpy(strShape[0],strNode.LockBuffer()); m_Body0List.GetWindowText(strNode); strcpy(strShape[1],strNode.GetBuffer(0)); m_Body1List.GetWindowText(strNode); strcpy(strShape[2],strNode.GetBuffer(0)); m_Body2List.GetWindowText(strNode); strcpy(strShape[3],strNode.GetBuffer(0)); m_HandList.GetWindowText(strNode); strcpy(strShape[4],strNode.GetBuffer(0)); m_FootList.GetWindowText(strNode); strcpy(strShape[5],strNode.GetBuffer(0)); m_WeaponList.GetWindowText(strNode); strcpy(strShape[11],strNode.GetBuffer(0)); m_ShieldList.GetWindowText(strNode); strcpy(strShape[9],strNode.GetBuffer(0)); vector3 vecChrPos=vecViewPos+vector3(rand()%3000,0.0f,rand()%3000); int AkanValue = rand() % 2; int Sex = rand() % 2; if(!AkanValue) { if(Sex == 0) { int nChrID=av->m_ChrManager.AddCharacter(0x40000000+rand()%1000,0,"rainbow","PC_MAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_MAN.GCMDS"); } // CSceneManager::AddCharacter("Mon_Skeleton_warrior.gcmds","FACE01","HAIR01"); else if(Sex == 1) { int nChrID=av->m_ChrManager.AddCharacter(0x40000000+rand()%1000,0,"rainbow","PC_WOMAN.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_WOMAN.GCMDS"); } } else { if(Sex == 0) {// acan ÄÁº£ÅÏÆ® int nChrID=av->m_ChrManager.AddCharacter(0x40000000+rand()%1000,1,"rainbow","PC_Akhan_A.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_Akhan_A.GCMDS"); } else if(Sex == 1) {//acan ¿ÀÇǽº·¹ÀÌÅÍ int nChrID=av->m_ChrManager.AddCharacter(0x40000000+rand()%1000,1,"rainbow","PC_Akhan_B.GCMDS", "FACE01", "HAIR01",vecChrPos,0.0f,strShape); memset(av->m_strModelName,0,sizeof(char) * 256); strcpy(av->m_strModelName,"PC_Akhan_B.GCMDS"); } } } */ CDialog::OnOK(); } void CDlgCharacterCreate::OnButtonRandom() { // TODO: Add your control notification handler code here srand(time(NULL)); m_HeadList.SetCurSel(rand()%m_HeadList.GetCount()); m_Body0List.SetCurSel(rand()%m_Body0List.GetCount()); m_Body1List.SetCurSel(rand()%m_Body1List.GetCount()); m_Body2List.SetCurSel(rand()%m_Body2List.GetCount()); m_HandList.SetCurSel(rand()%m_HandList.GetCount()); m_FootList.SetCurSel(rand()%m_FootList.GetCount()); m_WeaponList.SetCurSel(rand()%m_WeaponList.GetCount()); m_ShieldList.SetCurSel(rand()%m_ShieldList.GetCount()); } /* void CDlgCharacterCreate::OnEsf() { char str[] = "Esf ÆÄÀÏ(*.esf) |*.esf| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); t_name = filedia.GetFileName(); strcpy((av->m_ChrManager.m_TestEsf),(t_name.LockBuffer())); } void CDlgCharacterCreate::OnEsf() { char str[] = "Esf ÆÄÀÏ(*.esf) |*.esf| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); t_name = filedia.GetFileName(); strcpy((av->m_ChrManager.m_TestEsf),(t_name.LockBuffer())); // TODO: Add your command handler code here } */ void CDlgCharacterCreate::OnMonsearch() { // TODO: Add your control notification handler code here char str[] = "GCMDS ÆÄÀÏ(*.gcmds) |*.gcmds| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; UpdateData(TRUE); CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_MonName = filedia.GetFileName(); if(!m_MonName.IsEmpty()) { m_MonPivot.SetEditSel(0,-1); m_MonPivot.Clear(); /* m_Monster = CSceneManager::AddCharacter(m_MonName,"FACE01","HARE01"); CZ3DObject *body; matrix *bodytm; /* m_WeaponType.AddString("NO_WEAPON"); m_WeaponType.AddString("NO_WEAPON_B"); m_WeaponType.AddString("WEAPON_ONE_HAND"); m_WeaponType.AddString("WEAPON_TWO_HAND"); m_WeaponType.AddString("WEAPON_BLUNT"); m_WeaponType.AddString("WEAPON_BOW"); m_WeaponType.AddString("WEAPON_DAGGER"); m_WeaponType.AddString("WEAPON_CROSSBOW"); m_WeaponType.SetCurSel(m_WeaponType.FindString(0,"WEAPON_ONE_HAND")); */ /* for(int k=0;k<17;k++) { switch(k) { case 0: //head body = m_Monster->GetSkeletonPartObject("HEAD"); if(body != NULL) { m_MonPivot.AddString("HEAD"); } break; case 1: //NECK body = m_Monster->GetSkeletonPartObject("NECK"); if(body != NULL) { m_MonPivot.AddString("NECK"); } break; case 2: //CHEST body = m_Monster->GetSkeletonPartObject("CHEST"); if(body != NULL) { m_MonPivot.AddString("CHEST"); } break; case 3: //WAIST body = m_Monster->GetSkeletonPartObject("WAIST"); if(body != NULL) { m_MonPivot.AddString("WAIST"); } break; case 4: //PELVIS body = m_Monster->GetSkeletonPartObject("PELVIS"); if(body != NULL) { m_MonPivot.AddString("PELVIS"); } break; case 5: //R_HAND body = m_Monster->GetSkeletonPartObject("R_HAND"); if(body != NULL) { m_MonPivot.AddString("R_HAND"); } break; case 6: //R_FOREARM body = m_Monster->GetSkeletonPartObject("R_FOREARM"); if(body != NULL) { m_MonPivot.AddString("R_FOREARM"); } break; case 7: //R_UPPERARM body = m_Monster->GetSkeletonPartObject("R_UPPERARM"); if(body != NULL) { m_MonPivot.AddString("R_UPPERARM"); } break; case 8: //R_THIGH body = m_Monster->GetSkeletonPartObject("R_THIGH"); if(body != NULL) { m_MonPivot.AddString("R_THIGH"); } break; case 9: //R_CALF body = m_Monster->GetSkeletonPartObject("R_CALF"); if(body != NULL) { m_MonPivot.AddString("R_CALF"); } break; case 10: //R_FOOT body = m_Monster->GetSkeletonPartObject("R_FOOT"); if(body != NULL) { m_MonPivot.AddString("R_FOOT"); } break; case 11: //L_HAND body = m_Monster->GetSkeletonPartObject("L_HAND"); if(body != NULL) { m_MonPivot.AddString("L_HAND"); } break; case 12: //L_FOREARM body = m_Monster->GetSkeletonPartObject("L_FOREARM"); if(body != NULL) { m_MonPivot.AddString("L_FOREARM"); } break; case 13: //L_UPPERARM body = m_Monster->GetSkeletonPartObject("L_UPPERARM"); if(body != NULL) { m_MonPivot.AddString("L_UPPERARM"); } break; case 14: //L_THIGH body = m_Monster->GetSkeletonPartObject("L_THIGH"); if(body != NULL) { m_MonPivot.AddString("L_THIGH"); } break; case 15: //L_CALF body = m_Monster->GetSkeletonPartObject("L_CALF"); if(body != NULL) { m_MonPivot.AddString("L_CALF"); } break; case 16: //L_FOOT body = m_Monster->GetSkeletonPartObject("L_FOOT"); if(body != NULL) { m_MonPivot.AddString("L_FOOT"); } break; } }*/ } UpdateData(FALSE); } void CDlgCharacterCreate::OnMonaddeffect() { char write_buf[256]= {0}; char file[256] = {0}; CString tmp; if(!m_MonEsf.IsEmpty() && !m_MonName.IsEmpty() && (m_MonPivot.GetCurSel() >= 0)) { m_MonPivot.GetLBText(m_MonPivot.GetCurSel(),tmp); strcpy(file,CHARACTERDATAPATH); // TODO: Add your control notification handler code here strcat(file,m_MonName.LockBuffer()); FILE *fp = fopen(file,"at+"); fseek(fp,0,SEEK_END); if(fp != NULL) { fprintf(fp,"\nEFFECT: %s %s",tmp.LockBuffer(),m_MonEsf.LockBuffer()); fclose(fp); } } } void CDlgCharacterCreate::OnMonEsfsearch() { // TODO: Add your control notification handler code here char str[] = "ESF ÆÄÀÏ(*.esf) |*.esf| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_MonEsf = filedia.GetFileName(); UpdateData(FALSE); } void CDlgCharacterCreate::OnChangeEditFocus() { UpdateData(); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); if(m_nFocusCharacter >= 0 && av->m_ChrManager.m_lstCharData.num >=m_nFocusCharacter) { av->m_ChrManager.m_nFocusCharacter=m_nFocusCharacter; } // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here } void CDlgCharacterCreate::OnEditchangeComboSimpleselect() { // TODO: Add your control notification handler code here int nSel=m_SimpleSelectList.GetCurSel(); CString strNode; m_TempList.SetCurSel(nSel*8+0); m_TempList.GetWindowText(strNode); m_HeadList.SetCurSel(m_HeadList.FindString(0,strNode)); m_TempList.SetCurSel(nSel*8+1); m_TempList.GetWindowText(strNode); m_Body0List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+2); m_TempList.GetWindowText(strNode); m_Body1List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+3); m_TempList.GetWindowText(strNode); m_Body2List.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+4); m_TempList.GetWindowText(strNode); m_HandList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+5); m_TempList.GetWindowText(strNode); m_FootList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+6); m_TempList.GetWindowText(strNode); m_WeaponList.SetWindowText(strNode); m_TempList.SetCurSel(nSel*8+7); m_TempList.GetWindowText(strNode); m_ShieldList.SetWindowText(strNode); } void CDlgCharacterCreate::OnSelchangeComboSimpleselect() { // TODO: Add your control notification handler code here int nSel=m_SimpleSelectList.GetCurSel(); CString strNode; m_TempList.GetText(nSel*8+0,strNode); strNode.MakeUpper(); m_HeadList.SetCurSel(m_HeadList.FindString(0,strNode)); m_TempList.GetText(nSel*8+1,strNode); strNode.MakeUpper(); m_Body0List.SetCurSel(m_Body0List.FindString(0,strNode)); m_TempList.GetText(nSel*8+2,strNode); strNode.MakeUpper(); m_Body1List.SetCurSel(m_Body1List.FindString(0,strNode)); m_TempList.GetText(nSel*8+3,strNode); strNode.MakeUpper(); m_Body2List.SetCurSel(m_Body2List.FindString(0,strNode)); m_TempList.GetText(nSel*8+4,strNode); strNode.MakeUpper(); m_HandList.SetCurSel(m_HandList.FindString(0,strNode)); m_TempList.GetText(nSel*8+5,strNode); strNode.MakeUpper(); m_FootList.SetCurSel(m_FootList.FindString(0,strNode)); m_TempList.GetText(nSel*8+6,strNode); strNode.MakeUpper(); m_WeaponList.SetCurSel(m_WeaponList.FindString(0,strNode)); m_TempList.GetText(nSel*8+7,strNode); strNode.MakeUpper(); m_ShieldList.SetCurSel(m_ShieldList.FindString(0,strNode)); } void CDlgCharacterCreate::OnButton4() { // TODO: Add your control notification handler code here CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); av->m_ChrManager.DeleteAllCharacter(); av->m_ChrManager.m_nFocusCharacter = -1; CDialog::OnOK(); } void CDlgCharacterCreate::OnButton1() { // TODO: Add your control notification handler code here char str[] = "DDS ÆÄÀÏ(*.dds) |*.dds| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_strNormalTex = filedia.GetFileName(); UpdateData(FALSE); } void CDlgCharacterCreate::OnNormalinput() { // TODO: Add your control notification handler code here if(m_strNormalTex.GetLength() >= 1) { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); CShader_BumpSpec *pNode = (CShader_BumpSpec *)(av->m_SceneManager->m_ShaderManager.GetShaderPtr((char *)SHADER_STR_BUMPDIFFSPEC)); if(pNode != NULL) { pNode->SetNormalTexture(m_strNormalTex.GetBuffer(1)); } } } void CDlgCharacterCreate::OnButton2() { // TODO: Add your control notification handler code here UpdateData(TRUE); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); CShader_BumpSpec *pNode = (CShader_BumpSpec *)(av->m_SceneManager->m_ShaderManager.GetShaderPtr((char *)SHADER_STR_BUMPDIFFSPEC)); if(pNode != NULL) { pNode->SetBumpScale(m_fBumpScale); } CRenderOption::m_fBumpScale = m_fBumpScale; OnReload(); } void CDlgCharacterCreate::OnReload() { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView* av=(CWorldCreatorView*)mf->GetActiveView(); av->m_ChrManager.DeleteAllCharacter(); av->m_ChrManager.m_nFocusCharacter = -1; UpdateData(TRUE); mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; av=(CWorldCreatorView*)mf->GetActiveView(); matrix *matPos=av->m_BaseGraphicLayer.m_ViewCamera.GetMatPosition(); vector3 vecViewPos=matPos->GetLoc(); char strWeaponType[256]; char strShape[15][256]; for(int cShape=0;cShape<15;cShape++) { strcpy(strShape[cShape],""); } CString strNode; m_HeadList.GetWindowText(strNode); strcpy(strShape[0],strNode.LockBuffer()); m_Body0List.GetWindowText(strNode); strcpy(strShape[1],strNode.GetBuffer(0)); m_Body1List.GetWindowText(strNode); strcpy(strShape[2],strNode.GetBuffer(0)); m_Body2List.GetWindowText(strNode); strcpy(strShape[3],strNode.GetBuffer(0)); m_HandList.GetWindowText(strNode); strcpy(strShape[4],strNode.GetBuffer(0)); m_FootList.GetWindowText(strNode); strcpy(strShape[5],strNode.GetBuffer(0)); m_WeaponList.GetWindowText(strNode); strcpy(strShape[11],strNode.GetBuffer(0)); m_ShieldList.GetWindowText(strNode); strcpy(strShape[9],strNode.GetBuffer(0)); int nChrID=av->m_ChrManager.AddCharacter(rand()%1000,0,"rainbow",av->m_strModelName, "FACE01", "HAIR01",vecViewPos,0.0f,strShape); av->m_ChrManager.m_nFocusCharacter=0; CDialog::OnOK(); } void CDlgCharacterCreate::OnAkan() { // TODO: Add your control notification handler code here }