2#include "region_impl.h"
7 memcmp(opts->
prefix,
"region", strlen(
"region")) == 0 &&
9 memcmp(opts->
region_ext,
"mca", strlen(
"mca")) == 0 ||
10 memcmp(opts->
region_ext,
"mcr", strlen(
"mcr")) == 0
15 if (src->
dims > CLOD_REGION_DIMENSIONS_MAX) {
17 "Invalid opts.dims %d. Must be <= %d.", src->
dims,
18 CLOD_REGION_DIMENSIONS_MAX);
26 if (src->
mode != CLOD_REGION_MODE_RDWR && src->
mode != CLOD_REGION_MODE_RDONLY) {
28 "Invalid opts.mode %d. Must be CLOD_REGION_MODE_RDWR or CLOD_REGION_MODE_RDONLY.",
33 dst->
mode = CLOD_REGION_MODE_RDWR;
39 "Invalid opts.unix_fd %d. Must be >= 0.",
50 if (memchr(src->
prefix,
'.', CLOD_REGION_PREFIX_MAX) !=
nullptr) {
52 "Invalid opts.prefix %s. Must not contain a '.' character.",
55 strncpy(dst->
prefix, src->
prefix, CLOD_REGION_PREFIX_MAX);
56 dst->
prefix[CLOD_REGION_PREFIX_MAX] =
'\0';
58 strncpy(dst->
prefix,
"region", CLOD_REGION_PREFIX_MAX + 1);
63 dst->
region_ext[CLOD_REGION_EXTENSION_MAX] =
'\0';
65 strncpy(dst->
region_ext,
"mcr", CLOD_REGION_EXTENSION_MAX + 1);
70 dst->
chunk_ext[CLOD_REGION_EXTENSION_MAX] =
'\0';
72 strncpy(dst->
chunk_ext,
"mcc", CLOD_REGION_EXTENSION_MAX + 1);
78 "Invalid opts.compression %d. Either the required compression library has been intentionally disabled, or the compression mode is invalid.",
82 }
else if (is_vanilla_compatible(dst)) {
83 if (!clod_compression_support(
CLOD_ZLIB)) {
85 "libdeflate has been disabled, but it is required to compress/decompress minecraft-compatible region files.");
88 if (clod_compression_support(
CLOD_LZ4F)) {
@ CLOD_REGION_INVALID_USAGE
enum clod_compression_method compression