// madnessEditorDoc.h : interfaccia della classe CmadnessEditorDoc

#pragma once
#include "MadMap.h"
#include "MarbleEnemy.h"


//= documento usato dal madnesseditor  
class CmadnessEditorDoc : public CDocument
{

protected: // creare solo da serializzazione.
    CmadnessEditorDoc();
    DECLARE_DYNCREATE(CmadnessEditorDoc)

// Attributi
public:
 
/**variabile che indica se il documento è attualmente occupato da un'altra operazione*/
 BOOL Busy;
 
 //====================
 //MadMap del documento
 //====================
 MadMap Map;


 /**vettore che contiene le informazioni dei nemici*/
 MarbleEnemy enemy[MAXENEMY];

 /**numero di nemici attualmente usati nel documento*/
 int numEnemy; 
 //================================================
 //MadMap usata per salvare le informazione di Undo
 //================================================
 MadMap UndoMap;



// Operazioni
public:

// Sostituzioni
    public:
    //=======================
    //Crea un nuovo documento
    //=======================
    virtual BOOL OnNewDocument();


// Implementazione
public:
    virtual ~CmadnessEditorDoc();
#ifdef _DEBUG
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Funzioni generate per la mappa dei messaggi
protected:
    DECLARE_MESSAGE_MAP()

public:


    //===============
    //Salva documento
    //===============
    virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);

    //==============
    //Apri documento
    //==============
    virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);

    /**invocato nel aggiornare la voce del menu Edit/Undo*/
    afx_msg void OnUpdateEditUndo(CCmdUI *pCmdUI);

};