project_files/frontlib/model/map.c
changeset 7316 f7b49b2c5d84
parent 7314 6171f0bad318
child 7482 d70a5b0d1190
equal deleted inserted replaced
7314:6171f0bad318 7316:f7b49b2c5d84
    35 		free(map);
    35 		free(map);
    36 	}
    36 	}
    37 }
    37 }
    38 
    38 
    39 flib_map *flib_map_create_regular(const char *seed, const char *theme, int templateFilter) {
    39 flib_map *flib_map_create_regular(const char *seed, const char *theme, int templateFilter) {
    40 	flib_map *result = NULL;
    40 	if(log_badargs_if2(seed==NULL, theme==NULL)) {
    41 	if(!seed || !theme) {
    41 		return NULL;
    42 		flib_log_e("null parameter in flib_map_create_regular");
       
    43 	} else {
       
    44 		flib_map newmap = {0};
       
    45 		newmap.mapgen = MAPGEN_REGULAR;
       
    46 		newmap.name = "+rnd+";
       
    47 		newmap.seed = (char*)seed;
       
    48 		newmap.theme = (char*)theme;
       
    49 		newmap.templateFilter = templateFilter;
       
    50 		result = flib_map_copy(&newmap);
       
    51 	}
    42 	}
    52 	return result;
    43 	flib_map newmap = {0};
       
    44 	newmap.mapgen = MAPGEN_REGULAR;
       
    45 	newmap.name = "+rnd+";
       
    46 	newmap.seed = (char*)seed;
       
    47 	newmap.theme = (char*)theme;
       
    48 	newmap.templateFilter = templateFilter;
       
    49 	return flib_map_copy(&newmap);
    53 }
    50 }
    54 
    51 
    55 flib_map *flib_map_create_maze(const char *seed, const char *theme, int mazeSize) {
    52 flib_map *flib_map_create_maze(const char *seed, const char *theme, int mazeSize) {
    56 	flib_map *result = NULL;
    53 	if(log_badargs_if2(seed==NULL, theme==NULL)) {
    57 	if(!seed || !theme) {
    54 		return NULL;
    58 		flib_log_e("null parameter in flib_map_create_maze");
       
    59 	} else {
       
    60 		flib_map newmap = {0};
       
    61 		newmap.mapgen = MAPGEN_MAZE;
       
    62 		newmap.name = "+maze+";
       
    63 		newmap.seed = (char*)seed;
       
    64 		newmap.theme = (char*)theme;
       
    65 		newmap.mazeSize = mazeSize;
       
    66 		result = flib_map_copy(&newmap);
       
    67 	}
    55 	}
    68 	return result;
    56 	flib_map newmap = {0};
       
    57 	newmap.mapgen = MAPGEN_MAZE;
       
    58 	newmap.name = "+maze+";
       
    59 	newmap.seed = (char*)seed;
       
    60 	newmap.theme = (char*)theme;
       
    61 	newmap.mazeSize = mazeSize;
       
    62 	return flib_map_copy(&newmap);
    69 }
    63 }
    70 
    64 
    71 flib_map *flib_map_create_named(const char *seed, const char *name) {
    65 flib_map *flib_map_create_named(const char *seed, const char *name) {
    72 	flib_map *result = NULL;
    66 	if(log_badargs_if2(seed==NULL, name==NULL)) {
    73 	if(!seed || !name) {
    67 		return NULL;
    74 		flib_log_e("null parameter in flib_map_create_named");
       
    75 	} else {
       
    76 		flib_map newmap = {0};
       
    77 		newmap.mapgen = MAPGEN_NAMED;
       
    78 		newmap.name = (char*)name;
       
    79 		newmap.seed = (char*)seed;
       
    80 		result = flib_map_copy(&newmap);
       
    81 	}
    68 	}
    82 	return result;
    69 	flib_map newmap = {0};
       
    70 	newmap.mapgen = MAPGEN_NAMED;
       
    71 	newmap.name = (char*)name;
       
    72 	newmap.seed = (char*)seed;
       
    73 	return flib_map_copy(&newmap);
    83 }
    74 }
    84 
    75 
    85 flib_map *flib_map_create_drawn(const char *seed, const char *theme, const uint8_t *drawData, int drawDataSize) {
    76 flib_map *flib_map_create_drawn(const char *seed, const char *theme, const uint8_t *drawData, size_t drawDataSize) {
    86 	flib_map *result = NULL;
    77 	if(log_badargs_if3(seed==NULL, theme==NULL, drawData==NULL && drawDataSize>0)) {
    87 	if(!seed || !theme || (!drawData && drawDataSize)) {
    78 		return NULL;
    88 		flib_log_e("null parameter in flib_map_create_drawn");
       
    89 	} else {
       
    90 		flib_map newmap = {0};
       
    91 		newmap.mapgen = MAPGEN_DRAWN;
       
    92 		newmap.name = "+drawn+";
       
    93 		newmap.seed = (char*)seed;
       
    94 		newmap.theme = (char*)theme;
       
    95 		newmap.drawData = (uint8_t*) drawData;
       
    96 		newmap.drawDataSize = drawDataSize;
       
    97 		result = flib_map_copy(&newmap);
       
    98 	}
    79 	}
    99 	return result;
    80 	flib_map newmap = {0};
       
    81 	newmap.mapgen = MAPGEN_DRAWN;
       
    82 	newmap.name = "+drawn+";
       
    83 	newmap.seed = (char*)seed;
       
    84 	newmap.theme = (char*)theme;
       
    85 	newmap.drawData = (uint8_t*) drawData;
       
    86 	newmap.drawDataSize = drawDataSize;
       
    87 	return flib_map_copy(&newmap);
   100 }
    88 }
   101 
    89 
   102 flib_map *flib_map_copy(const flib_map *map) {
    90 flib_map *flib_map_copy(const flib_map *map) {
   103 	flib_map *result = NULL;
    91 	flib_map *result = NULL;
   104 	if(map) {
    92 	if(map) {