- #include "demo.h" 
- #include "globvars.h" 
- #include "graphics.h" 
- #include "harness/trace.h" 
- #include "input.h" 
- #include "loading.h" 
- #include "pd/sys.h" 
- #include "s3/s3.h" 
- #include "sound.h" 
- #include "utility.h" 
- #include <stdlib.h> 
-   
- int gLast_demo; 
-   
- // IDA: void __cdecl DoDemo() 
- void DoDemo(void) { 
-     tS32 start_time; 
-     tS32 frame_time; 
-     FILE* f; 
-     tPath_name the_path; 
-     int i; 
-     int count; 
-     char s[256]; 
-     //char* str; // Pierre-Marie Baty -- unused variable 
-     tS3_sound_tag song_tag; 
-     LOG_TRACE("()"); 
-   
-     PathCat(the_path, gApplication_path, "DEMOFILE.TXT"); 
-     f = DRfopen(the_path, "rt"); 
-     if (f == NULL) { 
-         return; 
-     } 
-     count = GetAnInt(f); 
-     gLast_demo++; 
-     if (gLast_demo >= count) { 
-         gLast_demo = 0; 
-     } 
-     for (i = 0; i <= gLast_demo; i++) { 
-         GetALineAndDontArgue(f, s); 
-     } 
-     PathCat(the_path, gApplication_path, s); 
-     f = DRfopen(the_path, "rb"); 
-     if (f == NULL) { 
-         return; 
-     } 
-   
-     ClearEntireScreen(); 
-     song_tag = S3StartSound(gEffects_outlet, 10000); 
-     DRSetPalette(gRender_palette); 
-     FadePaletteUp(); 
-   
-     while (1) { 
-         SoundService(); 
-         start_time = PDGetTotalTime(); 
-         frame_time = ReadS32(f); 
-         fread(- gBack_screen ->- pixels ,-  gBack_screen ->- height  *-  gBack_screen ->- width , 1,-  f );
 
-         PDScreenBufferSwap(0); 
-         while (frame_time > PDGetTotalTime() - start_time && !AnyKeyDown() && !EitherMouseButtonDown()) { 
-             // FIXME: sleep? SoundService? 
-         } 
-         if (!S3SoundStillPlaying(song_tag)) { 
-             song_tag = S3StartSound(gEffects_outlet, 10000); 
-         } 
-         if (- AnyKeyDown () ||-  EitherMouseButtonDown () || feof(- f )) {
 
-             break; 
-         } 
-     } 
-     S3StopSound(song_tag); 
-     S3StopOutletSound(gEffects_outlet); 
-     S3StopAllOutletSounds(); 
-     FadePaletteDown(); 
-     WaitForNoKeys(); 
- } 
-