From 621da0a840981921b382cbf370b8b82a28245627 Mon Sep 17 00:00:00 2001 From: terminx Date: Thu, 6 Jul 2006 06:18:18 +0000 Subject: [PATCH] Mostly stuff from JonoF git-svn-id: https://svn.eduke32.com/eduke32@212 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/src/polymost.c | 8 +- polymer/eduke32/source/jfaud_sounds.cpp | 28 +- .../source/misc/gtkstartwin/gtkstartwin.glade | 36 - polymer/eduke32/source/startgtk.game.c | 891 +++++++++--------- 4 files changed, 460 insertions(+), 503 deletions(-) diff --git a/polymer/build/src/polymost.c b/polymer/build/src/polymost.c index 140e57c41..0259c99cd 100644 --- a/polymer/build/src/polymost.c +++ b/polymer/build/src/polymost.c @@ -75,10 +75,10 @@ long usemodels=1, usehightile=1; float fogtable[] = { 0.275, 0.325, 0.375, 0.425, 0.475, 0.525, 0.575, 0.625, 0.675, 0.725, 0.775, 0.825, 0.875, 0.925, 0.975, 1.025, 1.075, 1.125, 1.175, 1.225, 1.275, 1.325, 1.375, 1.425, 1.475, 1.525, 1.575, 1.625, 1.675, 1.725, 1.775, 1.825 }; -#define NEGFOGSUB 0.08 -#define NEGFOGTABLESCALE 8 -#define FOGTABLESCALE 2 -#define SPRFOGTABLESCALE 1.5 +#define NEGFOGSUB 0.075 +#define NEGFOGTABLESCALE 6.670 +#define FOGTABLESCALE 1.900 +#define SPRFOGTABLESCALE 1.700 #include //<-important! typedef struct { float x, cy[2], fy[2]; long n, p, tag, ctag, ftag; } vsptyp; diff --git a/polymer/eduke32/source/jfaud_sounds.cpp b/polymer/eduke32/source/jfaud_sounds.cpp index bcd3b197a..af7c500ff 100644 --- a/polymer/eduke32/source/jfaud_sounds.cpp +++ b/polymer/eduke32/source/jfaud_sounds.cpp @@ -47,11 +47,14 @@ typedef uint64 uint64_t; #define SOUNDM_PLAYER 128 #define UNITSPERMETRE 1024.0 -#define DEFAULTREFDIST 6.5 // in the original code, ((255-150)<<6) == 6720 -#define DEFAULTMAXDIST 30.0 // in the original code, 31444 +#define DEFAULTREFDIST (6720.0/1024.0) // in the original code, ((255-150)<<6) == 6720 +#define DEFAULTMAXDIST (31444.0/1024.0) // in the original code, 31444 #define DEFAULTROLLOFF 1.0//0.75 #define OCCLUDEDFACTOR 0.8 +static JFAudMixerChannel::Filter DefaultFilter = JFAudMixerChannel::FilterNearest; +static int osdcmd_setsoundfilter(const osdfuncparm_t *parm); + #include class KenFile : public JFAudFile { @@ -229,6 +232,8 @@ void SoundStartup(void) } if (jfaud->InitMIDI(NULL)) havemidi = true; + + OSD_RegisterFunction("setsoundfilter","setsoundfilter: 0=nearest 1=linear 2=4point",osdcmd_setsoundfilter); } void SoundShutdown(void) @@ -426,7 +431,8 @@ int xyzsound(short num, short i, long x, long y, long z) if (soundm[num] & SOUNDM_GLOBAL) global = 1; chan->SetRefDist(refdist); chan->SetMaxDist(maxdist); - chan->SetFilter((soundm[num]&SOUNDM_NICE) ? JFAudMixerChannel::Filter4Point : JFAudMixerChannel::FilterNearest); + chan->SetFilter((soundm[num]&SOUNDM_NICE) ? JFAudMixerChannel::Filter4Point : DefaultFilter); + chan->SetDistanceModel(JFAudMixerChannel::DistanceModelLinear); if (PN == APLAYER && sprite[i].yvel == screenpeek) { chan->SetRolloff(0.0); @@ -437,8 +443,6 @@ int xyzsound(short num, short i, long x, long y, long z) chan->SetFollowListener(false); chan->SetPosition((float)x/UNITSPERMETRE, (float)(-z>>4)/UNITSPERMETRE, (float)y/UNITSPERMETRE); } - initprintf("%d gain=%g ptch=%g loop=%d glob=%d refd=%g maxd=%g\n",num,gain,pitch, - (soundm[num] & SOUNDM_LOOP) == SOUNDM_LOOP, global, refdist, maxdist); r = keephandle(chan, num, i); if (r >= 0) chan->SetStopCallback(stopcallback, r); chan->Play(); @@ -478,7 +482,8 @@ void sound(short num) chan->SetRefDist(DEFAULTREFDIST); chan->SetFollowListener(true); chan->SetPosition(0.0, 0.0, 0.0); - chan->SetFilter((soundm[num]&SOUNDM_NICE) ? JFAudMixerChannel::Filter4Point : JFAudMixerChannel::FilterNearest); + chan->SetFilter((soundm[num]&SOUNDM_NICE) ? JFAudMixerChannel::Filter4Point : DefaultFilter); + chan->SetDistanceModel(JFAudMixerChannel::DistanceModelLinear); r = keephandle(chan, num, -1); if (r >= 0) chan->SetStopCallback(stopcallback, r); @@ -710,3 +715,14 @@ void MUSIC_RegisterTimbreBank( unsigned char *timbres ) { } +static int osdcmd_setsoundfilter(const osdfuncparm_t *parm) +{ + int filt = 0; + if (parm->numparms < 1) return OSDCMD_SHOWHELP; + + filt = Batol(parm->parms[0]); + if (filt < JFAudMixerChannel::FilterNearest) filt = JFAudMixerChannel::FilterNearest; + else if (filt > JFAudMixerChannel::Filter4Point) filt = JFAudMixerChannel::Filter4Point; + DefaultFilter = (JFAudMixerChannel::Filter)filt; + return OSDCMD_OK; +} diff --git a/polymer/eduke32/source/misc/gtkstartwin/gtkstartwin.glade b/polymer/eduke32/source/misc/gtkstartwin/gtkstartwin.glade index ae077376d..bae6e0331 100755 --- a/polymer/eduke32/source/misc/gtkstartwin/gtkstartwin.glade +++ b/polymer/eduke32/source/misc/gtkstartwin/gtkstartwin.glade @@ -158,29 +158,6 @@ - - - 88 - 29 - True - C_D drive: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - cddrvcombo - - - 0 - 72 - - - 31 @@ -195,19 +172,6 @@ - - - 31 - 30 - True - - - - 88 - 72 - - - 80 diff --git a/polymer/eduke32/source/startgtk.game.c b/polymer/eduke32/source/startgtk.game.c index 07994682b..5f4bf241c 100755 --- a/polymer/eduke32/source/startgtk.game.c +++ b/polymer/eduke32/source/startgtk.game.c @@ -28,10 +28,10 @@ #define TAB_MESSAGES 1 static struct { - int fullscreen; - int xdim3d, ydim3d, bpp3d; - int forcesetup; - int usemouse, usejoy; + int fullscreen; + int xdim3d, ydim3d, bpp3d; + int forcesetup; + int usemouse, usejoy; } settings; extern int gtkenabled; @@ -53,595 +53,572 @@ static int retval = -1, mode = TAB_MESSAGES; static GdkPixbuf *load_banner(void) { - extern const GdkPixdata startbanner_pixdata; - return gdk_pixbuf_from_pixdata(&startbanner_pixdata, FALSE, NULL); + extern const GdkPixdata startbanner_pixdata; + return gdk_pixbuf_from_pixdata(&startbanner_pixdata, FALSE, NULL); } static void SetPage(int n) { - if (!gtkenabled || !startwin) return; - mode = n; - gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(startwin,"tabs")), n); + if (!gtkenabled || !startwin) return; + mode = n; + gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(startwin,"tabs")), n); - // each control in the config page vertical layout plus the start button should be made (in)sensitive - if (n == TAB_CONFIG) n = TRUE; else n = FALSE; - gtk_widget_set_sensitive(lookup_widget(startwin,"startbutton"), n); - gtk_container_foreach(GTK_CONTAINER(lookup_widget(startwin,"configvlayout")), - (GtkCallback)gtk_widget_set_sensitive, (gpointer)n); + // each control in the config page vertical layout plus the start button should be made (in)sensitive + if (n == TAB_CONFIG) n = TRUE; else n = FALSE; + gtk_widget_set_sensitive(lookup_widget(startwin,"startbutton"), n); + gtk_container_foreach(GTK_CONTAINER(lookup_widget(startwin,"configvlayout")), + (GtkCallback)gtk_widget_set_sensitive, (gpointer)n); } static void on_vmode3dcombo_changed(GtkComboBox *, gpointer); static void PopulateForm(void) { - int mode3d, i; - GtkListStore *modes3d; - GtkTreeIter iter; - GtkComboBox *box3d; - char buf[64]; + int mode3d, i; + GtkListStore *modes3d; + GtkTreeIter iter; + GtkComboBox *box3d; + char buf[64]; - mode3d = checkvideomode(&settings.xdim3d, &settings.ydim3d, settings.bpp3d, settings.fullscreen, 1); - if (mode3d < 0) { - int i, cd[] = { 32, 24, 16, 15, 8, 0 }; - for (i=0; cd[i]; ) { if (cd[i] >= settings.bpp3d) i++; else break; } - for ( ; cd[i]; i++) { - mode3d = checkvideomode(&settings.xdim3d, &settings.ydim3d, cd[i], settings.fullscreen, 1); - if (mode3d < 0) continue; - settings.bpp3d = cd[i]; - break; - } - } + mode3d = checkvideomode(&settings.xdim3d, &settings.ydim3d, settings.bpp3d, settings.fullscreen, 1); + if (mode3d < 0) { + int i, cd[] = { 32, 24, 16, 15, 8, 0 }; + for (i=0; cd[i]; ) { if (cd[i] >= settings.bpp3d) i++; else break; } + for ( ; cd[i]; i++) { + mode3d = checkvideomode(&settings.xdim3d, &settings.ydim3d, cd[i], settings.fullscreen, 1); + if (mode3d < 0) continue; + settings.bpp3d = cd[i]; + break; + } + } - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(startwin,"fullscreencheck")), settings.fullscreen); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(startwin,"alwaysshowcheck")), settings.forcesetup); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(startwin,"fullscreencheck")), settings.fullscreen); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(startwin,"alwaysshowcheck")), settings.forcesetup); - box3d = GTK_COMBO_BOX(lookup_widget(startwin,"vmode3dcombo")); - modes3d = GTK_LIST_STORE(gtk_combo_box_get_model(box3d)); - gtk_list_store_clear(modes3d); + box3d = GTK_COMBO_BOX(lookup_widget(startwin,"vmode3dcombo")); + modes3d = GTK_LIST_STORE(gtk_combo_box_get_model(box3d)); + gtk_list_store_clear(modes3d); - for (i=0; i aptr) - gtk_text_buffer_insert(textbuffer, &enditer, (const gchar *)aptr, (gint)(bptr-aptr)-1); + gtk_text_buffer_get_end_iter(textbuffer, &enditer); + for (aptr = bptr = str; *aptr != 0; ) { + switch (*bptr) { + case '\b': + if (bptr > aptr) + gtk_text_buffer_insert(textbuffer, &enditer, (const gchar *)aptr, (gint)(bptr-aptr)-1); #if GTK_CHECK_VERSION(2,6,0) - gtk_text_buffer_backspace(textbuffer, &enditer, FALSE, TRUE); + gtk_text_buffer_backspace(textbuffer, &enditer, FALSE, TRUE); #else - { - GtkTextIter iter2 = enditer; - gtk_text_iter_backward_cursor_position(&iter2); - //FIXME: this seems be deleting one too many chars somewhere! - if (!gtk_text_iter_equal(&iter2, &enditer)) - gtk_text_buffer_delete_interactive(textbuffer, &iter2, &enditer, TRUE); - } + { + GtkTextIter iter2 = enditer; + gtk_text_iter_backward_cursor_position(&iter2); + //FIXME: this seems be deleting one too many chars somewhere! + if (!gtk_text_iter_equal(&iter2, &enditer)) + gtk_text_buffer_delete_interactive(textbuffer, &iter2, &enditer, TRUE); + } #endif - aptr = ++bptr; - break; - case 0: - if (bptr > aptr) - gtk_text_buffer_insert(textbuffer, &enditer, (const gchar *)aptr, (gint)(bptr-aptr)); - aptr = bptr; - break; - case '\r': // FIXME - default: - bptr++; - break; - } - } + aptr = ++bptr; + break; + case 0: + if (bptr > aptr) + gtk_text_buffer_insert(textbuffer, &enditer, (const gchar *)aptr, (gint)(bptr-aptr)); + aptr = bptr; + break; + case '\r': // FIXME + default: + bptr++; + break; + } + } - mark = gtk_text_buffer_create_mark(textbuffer, NULL, &enditer, 1); - gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(textview), mark, 0.0, FALSE, 0.0, 1.0); - gtk_text_buffer_delete_mark(textbuffer, mark); + mark = gtk_text_buffer_create_mark(textbuffer, NULL, &enditer, 1); + gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(textview), mark, 0.0, FALSE, 0.0, 1.0); + gtk_text_buffer_delete_mark(textbuffer, mark); - return 0; + return 0; } int startwin_settitle(const char *title) { - if (!gtkenabled) return 0; - if (!startwin) return 1; - gtk_window_set_title (GTK_WINDOW (startwin), title); - return 0; + if (!gtkenabled) return 0; + if (!startwin) return 1; + gtk_window_set_title (GTK_WINDOW (startwin), title); + return 0; } int startwin_idle(void *s) { - if (!gtkenabled) return 0; - //if (!startwin) return 1; - gtk_main_iteration_do (FALSE); - return 0; + if (!gtkenabled) return 0; + //if (!startwin) return 1; + gtk_main_iteration_do (FALSE); + return 0; } extern int xdimgame, ydimgame, bppgame, forcesetup; int startwin_run(void) { - if (!gtkenabled) return 0; - if (!startwin) return 1; + if (!gtkenabled) return 0; + if (!startwin) return 1; - SetPage(TAB_CONFIG); + SetPage(TAB_CONFIG); - settings.fullscreen = ScreenMode; - settings.xdim3d = ScreenWidth; - settings.ydim3d = ScreenHeight; - settings.bpp3d = ScreenBPP; - settings.forcesetup = ForceSetup; - settings.usemouse = UseMouse; - settings.usejoy = UseJoystick; - PopulateForm(); + settings.fullscreen = ScreenMode; + settings.xdim3d = ScreenWidth; + settings.ydim3d = ScreenHeight; + settings.bpp3d = ScreenBPP; + settings.forcesetup = ForceSetup; + settings.usemouse = UseMouse; + settings.usejoy = UseJoystick; + PopulateForm(); + + gtk_main(); + + SetPage(TAB_MESSAGES); + if (retval) { + ScreenMode = settings.fullscreen; + ScreenWidth = settings.xdim3d; + ScreenHeight = settings.ydim3d; + ScreenBPP = settings.bpp3d; + ForceSetup = settings.forcesetup; + UseMouse = settings.usemouse; + UseJoystick = settings.usejoy; + } - gtk_main(); - - SetPage(TAB_MESSAGES); - if (retval) { - ScreenMode = settings.fullscreen; - ScreenWidth = settings.xdim3d; - ScreenHeight = settings.ydim3d; - ScreenBPP = settings.bpp3d; - ForceSetup = settings.forcesetup; - UseMouse = settings.usemouse; - UseJoystick = settings.usejoy; - } - - return retval; + return retval; }