// about static void switchabout() { system("cls"); if (about_is_show) { about_is_show = false; if (!visualization_isopen) { needupdatelist = true; needupdatevolume = true; needupdateprocbar = true; needshowhelp = true; } force_refresh_procbar = true; return; } about_is_show = true; printf("\n\n\n\n\n\n\n\n"); set_font_color(FONT_BLACK | BG_WHITE); printf(ABOUT_TEXT); set_font_color(FONT_WHITE); printf("\n\n\n\n" " < [A] Return >\n"); move_screen_cur(24, 79); }
static void show_processbar(short x, short y) { const int probar_length = size; char probar[probar_length + 1]; memset(probar, PROCESS_CHAR, probar_length); probar[probar_length] = '\0'; // moving bar-block if (current_sound >= 0 && sound_playing) { static int pos = 0; int new_pos = int(player->elapse() * float(probar_length) / sound_playing->length()); if (!force_refresh_procbar) { if (new_pos == pos) return; pos = new_pos; if (pos > probar_length - 1) return; } force_refresh_procbar = false; move_screen_cur(x, y); probar[pos] = '\0'; set_font_color(FONT_BLACK | BG_WHITE); printf(probar); set_font_color(FONT_WHITE); probar[pos] = PROCESS_CHAR; printf(probar + pos); } move_screen_cur(24, 79); }
// Prints a given array void print_scroll(u8 **scroll_array, enum Direction direction) { if (direction == horizontal) { consoleSelect(&bottom_screen); set_font_color(white); set_position(11, 1); for(u8 i = 0; i < 28; i++) iprintf("%c", *scroll_array[i]); } else if (direction == vertical) { consoleSelect(&bottom_screen); set_font_color(white); for(u8 i = 0; i < 21; i++) { set_position(2+i, 30); iprintf("%c", *scroll_array[i]); } } else if (direction == diagonal) { consoleSelect(&top_screen); set_font_color(white); for(u8 i = 0; i < 21; i++) { set_position(2+i, 4+i); iprintf("%c", *scroll_array[i]); } } }
// Clears the screen and rewrites the "Made by" sentence void reset_screens() { consoleSelect(&top_screen); consoleClear(); set_font_color(cyan); iprintf("Made by Lennart Kroes, s1062295"); consoleSelect(&bottom_screen); consoleClear(); set_font_color(cyan); iprintf("Made by Lennart Kroes, s1062295"); }
// Clears the screen and rewrites the "Made by" sentence on screen void reset_screens() { Color default_color = yellow; consoleSelect(&top_screen); consoleClear(); set_font_color(default_color); puts("Made by Lennart Kroes, s1062295\n"); consoleSelect(&bottom_screen); consoleClear(); set_font_color(default_color); puts("Made by Lennart Kroes, s1062295\n"); }
void Screen::init_control (Control* par) { set_background (C_SCREEN_BACKGROUND); set_foreground (C_FOREGROUND); set_font_color (C_FOREGROUND); set_frame (0); reinitialize (); }
init_screen(){ /* setup fonts/screen */ set_color_rgb(1, 7, 7, 7); set_font_color(1, 0); set_font_pal(0); load_default_font(); }
// Displays given Time object void display_time(Time* t) { set_position(t->position.x, t->position.y); set_font_color(t->color); printf("%s:", t->timezone->city); set_position(t->position.x + 1, t->position.y); printf("%02d:%02d:%02d", (t->clock->hour + t->timezone->time_diff), t->clock->minute, t->clock->second); if (t->timezone->time_diff < 0) printf(" (UTC%d)", t->timezone->time_diff); else printf(" (UTC+%d)", t->timezone->time_diff); }
// music visualization static void show_visualization(short row, short col) { move_screen_cur(row, col); const int width = 79; const int height = 24; char screenlines[width][height]; float ff_rate_step = 512.0f / width; for (int i = 0; i < width; i++) { float val = fft_rate[int(ff_rate_step * i)]; val = val / -5.0f; if (val > height) val = height; char *line = screenlines[i]; int iv = height - (int)val; if (iv < height) memset(line, ' ', height - iv); memset(line + height - iv, vis_char, iv); } for (int i = 0; i < height; i++) { if (i > height * 0.8f) set_font_color(FONT_LIGHT_GREEN); else if (i > height * 0.6f) set_font_color(FONT_LIGHT_YELLOW); else set_font_color(FONT_LIGHT_RED); char outstr[width+1]; for (int j = 0; j < width; j++) { outstr[j] = screenlines[j][i]; } outstr[width] = '\0'; printf("%s\n", outstr); } set_font_color(FONT_WHITE); }
static void show_list() { if (!needupdatelist) return; needupdatelist = false; // move cursor to left-up bound move_screen_cur(0, 0); printf(TITLE_TEXT); // show play-list for (int i = list_start; i <= list_end && i < SOUND_COUNT; i++) { bool cur_on = list_cur == i - list_start; bool playing_line = current_sound == i; if (cur_on) set_font_color(FONT_BLACK | BG_WHITE); else if (playing_line) set_font_color(FONT_LIGHT_BLUE); else set_font_color(FONT_WHITE); if (playing_line && one_loop) putchar('L'); else putchar(' '); const char *path = sounds[i] + 2; // +2È¥µôÇ°ÃæµÄ".\" char npath[80] = {0}; _snprintf_s(npath, sizeof(npath), MAX_NAME_LENGTH, " %d %s", i + 1, path); printf("%-79.79s", npath); set_font_color(FONT_WHITE); } }
void draw_bonus(player_data_t *plyr) { bonus_data_t* bonus = bonus_list; int i=0; while (bonus!=NULL) { i++; bonus_data_t* next_bonus = bonus->next; scalar_t anim_time = g_game.time-bonus->start_time; if (anim_time < BONUS_TIME_ANIMATION) { char *binding; font_t *font; //Use the same font as for FPS binding = "bonus"; if ( !get_font_binding( binding, &font ) ) { print_warning( IMPORTANT_WARNING, "Couldn't get font for binding %s", binding ); return; } char* string = bonus->bonus_string; set_font_color(font, color_from_time_delta(anim_time)); set_font_size(font, scale_from_time_delta(anim_time) * 12); scalar_t width, a, d; get_font_metrics_scalar( font, string, &width, &a, &d); bind_font_texture( font ); set_gl_options( TEXFONT ); glPushMatrix(); { glTranslatef( 800 * (1 - position_from_time_delta(anim_time)) - width/2 - 140, 200.0 + i*18.0, 0 ); draw_string( font, string ); } glPopMatrix(); } else { remove_bonus(bonus); } bonus = next_bonus; } }
main() { int joie; cls(); init_satb(); reset_satb(); set_color(0,0); /* Je veux le noir */ set_color(1,511); /* Je veux le blanc */ set_font_color(1, 0); load_default_font(); put_string("TimeFend", 12, 12); put_string("First presented at AC2015", 4, 13); put_string("by Cr30s & Bjorn", 8, 15); for(;;) { joie = joy(0); if (joie & JOY_STRT) timefend(); } }
main() { char i,j,k,l,m,n; disp_off(); /* <- I don't think this works.... */ spr_set(); spr_hide(); load_default_font(); set_screen_size(SCR_SIZE_32x32); disp_on(); if(!sgx_detect()) { put_string("Halt: SGX not hardware found", 2, 13); for(;;){} } /* These NEED to be set, else you won't see the SGX 2nd layer BG or sprites. */ vpc_win_size( VPC_WIN_A, 0x01ff); vpc_win_size( VPC_WIN_B, 0x01ff); vpc_win_reg( VPC_WIN_A, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_B, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_AB, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_NONE, VDC_ON+VPC_NORM); set_font_pal(4); set_font_color(14,0); load_default_font(); put_string("SGX hardware found", 2, 3); sgx_set_screen_size(SCR_SIZE_32x32); sgx_load_vram(0x0000,map, 0x400); sgx_load_vram(0x1000,tile, 0x4000); load_palette(0, pal,16); sgx_spr_hide(); sgx_spr_set(1); sgx_disp_on(); put_string("Arcade Card: ", 2, 4); if ( ac_init() ) { put_string("detected.", 15, 4); /* initialize AC register 0 to address 0x000000 and +1 auto-increment */ ac_full_reg0(0x00,0x0000,0x0000,0x0001,0x11); put_string("CD->AC xfer... ", 2, 5); /* transfer 8k at a time from CD to AC memory via AC reg #0 */ ac_cd_xfer(AC_REG0,0,0x1c2,4); ac_cd_xfer(AC_REG0,0,0x1c6,4); ac_cd_xfer(AC_REG0,0,0x1ca,4); ac_cd_xfer(AC_REG0,0,0x1ce,4); ac_cd_xfer(AC_REG0,0,0x1d2,4); ac_cd_xfer(AC_REG0,0,0x1d6,4); ac_cd_xfer(AC_REG0,0,0x1da,4); ac_cd_xfer(AC_REG0,0,0x1de,4); put_string("finished.", 17, 5); sgx_bg_on(); /* reset AC reg #0 address to 0x000000 */ ac_addr_reg0(0x00,0x0000); ac_vram_dma(AC_REG0 ,0x1000,0x3c00, SGX); ac_addr_reg0(0x00,0x8000); ac_vram_dma(AC_REG0 ,0x0000,0x800, SGX); ac_addr_reg0(0x00,0x8800); ac_vce_copy( AC_REG0, 0x00, 0x100 ); vsync(60); vsync(60); } else { put_string("not detected.", 15, 4); for(;;){} } put_string("Scrolling SGX layer ", 2, 6); for(;;) { for( j=0; j<0xff; j++) { vsync(); sgx_scroll( j , j); } } }
run_game() { /* init variables */ frame = 0; hero_walk_state = 0; spr_addr_hero = SPR_ADDR__HERO_D; joy1_dpad = 0; /* init sprites */ init_satb(); load_vram(SPR_ADDR__HERO_U, spr_hero_u, 0x400); load_vram(SPR_ADDR__HERO_UR, spr_hero_ur, 0x400); load_vram(SPR_ADDR__HERO_R, spr_hero_r, 0x400); load_vram(SPR_ADDR__HERO_DR, spr_hero_dr, 0x400); load_vram(SPR_ADDR__HERO_D, spr_hero_d, 0x400); load_vram(SPR_ADDR__HERO_DL, spr_hero_dl, 0x400); load_vram(SPR_ADDR__HERO_L, spr_hero_l, 0x400); load_vram(SPR_ADDR__HERO_UL, spr_hero_ul, 0x400); set_sprpal(PAL_NUM__HERO, pal_hero); /* hero sprite */ spr_set(SPR_NUM__HERO); spr_x(hero_x); spr_y(hero_y); spr_pattern(spr_addr_hero); spr_ctrl(SIZE_MAS|FLIP_MAS, SZ_32x32|NO_FLIP); spr_pal(PAL_NUM__HERO); spr_pri(1); /* font */ set_font_color(1, 0); set_font_pal(0); load_default_font(); satb_update(); vsync(); /******************************************************************************* GAME LOOP *******************************************************************************/ for(;;) { joy1 = joy(0); joy1a = joytrg(0); old_spr_addr_hero = spr_addr_hero; /* d-pad input */ #asm lda _joy1 lsr4 sta _joy1_dpad bne movement_input jmp no_movement_input movement_input: #endasm if (joy1 & JOY_UP) hero_y--; else if (joy1 & JOY_DOWN) hero_y++; if (joy1 & JOY_LEFT) hero_x--; else if (joy1 & JOY_RGHT) hero_x++; if (frame % 8 == 0) hero_walk_state++; #asm ldx _joy1_dpad ;// lower nibble of _spr_addr_hero already zeroed lda tbl_hero_spr_addr,X sta _spr_addr_hero+1 no_movement_input: #endasm /* a/b input */ if (joy1 & JOY_A) { spr_addr_hero_modifier = 0x300; if (spr_addr_hero != old_spr_addr_hero) { if (frame % 4) { spr_addr_hero = old_spr_addr_hero; } else { if (!(joy1a & JOY_A)) { spr_addr_hero = old_spr_addr_hero + 0x400; if (spr_addr_hero > 0x6C00) spr_addr_hero = 0x5000; } } } } else if (joy1 & JOY_B) { spr_addr_hero_modifier = 0x300; if (spr_addr_hero != old_spr_addr_hero) { if (frame % 4) { spr_addr_hero = old_spr_addr_hero; } else { if (!(joy1a & JOY_B)) { spr_addr_hero = old_spr_addr_hero - 0x400; if (spr_addr_hero < 0x5000) spr_addr_hero = 0x6C00; } } } } else { /* hero direction walk animation*/ if (hero_walk_state == 1) { spr_addr_hero_modifier = 0x100; } else if (hero_walk_state == 3) { spr_addr_hero_modifier = 0x200; } else{ spr_addr_hero_modifier = 0; } } spr_set(SPR_NUM__HERO); spr_pattern(spr_addr_hero + spr_addr_hero_modifier); spr_x(hero_x); spr_y(hero_y); hero_walk_state = hero_walk_state % 4; frame++; satb_update(); vsync(); } }