2
0
mirror of https://github.com/FWGS/xash3d-fwgs synced 2024-11-22 09:56:22 +01:00

engine: remove Set/GetCurrentLoadingModel from RefAPI

This commit is contained in:
Alibek Omarov 2023-10-28 15:20:52 +03:00
parent f07eea5073
commit 30d1492b93
7 changed files with 17 additions and 36 deletions

View File

@ -98,16 +98,6 @@ static void *pfnMod_Extradata( int type, model_t *m )
return NULL; return NULL;
} }
static model_t *pfnMod_GetCurrentLoadingModel( void )
{
return loadmodel;
}
static void pfnMod_SetCurrentLoadingModel( model_t *m )
{
loadmodel = m;
}
static void pfnGetPredictedOrigin( vec3_t v ) static void pfnGetPredictedOrigin( vec3_t v )
{ {
VectorCopy( cl.simorg, v ); VectorCopy( cl.simorg, v );
@ -282,8 +272,6 @@ static ref_api_t gEngfuncs =
Mod_ForName, Mod_ForName,
pfnMod_Extradata, pfnMod_Extradata,
CL_ModelHandle, CL_ModelHandle,
pfnMod_GetCurrentLoadingModel,
pfnMod_SetCurrentLoadingModel,
CL_GetRemapInfoForEntity, CL_GetRemapInfoForEntity,
CL_AllocRemapInfo, CL_AllocRemapInfo,

View File

@ -2505,7 +2505,7 @@ static void Mod_LoadSurfaces( dbspmodel_t *bmod )
#if !XASH_DEDICATED // TODO: Do we need subdivide on server? #if !XASH_DEDICATED // TODO: Do we need subdivide on server?
if( FBitSet( out->flags, SURF_DRAWTURB ) && !Host_IsDedicated() ) if( FBitSet( out->flags, SURF_DRAWTURB ) && !Host_IsDedicated() )
ref.dllFuncs.GL_SubdivideSurface( out ); // cut up polygon for warps ref.dllFuncs.GL_SubdivideSurface( loadmodel, out ); // cut up polygon for warps
#endif #endif
} }

View File

@ -330,8 +330,6 @@ typedef struct ref_api_s
model_t *(*Mod_ForName)( const char *name, qboolean crash, qboolean trackCRC ); model_t *(*Mod_ForName)( const char *name, qboolean crash, qboolean trackCRC );
void *(*Mod_Extradata)( int type, model_t *model ); void *(*Mod_Extradata)( int type, model_t *model );
struct model_s *(*pfnGetModelByIndex)( int index ); // CL_ModelHandle struct model_s *(*pfnGetModelByIndex)( int index ); // CL_ModelHandle
struct model_s *(*Mod_GetCurrentLoadingModel)( void ); // loadmodel
void (*Mod_SetCurrentLoadingModel)( struct model_s* ); // loadmodel
// remap // remap
struct remap_info_s *(*CL_GetRemapInfoForEntity)( cl_entity_t *e ); struct remap_info_s *(*CL_GetRemapInfoForEntity)( cl_entity_t *e );
@ -506,7 +504,7 @@ typedef struct ref_interface_s
// bmodel // bmodel
void (*R_InitSkyClouds)( struct mip_s *mt, struct texture_s *tx, qboolean custom_palette ); void (*R_InitSkyClouds)( struct mip_s *mt, struct texture_s *tx, qboolean custom_palette );
void (*GL_SubdivideSurface)( msurface_t *fa ); void (*GL_SubdivideSurface)( model_t *mod, msurface_t *fa );
void (*CL_RunLightStyles)( void ); void (*CL_RunLightStyles)( void );
// sprites // sprites

View File

