void Level1_PreloadBitmaps(struct Game *game, void (*progress)(struct Game*, float)) { PROGRESS_INIT(Level1_PreloadSteps()); game->level.level1.owl = LoadScaledBitmap("levels/1/owl.png", game->viewportWidth*0.08, game->viewportWidth*0.08); PROGRESS; game->level.letter_font = al_load_ttf_font(GetDataFilePath("fonts/DejaVuSans.ttf"),game->viewportHeight*0.0225,0 ); PROGRESS; game->level.letter = LoadScaledBitmap("levels/1/letter.png", game->viewportHeight*1.3, game->viewportHeight*1.2); al_set_target_bitmap(game->level.letter); float y = 0.20; float x = 0.19; void draw_text(char* text) { al_draw_text(game->level.letter_font, al_map_rgb(0,0,0), al_get_bitmap_width(game->level.letter)*x, game->viewportHeight*y, ALLEGRO_ALIGN_LEFT, text); y+=0.028; }
void Menu_Preload(struct Game *game, void (*progress)(struct Game*, float)) { PROGRESS_INIT(16); game->menu.options.fullscreen = game->fullscreen; game->menu.options.fps = game->fps; game->menu.options.width = game->width; game->menu.options.height = game->height; game->menu.loaded = true; game->menu.image = LoadScaledBitmap( "menu/menu.png", game->viewportWidth, game->viewportWidth*(1240.0/3910.0)); PROGRESS; game->menu.mountain = LoadScaledBitmap( "menu/mountain.png", game->viewportHeight*1.6*0.055, game->viewportHeight/9 ); PROGRESS; game->menu.cloud = LoadScaledBitmap( "menu/cloud.png", game->viewportHeight*1.6*0.5, game->viewportHeight*0.25 ); PROGRESS; game->menu.cloud2 = LoadScaledBitmap( "menu/cloud2.png", game->viewportHeight*1.6*0.2, game->viewportHeight*0.1 ); PROGRESS; game->menu.logo = LoadScaledBitmap( "menu/logo.png", game->viewportHeight*1.6*0.3, game->viewportHeight*0.35 ); game->menu.blurbg = al_create_bitmap(game->viewportHeight*1.6*0.3, game->viewportHeight*0.35); game->menu.blurbg2 = al_create_bitmap(game->viewportHeight*1.6*0.3, game->viewportHeight*0.35); PROGRESS; game->menu.logoblur = al_create_bitmap(game->viewportHeight*1.6*0.3+4, game->viewportHeight*0.35+4); al_set_target_bitmap(game->menu.logoblur); al_clear_to_color(al_map_rgba(0,0,0,0)); float alpha = (1.0/40.0); ALLEGRO_COLOR color = al_map_rgba_f(alpha, alpha, alpha, alpha); int by, bx; for (by = -2; by <= 2; by++) { for (bx = -2; bx <= 2; bx++) { if (sqrt(bx*bx+by*by) <= 2) al_draw_tinted_bitmap(game->menu.logo, color, bx, by, 0); } } al_set_target_bitmap(al_get_backbuffer(game->display)); PROGRESS; game->menu.glass = LoadScaledBitmap( "menu/glass.png", game->viewportHeight*1.6*0.3, game->viewportHeight*0.35 ); PROGRESS; //game->menu.pinkcloud = LoadScaledBitmap( "menu/pinkcloud.png", game->viewportWidth*0.33125, game->viewportHeight*0.8122); game->menu.pinkcloud = LoadScaledBitmap( "menu/pinkcloud.png", game->viewportHeight*0.8122*(1171.0/2218.0), game->viewportHeight*0.8122); PROGRESS; al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP); game->menu.rain = al_load_bitmap( GetDataFilePath("menu/rain.png") ); PROGRESS; game->menu.pie = al_load_bitmap( GetDataFilePath("menu/pie.png") ); al_set_new_bitmap_flags(ALLEGRO_MAG_LINEAR | ALLEGRO_MIN_LINEAR); PROGRESS; game->menu.sample = al_load_sample( GetDataFilePath("menu/menu.flac") ); PROGRESS; game->menu.rain_sample = al_load_sample( GetDataFilePath("menu/rain.flac") ); PROGRESS; game->menu.click_sample = al_load_sample( GetDataFilePath("menu/click.flac") ); PROGRESS; game->menu.mountain_position = game->viewportWidth*0.7; game->menu.music = al_create_sample_instance(game->menu.sample); al_attach_sample_instance_to_mixer(game->menu.music, game->audio.music); al_set_sample_instance_playmode(game->menu.music, ALLEGRO_PLAYMODE_LOOP); game->menu.rain_sound = al_create_sample_instance(game->menu.rain_sample); al_attach_sample_instance_to_mixer(game->menu.rain_sound, game->audio.fx); al_set_sample_instance_playmode(game->menu.rain_sound, ALLEGRO_PLAYMODE_LOOP); game->menu.click = al_create_sample_instance(game->menu.click_sample); al_attach_sample_instance_to_mixer(game->menu.click, game->audio.fx); al_set_sample_instance_playmode(game->menu.click, ALLEGRO_PLAYMODE_ONCE); game->menu.font_title = al_load_ttf_font(GetDataFilePath("fonts/ShadowsIntoLight.ttf"),game->viewportHeight*0.16,0 ); game->menu.font_subtitle = al_load_ttf_font(GetDataFilePath("fonts/ShadowsIntoLight.ttf"),game->viewportHeight*0.08,0 ); game->menu.font = al_load_ttf_font(GetDataFilePath("fonts/ShadowsIntoLight.ttf"),game->viewportHeight*0.05,0 ); game->menu.font_selected = al_load_ttf_font(GetDataFilePath("fonts/ShadowsIntoLight.ttf"),game->viewportHeight*0.065,0 ); PROGRESS; if (!game->menu.sample){ fprintf(stderr, "Audio clip sample not loaded!\n" ); exit(-1); } if (!game->menu.rain_sample){ fprintf(stderr, "Audio clip sample#2 not loaded!\n" ); exit(-1); } if (!game->menu.click_sample){ fprintf(stderr, "Audio clip sample#3 not loaded!\n" ); exit(-1); } game->menu.pinkcloud_bitmap = al_create_bitmap(game->viewportHeight*0.8122*(1171.0/2218.0), game->viewportHeight); game->menu.pie_bitmap = al_create_bitmap(game->viewportHeight*0.8, game->viewportHeight); al_set_target_bitmap(game->menu.pie_bitmap); al_clear_to_color(al_map_rgba(0,0,0,0)); al_draw_scaled_bitmap(game->menu.pie, 0, 0, al_get_bitmap_width(game->menu.pie), al_get_bitmap_height(game->menu.pie), al_get_bitmap_width(game->menu.pie_bitmap)*0.5, 0, game->viewportHeight*1.6*0.11875, game->viewportHeight*0.0825, 0); al_draw_scaled_bitmap(game->menu.pie, 0, 0, al_get_bitmap_width(game->menu.pie), al_get_bitmap_height(game->menu.pie), al_get_bitmap_width(game->menu.pie_bitmap)*0.1, al_get_bitmap_height(game->menu.pie_bitmap)*0.3, game->viewportHeight*1.6*0.09, game->viewportHeight*0.06, ALLEGRO_FLIP_HORIZONTAL); al_draw_scaled_bitmap(game->menu.pie, 0, 0, al_get_bitmap_width(game->menu.pie), al_get_bitmap_height(game->menu.pie), al_get_bitmap_width(game->menu.pie_bitmap)*0.3, al_get_bitmap_height(game->menu.pie_bitmap)*0.6, game->viewportHeight*1.6*0.13, game->viewportHeight*0.1, 0); al_destroy_bitmap(game->menu.pie); PROGRESS; al_set_new_bitmap_flags(ALLEGRO_VIDEO_BITMAP); game->menu.rain_bitmap = al_create_bitmap(al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.5, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.1); al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR); al_set_target_bitmap(game->menu.rain_bitmap); al_clear_to_color(al_map_rgba(0,0,0,0)); al_draw_scaled_bitmap(game->menu.rain,0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), 0, 0, al_get_bitmap_width(game->menu.rain_bitmap), al_get_bitmap_height(game->menu.rain_bitmap),0); al_destroy_bitmap(game->menu.rain); PROGRESS; }