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; }
int mapInit() { if ((s.map.handle = d_map_load("map.ldmz")) == NULL) { fprintf(stderr, "Unable to load map.ldmz\n"); return -1; } return 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); }
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); }
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; }
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; }
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; }