// drawEndMessage - draws the message at games end (i.e. winner, loser, quitter) void drawEndMessage(short int ending) { short int x, offset = 0; unsigned short int *sprite = endings[--ending]; for (x = 8; x < 152; x += 16) { Sprite16(x,38,25,sprite+offset,LCD_MEM,SPRT_AND); Sprite16(x,38,25,sprite+offset,LCD_MEM,SPRT_OR); offset += 25; } }
/*===========================================================================*/ static inline short Test16(void) { unsigned long measure_val; char tmpstr[100]; short x,y; long count; //------------------------------------------------------------------------- // original sprite functions //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16(x,y,8,spritedata16,LCD_MEM,SPRT_AND); Sprite16(x,y,8,spritedata16,LCD_MEM,SPRT_OR); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"TIGCCLIB AND+OR: %lu tics for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; #if __TIGCCLIB_VERSION__ >= 272 //------------------------------------------------------------------------- // original sprite functions with RPLC (GCC4TI 0.96 Beta 10+) //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16(x,y,8,spritedata16,LCD_MEM,SPRT_RPLC); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"TIGCCLIB RPLC: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; #endif //------------------------------------------------------------------------- // modified sprite functions using separate and/or //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16_AND_R(x,y,8,spritedata16,LCD_MEM); Sprite16_OR_R(x,y,8,spritedata16,LCD_MEM); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"ExtGraph AND+OR: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; //------------------------------------------------------------------------- // modified sprite functions using just one call //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16_MASK_R(x,y,8,spritedata16,spritedata16,LCD_MEM); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"ExtGraph MASK: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16_BLIT_R(x,y,8,spritedata16,0x0000,LCD_MEM); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"ExtGraph BLIT: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16_RPLC_R(x,y,8,spritedata16,LCD_MEM); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"ExtGraph RPLC: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; //------------------------------------------------------------------------- // original sprite functions //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16(x,y,8,spritedata16,LCD_MEM,SPRT_XOR); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"TIGCCLIB XOR: %lu tics for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); if (ngetchx() == KEY_ESC) return KEY_ESC; //------------------------------------------------------------------------- // modified sprite functions //------------------------------------------------------------------------- count = 0; ClrScr(); OSTimerRestart(USER_TIMER); for (y=0;y<100-16;y++) { for (x=0;x<160-16;x++) { count++; Sprite16_XOR_R(x,y,8,spritedata16,LCD_MEM); } } measure_val = OSTimerCurVal(USER_TIMER); sprintf(tmpstr,"ExtGraph XOR: %lu ticks for %ld sprites",INITIAL_TIMER_VALUE-measure_val,count); ST_helpMsg(tmpstr); return ngetchx(); }
inline void drawRType(POSITION pos) { Sprite16(pos.x*8,pos.y*8,R_TYPE_HT,r_type_light,GrayGetPlane(LIGHT_PLANE),SPRT_XOR); Sprite16(pos.x*8,pos.y*8,R_TYPE_HT,r_type_dark,GrayGetPlane(LIGHT_PLANE),SPRT_XOR); Sprite16(pos.x*8,pos.y*8,R_TYPE_HT,r_type_mid,GrayGetPlane(DARK_PLANE),SPRT_XOR); Sprite16(pos.x*8,pos.y*8,R_TYPE_HT,r_type_dark,GrayGetPlane(DARK_PLANE),SPRT_XOR); }
// same stuff for the other sprites inline void drawShip(POSITION pos, int map_x_location) { Sprite16((pos.x-map_x_location)*8,pos.y*8,SHIP_HT,ship_light,GrayGetPlane(LIGHT_PLANE),SPRT_XOR); Sprite16((pos.x-map_x_location)*8,pos.y*8,SHIP_HT,ship_dark,GrayGetPlane(LIGHT_PLANE),SPRT_XOR); Sprite16((pos.x-map_x_location)*8,pos.y*8,SHIP_HT,ship_mid,GrayGetPlane(DARK_PLANE),SPRT_XOR); Sprite16((pos.x-map_x_location)*8,pos.y*8,SHIP_HT,ship_dark,GrayGetPlane(DARK_PLANE),SPRT_XOR); }