static int misc(lua_State *L) // fonction qui va changer { unsigned short n = lua_gettop(L); static const char *const opts[] ={"space","numcalc","exit","curseur","tostr","cont","prec","scrollx","scrolly","map"}; int o = luaL_checkoption(L, 1, "space", opts); long a; int b; unsigned char c = 100; char str[30]={0}; lua_Number parametre; lua_Number result = -1; if (o>=4 && o<7) a=(int)(lua_tonumber(L, 2)); if (o>=7 && o<9) {b = lua_toint(L,2); if (n==3) c= lua_toint(L,3); } switch(o) { case 0: result=40000 - (1024*lua_gc(L,LUA_GCCOUNT,0)+ lua_gc(L,LUA_GCCOUNTB,0));break;//coreleft()); break; // 40000 est la mémoire disponible estimée sur g85 case 1: result=85.f; break; case 2: reset_calc(); case 3: lua_pushnumber(L,cursx); lua_pushnumber(L,cursy); return 2; case 4: ltoa( a, (char*)&str,10 ) ; lua_pushstring(L, str); return 1; case 5: if (a==-1) ML_set_contrast(ML_get_contrast() -1) ; else if (a==1) ML_set_contrast(ML_get_contrast() +1); break; case 6: ndigit=a;break; case 7: //scrollx(b,c) ;break; case 8: break;//scrolly(b,c); break; case 9: if(!NetB)draw_bmp((char*)lua_tostring(L,2)); } lua_pushnumber(L,result); return 1; }
void draw_gameover(void) { short int ret = load_bmp("GO.BMP", &background_bmp); short int ret1 = load_bmp("CURSOR.BMP", &cursor_bmp); // Draw background to both buffers draw_bmp(background_bmp, 0, 240 - background_bmp->bmp_info_header->height, false, back_alpha, 1); swap_buffers(); draw_box( 90, 90, 110, 110, back_alpha, 1); draw_bmp(background_bmp, 0, 240 - background_bmp->bmp_info_header->height, false, back_alpha, 1); }
void updateGameOver(void) { static int firstUpdate = 0; if(!firstUpdate) { file_handle scores = open_file("scores.txt", false); if( scores == -1) { printf("UH OH...\n"); } byte dataByte = alt_up_sd_card_read(scores); int i = 0; char buf[50]; while(dataByte >= 0 && i < 15) { buf[i] = dataByte; i++; dataByte = alt_up_sd_card_read(scores); } char* test = "99999"; draw_string(test, FINAL_SCORE_X, FINAL_SCORE_Y); draw_string(test, HIGH_SCORE_X, HIGH_SCORE_Y); firstUpdate = 1; } draw_box( 90, 130, 110, 140, back_alpha, 1); draw_bmp(cursor_bmp, 0, 240-cursor_bmp->bmp_info_header->height, false, back_alpha, 1); if(!button_states[0] || (!prev_controller_state.B_BUTTON && controller_state.B_BUTTON )) { close_bmp(background_bmp); changeState(MAIN_MENU); } else if(!button_states[1] || (!prev_controller_state.Y_BUTTON && controller_state.Y_BUTTON)) { close_bmp(background_bmp); changeState(LOADING_SCREEN); } }
void draw_view(View* view) { if (!view) return; //inform subviews that we're being redrawn //dirtied = 1; //fill view with its background color draw_rect(view->layer, rect_make(point_zero(), view->frame.size), view->background_color, THICKNESS_FILLED); //draw any bmps this view has for (int i = 0; i < view->bmps->size; i++) { Bmp* bmp = (Bmp*)array_m_lookup(view->bmps, i); if (bmp) { draw_bmp(view->layer, bmp); } } //draw any labels this view has for (int i = 0; i < view->labels->size; i++) { Label* label = (Label*)array_m_lookup(view->labels, i); draw_label(view->layer, label); } //draw buttons for (int i = 0; i < view->buttons->size; i++) { Button* button = (Button*)array_m_lookup(view->buttons, i); if (button) { draw_button(view->layer, button); } } //draw each subview of this view for (int i = 0; i < view->subviews->size; i++) { View* subview = (View*)array_m_lookup(view->subviews, i); draw_view(subview); blit_layer(view->layer, subview->layer, rect_make(subview->frame.origin, subview->layer->size), rect_make(point_zero(), subview->layer->size)); } view->needs_redraw = 0; }
/** * Meniul de navigare in fisiere */ void printdirs(struct DIR * dir){ char namebuf [12]; uint32_t size = 0; uint8_t bitmap = 0, selected = 0, cnt = 0, ret_code = 0, is=0; struct dirent * crt_dir; do{ /* Afisam continutul directorului curent */ rewinddir(dir); LCD_clear(); cnt = 0; while(1){ crt_dir = readdir( dir, buffer); ret_code = check (crt_dir); if(ret_code == DIR_INVALID) continue; if(ret_code == DIR_END) break; get_dirent_name(crt_dir, namebuf); if(cnt ++ == selected){ LCD_str( namebuf,SELECTED ); }else{ LCD_str( namebuf, NOT_SELECTED); } } /* Asteptam sa selecteze un fisier sau director */ bitmap = BTN_wait(); switch(bitmap){ case UP: selected = (selected +1)%cnt; continue; case DOWN: selected = (selected + cnt-1) % cnt; continue; case ENTER: rewinddir(dir); selected ++; while(1){ crt_dir = readdir( dir, buffer); ret_code = check (crt_dir); if( ret_code == DIR_VALID) selected--; if( !selected ) break; } break; default: continue; } is_dir(crt_dir, &is); if( is){ dir = opendir(crt_dir); }else{ get_dirent_size(crt_dir, &size); open_f(crt_dir); /* Curatam ecranul si afisam poza */ LCD_clear(); draw_bmp(); close_f(); /* Asteptam sa apese butonul de exit */ while( BTN_wait() != CLOSE); } }while(1); exit(EXIT_SUCCESS); }
void draw_signal(struct signal *signal_data, struct signal *old_signal, screen_t screen) { char dec_buf[11]; int val,count; if (signal_data->ber!=old_signal->ber) { draw_progressbar(screen,0,0,6,119,&max_values[0],signal_data->ber,4|1);//1656720 max? memset(dec_buf,0x20,10); dec_buf[10]=0; val=signal_data->ber; for(count=9;count>=0;count--) { dec_buf[count]=(val%10)+0x30; val/=10; if(val==0) break; } render_string(screen,32,8,dec_buf); } if (signal_data->snr!=old_signal->snr) { draw_progressbar(screen,0,18,6,119,&max_values[1],signal_data->snr,4|1); memset(dec_buf,0x20,10); dec_buf[10]=0; val=signal_data->snr; for(count=9;count>=0;count--) { dec_buf[count]=(val%10)+0x30; val/=10; if(val==0) break; } render_string(screen,32,26,dec_buf); } if (signal_data->strength!=old_signal->strength) { draw_progressbar(screen,0,37,6,119,&max_values[2],signal_data->strength,4|1); memset(dec_buf,0x20,10); dec_buf[10]=0; val=signal_data->strength; for(count=9;count>=0;count--) { dec_buf[count]=(val%10)+0x30; val/=10; if(val==0) break; } render_string(screen,32,45,dec_buf); } if ((signal_data->status&FE_HAS_SIGNAL) != (old_signal->status&FE_HAS_SIGNAL)) { if(signal_data->status&FE_HAS_SIGNAL) { /* we got signal */ draw_bmp(screen,signal_icon,120-signal_icon[0],64-signal_icon[1]); render_string(screen,0,56,"??? "); } else { /* we lost signal */ draw_rectangle(screen,120-signal_icon[0],64-signal_icon[1],120,64,4); render_string(screen,0,56,"NO SIGNAL "); } } if ((signal_data->status&FE_HAS_LOCK) != (old_signal->status&FE_HAS_LOCK)) { if (signal_data->status&FE_HAS_LOCK) draw_bmp(screen,lock_icon,120-lock_icon[0]-8,64-lock_icon[1]); else draw_rectangle(screen,120-lock_icon[0]-8,64-lock_icon[1],120,64,4); } memcpy(old_signal,signal_data,sizeof(struct signal)); }
int main(){ printf("NEW GAME!\n\n"); volatile int old_game_state = 0; int doge = 0; //animation counter //buffer init stuff pixel_buffer = alt_up_pixel_buffer_dma_open_dev("/dev/pixel_buffer_dma"); char_buffer = alt_up_char_buffer_open_dev("/dev/char_drawer"); //phil's stuff master* m = master_init(); printf("NEW GAME!\n\n"); // Set the 1st buffer address alt_up_pixel_buffer_dma_change_back_buffer_address(pixel_buffer,pixel_buffer_addr1); // Swap buffers – we have to swap because there is only an API function // to set the address of the background buffer. alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while (alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)); // Set the 2nd buffer address alt_up_pixel_buffer_dma_change_back_buffer_address(pixel_buffer,pixel_buffer_addr2); printf("NEW GAME!\n\n"); // Clear the screen alt_up_pixel_buffer_dma_clear_screen(pixel_buffer, 1); alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while (alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)); alt_up_pixel_buffer_dma_clear_screen(pixel_buffer, 1); alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while (alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)); alt_up_char_buffer_clear(char_buffer); //Write some text alt_up_char_buffer_string(char_buffer, "LOADING...", 0, 0); //load bitmap files title = read_bmp("title.bmp"); alt_up_char_buffer_string(char_buffer, "title.bmp", 0, 2); menu = read_bmp("menu.bmp"); alt_up_char_buffer_string(char_buffer, "MENU.BMP", 0, 3); selA = read_bmp("selA.bmp"); alt_up_char_buffer_string(char_buffer, "selA.bmp", 0, 4); selB = read_bmp("selB.bmp"); alt_up_char_buffer_string(char_buffer, "selB.bmp", 0, 5); selC = read_bmp("selC.bmp"); alt_up_char_buffer_string(char_buffer, "selC.bmp", 0, 6); dead = read_bmp("dead.bmp"); alt_up_char_buffer_string(char_buffer, "dead.bmp", 0, 7); bmp * b = read_bmp("para1.bmp"); alt_up_char_buffer_string(char_buffer, "para.bmp", 0, 8); bmp * doge0 = read_bmp("doge0.bmp"); alt_up_char_buffer_string(char_buffer, "doge0.bmp", 0, 9); bmp * doge1 = read_bmp("doge1.bmp"); alt_up_char_buffer_string(char_buffer, "doge1.bmp", 0, 10); bmp * doge2 = read_bmp("doge2.bmp"); alt_up_char_buffer_string(char_buffer, "doge2.bmp", 0, 11); bmp * doge3 = read_bmp("doge3.bmp"); alt_up_char_buffer_string(char_buffer, "doge3.bmp", 0, 12); bmp * flat = read_bmp("flat.bmp"); alt_up_char_buffer_string(char_buffer, "flat.bmp", 0, 13); bmp * coin = read_bmp("coin.bmp"); alt_up_char_buffer_string(char_buffer, "coin.bmp", 0, 14); bmp * spike = read_bmp("spike.bmp"); alt_up_char_buffer_string(char_buffer, "spike.bmp", 0, 15); bmp * box1 = read_bmp("box1.bmp"); alt_up_char_buffer_string(char_buffer, "box1.bmp", 0, 16); bmp * box3 = read_bmp("box3.bmp"); alt_up_char_buffer_string(char_buffer, "box3.bmp", 0, 17); bmp * low = read_bmp("low.bmp"); alt_up_char_buffer_string(char_buffer, "low.bmp", 0, 18); bmp * flatb = read_bmp("flatb.bmp"); alt_up_char_buffer_string(char_buffer, "flatb.bmp", 0, 19); bmp * flatr = read_bmp("flatr.bmp"); alt_up_char_buffer_string(char_buffer, "flatr.bmp", 0, 20); bmp * blue = read_bmp("bstar.bmp"); alt_up_char_buffer_string(char_buffer, "blue.bmp", 0, 21); bmp * red = read_bmp("rstar.bmp"); alt_up_char_buffer_string(char_buffer, "red.bmp", 0, 22); bmp * flag_img = read_bmp("flag.bmp"); alt_up_char_buffer_string(char_buffer, "flag.bmp", 0, 23); name = read_bmp("name.bmp"); alt_up_char_buffer_string(char_buffer, "name.bmp", 0, 24); instr = read_bmp("instr.bmp"); alt_up_char_buffer_string(char_buffer, "instr.bmp", 0, 25); dcol = read_bmp("dcol.bmp"); alt_up_char_buffer_string(char_buffer, "dcol.bmp", 0, 26); win = read_bmp("win.bmp"); alt_up_char_buffer_string(char_buffer, "win.bmp", 0,27); alt_up_char_buffer_clear(char_buffer); printf("NEW GAME!\n\n"); //interrupt init stuff (for object writing) //TIMERPERIOD int timer_period = 1 * 500000; IOWR_16DIRECT(TIMER_0_BASE, 8, timer_period & 0xFFFF); //writes the period to the hardware timer IOWR_16DIRECT(TIMER_0_BASE, 12, timer_period >> 16); IOWR_16DIRECT(TIMER_0_BASE, 4, 1 << 3); //stop timer alt_irq_register(TIMER_0_IRQ,NULL,(void*)handle_timer_interrupts);//registers function to a specific IRQ //IOWR_16DIRECT(TIMER_0_BASE, 4, 0x5); //start timer //SET UP KEYBOARD INTERRUPT// ps2 = alt_up_ps2_open_dev(KEYBOARD_NAME); alt_up_ps2_init(ps2); alt_up_ps2_clear_fifo(ps2); //void* keyboard_control_register_ptr = (void*) (PS2_0_BASE + 4); alt_irq_register(PS2_0_IRQ, m, keyboard_ISR); alt_up_ps2_enable_read_interrupt(ps2); char sw = 0; char p_sw = 0; ///////////////////////////////////////////////////////////////////////// printf("NEW GAME!\n\n"); //SUPERDUPERLOOP while (1){ printf("old state:%i\nnew state: %i\n\n",old_game_state, game_state); draw_menu(game_state); //update screen while (old_game_state == game_state); printf("old state:%i\nnew state: %i\n\n",old_game_state, game_state); //only when entering a new menu alt_up_char_buffer_clear(char_buffer); //ENTER GAME LOOP if (game_state == 5){ printf("START GAME! LEVEL: %i\n\n", highlighted_level); alt_up_char_buffer_string(char_buffer, playername, 10, 4); if (highlighted_level == 1) { free_bmp(b); b = read_bmp("para1.bmp"); game_start(m,b,"lvl/1.txt","song1.wav"); } else if (highlighted_level == 2) { free_bmp(b); b = read_bmp("bg2.bmp"); game_start(m,b,"lvl/2.txt","a/abcd.wav"); } else{ free_bmp(b); b = read_bmp("bg3.bmp"); game_start(m,b,"lvl/2.txt","a/nyan1.wav"); } //collision loop while(!m->c->collide && !m->c->win){ alt_up_char_buffer_string(char_buffer, "POINTS: ", 50, 4); char str[15]; sprintf(str, "%d", m->c->points); alt_up_char_buffer_string(char_buffer, str, 58, 4); sw = IORD_8DIRECT(SWITCHES_BASE,0); IOWR_8DIRECT(LEDS_BASE,0,sw); if(sw == 1 && p_sw == 0){ //m->ab->sfx_flag = 1; m->c->jump_pressed = 1; } p_sw = sw; //boxes int i; for( i= 0 ; i < OBJECT_SIZE ; i++) { if(m->o->color[i] == -1) draw_object(pixel_buffer, box, flat, i); else if(m->o->color[i] == 0) draw_object(pixel_buffer, box, flatb, i); else if(m->o->color[i] == 1) draw_object(pixel_buffer, box, flatr, i); draw_object(pixel_buffer, co, coin, i ); draw_object(pixel_buffer, spikes, spike, i); draw_object(pixel_buffer, box_3, box3, i); draw_object(pixel_buffer, box_1, box1, i); // if(m->color_gates->color[i] == 1) // draw_object(pixel_buffer,cgates, rgate,i); // else if (m->color_gates->color[i] == 0) // draw_object(pixel_buffer,cgates, bgate,i); } //draws the win flag draw_object(pixel_buffer, flag, flag_img, 0); //Draw Doge if (m->c->ducking) draw_bmp(pixel_buffer,m->c->x - m->c->width, m->c->y - m->c->height,low); else{ doge++; if(doge == 37) doge = 0; if( doge <9) draw_bmp(pixel_buffer,m->c->x - m->c->width, m->c->y - m->c->height,doge0); else if (doge <18) draw_bmp(pixel_buffer,m->c->x - m->c->width, m->c->y - m->c->height,doge1); else if (doge <27) draw_bmp(pixel_buffer,m->c->x - m->c->width, m->c->y - m->c->height,doge2); else draw_bmp(pixel_buffer,m->c->x - m->c->width, m->c->y - m->c->height,doge3); } //Draw Color Indicator if(m->c->color == 0) draw_bmp(pixel_buffer, m->c->x- m->c->width + 5, m->c->y - m->c->height - 10, blue); else draw_bmp(pixel_buffer,m->c->x- m->c->width + 5, m->c->y - m->c->height - 10, red); p_counter++; if(p_counter == 3){ p_shift++; alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while(alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)) refill_buffer(m->ab, "a/abcd.wav");//refills the audio buffer unrolled_parallax_draw(pixel_buffer, b); }else if(p_counter == 4){ //if(p_counter == 1){ alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while(alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)) refill_buffer(m->ab, "a/abcd.wav");//refills the audio buffer unrolled_parallax_draw(pixel_buffer, b); p_counter = 0; }else{ // alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); // while(alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)) // refill_buffer(m->ab, "a/abcd.wav");//refills the audio buffer // unrolled_parallax_draw(pixel_buffer, b); alt_up_pixel_buffer_dma_swap_buffers(pixel_buffer); while(alt_up_pixel_buffer_dma_check_swap_buffers_status(pixel_buffer)) refill_buffer(m->ab, "a/abcd.wav");//refills the audio buffer int j; for( j = 0 ; j < OBJECT_SIZE ; j++) { clear_object(pixel_buffer, box, b, j); clear_object(pixel_buffer, co, b, j); clear_object(pixel_buffer, spikes, b, j); clear_object(pixel_buffer, box_3, b, j); clear_object(pixel_buffer, box_1, b, j); } clear_object(pixel_buffer,flag,b,0); //clear doge clear_doge(pixel_buffer, m->c->x - m->c->width, m->c->y - m->c->height , b); //clear_loc(pixel_buffer,m->c->x- m->c->width + 5, m->c->y - m->c->height - 10,m->c->x- m->c->width + 5 - 10, m->c->y - m->c->height - 20,b); } } alt_up_char_buffer_string(char_buffer, "POINTS: ", 50, 4); char str[15]; sprintf(str, "%d", m->c->points); alt_up_char_buffer_string(char_buffer, str, 58, 4); printf("game exited\n"); if(m->c->win) game_state = 7; else game_state = 6; highlighted_item = 3; game_reset(m); } //exit game mode, restart superduperloop in main menu old_game_state = game_state; } return 0; }
// program entry point int main() { int errCode; struct LCD_Geometry *pointCurrent= &Current; struct LCD_Properties *pointProperties = &Properties; FILE lcd_str = FDEV_SETUP_STREAM(TerminalChar, NULL, _FDEV_SETUP_RW); stdout = &lcd_str; FRESULT rc; /* Result code */ DIR dir; /* Directory object */ FILINFO fno; /* File information object */ UINT bw, br, i; USART_init(); SPI_MasterInit(); SSD1289_Initalize(); UTouch_InitTouch(0); LCD_Fill_Rectangle(0,0, 320,240,0x000000); terminalemulator(); Terminal_Set_Properties(2, 1, 0xFFFFFF); //while(1) { Paint_Program();} printf("Serial Default Output"); /* Init the MMC */ printf("mmc_init\n"); //disk_initialize(0); mmc_init(); /// Drive must be mounted before use // Drive 0 - signifies SD System /// Halt on anything other than mounting system okay errCode = f_mount(0, &filesystem); if (errCode != FR_OK) { printf("Error: f_mount failed, error code: %d\r", errCode); printf("Please refer to error list"); while (1); // freeze } printf("\n Mounted File System: Type SD"); // Draw BMP printf("\nCreate a new file (hello.txt).\n"); rc = f_open(&file, "HELLO.TXT", FA_WRITE | FA_CREATE_ALWAYS); printf("\nWrite a text data. (Hello world!)\n"); rc = f_write(&file, "Hello world!\r\n", 14, &bw); printf("%u bytes written.\n", bw); printf("\nClose the file.\n"); rc = f_close(&file); while(1){ //printf("\nOpen root directory.\n"); rc = f_opendir(&dir, ""); //printf("\nDirectory listing...\n"); for (;;) { rc = f_readdir(&dir, &fno); /* Read a directory item */ if (rc || !fno.fname[0]) break; /* Error or end of dir */ if (fno.fattrib & AM_DIR) printf(" <dir> %s\n", fno.fname); else { //printf("%8lu %s\n", fno.fsize, fno.fname); draw_bmp(0,0,fno.fname); } } } }