// #define GTC_ONCALC //undo this line if with GCC4TI #define MIN_AMS 200 #include #ifdef GTC_ONCALC long al(long a) {return a;} long mu(long a,long b) {return a*b;} long di(long a,long b) {return a/b;} #else #define al(a) (a) #define mu(a,b) (a)*(b) #define di(a,b) (a)/(b) #endif #define WITH_GRAPHH WINDOW wind; unsigned char is_interh; unsigned char *lcdad; unsigned char gmode; INT_HANDLER OldInt5 = NULL; long ir; long var1,var3,var6,var7,var8,var9,var10,var13,var17,var18,var19,var20,var21,var22,var23,var24,var25; int psw5[]={800,500,300,0}; int psw14[]={16384,24688,29132,32766,32767,252}; char psb15[]={24,126,231,231,126,24}; char psb16[]={128,192,224,240,248,252,248,240,224,192,128}; long fc1(long); long fiy0(void),fiy1(void); #include #include #include #include #ifdef WITH_GRAPHH #ifdef GTC_ONCALC #include #else #include #endif #endif #include #include #include #include long fiy0(void) { if(((long)(var3))==((long)(51))) { f_finish_(0); } } long fiy1(void) { if((var23)<(3)) { (++((var23))); printf_xy(100,95,"bullets : %ld ",(long)var23); } } long fc1(long var12) { f_dline_(var12,0,var12,var9,gmode,lcdad); f_dline_(var12,99,var12,al((99)-(var10)),gmode,lcdad); var9=(long)((var9)+(var7)); var10=(long)((var10)+(var8)); if((var9)>=(40)) { var7=(long)(-random((var6)+(1))); } else { if((var9)>=(5)) { var7=(long)((random((mu(2,var6))+(1)))-(var6)); } else { var7=(long)(random((var6)+(1))); } } if((var10)>=(40)) { var8=(long)(-random((var6)+(1))); } else { if((var10)>=(5)) { var8=(long)((random((mu(2,var6))+(1)))-(var6)); } else { var8=(long)(random((var6)+(1))); } } } void _main(void) { is_interh=1; init_inter(); OldInt5=GetIntVec(AUTO_INT_5); SetIntVec(AUTO_INT_5,MyInt5); #ifdef GTC_ONCALC #ifdef WITH_GRAPHH loadasm(); #endif #endif lcdad=0x4C00; gmode=0; kbq=kbd_queue (); randomize(); var1=(long)(500); label_2:; f_clrscr_(lcdad); (gmode=2); FontSetSys(2); f_drawstr_(40,20,(char*)("CAVE BLASTER"),gmode); FontSetSys(1); f_drawstr_(40,40,(char*)("1Start"),gmode); f_drawstr_(40,50,(char*)("2Select difficulty"),gmode); f_drawstr_(40,60,(char*)("3Exit"),gmode); var3=(long)(f_keywait_()); if(((long)(var3))==((long)(49))) {goto label_4;} fiy0(); if(((long)(var3))==((long)(50))) { execbas(basicfh0); var1=(long)(psw5[(tios("rtn"))-(1)]); goto label_2; } label_4:; f_keyclear_(); f_clrscr_(lcdad); FontSetSys(2); f_drawstr_(50,45,(char*)("Loading..."),gmode); f_clrscr_(lcdad); var6=(long)(2); var7=(long)(-2); var8=(long)(-2); var9=(long)(35); var10=(long)(35); for(var13=0;var13!=(159+1);var13+=1) { fc1(var13); } f_setlcd_((char*)19456,&lcdad); var17=(long)(10); var18=(long)(47); var19=(long)(170); (gmode=2); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); var13=(long)(159); var20=(long)(0); var21=(long)(200); var22=(long)(48); var23=(long)(3); var24=(long)(0); FontSetSys(0); printf_xy(100,95,"bullets : %ld ",(long)var23); printf_xy(50,95,"Score : %ld ",(long)var24); f_inter_(1,18*20); f_inter_(2,9); while(((long)((_keytest(RR_ESC)&_keytest(RR_ESC))))==((long)(0))) { f_wait_(di(var1,150)); (++((var20))); if((((long)(var20%10))==((long)(0))) && ((var1)>(0))) { (--((var1))); } f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); f_lscroll2_((char*)(95),lcdad); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); fc1(var13); if((((_keytest(RR_UP)&_keytest(RR_UP)))!=(0)) && ((var18)>(5))) { f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); (--((var18))); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); } if((((_keytest(RR_DOWN)&_keytest(RR_DOWN)))!=(0)) && ((var18)<((95)-(5)))) { f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); (++((var18))); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); } if((((_keytest(RR_RIGHT)&_keytest(RR_RIGHT)))!=(0)) && ((var17)<(130))) { f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); (++((var17))); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); } if((((_keytest(RR_LEFT)&_keytest(RR_LEFT)))!=(0)) && ((var17)>(5))) { f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); var17=(long)((var17)-(2)); f_sprt16_(var17,var18,6,(unsigned int*)(psw14),gmode,lcdad); } if((var21)<((var19)+(10))) { "gmode(gand)"; "sprt8(xb-1,yb,11,ballmask)"; (gmode=1); f_fillrect_(al((var21)-(1)),var22,al((var21)+(8)),al((var22)+(10)),gmode,lcdad); var21=(long)((var21)+(3)); (gmode=2); if((var21)<((var19)+(10))) { f_sprt8_(var21,var22,11,(unsigned char*)(psb16),gmode,lcdad); } } if((_keytest(RR_2ND)&_keytest(RR_2ND))) { if(((((long)(var25))==((long)(0))) && ((var21)>(var19))) && ((var23)>(0))) { (--((var23))); printf_xy(100,95,"bullets : %ld ",(long)var23); printf_xy(50,95,"Score : %ld ",(long)var24); var21=(long)((var17)+(20)); var19=(long)((var21)+(60)); var22=(long)((var18)-(2)); (gmode=1); f_fillrect_(al((var21)-(1)),var22,al((var21)+(8)),al((var22)+(10)),gmode,lcdad); (gmode=2); f_sprt8_(var21,var22,11,(unsigned char*)(psb16),gmode,lcdad); } var25=(long)(1); } else { var25=(long)(0); } if(((long)(var20%30))==((long)(0))) { f_sprt8_(150,al((40)+(random(40))),6,(unsigned char*)(psb15),gmode,lcdad); var24=(long)((var24)+(10)); } if(f_gpix_(al((var17)+(15)),al((var18)+(2)),lcdad)) { FontSetSys(2); f_inter_(0,0); for(ir=0;ir<10;ir++) OSContrastUp(); ; for(ir=0;ir<20000;ir++) 0; ; f_clrscr_(lcdad); for(ir=0;ir<10;ir++) OSContrastDn(); ; f_drawstr_(al((53)-(15)),46,(char*)("GAME OVER"),gmode); printf_xy((53)-(15),70,"SCORE : %ld",(long)var24); f_keydisp_(); gkey(); f_keywait_(); goto label_26; } } f_keywait_(); label_26:; execbas(basicfh1); f_finish_(0); }