// madnessEditorFormView.cpp : implementation file // #include "stdafx.h" #include "madnessEditor.h" #include "madnessEditorDoc.h" #include "madnessEditorFormView.h" #include "madnessEditorView.h" // CmadnessEditorFormView IMPLEMENT_DYNCREATE(CmadnessEditorFormView, CFormView) CmadnessEditorFormView::CmadnessEditorFormView() : CFormView(CmadnessEditorFormView::IDD) { } CmadnessEditorFormView::~CmadnessEditorFormView() { } void CmadnessEditorFormView::OnInitialUpdate() { CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CFormView::OnInitialUpdate(); for (int i=0; i<(pDoc->Map.numtex);i++) { Cmb_Tex.InsertString(i,pDoc->Map.Tex[i]); } pDoc->Map.numtex=Cmb_Tex.GetCount(); for (int i=0; i<Cmb_Tex.GetCount();i++) { Cmb_Tex.GetLBText(i,pDoc->Map.Tex[i]); } /*Slr_AreaGravity.SetRangeMin(0,false); Slr_AreaGravity.SetRangeMax(10,false); */ Slr_AreaGravity.SetRange(-160,160,false); Slr_AreaAttrito.SetRange(2,20,false); //Slr_AreaArtrito. Slr_AreaGravity.SetPos(-160); Slr_AreaAttrito.SetPos(7); CString buf; buf.Format("%d",Slr_AreaGravity.GetPos()); EdSetG.SetWindowText(buf); buf.Format("%d",Slr_AreaAttrito.GetPos()); EdSetA.SetWindowText(buf); buf.Format("*"); EdTexT.SetWindowText(buf); buf.Format("*"); EdTexW.SetWindowText(buf); ResizeParentToFit(false); } void CmadnessEditorFormView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO2,Cmb_Tex); DDX_Control(pDX, IDC_SLIDER1,Slr_AreaAttrito); DDX_Control(pDX, IDC_SLIDER2,Slr_AreaGravity); DDX_Control(pDX, IDC_EDIT1,EdTexT); DDX_Control(pDX, IDC_EDIT2,EdTexW); DDX_Control(pDX, IDC_EDIT3,EdSetA); DDX_Control(pDX, IDC_EDIT4,EdSetG); } BEGIN_MESSAGE_MAP(CmadnessEditorFormView, CFormView) ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedApply) ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedUpdateTex) ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedTexTile) ON_BN_CLICKED(IDC_BUTTON4, OnBnClickedTexWall) ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButton5) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, OnNMCustomdrawSlider1) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER2, OnNMCustomdrawSlider2) END_MESSAGE_MAP() // CmadnessEditorFormView diagnostics #ifdef _DEBUG void CmadnessEditorFormView::AssertValid() const { CFormView::AssertValid(); } void CmadnessEditorFormView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CmadnessEditorDoc* CmadnessEditorFormView::GetDocument() const // la versione non debug è inline. { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CmadnessEditorDoc))); return (CmadnessEditorDoc*)m_pDocument; } #endif //_DEBUG // CmadnessEditorFormView message handlers void CmadnessEditorFormView::OnBnClickedApply() {CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); //Slr_AreaArtrito.GetPos() for (int j=pDoc->Map.Colored.first.X;j<=pDoc->Map.Colored.last.X;j++) for (int i=pDoc->Map.Colored.first.Z;i<=pDoc->Map.Colored.last.Z;i++) { pDoc->Map.Map[j][i].attr=(double)Slr_AreaAttrito.GetPos(); pDoc->Map.Map[j][i].grav=(double)Slr_AreaGravity.GetPos(); } pDoc->UpdateAllViews(this); // TODO: Add your control notification handler code here } void CmadnessEditorFormView::OnBnClickedUpdateTex() {CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); for (int i=0; i<120;i++) Cmb_Tex.DeleteString(0); Cmb_Tex.Dir(DDL_READWRITE,"*.jpg"); Cmb_Tex.DeleteString(Cmb_Tex.FindString(0,"tile.jpg")); Cmb_Tex.DeleteString(Cmb_Tex.FindString(0,"wall.jpg")); Cmb_Tex.DeleteString(Cmb_Tex.FindString(0,"enemy.jpg")); Cmb_Tex.InsertString(0,"tile.jpg"); Cmb_Tex.InsertString(1,"wall.jpg"); Cmb_Tex.InsertString(2,"enemy.jpg"); pDoc->Map.numtex=Cmb_Tex.GetCount(); for (int i=0; i<Cmb_Tex.GetCount();i++) { Cmb_Tex.GetLBText(i,pDoc->Map.Tex[i]); } pDoc->Map.InitTexture(); // TODO: Add your control notification handler code here } void CmadnessEditorFormView::OnBnClickedTexTile() {CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); for (int j=pDoc->Map.Colored.first.X;j<=pDoc->Map.Colored.last.X;j++) for (int i=pDoc->Map.Colored.first.Z;i<=pDoc->Map.Colored.last.Z;i++) { if (Cmb_Tex.GetCurSel()!=-1) pDoc->Map.Map[j][i].typet=Cmb_Tex.GetCurSel(); } pDoc->UpdateAllViews(this); // TODO: Add your control notification handler code here } void CmadnessEditorFormView::OnBnClickedTexWall() { CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); for (int j=pDoc->Map.Colored.first.X;j<=pDoc->Map.Colored.last.X;j++) for (int i=pDoc->Map.Colored.first.Z;i<=pDoc->Map.Colored.last.Z;i++) { if (Cmb_Tex.GetCurSel()!=-1) pDoc->Map.Map[j][i].typew=Cmb_Tex.GetCurSel(); } pDoc->UpdateAllViews(this); // TODO: Add your control notification handler code here } void CmadnessEditorFormView::OnBnClickedButton5() { CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (Cmb_Tex.GetCurSel()!=-1) pDoc->Map.TexEnemy=Cmb_Tex.GetCurSel(); for (int i=0;i<MAXENEMY;i++) pDoc->enemy[i].setTexture(pDoc->Map.Tex[pDoc->Map.TexEnemy]); pDoc->UpdateAllViews(this); // TODO: Add your control notification handler code here } void CmadnessEditorFormView::OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); // TODO: Add your control notification handler code here *pResult = 0; CString buf; buf.Format("%d",Slr_AreaAttrito.GetPos()); EdSetA.SetWindowText(buf); } void CmadnessEditorFormView::OnNMCustomdrawSlider2(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); // TODO: Add your control notification handler code here *pResult = 0; CString buf; buf.Format("%d",Slr_AreaGravity.GetPos()); EdSetG.SetWindowText(buf); } void CmadnessEditorFormView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/) { CmadnessEditorDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CString buf; int g=pDoc->Map.getColoredGravity(); int a=pDoc->Map.getColoredAttrito(); int w=pDoc->Map.getColoredTexWall(); int t=pDoc->Map.getColoredTexTile(); buf.Format("*"); if (g!=-1) { buf.Format("%d",g); Slr_AreaGravity.SetPos(g); } EdSetG.SetWindowText(buf); buf.Format("*"); if (a!=-1){ buf.Format("%d",a); Slr_AreaAttrito.SetPos(a); } EdSetA.SetWindowText(buf); buf.Format("*"); if (w!=-1) { buf.Format("%s",pDoc->Map.Tex[w]); } EdTexW.SetWindowText(buf); buf.Format("*"); if (t!=-1) { buf.Format("%s",pDoc->Map.Tex[t]); } EdTexT.SetWindowText(buf); // TODO: Add your specialized code here and/or call the base class }