From b6a629cf8020e9fe76de251e07a0135dbd2f1f80 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Sun, 4 Nov 2007 21:36:03 +0000 Subject: new gui commit --- src/engine/client/snd.c | 14 +++++++++++--- src/engine/client/ui.c | 20 ++++++++++---------- src/engine/client/ui.h | 14 +++++++------- 3 files changed, 28 insertions(+), 20 deletions(-) (limited to 'src/engine/client') diff --git a/src/engine/client/snd.c b/src/engine/client/snd.c index 725bc569..8e70deea 100644 --- a/src/engine/client/snd.c +++ b/src/engine/client/snd.c @@ -48,6 +48,7 @@ static VOICE voices[NUM_VOICES] = { {0} }; static CHANNEL channels[NUM_CHANNELS] = { {255, 0} }; static LOCK sound_lock = 0; +static int sound_enabled = 0; static int center_x = 0; static int center_y = 0; @@ -231,9 +232,12 @@ int snd_init() PaStreamParameters params; PaError err = Pa_Initialize(); - mixing_rate = config.snd_rate; - sound_lock = lock_create(); + + if(!config.snd_enable) + return 0; + + mixing_rate = config.snd_rate; params.device = Pa_GetDefaultOutputDevice(); if(params.device < 0) @@ -243,7 +247,6 @@ int snd_init() params.suggestedLatency = Pa_GetDeviceInfo(params.device)->defaultLowOutputLatency; params.hostApiSpecificStreamInfo = 0x0; - err = Pa_OpenStream( &stream, /* passes back stream pointer */ 0, /* no input channels */ @@ -255,6 +258,7 @@ int snd_init() 0x0); /* pass our data through to callback */ err = Pa_StartStream(stream); + sound_enabled = 1; return 0; } @@ -338,6 +342,10 @@ int snd_load_wv(const char *filename) /* don't waste memory on sound when we are stress testing */ if(config.stress) return -1; + + /* no need to load sound when we are running with no sound */ + if(!sound_enabled) + return 1; file = fopen(filename, "rb"); /* TODO: use system.h stuff for this */ if(!file) diff --git a/src/engine/client/ui.c b/src/engine/client/ui.c index c2c79afa..4cd997a5 100644 --- a/src/engine/client/ui.c +++ b/src/engine/client/ui.c @@ -16,10 +16,10 @@ struct pretty_font extern struct pretty_font *current_font; -static void *hot_item = 0; -static void *active_item = 0; -static void *last_active_item = 0; -static void *becomming_hot_item = 0; +static const void *hot_item = 0; +static const void *active_item = 0; +static const void *last_active_item = 0; +static const void *becomming_hot_item = 0; static float mouse_x, mouse_y; /* in gui space */ static float mouse_wx, mouse_wy; /* in world space */ static unsigned mouse_buttons = 0; @@ -30,12 +30,12 @@ float ui_mouse_world_x() { return mouse_wx; } float ui_mouse_world_y() { return mouse_wy; } int ui_mouse_button(int index) { return (mouse_buttons>>index)&1; } -void ui_set_hot_item(void *id) { becomming_hot_item = id; } -void ui_set_active_item(void *id) { active_item = id; if (id) last_active_item = id; } +void ui_set_hot_item(const void *id) { becomming_hot_item = id; } +void ui_set_active_item(const void *id) { active_item = id; if (id) last_active_item = id; } void ui_clear_last_active_item() { last_active_item = 0; } -void *ui_hot_item() { return hot_item; } -void *ui_active_item() { return active_item; } -void *ui_last_active_item() { return last_active_item; } +const void *ui_hot_item() { return hot_item; } +const void *ui_active_item() { return active_item; } +const void *ui_last_active_item() { return last_active_item; } int ui_update(float mx, float my, float mwx, float mwy, int buttons) { @@ -80,7 +80,7 @@ void ui_do_label(float x, float y, const char *text, float size) gfx_pretty_text(x, y, size, text, -1); } -int ui_do_button(void *id, const char *text, int checked, float x, float y, float w, float h, draw_button_callback draw_func, void *extra) +int ui_do_button(const void *id, const char *text, int checked, float x, float y, float w, float h, draw_button_callback draw_func, void *extra) { /* logic */ int r = 0; diff --git a/src/engine/client/ui.h b/src/engine/client/ui.h index 31757b3b..6b29a61c 100644 --- a/src/engine/client/ui.h +++ b/src/engine/client/ui.h @@ -13,20 +13,20 @@ float ui_mouse_world_x(); float ui_mouse_world_y(); int ui_mouse_button(int index); -void ui_set_hot_item(void *id); -void ui_set_active_item(void *id); +void ui_set_hot_item(const void *id); +void ui_set_active_item(const void *id); void ui_clear_last_active_item(); -void *ui_hot_item(); -void *ui_active_item(); -void *ui_last_active_item(); +const void *ui_hot_item(); +const void *ui_active_item(); +const void *ui_last_active_item(); int ui_mouse_inside(float x, float y, float w, float h); -typedef void (*draw_button_callback)(void *id, const char *text, int checked, float x, float y, float w, float h, void *extra); +typedef void (*draw_button_callback)(const void *id, const char *text, int checked, float x, float y, float w, float h, void *extra); void ui_do_image(int texture, float x, float y, float w, float h); void ui_do_label(float x, float y, const char *text, float size); -int ui_do_button(void *id, const char *text, int checked, float x, float y, float w, float h, draw_button_callback draw_func, void *extra); +int ui_do_button(const void *id, const char *text, int checked, float x, float y, float w, float h, draw_button_callback draw_func, void *extra); #ifdef __cplusplus } -- cgit 1.4.1