mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-23 12:22:26 +00:00
models: move md5 merge code to separate function
This commit is contained in:
parent
f57ef011b5
commit
ca0e150232
2 changed files with 86 additions and 54 deletions
|
@ -1416,39 +1416,46 @@ Mod_LoadModel(const char *mod_name, const void *buffer, int modfilelen,
|
|||
}
|
||||
|
||||
static int
|
||||
Mod_LoadFileWithoutExt(const char *namewe, void **buffer, const char* ext)
|
||||
Mod_LoadFileMD5Merge(const char *namewe, void **buffer)
|
||||
{
|
||||
int fullsize, filesize_anim, filesize;
|
||||
char *final_buffer = NULL;
|
||||
void *anim_buffer = NULL;
|
||||
char newname[256];
|
||||
size_t tlen;
|
||||
|
||||
*buffer = NULL;
|
||||
|
||||
tlen = strlen(namewe);
|
||||
|
||||
if (!strcmp(ext, "fm") ||
|
||||
!strcmp(ext, "dkm") ||
|
||||
!strcmp(ext, "md2") ||
|
||||
!strcmp(ext, "md5mesh") ||
|
||||
!strcmp(ext, "mdl"))
|
||||
{
|
||||
int filesize;
|
||||
|
||||
/* Check ReRelease / Doom 3 / Quake 4 model */
|
||||
Q_strlcpy(newname, namewe, sizeof(newname));
|
||||
Q_strlcat(newname, ".md5mesh", sizeof(newname));
|
||||
filesize = ri.FS_LoadFile(newname, buffer);
|
||||
if (filesize > 0)
|
||||
|
||||
#if 0
|
||||
if (filesize <= 0)
|
||||
{
|
||||
int fullsize, filesize_anim;
|
||||
char *final_buffer = NULL;
|
||||
void *anim_buffer = NULL;
|
||||
const char *model_name;
|
||||
char model_path[256];
|
||||
|
||||
Q_strlcpy(newname, namewe, sizeof(newname));
|
||||
Q_strlcat(newname, ".md5anim", sizeof(newname));
|
||||
model_name = COM_SkipPath(namewe);
|
||||
memset(model_path, 0, sizeof(model_path));
|
||||
memcpy(model_path, namewe, strlen(namewe) - strlen(model_name));
|
||||
|
||||
Q_strlcpy(newname, model_path, sizeof(newname));
|
||||
Q_strlcat(newname, "md5/", sizeof(newname));
|
||||
Q_strlcat(newname, model_name, sizeof(newname));
|
||||
Q_strlcat(newname, ".md5mesh", sizeof(newname));
|
||||
|
||||
filesize = ri.FS_LoadFile(newname, buffer);
|
||||
/* no replace file */
|
||||
if (filesize <= 0)
|
||||
{
|
||||
return filesize;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
memcpy(newname + strlen(newname) - strlen("mesh"), "anim", strlen("anim"));
|
||||
filesize_anim = ri.FS_LoadFile(newname, &anim_buffer);
|
||||
|
||||
if (filesize_anim <= 0)
|
||||
{
|
||||
ri.FS_FreeFile(*buffer);
|
||||
return filesize;
|
||||
}
|
||||
|
||||
|
@ -1470,6 +1477,31 @@ Mod_LoadFileWithoutExt(const char *namewe, void **buffer, const char* ext)
|
|||
return fullsize;
|
||||
}
|
||||
|
||||
static int
|
||||
Mod_LoadFileWithoutExt(const char *namewe, void **buffer, const char* ext)
|
||||
{
|
||||
char newname[256];
|
||||
size_t tlen;
|
||||
|
||||
*buffer = NULL;
|
||||
|
||||
tlen = strlen(namewe);
|
||||
|
||||
if (!strcmp(ext, "fm") ||
|
||||
!strcmp(ext, "dkm") ||
|
||||
!strcmp(ext, "md2") ||
|
||||
!strcmp(ext, "md5mesh") ||
|
||||
!strcmp(ext, "mdl"))
|
||||
{
|
||||
int filesize;
|
||||
|
||||
/* Check ReRelease / Doom 3 / Quake 4 model */
|
||||
filesize = Mod_LoadFileMD5Merge(namewe, buffer);
|
||||
if (filesize > 0)
|
||||
{
|
||||
return filesize;
|
||||
}
|
||||
|
||||
/* Check Heretic2 model */
|
||||
Q_strlcpy(newname, namewe, sizeof(newname));
|
||||
Q_strlcat(newname, ".fm", sizeof(newname));
|
||||
|
|
|
@ -310,7 +310,7 @@ AllocateFrames(md5_model_t *anim)
|
|||
anim->num_tris += anim->meshes[i].num_tris;
|
||||
}
|
||||
|
||||
R_Printf(PRINT_ALL, "mesh num tris %d / num vert %d\n",
|
||||
R_Printf(PRINT_DEVELOPER, "mesh num tris %d / num vert %d\n",
|
||||
anim->num_tris, anim->num_verts);
|
||||
|
||||
anim->vertexIndices = (int *)
|
||||
|
@ -434,7 +434,7 @@ ReadMD5Anim(md5_model_t *anim, const char *buffer, size_t size)
|
|||
}
|
||||
else if (sscanf(buff, "frameRate %d", &anim->frameRate) == 1)
|
||||
{
|
||||
R_Printf(PRINT_ALL, "md5anim: animation's frame rate is %d\n", anim->frameRate);
|
||||
R_Printf(PRINT_DEVELOPER, "md5anim: animation's frame rate is %d\n", anim->frameRate);
|
||||
}
|
||||
else if (sscanf(buff, "numAnimatedComponents %d", &numAnimatedComponents) == 1)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue