/* Tidies up after sMOVIE Martin J. Round. 15-Oct-89 */ #include "sMOVIE.h" extern struct GfxBase *GfxBase; extern struct IntuitionBase *IntuitionBase; extern struct DosLibrary *DosBase; extern struct Library *DiskfontBase; extern struct TextFont *tf[MAXFONTS+1], *font, *defaultfont; extern struct View v; extern struct ViewPort vp; extern struct BitMap b; extern struct Window *window; extern char *txstart; extern int fonts,textsiz,cmdsiz,bitmapheight,maxwidth,maxdepth; extern short *cmdstart; extern BPTR _Backstdout; void free_memory(level) int level; /* indicates what to try and free */ { int i; switch (level) { case 10: for(i=0; i=0; i--) if (tf[i]) CloseFont(tf[i]); CloseLibrary((struct Library *)DiskfontBase); } case 4: CloseFont(defaultfont); case 3: if (window) CloseWindow(window); CloseLibrary((struct Library *)GfxBase); case 2: CloseLibrary((struct Library *)DosBase); case 1: CloseLibrary((struct Library *)IntuitionBase); break; } /* switch */ if (_Backstdout) Close(_Backstdout); } /* end of free_memory */ void off_sprite() { /* kludge 'cos OFF_SPRITE won't work for me */ unsigned short *addr; addr = (unsigned short *) 0x0dff096; *addr = 0x0020; } void on_sprite() { /* kludge 'cos ON_SPRITE won't work for me */ unsigned short *addr; addr = (unsigned short *) 0x0dff096; *addr = 0x8020; }