Пример #1
0
void ui_button_render(UI_WIDGET *widget) {
	struct UI_BUTTON_PROPERTIES *p = widget->properties;
	p->child->render(p->child);
	d_render_line_draw(p->border, 8);
	if(p->activated)
		d_render_line_draw(p->active_border, 4);
}
Пример #2
0
void shape_copy_render(SHAPE_COPY *copy) {
	if (!copy)
		return;
	d_render_line_draw(copy->line, ~0);

	return;
}
Пример #3
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;
}
Пример #4
0
void ui_pane_render(UI_PANE *pane) {
	unsigned char r, g, b, a;
	d_render_tint_get(&r, &g, &b, &a);
	d_render_tint(pane->background_color.r, pane->background_color.g, pane->background_color.b, pane->background_color.a);
	d_render_rect_draw(pane->background, 1);
	d_render_tint(r, g, b, a);
	d_render_line_draw(pane->border, 4);

	if(pane->root_widget != NULL)
		pane->root_widget->render(pane->root_widget);
}
Пример #5
0
void map_draw(int draw_powergrid) {
	int i;
	for(i=0; i<map->layers-2; i++)
		d_tilemap_draw(map->layer[i].tilemap);
	if(config.alpha)
		d_render_blend_enable();
	d_tilemap_draw(map->layer[map->layers-2].tilemap);
	d_render_blend_disable();
	//d_tilemap_draw(map->layer[map->layers-1].tilemap);
	
	d_render_offset(map->cam_x, map->cam_y);
	if(config.grid) {
		d_render_tint(18, 18, 18, 255);
		for(i=0; i<map_grid_chunks; i++)
			if(map_grid_chunk[i].lines&&map_grid_chunk[i].x+map_grid_chunk[i].w>map->cam_x&&map_grid_chunk[i].x<map->cam_x+platform.screen_w-sidebar_width&&map_grid_chunk[i].y+map_grid_chunk[i].h>map->cam_y&&map_grid_chunk[i].y<map->cam_y+platform.screen_h)
				d_render_line_draw(map_grid_chunk[i].lines, map_grid_chunk[i].size);
		d_render_tint(255, 255, 255, 255);
	}
	
	d_tilemap_draw(map->layer[map->layers-1].tilemap);
	
	if(powergrid&&(draw_powergrid||config.powergrid))
		d_render_line_draw(powergrid, powergrid_lines);
		
	map_flare_draw();
	
	if(map_selected.index>-1&&map_selected.building) {
		int x=map->layer[map->layers-2].tile_w*(map_selected.index%map->layer[map->layers-2].tilemap->w);
		int y=map->layer[map->layers-2].tile_h*(map_selected.index/map->layer[map->layers-2].tilemap->w);
		d_render_tint(player_color[map_selected.owner].r, player_color[map_selected.owner].g, player_color[map_selected.owner].b, 255);
		if(map_selected.circle)
			d_render_circle_draw(map_selected.circle);
		d_render_offset(map->cam_x-x, map->cam_y-y);
		d_render_line_draw(map_selected.border, 4);
	}
	d_render_tint(255, 255, 255, 255);
	d_render_offset(0, 0);
}
Пример #6
0
void map_minimap_render(UI_WIDGET *widget) {
	//override for imagebox render, to render viewport border on minimap
	ui_imageview_render(widget);
	unsigned char r, g, b, a;
	d_render_tint_get(&r, &g, &b, &a);
	d_render_tint(255, 255, 255, 255);
	d_render_line_draw(minimap_viewport, 4);
	struct MAP_FLARE_LIST *l;
	for(l=map_flares; l; l=l->next)
		if(l->index>=20) {
			d_render_tint(player_color[l->player].r, player_color[l->player].g, player_color[l->player].b, 255);
			d_render_circle_draw(l->minimap_circle);
		}
	d_render_tint(r, g, b, a);
}
Пример #7
0
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;
}
Пример #8
0
void map_render() {
	int i;
	d_render_offset(camera_x / 1000, 0);
	for(i=0; i<map.sections; i++)
		d_render_line_draw(map.line[i], map.lines[i]);
	
	for(i=0; i<map.enemies; i++)
		enemy_render(map.enemy[i]);
	
	for(i=0; i<map.powerups; i++) {
		d_render_tint(powerup_color[map.powerup[i].type].r, powerup_color[map.powerup[i].type].g, powerup_color[map.powerup[i].type].b, 0xFF);
		if(!map.powerup[i].taken) {
			d_render_offset(-(map.powerup[i].x) + camera_x / 1000, -(map.powerup[i].y));
			shape_copy_render(map.powerup[i].shape);
		}
	}
	d_render_tint(0xFF, 0xFF, 0xFF, 0xFF);
	d_render_offset(0, 0);
}