From 1c161a9930a7f06f0b526124482103921b478aab Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Tue, 3 Mar 2009 11:00:08 +0000 Subject: [PATCH] =?UTF-8?q?sind=5Fdma.c=20aufger=C3=A4umt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/ref.h | 56 ++------------------------------------ src/client/snd_dma.c | 64 +++++++++++++++++++++----------------------- 2 files changed, 33 insertions(+), 87 deletions(-) diff --git a/src/client/ref.h b/src/client/ref.h index d7294261..f50a1d30 100644 --- a/src/client/ref.h +++ b/src/client/ref.h @@ -34,7 +34,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define SHELL_BLUE_COLOR 0xF3 #define SHELL_RG_COLOR 0xDC -//#define SHELL_RB_COLOR 0x86 #define SHELL_RB_COLOR 0x68 #define SHELL_BG_COLOR 0x78 @@ -74,20 +73,12 @@ typedef struct entity_s struct image_s *skin; // NULL for inline skin int flags; -#ifdef QMAX - int renderfx; -#endif } entity_t; #define ENTITY_FLAGS 68 typedef struct { -#ifdef QMAX - qboolean spotlight; - vec3_t direction; -#endif - vec3_t origin; vec3_t color; float intensity; @@ -98,17 +89,6 @@ typedef struct vec3_t origin; int color; float alpha; -#ifdef QMAX - vec3_t angle; - float size; - int flags; - - float red; - float green; - float blue; - - int image; -#endif } particle_t; typedef struct @@ -141,8 +121,6 @@ typedef struct particle_t *particles; } refdef_t; - - #define API_VERSION 3 // @@ -180,18 +158,8 @@ typedef struct void (*EndRegistration) (void); void (*RenderFrame) (refdef_t *fd); - -#ifdef QMAX - void (*AddStain) (vec3_t org, float intensity, float r, float g, float b); - void (*SetParticlePicture) (int num, char *name); - void (*DrawScaledPic) (int x, int y, float scale, float alpha, char *name); - float (*CharMap_Scale) (void); - void (*DrawStretchPic) (int x, int y, int w, int h, char *name, float alpha); - void (*DrawChar) (int x, int y, int c, int alpha); -#else - void (*DrawStretchPic) (int x, int y, int w, int h, char *name); - void (*DrawChar) (int x, int y, int c); -#endif + void (*DrawStretchPic) (int x, int y, int w, int h, char *name); + void (*DrawChar) (int x, int y, int c); void (*DrawGetPicSize) (int *w, int *h, char *name); // will return 0 0 if not found void (*DrawPic) (int x, int y, char *name); void (*DrawTileClear) (int x, int y, int w, int h, char *name); @@ -246,28 +214,8 @@ typedef struct qboolean (*Vid_GetModeInfo)( int *width, int *height, int mode ); void (*Vid_MenuInit)( void ); void (*Vid_NewWindow)( int width, int height ); - -#ifdef QMAX - void (*SetParticlePics) (void); -#endif } refimport_t; -#ifdef QMAX -#define DIV254BY255 (0.9960784313725490196078431372549f) -#define DIV255 (0.003921568627450980392156862745098f) -#define DIV256 (0.00390625f) -#define DIV512 (0.001953125f) -#define TWOTHIRDS (0.666666666666666666666666666666666666666f) - -typedef struct -{ - vec3_t origin; - vec3_t color; - float intensity; -} dstain_t; -#endif - - // this is the only function actually exported at the linker level typedef refexport_t (*GetRefAPI_t) (refimport_t); diff --git a/src/client/snd_dma.c b/src/client/snd_dma.c index 67115e41..570ef92f 100644 --- a/src/client/snd_dma.c +++ b/src/client/snd_dma.c @@ -382,7 +382,7 @@ channel_t *S_PickChannel(int entnum, int entchannel) if (entchannel<0) Com_Error (ERR_DROP, "S_PickChannel: entchannel<0"); -// Check for replacement sound, or find the best one to replace + // Check for replacement sound, or find the best one to replace first_to_die = -1; life_left = 0x7fffffff; for (ch_idx=0 ; ch_idx < MAX_CHANNELS ; ch_idx++) @@ -435,7 +435,7 @@ void S_SpatializeOrigin (vec3_t origin, float master_vol, float dist_mult, int * return; } -// calculate stereo seperation and distance attenuation + // calculate stereo seperation and distance attenuation VectorSubtract(origin, listener_origin, source_vec); dist = VectorNormalize(source_vec); @@ -448,17 +448,17 @@ void S_SpatializeOrigin (vec3_t origin, float master_vol, float dist_mult, int * if (dma.channels == 1 || !dist_mult) { // no attenuation = no spatialization - rscale = 1.0; - lscale = 1.0; + rscale = 1.0f; + lscale = 1.0f; } else { - rscale = 0.5 * (1.0 + dot); - lscale = 0.5*(1.0 - dot); + rscale = 0.5f * (1.0f + dot); + lscale = 0.5f * (1.0f - dot); } // add in distance effect - scale = (1.0 - dist) * rscale; + scale = (1.0f - dist) * rscale; *right_vol = (int) (master_vol * scale); if (*right_vol < 0) *right_vol = 0; @@ -493,7 +493,7 @@ void S_Spatialize(channel_t *ch) else CL_GetEntitySoundOrigin (ch->entnum, origin); - S_SpatializeOrigin (origin, ch->master_vol, ch->dist_mult, &ch->leftvol, &ch->rightvol); + S_SpatializeOrigin (origin, (float)ch->master_vol, ch->dist_mult, &ch->leftvol, &ch->rightvol); } @@ -564,9 +564,9 @@ void S_IssuePlaysound (playsound_t *ps) // spatialize if (ps->attenuation == ATTN_STATIC) - ch->dist_mult = ps->attenuation * 0.001; + ch->dist_mult = ps->attenuation * 0.001f; else - ch->dist_mult = ps->attenuation * 0.0005; + ch->dist_mult = ps->attenuation * 0.0005f; ch->master_vol = ps->volume; ch->entnum = ps->entnum; ch->entchannel = ps->entchannel; @@ -695,16 +695,16 @@ void S_StartSound(vec3_t origin, int entnum, int entchannel, sfx_t *sfx, float f ps->sfx = sfx; // drift s_beginofs - start = cl.frame.servertime * 0.001 * dma.speed + s_beginofs; + start = (int)(cl.frame.servertime * 0.001f * dma.speed + s_beginofs); if (start < paintedtime) { start = paintedtime; - s_beginofs = start - (cl.frame.servertime * 0.001 * dma.speed); + s_beginofs = (int)(start - (cl.frame.servertime * 0.001f * dma.speed)); } - else if (start > paintedtime + 0.3 * dma.speed) + else if (start > paintedtime + 0.3f * dma.speed) { - start = paintedtime + 0.1 * dma.speed; - s_beginofs = start - (cl.frame.servertime * 0.001 * dma.speed); + start = (int)(paintedtime + 0.1f * dma.speed); + s_beginofs = (int)(start - (cl.frame.servertime * 0.001f * dma.speed)); } else { @@ -714,7 +714,7 @@ void S_StartSound(vec3_t origin, int entnum, int entchannel, sfx_t *sfx, float f if (!timeofs) ps->begin = paintedtime; else - ps->begin = start + timeofs * dma.speed; + ps->begin = (int)(start + timeofs * dma.speed); // sort into the pending sound list for (sort = s_pendingplays.next ; @@ -870,7 +870,7 @@ void S_AddLoopSounds (void) ent = &cl_parse_entities[num]; // find the total contribution of all sounds of this type - S_SpatializeOrigin (ent->origin, 255.0, SOUND_LOOPATTENUATE, + S_SpatializeOrigin (ent->origin, 255.0f, SOUND_LOOPATTENUATE, &left_total, &right_total); for (j=i+1 ; jorigin, 255.0, SOUND_LOOPATTENUATE, + S_SpatializeOrigin (ent->origin, 255.0f, SOUND_LOOPATTENUATE, &left, &right); left_total += left; right_total += right; @@ -948,7 +948,6 @@ void S_RawSamples (int samples, int rate, int width, int channels, byte *data) s_rawend = paintedtime; scale = (float)rate / dma.speed; -//Com_Printf ("%i < %i < %i\n", soundtime, paintedtime, s_rawend); if (channels == 2 && width == 2) { if (scale == 1.0) @@ -967,7 +966,7 @@ void S_RawSamples (int samples, int rate, int width, int channels, byte *data) { for (i=0 ; ; i++) { - src = i*scale; + src = (int)(i*scale); if (src >= samples) break; dst = s_rawend&(MAX_RAW_SAMPLES-1); @@ -983,7 +982,7 @@ void S_RawSamples (int samples, int rate, int width, int channels, byte *data) { for (i=0 ; ; i++) { - src = i*scale; + src = (int)(i*scale); if (src >= samples) break; dst = s_rawend&(MAX_RAW_SAMPLES-1); @@ -998,7 +997,7 @@ void S_RawSamples (int samples, int rate, int width, int channels, byte *data) { for (i=0 ; ; i++) { - src = i*scale; + src = (int)(i*scale); if (src >= samples) break; dst = s_rawend&(MAX_RAW_SAMPLES-1); @@ -1013,7 +1012,7 @@ void S_RawSamples (int samples, int rate, int width, int channels, byte *data) { for (i=0 ; ; i++) { - src = i*scale; + src = (int)(i*scale); if (src >= samples) break; dst = s_rawend&(MAX_RAW_SAMPLES-1); @@ -1103,7 +1102,7 @@ void S_Update(vec3_t origin, vec3_t forward, vec3_t right, vec3_t up) Com_Printf ("----(%i)---- painted: %i\n", total, paintedtime); } -// mix some sound + // mix some sound S_Update_(); } @@ -1116,8 +1115,8 @@ void GetSoundtime(void) fullsamples = dma.samples / dma.channels; -// it is possible to miscount buffers if it has wrapped twice between -// calls to S_Update. Oh well. + // it is possible to miscount buffers if it has wrapped twice between + // calls to S_Update. Oh well. samplepos = SNDDMA_GetDMAPos(); if (samplepos < oldsamplepos) @@ -1150,19 +1149,18 @@ void S_Update_(void) if (!dma.buffer) return; -// Updates DMA time + // Updates DMA time GetSoundtime(); -// check to make sure that we haven't overshot + // check to make sure that we haven't overshot if (paintedtime < soundtime) { Com_DPrintf ("S_Update_ : overflow\n"); paintedtime = soundtime; } -// mix ahead of current position - endtime = soundtime + s_mixahead->value * dma.speed; -//endtime = (soundtime + 4096) & ~4095; + // mix ahead of current position + endtime = (int)(soundtime + s_mixahead->value * dma.speed); // mix to an even submission block size endtime = (endtime + dma.submission_chunk-1) @@ -1195,11 +1193,11 @@ void S_Play(void) { if (!strrchr(Cmd_Argv(i), '.')) { - strcpy(name, Cmd_Argv(i)); + strncpy(name, Cmd_Argv(i), sizeof(name)-5); strcat(name, ".wav"); } else - strcpy(name, Cmd_Argv(i)); + strncpy(name, Cmd_Argv(i), sizeof(name)-1); sfx = S_RegisterSound(name); S_StartSound(NULL, cl.playernum+1, 0, sfx, 1.0, 1.0, 0); i++;