Exemple #1
0
void map_init(char *filename) {
	int w, h;
	unsigned int i, j;
	
	powergrid=NULL;
	powergrid_lines=0;
	
	home_x=home_y=-1;
	
	map_selected.border=d_render_line_new(4, 1);
	map_selected.index=-1;
	map_selected.owner=-1;
	map_selected.building=0;
	map_selected.circle=NULL;
	
	map_grid_chunk=NULL;
	map_grid_chunks=0;
	
	game_attacklist=NULL;
	for(i=0; i<MAX_PLAYERS; i++) {
		game_attacklist_render[i].length=0;
		game_attacklist_render[i].lines=NULL;
	}
	
	map=d_map_load(filename);
	map_w=map->layer->tilemap->w*map->layer->tile_w;
	map_h=map->layer->tilemap->h*map->layer->tile_h;
	d_render_tilesheet_geometrics(map->layer->ts, &w, &h, NULL, NULL);
	tilesx=w/map->layer->tile_w;
	tilesy=h/map->layer->tile_h;
	
	DARNIT_MAP_LAYER *building_layer=&map->layer[map->layers-2];
	d_render_line_move(map_selected.border, 0, 0, 0, building_layer->tile_w, 0);
	d_render_line_move(map_selected.border, 1, 0, building_layer->tile_h, building_layer->tile_w, building_layer->tile_h);
	d_render_line_move(map_selected.border, 2, 0, 0, 0, building_layer->tile_h);
	d_render_line_move(map_selected.border, 3, building_layer->tile_w, 0, building_layer->tile_w, building_layer->tile_h);
	
	minimap_viewport=d_render_line_new(4, 1);
	
	for(i=0; i<(sidebar_width-8)*(sidebar_width-8); i++)
		((unsigned int *)minimap_data)[i]=0;
	
	for(i=0; i<map->layer->tilemap->w*map->layer->tilemap->h; i++) {
		for(j=0; j<map->layers-2; j++)
			if(map->layer[j].tilemap->data[i]&0xFFF)
				break;
		if(j>=map->layers-2)
			map->layer[map->layers-2].tilemap->data[i]|=1<<17;
	}
	map_update_grid();
	
	//TODO: move somewhere else
	//Update abilities
	ability[0].ready=100;
	ability[0].button->enabled=1;
	ability[1].ready=-1;
	ability[1].button->enabled=0;
	ability[2].ready=-1;
	ability[2].button->enabled=0;
}
Exemple #2
0
int mapInit() {
    if ((s.map.handle = d_map_load("map.ldmz")) == NULL) {
        fprintf(stderr, "Unable to load map.ldmz\n");
        return -1;
    }

    return 0;
}
Exemple #3
0
static void init() {
	int i;
	DARNIT_INPUT_MAP map;

	d_init("pewpewtris", "pewpewtris", NULL);
	d_fs_mount_self();
	d_fs_mount("music.ldi");
	d_fs_mount("sounds.ldi");
	config_init();
	
	ppt.ui.offset_x = 288;
	ppt.ui.offset_y = 0;

	for (i = 0; i < 180; ppt.tile_lookup[i++] = -1);

	ppt.block = d_render_tilesheet_load("res/block.png", 24, 24, DARNIT_PFORMAT_RGB5A1);
	ppt.tile = d_render_tile_new(10 * 18, ppt.block);
	ppt.bbox = d_bbox_new(180);
	d_bbox_set_indexkey(ppt.bbox);
	ppt.tm = d_tilemap_new(0xFFF, ppt.block, 0xFFF, 10, 18);
	ppt.request_new = 0;
	ppt.font = d_font_load("res/font.ttf", 28, 256, 256);
	ui_init();
	bullet_init(30);
	highscore_init();
	state_init();
	music_init();
	
	ppt.ui.play_background = d_map_load("res/playfield_background.ldmz");
	ppt.ui.menu_background = d_map_load("res/mainmenu_background.ldmz");
	ppt.ui.highscore_background = d_map_load("res/highscore_background.ldmz");

	/* Re-map B to space */
	if (!(d_platform_get().platform & DARNIT_PLATFORM_PANDORA)) {
		map = d_keymapping_get();
		map.b = TPW_KEY_SPACE;
		d_keymapping_set(map);
	}

	block_particle_init();

	/* FIXME: Remove */
	ppt.fps = d_text_surface_new(ppt.font, 6, 1000, 0, 0);
}
Exemple #4
0
void map_init() {
	int i;
	char fname[16];
	bogus_tilesheet=d_render_tilesheet_new(1, 1, 1, 1, DARNIT_PFORMAT_RGB5A1);
	for(i=0; i<=MAPS; i++) {
		sprintf(fname, "level%i.ldmz", i);
		map.map[i]=d_map_load(fname);
	}
	for(i=0; i<MAP_SECTIONS; i++)
		map.line[i]=d_render_line_new(MAP_LINES, 1);
}
Exemple #5
0
MAP *map_load(const char *filename) {
	MAP *map;
	DARNIT_FILE *f_ts;
	if(d_fs_mount(filename))
		return NULL;
	if(!(map=malloc(sizeof(MAP)))) {
		d_fs_unmount(filename);
		return NULL;
	}
	if(!(map->stringtable=malloc(sizeof(MAP_PROPERTY)))) {
		free(map);
		d_fs_unmount(filename);
		return NULL;
	}
	if(!(map->map=d_map_load("mapdata/map.ldmz"))) {
		free(map->stringtable);
		free(map);
		d_fs_unmount(filename);
		return NULL;
	}
	if(!(f_ts=d_file_open(d_map_prop(map->map->prop, "tileset"), "rb")))
		if(!(f_ts=fopen("res/default.png", "rb"))) {
			free(map->stringtable);
			free(map);
			d_fs_unmount(filename);
			return NULL;
		}
	
	map->stringtable->key="tileset";
	map->stringtable->value="mapdata/default.png";
	map->stringtable->next=NULL;
	
	d_file_seek(f_ts, 0, SEEK_END);
	map->tilesheet_size=d_file_tell(f_ts);
	map->tilesheet=malloc(map->tilesheet_size);
	d_file_seek(f_ts, 0, SEEK_SET);
	d_file_read(map->tilesheet, map->tilesheet_size, f_ts);
	d_file_close(f_ts);
	d_fs_unmount(filename);
	map->w=map->map->layer->tile_w*map->map->layer->tilemap->w;
	map->h=map->map->layer->tile_h*map->map->layer->tilemap->h;
	sprintf(map->sizestring, "%ix%i", map->map->layer->tilemap->w, map->map->layer->tilemap->h);
	map_prop_set_or_add(map, "size", map->sizestring);
	
	map_prop_set_or_add(map, "name", d_map_prop(map->map->prop, "name"));
	map_prop_set_or_add(map, "version", d_map_prop(map->map->prop, "version"));
	map_prop_set_or_add(map, "author", d_map_prop(map->map->prop, "author"));
	map_prop_set_or_add(map, "max_players", d_map_prop(map->map->prop, "max_players"));
	return map;
}
Exemple #6
0
int world_load(const char *fname) {
	int i;
	const char *hint;
	if (world.map)
		world_unload();
	if (!(world.map = d_map_load(fname)))
		return 0;
	world.submap = 0;

	for (i = 0; i < world.map->objects; i++) {
		object_spawn(i, world_object_prop(i, "NAME"));
	}

	if (d_platform_get().platform & DARNIT_PLATFORM_PANDORA)
		hint = d_map_prop(world.map->prop, "hint_pandora");
	else
		hint = d_map_prop(world.map->prop, "hint");
	if (!strcmp(hint, "NO SUCH KEY"))
		hint = "";
	camera_set_hint(hint);

	return 1;
}
Exemple #7
0
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;
}