home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / thx / include / perform.h < prev    next >
C/C++ Source or Header  |  1995-05-08  |  3KB  |  114 lines

  1. // ------- perform.h
  2.  
  3. #ifndef PERFORM_H
  4. #define PERFORM_H
  5.  
  6. #include <fastgraf.h>
  7. #include "vocal.h"
  8. #include "settings.h"
  9. #include "debug.h"
  10. #include "xms.h"
  11. #include "media.h"
  12.  
  13. class Performer : public VocalHand  {
  14.   static GraphicsMedia gfxlib;
  15.   int curlib;
  16.   int curfont;
  17.   void thx_show_print(int,int,char*);
  18.   void thx_show_number(int,int,int);
  19. protected:
  20.   Performer(Director* d=0);
  21.   virtual ~Performer();
  22.   void load_gfxlib(char*);
  23.   void set_gfxlib(char*);
  24.   void show_image(int x,int y,int imageno);
  25.   void show_frame(int x,int y,int imageno);
  26.   void show_clipped_image(int x,int y,int imageno);
  27.   int get_image_width(int imageno);
  28.   int get_image_height(int imageno);
  29.   int get_num_images();
  30.   void load_gfxfont(char*);
  31.   void set_gfxfont(char*);
  32.   void show_print(int,int,char*);
  33.   void show_number(int,int,int);
  34.   int get_char_width(char);
  35.   int get_char_height(char);
  36. };
  37.  
  38. inline void Performer::show_image(int x,int y,int imageno)
  39. {
  40.   Assert(curlib!=-1);
  41.   Assert(imageno>0 && imageno<=Media::clipcount(curlib));
  42.   MediaClip& mc = gfxlib.getclip(curlib,imageno-1);
  43.   fg_move(x,y+mc.h-1);
  44.   fg_drwimage(mc.buf,mc.w,mc.h);
  45. }
  46.  
  47. inline void Performer::show_frame(int x,int y,int imageno)
  48. {
  49.   Assert(curlib!=-1);
  50.   Assert(imageno>0 && imageno<=Media::clipcount(curlib));
  51.   MediaClip& mc = gfxlib.getclip(curlib,imageno-1);
  52.   fg_move(x,y+mc.h-1);
  53.   fg_putimage(mc.buf,mc.w,mc.h);
  54. }
  55.  
  56. inline void Performer::show_clipped_image(int x,int y,
  57.                                                  int imageno)
  58. {
  59.   Assert(curlib!=-1);
  60.   Assert(imageno>0 && imageno<=Media::clipcount(curlib));
  61.   MediaClip& mc = gfxlib.getclip(curlib,imageno-1);
  62.   fg_move(x,y+mc.h-1);
  63.   fg_clpimage(mc.buf,mc.w,mc.h);
  64. }
  65.  
  66. inline int Performer::get_image_width(int imageno)
  67. {
  68.   Assert(curlib!=-1);
  69.   MediaClip& mc = gfxlib.getclip(curlib,imageno-1);
  70.   return mc.w;
  71. }
  72.  
  73. inline int Performer::get_image_height(int imageno)
  74. {
  75.   Assert(curlib!=-1);
  76.   MediaClip& mc = gfxlib.getclip(curlib,imageno-1);
  77.   return mc.h;
  78. }
  79.  
  80. inline int Performer::get_num_images()
  81. {
  82.   Assert(curlib!=-1);
  83.   return Media::clipcount(curlib);
  84. }
  85.  
  86. inline int Performer::get_char_width(char ch)
  87. {
  88.   Assert(curfont!=-1);
  89.   MediaClip& mc = gfxlib.getclip(curfont,ch-48+26);
  90.   return mc.w;
  91. }
  92.  
  93. inline int Performer::get_char_height(char ch)
  94. {
  95.   Assert(curfont!=-1);
  96.   MediaClip& mc = gfxlib.getclip(curfont,ch-48+26);
  97.   return mc.h;
  98. }
  99.  
  100. inline void Performer::show_print(int x,int y,char* str)
  101. {
  102.   Assert(curfont!=-1);
  103.   thx_show_print(x,y,str);
  104. }
  105.  
  106. inline void Performer::show_number(int x,int y,int num)
  107. {
  108.   Assert(curfont!=-1);
  109.   thx_show_number(x,y,num);
  110. }
  111.  
  112. #endif
  113.  
  114.