00001 /***************************************************************************** 00002 * $Id: view.h,v 1.1 2003/07/16 11:42:15 schou Exp $ 00003 * Author: Jakob Schou Jensen <schou@sourceforge.net> 00004 * Licence: GPL 00005 * 00006 * Description: View 00007 * 00008 ****************************************************************************/ 00009 00010 #ifndef VIEW_H 00011 #define VIEW_H 00012 00013 #include "animation.h" 00014 00015 #define VIEW_MAX_OVERLAYS 32 00016 00017 void whiteScreen(int s); 00018 00027 class Overlay { 00028 protected: 00029 static AdsoFont *smallFont, *largeFont; 00030 public: 00031 static void setFont(AdsoFont *s, AdsoFont *l){ smallFont = s; largeFont = l; } 00032 static AdsoFont *getFont(){ return smallFont; } 00033 virtual void draw() = 0; 00034 virtual ~Overlay(){} 00035 }; 00036 00037 class MessageDisplay : public Overlay, public TimedAnimation { 00038 char msg_str[256]; 00039 double msg_timer; 00040 00041 public: 00042 void setMessageDuration(float t){ msg_timer = t; } 00043 void displayMessage(char *s){ 00044 strncpy(msg_str,s,255); 00045 msg_str[255]=0; 00046 msg_timer = 3.0; 00047 } 00048 void update(double deltaTime){ 00049 if(msg_timer>0.0){ 00050 msg_timer -= deltaTime; 00051 if(msg_timer<0.0) msg_timer=0.0; 00052 } 00053 } 00054 void draw(); 00055 00056 MessageDisplay(){ msg_timer = 0; } 00057 }; 00058 00063 class View { 00064 Overlay *overlays[VIEW_MAX_OVERLAYS]; 00065 int overlayCount; 00066 00067 class Scene *scene; 00068 00069 public: 00070 //ScreenDump screenDump; 00071 MessageDisplay messageDisplay; 00072 00073 void addOverlay(Overlay *o); 00074 void draw(); 00075 00076 int open(); 00077 void init(); 00078 View(); 00079 }; 00080 00081 extern View view; 00082 00083 #endif
1.3.2