gchar* c4_group_handle_get_full_name(C4GroupHandle* handle) { StdStrBuf buf(HANDLE_TO_GROUP(handle)->GetFullName()); gchar* res = static_cast<gchar*>(g_malloc(buf.getSize()*sizeof(gchar))); memcpy(res, buf.getData(), buf.getSize()); return res; }
void c4_mapgen_handle_set_map_library(C4GroupHandle* group_handle) { ::Definitions.Clear(); C4Def* libmap = new C4Def; libmap->id = C4ID(std::string("Library_Map")); libmap->SetName(libmap->id.ToString()); libmap->Category = C4D_StaticBack; FakeSkeletonLoader loader; if(!libmap->Load(*HANDLE_TO_GROUP(group_handle), loader, C4D_Load_Script, NULL, NULL)) { fprintf(stderr, "Failed to load Library_Map script\n"); delete libmap; } else { ::Definitions.Add(libmap, false); } }
gboolean c4_group_handle_is_folder(C4GroupHandle* handle) { C4Group *group = HANDLE_TO_GROUP(handle); return group->IsOpen() && !group->IsPacked(); }
gboolean c4_group_handle_read(C4GroupHandle* handle, gpointer buffer, gsize size) { return HANDLE_TO_GROUP(handle)->Read(buffer, size); }
gsize c4_group_handle_accessed_entry_size(C4GroupHandle* handle) { return HANDLE_TO_GROUP(handle)->AccessedEntrySize(); }
gboolean c4_group_handle_access_entry(C4GroupHandle* handle, const gchar* wildcard, gsize* size, gchar* filename, gboolean needs_to_be_a_group) { return HANDLE_TO_GROUP(handle)->AccessEntry(wildcard, size, filename, needs_to_be_a_group); }
gboolean c4_group_handle_access_next_entry(C4GroupHandle* handle, const gchar* wildcard, gsize* size, gchar* filename, gboolean start_at_filename) { return HANDLE_TO_GROUP(handle)->AccessNextEntry(wildcard, size, filename, start_at_filename); }
void c4_group_handle_reset_search(C4GroupHandle* handle) { HANDLE_TO_GROUP(handle)->ResetSearch(); }
const gchar* c4_group_handle_get_name(C4GroupHandle* handle) { return HANDLE_TO_GROUP(handle)->GetName(); }
gboolean c4_group_handle_open_as_child(C4GroupHandle* handle, C4GroupHandle* mother, const gchar* name, gboolean exclusive, gboolean create) { return HANDLE_TO_GROUP(handle)->OpenAsChild(HANDLE_TO_GROUP(mother), name, exclusive, create); }
gboolean c4_group_handle_open(C4GroupHandle* handle, const gchar* path, gboolean create) { return HANDLE_TO_GROUP(handle)->Open(path, create); }
const gchar* c4_group_handle_get_error(C4GroupHandle* handle) { return HANDLE_TO_GROUP(handle)->GetError(); }
void c4_group_handle_free(C4GroupHandle* handle) { delete HANDLE_TO_GROUP(handle); }