#include #include #include "SoundEffects.h" #include "GraphicPrim.h" #include "BackGround.h" #include "JoyPad.h" #include "LevelManager.h" #include <__rts_info_t__.h> static int ActualLevel; static int Success[15]; // Generates the heap to be able to use malloc void GenerateHeap() { unsigned long start=(_end & 0xFFFFFFF0L)+0x10; unsigned long size=((_stack_addr-(_stack_size<<10)) & 0xFFFFFFF0L)-start; InitHeap((unsigned long *) start, size); } // Returns true if game should be aborted static int SelectLevel() { int result; int select; int i; PlayScreenMusic(); for(i=51;i>=0;i--) { setFadingValue(i); DisplayMain(ActualLevel,Success[ActualLevel]); } result=0; select=0; while((result==0)&&(select==0)) { DisplayMain(ActualLevel,Success[ActualLevel]); RequestPads(); if (BuffLeft()) { if (ActualLevel!=0) { ActualLevel--; DirectStep(); } else PlayNoResult(); } if (BuffRight()) { if (ActualLevel!=14) { DirectStep(); ActualLevel++; } else PlayNoResult(); } if (Cross()) { // PlayYeah(); select=1; } // if (Stop()) // result=1; } for(i=0;i<=51;i++) { setFadingValue(i); DisplayMain(ActualLevel,Success[ActualLevel]); } StopSound(); return result; } main() { int i; int abort; abort=0; ActualLevel=0; for(i=0;i<15;i++) Success[i]=0; GenerateHeap(); InitializeGraphic(); DisplayStartScreen("ImageData/title.tim"); InitializePads(); LoadObjects(); InitializeBackground(); InitSound(); InitializeSpaces(); while(abort==0) { abort=SelectLevel(); if (abort==0) { InitializeLevel(ActualLevel); Success[ActualLevel]=PlayLevel()||Success[ActualLevel]; } } }