Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1121 lines
32 KiB
C++
1121 lines
32 KiB
C++
// 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("--<2D><>ĭ<EFBFBD><C4AD>--");
|
||
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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%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 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||
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 <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
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 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||
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 <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
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 <20><><EFBFBD><EFBFBD>(*.esf) |*.esf| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.*)|*.*||";
|
||
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 <20><><EFBFBD><EFBFBD>(*.esf) |*.esf| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.*)|*.*||";
|
||
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 <20><><EFBFBD><EFBFBD>(*.gcmds) |*.gcmds| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.*)|*.*||";
|
||
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 <20><><EFBFBD><EFBFBD>(*.esf) |*.esf| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.*)|*.*||";
|
||
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 <20><><EFBFBD><EFBFBD>(*.dds) |*.dds| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.*)|*.*||";
|
||
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
|
||
|
||
}
|