#include #include "lib2d.h" #include "addrs.h" #include "pad.h" GsSPRITE start0; GsSPRITE start1; GsSPRITE help0; GsSPRITE help1; GsSPRITE credits0; GsSPRITE credits1; void ShowIns(); void ShowIns1(); void ShowIns2(); void ProcessPadMenu(); //void ProcessPadins1(); //void ProcessPadins2(); void InitialiseSprites(); void GetScreen(); void ShowStart(); static u_long MenuRunning = TRUE; static u_long Startsc1 = TRUE; int page = 1; int MenuChangeDelay=0; void main() { PadInit(); Initialise2DGraphics(); LoadTextures(); InitialiseSprites(); //ShowIns(); while(MenuRunning) { ProcessPadMenu(); GetScreen(); } // main game loop ResetGraph(3); } void ProcessPadMenu() { u_long PAD = PadRead(); if(MenuChangeDelay>15) // MenuChangeDelay limits how fast you can change between menu options // Without it, menu cycling is FAR too fast :) { if(PAD& PADselect) MenuRunning = FALSE; if(PAD& PAD2select) MenuRunning = FALSE; if(PAD& PADLdown) { page++; MenuChangeDelay=0; } if(PAD& PADLup) { page--; MenuChangeDelay=0; } if(page>3) page=1; if(page<1) page=3; } FntPrint("Page: %d.\n",page); // force text output to the PSX screen FntFlush(-1); MenuChangeDelay++; } void GetScreen() { if (page==1) ShowIns(); if (page==2) ShowIns1(); if (page==3) ShowIns2(); } void InitialiseSprites() { SetSpriteInfo(&start1,START1_TIM,150,140); SetSpriteInfo(&start0,START0_TIM,142,140); SetSpriteInfo(&help0,HELP0_TIM,150,180); SetSpriteInfo(&help1,HELP1_TIM,147,175); SetSpriteInfo(&credits0,CREDITS0_TIM,155,210); SetSpriteInfo(&credits1,CREDITS1_TIM,155,210); } void ShowIns() { u_long PAD = PadRead(); RenderPrepare(); DrawSprite(&start1,3); DrawSprite(&help0,2); DrawSprite(&credits0,1); if(PAD& PADcross) { while(Startsc1) { ShowStart(); } } //if(PAD& PADstart) ShowStart(); RenderFinish(); } void ShowIns1() { RenderPrepare(); DrawSprite(&start0,3); DrawSprite(&help1,2); DrawSprite(&credits0,1); RenderFinish(); } void ShowIns2() { RenderPrepare(); DrawSprite(&start0,3); DrawSprite(&help0,2); DrawSprite(&credits1,1); RenderFinish(); } void ShowStart() { u_long PAD = PadRead(); if(PAD& PADselect) Startsc1 = FALSE; FntPrint("New: %d.\n",page); // force text output to the PSX screen FntFlush(-1); DrawSprite(&start1,3); }