예제 #1
0
파일: map.c 프로젝트: slaeshjag/Muon
void map_flare_draw() {
	struct MAP_FLARE_LIST **ll, *l;
	int j=0;
	for(ll=&map_flares; *ll; ll=&((*ll)->next), j++) {
		l=*ll;
		if(d_time_get()>l->created+l->duration) {
			*ll=l->next;
			int i;
			for(i=0; i<4; i++)
				d_render_circle_free(l->circle[i]);
			d_render_circle_free(l->minimap_circle);
			free(l);
			if(*ll)
				continue;
			else
				break;
		}
		d_render_tint(player_color[l->player].r, player_color[l->player].g, player_color[l->player].b, 255);
		d_render_circle_draw(l->circle[l->index/10]);
		l->index++;
		if(l->index>=40)
			l->index=0;
		
	}
}
예제 #2
0
파일: map.c 프로젝트: slaeshjag/Muon
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);
}
예제 #3
0
파일: uppg8.c 프로젝트: h4xxel/algdat
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;
}
예제 #4
0
파일: map.c 프로젝트: slaeshjag/Muon
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);
}