windows-nt/Source/XPSP1/NT/windows/feime/cht/cblocks/blockdoc.h
2020-09-26 16:20:57 +08:00

127 lines
3.5 KiB
C++

/*************************************************
* blockdoc.h *
* *
* Copyright (C) 1995-1999 Microsoft Inc. *
* *
*************************************************/
// blockdoc.h : interface of the CBlockDoc class
//
/////////////////////////////////////////////////////////////////////////////
class CSlotManager;
class CBlock;
class CSpriteList;
class CDIB;
class CBlockDoc : public CDocument
{
protected: // create from serialization only
CBlockDoc();
DECLARE_DYNCREATE(CBlockDoc)
CBlock* LoadBlock(UINT idRes,
int iMass,
int iX, int iY,
int iVX, int iVY);
// Attributes
public:
CDIB* GetBackground() {return m_pBkgndDIB;}
CSpriteList* GetSpriteList() {return &m_SpriteList;}
void GetSceneRect(CRect* prc);
void Land();
void Tick();
void Remove(CBlock* pBlock);
int MyRand() {return(rand() + m_nSeed);}
int GetNumofRows() const {return m_nRow;}
int GetNumofCols() const {return m_nCol;}
int GetRowHeight() const {return m_nRowHeight;}
int GetColWidth() const {return m_nColWidth;}
int GetExpertise() const {return m_nExpertise;}
void Promote();
char* GetChar();
void GenerateBlock(int nSlotNo);
void GameOver(BOOL bHighScore=FALSE);
void Hit(WORD wCode);
void SoundHit();
void SoundAppear();
void SoundGround();
void SoundFire();
void SoundOver();
int GetTotalWords() const {return m_nTotalWords;}
int GetTotalHitWords() const {return m_nTotalHitWords;}
int GetWordHitInAir() const {return m_nHitInMoving;}
int GetWordHitInGround() const {return m_nHitInStill;}
int GetMissedHit() const {return m_nMissedHit;}
WORD GetFocusChar(CPoint pt);
BOOL GetKeyStroke(WORD wCode);
// Operations
public:
BOOL SetBackground(CDIB* pDIB);
void SoundClick()
{}
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBlockDoc)
public:
virtual BOOL OnNewDocument();
virtual void DeleteContents();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CBlockDoc();
virtual void Serialize(CArchive& ar); // overridden for document i/o
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
CDIB* m_pBkgndDIB; // ptr to background DIB
CBlock* m_pdibArrow;
CSpriteList m_SpriteList; // sprite list
CBlockView* GetBlockView(); // helper fn.
int m_nRow;
int m_nCol;
int m_nRowHeight;
int m_nColWidth;
BOOL m_bSound;
BOOL m_nExpertise;
int m_nTotalWords;
int m_nTotalHitWords;
int m_nMissedHit;
int m_nHitInMoving;
int m_nHitInStill;
int m_nSeed;
CBitmap m_bmBlock;
CSlotManager* m_pSlotManager;
// Generated message map functions
protected:
//{{AFX_MSG(CBlockDoc)
afx_msg void OnOPTIONSIZE12x10();
afx_msg void OnOPTIONSIZE16x16();
afx_msg void OnOPTIONSIZE4x4();
afx_msg void OnTestSound();
afx_msg void OnOptionBeginer();
afx_msg void OnUpdateOptionBeginer(CCmdUI* pCmdUI);
afx_msg void OnOptionExpert();
afx_msg void OnUpdateOptionExpert(CCmdUI* pCmdUI);
afx_msg void OnUpdateOptionOrdinary(CCmdUI* pCmdUI);
afx_msg void OnOptionOrdinary();
afx_msg void OnOptionSound();
afx_msg void OnUpdateOptionSound(CCmdUI* pCmdUI);
afx_msg void OnFileStatistic();
afx_msg void OnTest();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#define LEVEL_EXPERT 3
#define LEVEL_ORDINARY 2
#define LEVEL_BEGINNER 1
/////////////////////////////////////////////////////////////////////////////