void lobby_host_loop() { struct proto_join_packet packet; static int tick = 0; DARNIT_KEYS keys; keys = d_keys_get(); d_keys_set(keys); d_render_tile_blit(config.menu_background, 0, 0, 0); if(!tick) { packet.type = PROTO_TYPE_JOIN; packet.player_id = -1; strcpy(packet.player_name, config.player_name); network_send(config.server.addr, &packet, sizeof(struct proto_join_packet)); update_player_list(lobby_join.list_players, config.player.player); } server_loop(); if(keys.select) { game_state(GAME_STATE_LOBBY); } if(keys.start) { game_state(GAME_STATE_GAME); } d_text_surface_draw(lobby_join.list_players); d_text_surface_draw(lobby_host.start_game); tick++; tick %= 3; }
int main(int argc, char **argv) { DARNIT_KEYS keys; DARNIT_MOUSE mouse; //particle_emitter_new(30, 5000, 8000, 10000, 255, 0, 0, PARTICLE_TYPE_PULSE, 400, 240, 0, -100, 100); //particle_emitter_new(30, 5000, 8000, 10000, 255, 255, 0, PARTICLE_TYPE_PULSE, 400, 240, 0, -100, 100); init(); gamestate(GAMESTATE_MENU); while(_gamestate!=GAMESTATE_QUIT) { keys=d_keys_get(); mouse=d_mouse_get(); if(handle[_gamestate]) handle[_gamestate](&keys, &mouse); d_render_begin(); if(render[_gamestate]) render[_gamestate](); d_render_end(); d_loop(); } d_quit(); return 0; }
int main(int argc, char **argv) { DARNIT_IMAGE_DATA img; DARNIT_TILESHEET *ts; IMG_STRUCT **imgs, **tmp; DARNIT_KEYS keys; int images, image_disp, i; imgs = NULL; images = 0; image_disp = 0; if (argc < 2) { fprintf(stderr, "Usage: %s <image to analyze>\n", argv[0]); return -1; } d_init("algdata", "algdata", NULL); if (!((img = d_img_load_raw(argv[1])).data)) { fprintf(stderr, "Unable to load %s\n", argv[1]); d_quit(); } d_render_clearcolor_set(255, 255, 255); do { i = 0; ts = next_image(img, &i); if (ts) { if (!(tmp = realloc(imgs, sizeof(IMG_STRUCT **) * (images + 1)))) d_quit(); imgs = tmp; imgs[images] = new_image(ts, i); images++; } } while (ts); if (!imgs) d_quit(); sort_image(imgs, images); for (;;) { keys = d_keys_get(); if (keys.start) { image_disp = (image_disp + 1 >= images) ? 0 : image_disp + 1; d_keys_set(keys); } d_render_begin(); d_render_tile_blit(imgs[image_disp]->ts, 0, 0, 0); d_render_end(); d_loop(); } return 0; }
void lobby_loop() { static int tick = 0; DARNIT_KEYS keys; int i; struct List *game = lobby_client.client; d_render_tile_blit(config.menu_background, 0, 0, 0); d_render_line_draw(lobby.line, 1); d_text_surface_draw(lobby.list_players); if(lobby.selected_game > 5) { d_render_offset(0, (lobby.selected_game - 5) * d_font_glyph_hs(config.font_std)); } d_text_surface_draw(lobby.list_games); d_render_offset(0, 0); keys = d_keys_get(); d_keys_set(keys); if(!tick) { update_lists(NULL, lobby_client.client); } if(keys.up) { if(lobby.selected_game > 0) lobby.selected_game--; } else if(keys.down) { if(lobby.selected_game < lobby_client.clients) lobby.selected_game++; } if(keys.select) { game_state(GAME_STATE_MENU); return; } if(keys.start) { if(lobby.selected_game == 0) { game_state(GAME_STATE_LOBBY_HOST); } else { for(i = 0; game; i++, game = game->next) { if(i == lobby.selected_game) { config.server.addr = ((struct LobbyHost *) (game->value))->addr; goto join; } } game_state(GAME_STATE_LOBBY_HOST); return; join: game_state(GAME_STATE_LOBBY_JOIN); } } tick++; tick %= 3; }
int main(int argc, char **argv) { int i, j; struct GRAPH *g, *tree=NULL; struct VERTEX *v; struct POINT p; DARNIT_KEYS keys; srand(time(NULL)); d_init("Graphs", "uppg8", NULL); for(i=0; i<256; i++) { circle[i]=d_render_circle_new(32, 1); line[i]=d_render_line_new(1, 1); } for(j=0; j<4; j++) for(i=0; i<7; i++) { p.x=i*100+50;//(rand()%80)*10; p.y=j*100+50;//(rand()%48)*10; v=graph_add_vertex(&graph, p); for(g=graph; g; g=g->next) if(!(rand()%6)) graph_add_edge(v, g->vertex, rand()%100, DIRECTION_DOUBLE); } tree=graph_prim(graph); draw_graph(graph); for(g=graph;;) { keys=d_keys_get(); if(keys.start) { g=g==graph?tree:graph; draw_graph(g); } d_keys_set(keys); d_render_begin(); d_render_tint(0xFF, 0xFF, 0xFF, 0xFF); for(i=0; i<vertices; i++) d_render_circle_draw(circle[i]); for(i=0; i<edges; i++) { d_render_tint(length[i], 0x7F, 0x0, 0xFF); d_render_line_draw(line[i], 1); } d_render_end(); d_loop(); } d_quit(); return 0; }
void stageSelectDraw() { DARNIT_KEYS keys; keys = d_keys_get(); if (keys.left) { if ((--s->var.stage.selected_stage) < 0) s->var.stage.selected_stage = 8; d_keys_set(keys); } else if (keys.right) { if ((++s->var.stage.selected_stage) > 8) s->var.stage.selected_stage = 0; d_keys_set(keys); } else if (keys.up) { if ((s->var.stage.selected_stage -= 3) < 0) s->var.stage.selected_stage += 9; d_keys_set(keys); } else if (keys.down) { if ((s->var.stage.selected_stage += 3) > 8) s->var.stage.selected_stage -= 9; d_keys_set(keys); } else if (keys.BUTTON_ACCEPT) { if (s->var.stage.selected_stage == 4 && s->var.progress.stages < 255); else { s->load_level = d_stringtable_entry(s->config, stagename[s->var.stage.selected_stage]); s->newstate = STATE_TESTGAME; } } stageSelectMoveCursor(); d_render_offset(0, 0); d_render_blend_enable(); d_render_tile_draw(s->var.stage.stage, 10); d_render_blend_disable(); return; }
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; }
void ui_events(struct UI_PANE_LIST *panes, int render) { //override for dialogues such as message boxes. if(ui_panelist_dialogue.pane) { ui_panelist_render(panes); panes=&ui_panelist_dialogue; } UI_EVENT e; UI_EVENT_MOUSE e_m; UI_EVENT_BUTTONS e_b; UI_EVENT_UI e_u; static UI_EVENT_KEYBOARD e_k={0, 0, 0}, e_k_repeat={0, 0, 0}; static int repeat=0; DARNIT_KEYS buttons; buttons=d_keys_get(); memcpy(&e_b, &buttons, sizeof(UI_EVENT_BUTTONS)); DARNIT_MOUSE mouse; mouse=d_mouse_get(); e_m.x=mouse.x; e_m.y=mouse.y; e_m.buttons=(mouse.lmb)|(mouse.rmb<<2); e_m.wheel=mouse.wheel; int key_action=0; DARNIT_KEY_RAW rawkey=d_key_raw_pop(); key_action=rawkey.action; e_k.keysym=rawkey.keysym; switch(e_k.keysym) { case KEY(LCTRL): SETMOD(LCTRL); break; case KEY(RCTRL): SETMOD(RCTRL); break; case KEY(LSHIFT): SETMOD(LSHIFT); break; case KEY(RSHIFT): SETMOD(RSHIFT); break; case KEY(LALT): SETMOD(LALT); break; case KEY(RALT): SETMOD(RALT); break; case KEY(LSUPER): SETMOD(LSUPER); break; case KEY(RSUPER): SETMOD(RSUPER); break; } e_k.character=rawkey.unicode; e.keyboard=&e_k; if(ui_selected_widget) { //Keyboard events for selected widget if(e_k_repeat.character||e_k_repeat.keysym==8) { if(repeat>KEYBOARD_REPEAT_DELAY&&!((repeat-KEYBOARD_REPEAT_DELAY)%KEYBOARD_REPEAT_SPEED)) { UI_EVENT e_repeat={.keyboard=&e_k_repeat}; ui_selected_widget->event_handler->send(ui_selected_widget, UI_EVENT_TYPE_KEYBOARD_PRESS, &e_repeat); } repeat++; } if(key_action==DARNIT_KEYACTION_PRESS) { if(e_k.character||e_k.keysym==8) { e_k_repeat=e_k; repeat=0; } ui_selected_widget->event_handler->send(ui_selected_widget, UI_EVENT_TYPE_KEYBOARD_PRESS, &e); } else if(key_action==DARNIT_KEYACTION_RELEASE) { if(e_k.keysym==e_k_repeat.keysym) { e_k_repeat.character=0; e_k_repeat.keysym=0; e_k_repeat.modifiers=0; repeat=0; } ui_selected_widget->event_handler->send(ui_selected_widget, UI_EVENT_TYPE_KEYBOARD_RELEASE, &e); } } else {