brender-1997/fw/genfile.c
2022-05-03 14:31:40 -07:00

90 lines
1.7 KiB
C

/*
* Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved.
*
* $Id: genfile.c 2.2 1996/11/21 23:07:45 NIKH Exp $
* $Locker: $
*
* General per-chunk file operations
*
*/
#include <stddef.h>
#include "fw.h"
#include "brassert.h"
#include "datafile.h"
BR_RCS_ID("$Id: genfile.c 2.2 1996/11/21 23:07:45 NIKH Exp $")
/**
** End Marker
**/
int FopRead_END(br_datafile *df, br_uint_32 id, br_uint_32 length, br_uint_32 count)
{
return 1;
}
int FopWrite_END(br_datafile *df)
{
df->prims->chunk_write(df,FID_END,0);
return 0;
}
/**
** File Info
**/
struct file_info {
br_uint_32 type;
br_uint_32 version;
};
br_file_enum_member file_type_FM[] = {
_ENUM_MEMBER(FILE_TYPE_NONE),
_ENUM_MEMBER(FILE_TYPE_ACTORS),
_ENUM_MEMBER(FILE_TYPE_PIXELMAP),
_ENUM_MEMBER(FILE_TYPE_LIGHT),
_ENUM_MEMBER(FILE_TYPE_CAMERA),
_ENUM_MEMBER(FILE_TYPE_MATERIAL_OLD),
_ENUM_MEMBER(FILE_TYPE_MODEL),
_ENUM_MEMBER(FILE_TYPE_ANIMATION),
_ENUM_MEMBER(FILE_TYPE_TREE),
_ENUM_MEMBER(FILE_TYPE_MATERIAL)
};
STATIC _FILE_ENUM(file_type);
#define _STRUCT_NAME struct file_info
STATIC br_file_struct_member file_info_FM[] = {
_ENUM_32(type,file_type_F),
_UINT_32(version),
};
STATIC _FILE_STRUCT(file_info);
#undef _STRUCT_NAME
#if 0
int FopRead_FILE_INFO(br_datafile *df, br_uint_32 id, br_uint_32 length, br_uint_32 count)
{
struct file_info fi;
df->prims->struct_read(df,&file_info_F, &fi);
return fi.type;
}
#endif
int FopWrite_FILE_INFO(br_datafile *df, br_uint_32 type)
{
struct file_info fi;
fi.type = type;
fi.version = BR_FILE_VERSION;
df->prims->chunk_write(df,FID_FILE_INFO,df->prims->struct_size(df,&file_info_F, &fi));
df->prims->struct_write(df,&file_info_F, &fi);
return 0;
}