@ -418,7 +418,6 @@ rgbdata_t *Mod_CreateSkinData( model_t *mod, byte *data, int width, int height )
static rgbdata_t skin; static rgbdata_t skin;
char name[MAX_QPATH]; char name[MAX_QPATH];
int i; int i;
model_t *loadmodel = gEngfuncs.Mod_GetCurrentLoadingModel();
skin.width = width; skin.width = width;
skin.height = height; skin.height = height;
@ -443,7 +442,7 @@ rgbdata_t *Mod_CreateSkinData( model_t *mod, byte *data, int width, int height )
} }
} }
COM_FileBase( loadmodel->name, name, sizeof( name )); COM_FileBase( mod->name, name, sizeof( name ));
// for alias models only player can have remap textures // for alias models only player can have remap textures
if( mod != NULL && !Q_stricmp( name, "player" )) if( mod != NULL && !Q_stricmp( name, "player" ))
@ -476,12 +475,11 @@ rgbdata_t *Mod_CreateSkinData( model_t *mod, byte *data, int width, int height )
return gEngfuncs.FS_CopyImage( &skin ); return gEngfuncs.FS_CopyImage( &skin );
} }
void *Mod_LoadSingleSkin( daliasskintype_t *pskintype, int skinnum, int size ) void *Mod_LoadSingleSkin( model_t *loadmodel, daliasskintype_t *pskintype, int skinnum, int size )
{ {
string name, lumaname; string name, lumaname;
string checkname; string checkname;
rgbdata_t *pic; rgbdata_t *pic;
model_t *loadmodel = gEngfuncs.Mod_GetCurrentLoadingModel();
Q_snprintf( name, sizeof( name ), "%s:frame%i", loadmodel->name, skinnum ); Q_snprintf( name, sizeof( name ), "%s:frame%i", loadmodel->name, skinnum );
Q_snprintf( lumaname, sizeof( lumaname ), "%s:luma%i", loadmodel->name, skinnum ); Q_snprintf( lumaname, sizeof( lumaname ), "%s:luma%i", loadmodel->name, skinnum );
@ -508,14 +506,13 @@ void *Mod_LoadSingleSkin( daliasskintype_t *pskintype, int skinnum, int size )
return ((byte *)(pskintype + 1) + size); return ((byte *)(pskintype + 1) + size);
} }
void *Mod_LoadGroupSkin( daliasskintype_t *pskintype, int skinnum, int size ) void *Mod_LoadGroupSkin( model_t *loadmodel, daliasskintype_t *pskintype, int skinnum, int size )
{ {
daliasskininterval_t *pinskinintervals; daliasskininterval_t *pinskinintervals;
daliasskingroup_t *pinskingroup; daliasskingroup_t *pinskingroup;
string name, lumaname; string name, lumaname;
rgbdata_t *pic; rgbdata_t *pic;
int i, j; int i, j;
model_t *loadmodel = gEngfuncs.Mod_GetCurrentLoadingModel();
// animating skin group. yuck. // animating skin group. yuck.
pskintype++; pskintype++;
@ -555,7 +552,7 @@ void *Mod_LoadGroupSkin( daliasskintype_t *pskintype, int skinnum, int size )
Mod_LoadAllSkins Mod_LoadAllSkins
=============== ===============
*/ */
void *Mod_LoadAllSkins( int numskins, daliasskintype_t *pskintype ) void *Mod_LoadAllSkins( model_t *mod, int numskins, daliasskintype_t *pskintype )
{ {
int i, size; int i, size;
@ -568,11 +565,11 @@ void *Mod_LoadAllSkins( int numskins, daliasskintype_t *pskintype )
{ {
if( pskintype->type == ALIAS_SKIN_SINGLE ) if( pskintype->type == ALIAS_SKIN_SINGLE )
{ {
pskintype = (daliasskintype_t *)Mod_LoadSingleSkin( pskintype, i, size ); pskintype = (daliasskintype_t *)Mod_LoadSingleSkin( mod, pskintype, i, size );
} }
else else
{ {
pskintype = (daliasskintype_t *)Mod_LoadGroupSkin( pskintype, i, size ); pskintype = (daliasskintype_t *)Mod_LoadGroupSkin( mod, pskintype, i, size );
} }
} }
@ -680,7 +677,7 @@ void Mod_LoadAliasModel( model_t *mod, const void *buffer, qboolean *loaded )
// load the skins // load the skins
pskintype = (daliasskintype_t *)&pinmodel[1]; pskintype = (daliasskintype_t *)&pinmodel[1];
pskintype = Mod_LoadAllSkins( m_pAliasHeader->numskins, pskintype ); pskintype = Mod_LoadAllSkins( mod, m_pAliasHeader->numskins, pskintype );
// load base s and t vertices // load base s and t vertices
pinstverts = (stvert_t *)pskintype; pinstverts = (stvert_t *)pskintype;
@ -725,7 +722,7 @@ void Mod_LoadAliasModel( model_t *mod, const void *buffer, qboolean *loaded )
GL_MakeAliasModelDisplayLists( mod ); GL_MakeAliasModelDisplayLists( mod );
// move the complete, relocatable alias model to the cache // move the complete, relocatable alias model to the cache
gEngfuncs.Mod_GetCurrentLoadingModel()->cache.data = m_pAliasHeader; mod->cache.data = m_pAliasHeader;
if( loaded ) *loaded = true; // done if( loaded ) *loaded = true; // done
} }

View File

@ -426,7 +426,7 @@ void R_MarkLeaves( void );
void R_DrawWorld( void ); void R_DrawWorld( void );
void R_DrawWaterSurfaces( void ); void R_DrawWaterSurfaces( void );
void R_DrawBrushModel( cl_entity_t *e ); void R_DrawBrushModel( cl_entity_t *e );
void GL_SubdivideSurface( msurface_t *fa ); void GL_SubdivideSurface( model_t *mod, msurface_t *fa );
void GL_BuildPolygonFromSurface( model_t *mod, msurface_t *fa ); void GL_BuildPolygonFromSurface( model_t *mod, msurface_t *fa );
void DrawGLPoly( glpoly_t *p, float xScale, float yScale ); void DrawGLPoly( glpoly_t *p, float xScale, float yScale );
texture_t *R_TextureAnimation( msurface_t *s ); texture_t *R_TextureAnimation( msurface_t *s );

View File

@ -78,7 +78,7 @@ static void BoundPoly( int numverts, float *verts, vec3_t mins, vec3_t maxs )
} }
} }
static void SubdividePolygon_r( msurface_t *warpface, int numverts, float *verts ) static void SubdividePolygon_r( model_t *loadmodel, msurface_t *warpface, int numverts, float *verts )
{ {
vec3_t front[SUBDIVIDE_SIZE], back[SUBDIVIDE_SIZE]; vec3_t front[SUBDIVIDE_SIZE], back[SUBDIVIDE_SIZE];
mextrasurf_t *warpinfo = warpface->info; mextrasurf_t *warpinfo = warpface->info;
@ -88,7 +88,6 @@ static void SubdividePolygon_r( msurface_t *warpface, int numverts, float *verts
float sample_size; float sample_size;
vec3_t mins, maxs; vec3_t mins, maxs;
glpoly_t *poly; glpoly_t *poly;
model_t *loadmodel = gEngfuncs.Mod_GetCurrentLoadingModel();
if( numverts > ( SUBDIVIDE_SIZE - 4 )) if( numverts > ( SUBDIVIDE_SIZE - 4 ))
gEngfuncs.Host_Error( "Mod_SubdividePolygon: too many vertexes on face ( %i )\n", numverts ); gEngfuncs.Host_Error( "Mod_SubdividePolygon: too many vertexes on face ( %i )\n", numverts );
@ -143,8 +142,8 @@ static void SubdividePolygon_r( msurface_t *warpface, int numverts, float *verts
} }
} }
SubdividePolygon_r( warpface, f, front[0] ); SubdividePolygon_r( loadmodel, warpface, f, front[0] );
SubdividePolygon_r( warpface, b, back[0] ); SubdividePolygon_r( loadmodel, warpface, b, back[0] );
return; return;
} }
@ -238,13 +237,12 @@ boundaries so that turbulent and sky warps
can be done reasonably. can be done reasonably.
================ ================
*/ */
void GL_SubdivideSurface( msurface_t *fa ) void GL_SubdivideSurface( model_t *loadmodel, msurface_t *fa )
{ {
vec3_t verts[SUBDIVIDE_SIZE]; vec3_t verts[SUBDIVIDE_SIZE];
int numverts; int numverts;
int i, lindex; int i, lindex;
float *vec; float *vec;
model_t *loadmodel = gEngfuncs.Mod_GetCurrentLoadingModel();
// convert edges back to a normal polygon // convert edges back to a normal polygon
numverts = 0; numverts = 0;
@ -261,7 +259,7 @@ void GL_SubdivideSurface( msurface_t *fa )
SetBits( fa->flags, SURF_DRAWTURB_QUADS ); // predict state SetBits( fa->flags, SURF_DRAWTURB_QUADS ); // predict state
// do subdivide // do subdivide
SubdividePolygon_r( fa, numverts, verts[0] ); SubdividePolygon_r( loadmodel, fa, numverts, verts[0] );
} }
/* /*

View File

@ -329,7 +329,7 @@ void R_InitSkyClouds(mip_t *mt, texture_t *tx, qboolean custom_palette)
} }
void GAME_EXPORT GL_SubdivideSurface(msurface_t *fa) void GAME_EXPORT GL_SubdivideSurface( model_t *mod, msurface_t *fa )
{ {
} }