void stageSelectMoveCursor() { int x_u, y_u; x_u = s->var.screen_w / 2 - 224; y_u = s->var.screen_h / 2 - 224; d_render_tile_move(s->var.stage.stage, 9, x_u + (s->var.stage.selected_stage % 3) * 160, y_u + (s->var.stage.selected_stage / 3) * 160); return; }
void block_falling_reconsider() { struct block_struct bs; int i, j; ppt.bs_x = ppt.bs_y = 0; ai_determine_best_move(); bs = ppt.falling; for (i = j = 0; i < 16 && j < 4; i++) { if (ppt.falling.box_id[j] == -1) { d_render_tile_move(ppt.tile, j, INT_MAX, INT_MAX); j++; i--; continue; } if (bs.blocks[i]) d_render_tile_move(ppt.tile, j, (i % 4) * 24, (i / 4) * 24); } return; }
void meterUpdate(METER *m) { int pos; if (!m->watch) return; pos = *m->watch * m->h / m->watch_max; m->watch_last = *m->watch; d_render_tile_move(m->tc, 1, m->x, m->y + (m->h - pos)); d_render_tile_size_set(m->tc, 1, m->w, pos); d_render_tile_tilesheet_coord_set(m->tc, 1, m->w * m->type, 0, m->w, pos); d_render_tile_size_set(m->tc, 0, m->w, m->h - pos); d_render_tile_tilesheet_coord_set(m->tc, 0, 0, 0, m->w, m->h - pos); return; }
METER *meterInit(DARNIT_TILESHEET *ts, int x, int y) { METER *m; m = malloc(sizeof(*m)); m->watch = NULL; m->watch_max = 0; m->watch_last = 0; m->type = 0; m->x = x; m->y = y; d_render_tilesheet_geometrics(ts, NULL, NULL, &m->w, &m->h); m->tc = d_render_tile_new(2, ts); d_render_tile_move(m->tc, 0, x, y); return m; }
void view_init() { sidebar_width=platform_lowres?3*SIDEBAR_WIDTH_MAX/4:SIDEBAR_WIDTH_MAX; font_std=d_font_load("res/FreeMonoBold.ttf", platform_lowres?8:12, 512, 512); mouse_tilesheet=d_render_tilesheet_load("res/mouse.png", 16, 16, DARNIT_PFORMAT_RGB5A1); mouse_target_tilesheet=d_render_tilesheet_load("res/target.png", 32, 32, DARNIT_PFORMAT_RGB5A1); //Menu background int scale=config.plasma==0?1:(1<<(5-config.plasma)); view_background_w=platform.screen_w/scale; view_background_h=platform.screen_h/scale; view_background_ts=d_render_tilesheet_new(1, 1, view_background_w, view_background_h, DARNIT_PFORMAT_RGB5A1); view_background_tile=d_render_tile_new(1, view_background_ts); view_background_pixbuf=malloc(view_background_w*view_background_h*sizeof(unsigned int)); d_render_tilesheet_scale_algorithm(view_background_ts, DARNIT_SCALE_LINEAR); d_render_tile_move(view_background_tile, 0, 0, 0); d_render_tile_tilesheet_coord_set(view_background_tile, 0, 0, 0, view_background_w, view_background_h); d_render_tile_size_set(view_background_tile, 0, platform.screen_w, platform.screen_h); view_background_update(0); menu_init(); lobby_init(); game_view_init(); gameover_init(); chat_init(); gamestate_pane[GAME_STATE_MENU]=&panelist_menu_sidebar; gamestate_pane[GAME_STATE_CREDITS]=&panelist_credits; gamestate_pane[GAME_STATE_CONNECTING]=&panelist_multiplayer_connecting; gamestate_pane[GAME_STATE_LOBBY]=&panelist_lobby_players; gamestate_pane[GAME_STATE_GAME]=&panelist_game_sidebar; gamestate_pane[GAME_STATE_GAME_MENU]=&panelist_game_menu; gamestate_pane[GAME_STATE_GAME_OVER]=&panelist_gameover_sidebar; gamestate_pane[GAME_STATE_QUIT]=NULL; map=NULL; }
int main(int argc, char **argv) { int i, j, js0_x, js0_y, js1_x, js1_y; void *font, *surface, *text, *mapsheet, *sprite, *textinput, *mtsprite, *fps_text, *tilebuf, *fancy_text; void *music; char test[256], fps[16]; char *test_text; DARNIT_MOUSE mouse; DARNIT_KEYS keys; DARNIT_MAP *map; DARNIT_SPRITE *mapsprite; if (!d_init("TESTAPP - libDarnit", "testapp", NULL)) return -1; compression_test(); /* Sound/music */ music = d_sound_tracked_load("latyl-greasy_duck_v1.mod", DARNIT_AUDIO_STREAM, DARNIT_AUDIO_STEREO); d_sound_play(music, 0, 127, 127, 0); /* Text rendering */ test_text = malloc(64); font = d_font_load("dejavu_sans.ttf", 28, 512, 512); text = d_text_surface_new(font, 80, 800, 0, 460); fancy_text = d_text_surface_color_new(font, 16, 800, 0, 420); colorTest(fancy_text); fps_text = d_text_surface_new(font, 16, 200, 0, 40); /* Menutk test */ surface = d_menu_vertical_new("Hello\nGoodbye\nOther\nNothing\nLess than nothing", 50, 100, font, 200, 10, 3); sprintf(test_text, "Héllo, world. Modify m€! Test of offsets"); textinput = d_menu_textinput_new(0, 0, font, test_text, 64, 200); /* Sprites */ sprite = d_sprite_load("test.spr", 0, DARNIT_PFORMAT_RGB5A1); mapsprite = d_sprite_load("baurn.spr", 0, DARNIT_PFORMAT_RGB5A1); d_sprite_move(sprite, 50, 50); d_sprite_move(mapsprite, 0, 0); d_sprite_animate_start(sprite); d_sprite_animate_start(mapsprite); mtsprite = d_mtsprite_load("testspr.mts"); d_mtsprite_animate_start(mtsprite); /* Maps */ mapsheet = d_render_tilesheet_load("mapsheet.png", 32, 32, DARNIT_PFORMAT_RGBA8); if ((map = d_map_load("testmap_iso.ldmz")) == NULL) fprintf(stderr, "Map load failed\n"); d_tilemap_sprite_add(map->layer[0].tilemap, mapsprite); /* Tile caches */ tilebuf = d_render_tile_new(1, mapsheet); d_render_tile_move(tilebuf, 0, 64, 64); d_render_tile_tilesheet_coord_set(tilebuf, 0, 16, 16, 32, 32); /* Misc */ fprintf(stderr, "String lenght: %i\n", d_font_string_w(font, "ASDFÅÄÖ,,")); for (i = j = 0;;) { d_sprite_move(mapsprite, 64, j * 4); keys = d_keys_get(); d_text_surface_reset(text); d_text_surface_reset(fps_text); mouse = d_mouse_get(); d_joystick_get(&js0_x, &js0_y, &js1_x, &js1_y); sprintf(test, "X: %i, Y: %i, W: %i;; TX: %i, TY: %i;; nub0 (%i,%i) ;; nub1(%i,%i)", mouse.x, mouse.y, mouse.wheel, i*4, j*4, js0_x, js0_y, js1_x, js1_y); sprintf(fps, "%i", d_last_frame_time()); d_text_surface_string_append(text, test); d_text_surface_string_append(fps_text, "ASDFÅÄÖ,,"); if (keys.lmb) d_render_fade_in(1000, 1.0f, 0.0f, 0.0f); if (keys.rmb) d_render_fade_out(1000); d_render_begin(); if (keys.left == 1) i--; if (keys.right == 1) i++; if (keys.up == 1) j--; if (keys.down == 1) j++; if (keys.select) fprintf(stderr, "Blololol\n"); if (keys.r == 1) d_tilemap_camera_move(map->layer->tilemap, i*4, j*4); d_render_blend_enable(); d_tilemap_draw(map->layer->tilemap); if (keys.l == 1) if (d_menu_loop(surface) != -1) return 0; d_menu_loop(textinput); d_sprite_draw(sprite); d_text_surface_draw(text); d_text_surface_draw(fancy_text); d_text_surface_draw(fps_text); d_render_offset(-200, -200); d_mtsprite_draw(mtsprite); d_render_offset(0, 0); d_render_blend_disable(); d_render_tile_draw(tilebuf, 1); d_render_end(); d_loop(); } return 0; }