home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / commodities / superdark / blankers / proc_main.h < prev    next >
C/C++ Source or Header  |  1992-11-07  |  2KB  |  89 lines

  1. struct my_data    *p_info;
  2. struct    appel_proc    *p_data_proc;
  3. int    width,height;
  4. struct    RastPort    *rp,*rps;
  5. struct    Screen        *s;
  6.  
  7. struct    Library    *GadToolsBase;
  8. struct    Library    *IntuitionBase;
  9. struct    Library    *GfxBase;
  10.  
  11. extern    struct    tom_gadget    my_gadg[];
  12. extern    void    __saveds    dark();
  13. extern    void    proc_init();
  14. extern    void    proc_end();
  15. extern    char    *p_text_info;
  16.  
  17.  
  18. /* Note: The folloing SPrintf Routine is taken from the program "FracBlank " */
  19. /* by:                                         */
  20. UWORD PutChar[2] = {0x16C0,0x4E75};
  21.  
  22. /* dirty hack to avoid assembler part :-)
  23.    16C0: move.b d0,(a3)+
  24.    4E75: rts
  25. */
  26.  
  27. #define VOID_STDARGS   void __stdargs
  28. #define VOID_REGARGS   void __regargs
  29.  
  30. VOID_STDARGS SPrintF(char *Buffer,char *FormatString,...)
  31.  
  32. {
  33.  RawDoFmt (FormatString,(APTR)((LONG *)&FormatString+1L),
  34.            (void *)PutChar,Buffer);
  35. }
  36. void    _main(line)
  37. register    char    *line;
  38. {
  39.     struct    MsgPort    *mp;
  40.  
  41.    /****************************************************************/
  42.    /* Recherche du port qui contient les infos relatives a l'ecran */
  43.    /* Ce port permet de passer des donnes de la tache main vers ici*/ 
  44.    /****************************************************************/
  45.  
  46.    IntuitionBase=(struct Library *)OpenLibrary("intuition.library",0);
  47.    GfxBase=(struct Library *)OpenLibrary("graphics.library",0);
  48.    if((mp=FindPort("That's Dark!"))==0){
  49.     dark();
  50.     return;
  51.    }else{
  52.     /*********************************************/
  53.     /* On recupere les informaitons ainsi passee */
  54.     /*********************************************/
  55.     p_data_proc=(struct appel_proc *)mp;
  56.     rp=p_data_proc->rp;
  57.     rps=p_data_proc->rps;
  58.     s=p_data_proc->s;
  59.     width=p_data_proc->width;
  60.     height=p_data_proc->height;
  61.  
  62.     p_info=p_data_proc->p_info;
  63.  
  64.     GadToolsBase=p_data_proc->GadToolsBase;
  65.  
  66.     switch(p_data_proc->action){
  67.         case ACT_DARK:
  68.             dark();
  69.             break;
  70.         case ACT_INIT:
  71.             p_data_proc->p_gadg=my_gadg;
  72.             p_data_proc->p_texte=p_text_info;
  73.             
  74.             p_data_proc->p_func_dark=&dark;
  75.             p_data_proc->code_ret=DARK_WB_13;
  76.             proc_init();
  77.             break;
  78.         case ACT_PARAM:
  79.             break;
  80.         case ACT_END:
  81.             proc_end();
  82.             break;
  83.         default:
  84.             break;
  85.     }
  86.      }
  87. }
  88.  
  89.