示例#1
0
/* PMDModel::load: load from file name */
bool PMDModel::load(const char *file, BulletPhysics *bullet, SystemTexture *systex)
{
   int len;
   FILE *fp;
   size_t size;
   unsigned char *data;
   char *dir;
   bool ret;

   if(bullet == NULL || systex == NULL)
      return false;
   len = MMDFiles_strlen(file);
   if(len <= 0)
      return false;

   /* get model directory */
   dir = MMDFiles_dirname(file);

   /* open file */
   fp = MMDFiles_fopen(file, "rb");
   if (!fp)
      return false;

   /* get file size */
   size = MMDFiles_getfsize(file);

   /* allocate memory for reading data */
   data = (unsigned char *) malloc(size);

   /* read all data */
   fread(data, 1, size, fp);

   /* close file */
   fclose(fp);

   /* initialize and load from the data memories */
   ret = parse(data, (unsigned long) size, bullet, systex, dir);

   /* release memory for reading */
   free(data);

   free(dir);
   return ret;
}
示例#2
0
/* MMDAgent_dirname: get directory name from path */
char *MMDAgent_dirname(const char *file)
{
    return MMDFiles_dirname(file);
}