home *** CD-ROM | disk | FTP | other *** search
/ Freelog 54 / Freelog054.iso / Bas / Détente / WinPenguins / Toon.h < prev    next >
C/C++ Source or Header  |  2001-04-08  |  3KB  |  136 lines

  1. /**
  2.  * $Id: Toon.h,v 1.2 2001/04/08 08:07:35 tlee1 Exp $
  3.  *
  4.  *  Copyright (C) 2000  Michael Vines
  5.  *
  6.  *  This file contains code from XPenguins 1.1
  7.  *        Copyright (C) 1999,2000  Robin Hogan
  8.  *
  9.  *  This program is free software; you can redistribute it and/or modify
  10.  *  it under the terms of the GNU General Public License as published by
  11.  *  the Free Software Foundation; either version 2 of the License, or
  12.  *  (at your option) any later version.
  13.  *
  14.  *  This program is distributed in the hope that it will be useful,
  15.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *  GNU General Public License for more details.
  18.  *
  19.  *  You should have received a copy of the GNU General Public License
  20.  *  along with this program; if not, write to the Free Software
  21.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22.  *
  23.  *  As a special exception, Michael Vines gives permission to link this program
  24.  *  with the Microsoft Visual C++ Runtime/MFC Environment, and distribute the
  25.  *  resulting executable, without including the source code for the Microsoft 
  26.  *  Visual C++ Runtime/MFC Environment in the source distribution
  27.  */
  28.  
  29. #if !defined(AFX_TOON_H__7339F5A5_53B0_4448_8C93_420E8E3B5FEC__INCLUDED_)
  30. #define AFX_TOON_H__7339F5A5_53B0_4448_8C93_420E8E3B5FEC__INCLUDED_
  31.  
  32. #if _MSC_VER > 1000
  33. #pragma once
  34. #endif // _MSC_VER > 1000
  35. // Toon.h : header file
  36. //
  37.  
  38. // return values from AdvanceToon
  39. #define TOON_OK 0
  40. #define TOON_PARTIALMOVE 1
  41. #define TOON_BLOCKED -1
  42.  
  43. #define TOON_LEFT 0
  44. #define TOON_RIGHT 1
  45. #define TOON_UP 2
  46. #define TOON_DOWN 3
  47. #define TOON_HERE -1
  48.  
  49.  
  50. typedef enum TToonSubType
  51. {
  52.     TST_UNSPECIFIED,
  53.     TST_NORMAL_PENGUIN,
  54.     TST_SANTA_PENGUIN
  55.  
  56. }ToonSubType;
  57.  
  58. /* Bitmap colour that will be transparent */
  59. #define BG_COLOUR RGB(0,0,0)
  60.  
  61.  
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CToon window
  64.  
  65. class CToon 
  66. {
  67.  
  68. // Construction
  69. public:
  70.     CToon();
  71.  
  72. // Attributes
  73. public:
  74.     int m_x;
  75.     int m_y;
  76.     int m_u;
  77.     int m_v;
  78.     int m_prefd;  // prefered direction -- -1 = none
  79.     int m_tumbleStartY;
  80.  
  81.     int m_bmpIndex;
  82.     int m_frameIndex;
  83.     int m_directionIndex;
  84.  
  85.     bool m_active;
  86.     bool m_startingUp;
  87.  
  88.     ToonSubType m_tstSubType;
  89.  
  90. // Overrides
  91.     // ClassWizard generated virtual function overrides
  92.     //{{AFX_VIRTUAL(CToon)
  93.     //}}AFX_VIRTUAL
  94.  
  95. // Implementation
  96. public:
  97.     bool IsBlocked(int direction);
  98.     int AdvanceToon(bool force);
  99.     void SetVelocity(int u, int v);
  100.     void SetPosition(int x, int y);
  101.     void SetType(int type, int direction);
  102.     virtual ~CToon();
  103.  
  104.     void DeleteAni();
  105.     void ExplodeAni();
  106.  
  107.     void GetRect(RECT &rt);
  108.     void GetRect(RECT &rt, int newx, int newy);
  109.  
  110.     void Erase(CWnd &wnd, RECT *wndRt);
  111.  
  112.     void Paint(CDC *activeDC, CDC *tmpDc);
  113.     void PaintBackground(CDC *bgBitmapDC, CDC *activeDC);
  114.     void PaintToDesktop(CDC *dc, CDC *activeBmpDC);
  115.         
  116.     void SetSubType( ToonSubType tst ) { m_tstSubType = tst; }
  117.     ToonSubType GetSubType( void ) { return m_tstSubType; }
  118. private:
  119.     void AdvanceFrame();
  120.  
  121.     // Generated message map functions
  122. protected:
  123.  
  124.  
  125.     //{{AFX_MSG(CToon)
  126.     //}}AFX_MSG
  127. //    DECLARE_MESSAGE_MAP()
  128. };
  129.  
  130. /////////////////////////////////////////////////////////////////////////////
  131.  
  132. //{{AFX_INSERT_LOCATION}}
  133. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  134.  
  135. #endif // !defined(AFX_TOON_H__7339F5A5_53B0_4448_8C93_420E8E3B5FEC__INCLUDED_)
  136.