From 5ac8f63741c25c73ab771fb10211a320031c12dd Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Fri, 5 Jan 2024 02:25:18 +0300 Subject: [PATCH] ref: soft: replace skin texture num bound by a proper check, fixes wrong skin on flags in Adrenaline Gamer --- ref/soft/r_studio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ref/soft/r_studio.c b/ref/soft/r_studio.c index 0da4909d..92bc4b6c 100644 --- a/ref/soft/r_studio.c +++ b/ref/soft/r_studio.c @@ -2023,8 +2023,7 @@ static void R_StudioDrawPoints( void ) if( !m_pStudioHeader ) return; - // safety bounding the skinnum - m_skinnum = bound( 0, RI.currententity->curstate.skin, ( m_pStudioHeader->numskinfamilies - 1 )); + m_skinnum = RI.currententity->curstate.skin; ptexture = (mstudiotexture_t *)((byte *)m_pStudioHeader + m_pStudioHeader->textureindex); pvertbone = ((byte *)m_pStudioHeader + m_pSubModel->vertinfoindex); pnormbone = ((byte *)m_pStudioHeader + m_pSubModel->norminfoindex); @@ -2034,7 +2033,8 @@ static void R_StudioDrawPoints( void ) pstudionorms = (vec3_t *)((byte *)m_pStudioHeader + m_pSubModel->normindex); pskinref = (short *)((byte *)m_pStudioHeader + m_pStudioHeader->skinindex); - if( m_skinnum != 0 ) pskinref += (m_skinnum * m_pStudioHeader->numskinref); + if( m_skinnum > 0 && m_skinnum < m_pStudioHeader->numskinfamilies ) + pskinref += (m_skinnum * m_pStudioHeader->numskinref); if( FBitSet( m_pStudioHeader->flags, STUDIO_HAS_BONEWEIGHTS ) && m_pSubModel->blendvertinfoindex != 0 && m_pSubModel->blendnorminfoindex != 0 ) {