engine: s_mouth: fix another signed char

This commit is contained in:
Alibek Omarov 2019-09-25 04:10:47 +03:00
parent 6e95e19589
commit 13c1e807ad

View File

@ -57,7 +57,7 @@ void SND_CloseMouth( channel_t *ch )
void SND_MoveMouth8( channel_t *ch, wavdata_t *pSource, int count ) void SND_MoveMouth8( channel_t *ch, wavdata_t *pSource, int count )
{ {
cl_entity_t *clientEntity; cl_entity_t *clientEntity;
char *pdata = NULL; signed char *pdata = NULL;
mouth_t *pMouth = NULL; mouth_t *pMouth = NULL;
int scount, pos = 0; int scount, pos = 0;
int savg, data; int savg, data;
@ -77,7 +77,7 @@ void SND_MoveMouth8( channel_t *ch, wavdata_t *pSource, int count )
count = S_GetOutputData( pSource, (void**)&pdata, pos, count, ch->use_loop ); count = S_GetOutputData( pSource, (void**)&pdata, pos, count, ch->use_loop );
if( pdata == NULL ) return; if( pdata == NULL ) return;
i = 0; i = 0;
scount = pMouth->sndcount; scount = pMouth->sndcount;
savg = 0; savg = 0;
@ -85,7 +85,7 @@ void SND_MoveMouth8( channel_t *ch, wavdata_t *pSource, int count )
while( i < count && scount < CAVGSAMPLES ) while( i < count && scount < CAVGSAMPLES )
{ {
data = pdata[i]; data = pdata[i];
savg += abs( data ); savg += abs( data );
i += 80 + ((byte)data & 0x1F); i += 80 + ((byte)data & 0x1F);
scount++; scount++;
@ -94,7 +94,7 @@ void SND_MoveMouth8( channel_t *ch, wavdata_t *pSource, int count )
pMouth->sndavg += savg; pMouth->sndavg += savg;
pMouth->sndcount = (byte)scount; pMouth->sndcount = (byte)scount;
if( pMouth->sndcount >= CAVGSAMPLES ) if( pMouth->sndcount >= CAVGSAMPLES )
{ {
pMouth->mouthopen = pMouth->sndavg / CAVGSAMPLES; pMouth->mouthopen = pMouth->sndavg / CAVGSAMPLES;
pMouth->sndavg = 0; pMouth->sndavg = 0;
@ -125,7 +125,7 @@ void SND_MoveMouth16( channel_t *ch, wavdata_t *pSource, int count )
count = S_GetOutputData( pSource, (void**)&pdata, pos, count, ch->use_loop ); count = S_GetOutputData( pSource, (void**)&pdata, pos, count, ch->use_loop );
if( pdata == NULL ) return; if( pdata == NULL ) return;
i = 0; i = 0;
scount = pMouth->sndcount; scount = pMouth->sndcount;
savg = 0; savg = 0;
@ -134,7 +134,7 @@ void SND_MoveMouth16( channel_t *ch, wavdata_t *pSource, int count )
{ {
data = pdata[i]; data = pdata[i];
data = (bound( -32767, data, 0x7ffe ) >> 8); data = (bound( -32767, data, 0x7ffe ) >> 8);
savg += abs( data ); savg += abs( data );
i += 80 + ((byte)data & 0x1F); i += 80 + ((byte)data & 0x1F);
scount++; scount++;
@ -143,7 +143,7 @@ void SND_MoveMouth16( channel_t *ch, wavdata_t *pSource, int count )
pMouth->sndavg += savg; pMouth->sndavg += savg;
pMouth->sndcount = (byte)scount; pMouth->sndcount = (byte)scount;
if( pMouth->sndcount >= CAVGSAMPLES ) if( pMouth->sndcount >= CAVGSAMPLES )
{ {
pMouth->mouthopen = pMouth->sndavg / CAVGSAMPLES; pMouth->mouthopen = pMouth->sndavg / CAVGSAMPLES;
pMouth->sndavg = 0; pMouth->sndavg = 0;