Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions src/avmesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,28 @@ int avm_open(const char* filename, int* id)
{
if (filename==NULL) RETURN_ERROR("avm_open: filename is NULL");
if (id==NULL) RETURN_ERROR("avm_open: id is NULL");
avmesh_file *avf = new avmesh_file;
avf->rev0 = NULL;
avf->rev1 = NULL;
avf->rev2 = NULL;
avf->formatRevision = -1;
file_list[file_counter] = avf;

// is this a AVMesh File?
FILE* fp = NULL;
bool byte_swap = 0;
file_id_prefix_t file_prefix;
fp = fopen(filename, "rb");
if (fp==NULL) RETURN_ERROR("avm_open: fopen failed");

// read the file_prefix metadata
bool byte_swap = 0;
file_id_prefix_t file_prefix;
if(!file_id_prefix::read(fp, &byte_swap, &file_prefix)) {
avm_close(file_counter);
fclose(fp);
RETURN_ERROR("avm_open: failed reading file_id_prefix");
}

// allocate an avmesh_file instance
avmesh_file *avf = new avmesh_file;
avf->rev0 = NULL;
avf->rev1 = NULL;
avf->rev2 = NULL;
avf->formatRevision = -1;
file_list[file_counter] = avf;
Comment on lines +52 to +58

if (file_prefix.formatRevision == 0) {
avf->formatRevision = 0;
avf->rev0 = new rev0_avmesh_file;
Expand All @@ -62,8 +66,7 @@ int avm_open(const char* filename, int* id)
avf->rev0->filename = filename;
avf->rev0->file_prefix.formatRevision = 0;
if (rev0::avm_open(avf->rev0, id)) {
delete avf->rev0;
delete avf;
avm_close(file_counter);
return 1;
}
Comment on lines 68 to 71
*id = file_counter++;
Expand All @@ -77,9 +80,8 @@ int avm_open(const char* filename, int* id)
avf->rev1->file_prefix = file_prefix;
avf->rev1->filename = filename;
avf->rev1->file_prefix.formatRevision = 1;
if (rev1::avm_open(avf->rev1, id)) {
delete avf->rev1;
delete avf;
if (rev1::avm_open(avf->rev1, id)) {
avm_close(file_counter);
return 1;
}
*id = file_counter++;
Expand All @@ -94,8 +96,7 @@ int avm_open(const char* filename, int* id)
avf->rev2->filename = filename;
avf->rev2->file_prefix.formatRevision = 2;
if (rev2::avm_open(avf->rev2, id)) {
delete avf->rev2;
delete avf;
avm_close(file_counter);
return 1;
}
*id = file_counter++;
Expand Down