From 156d50d903ff205f0ad2986dcb449c029d456d03 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Mon, 26 Mar 2012 15:56:16 +0100 Subject: [PATCH] Remove duplicate information in set_cmode Calculating render_mode and display_mode variables from the arrays means less chance of mistakes (e.g. blob mode RENDER_EFFE was set in render_modes array but not in render_mode) --- includes/graphics.h | 3 +++ src/graphics.c | 7 +++++++ src/interface.c | 22 ++-------------------- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/includes/graphics.h b/includes/graphics.h index dde1c9c6a..df5e0ba9b 100644 --- a/includes/graphics.h +++ b/includes/graphics.h @@ -223,6 +223,9 @@ int sdl_open(void); int draw_debug_info(pixel* vid, int lm, int lx, int ly, int cx, int cy, int line_x, int line_y); +void init_display_modes(); +void update_display_modes(); + #ifdef OGLR void clearScreen(float alpha); void ogl_blit(int x, int y, int w, int h, pixel *src, int pitch, int scale); diff --git a/src/graphics.c b/src/graphics.c index 5ca20678d..6a02146bb 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -89,6 +89,13 @@ void init_display_modes() render_modes[0] = RENDER_FIRE; render_modes[1] = 0; + update_display_modes(); +} + +// Combine all elements of the display_modes and render_modes arrays into single variables using bitwise or +void update_display_modes() +{ + int i; display_mode = 0; i = 0; while(display_modes[i]) diff --git a/src/interface.c b/src/interface.c index eede146e2..8d11f0ce4 100644 --- a/src/interface.c +++ b/src/interface.c @@ -2805,12 +2805,10 @@ void set_cmode(int cm) // sets to given view mode free(render_modes); render_modes = calloc(2, sizeof(unsigned int)); - render_mode = RENDER_BASC; render_modes[0] = RENDER_BASC; render_modes[1] = 0; free(display_modes); - display_mode = 0; display_modes = calloc(1, sizeof(unsigned int)); display_modes[0] = 0; @@ -2819,13 +2817,11 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(3, sizeof(unsigned int)); - render_mode |= RENDER_EFFE | RENDER_BASC; render_modes[0] = RENDER_EFFE; render_modes[1] = RENDER_BASC; render_modes[2] = 0; free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_AIRV; display_modes[0] = DISPLAY_AIRV; display_modes[1] = 0; strcpy(itc_msg, "Velocity Display"); @@ -2834,13 +2830,11 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(3, sizeof(unsigned int)); - render_mode |= RENDER_EFFE | RENDER_BASC; render_modes[0] = RENDER_EFFE; render_modes[1] = RENDER_BASC; render_modes[2] = 0; free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_AIRP; display_modes[0] = DISPLAY_AIRP; display_modes[1] = 0; strcpy(itc_msg, "Pressure Display"); @@ -2849,13 +2843,11 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(3, sizeof(unsigned int)); - render_mode |= RENDER_EFFE | RENDER_BASC; render_modes[0] = RENDER_EFFE; render_modes[1] = RENDER_BASC; render_modes[2] = 0; free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_PERS; display_modes[0] = DISPLAY_PERS; display_modes[1] = 0; memset(pers_bg, 0, (XRES+BARSIZE)*YRES*PIXELSIZE); @@ -2865,8 +2857,6 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(3, sizeof(unsigned int)); - render_mode |= RENDER_FIRE; - render_mode |= RENDER_EFFE; render_modes[0] = RENDER_FIRE; render_modes[1] = RENDER_EFFE; render_modes[2] = 0; @@ -2879,8 +2869,6 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(4, sizeof(unsigned int)); - render_mode |= RENDER_FIRE; - render_mode |= RENDER_BLOB; render_modes[0] = RENDER_FIRE; render_modes[1] = RENDER_BLOB; render_modes[2] = RENDER_EFFE; @@ -2896,7 +2884,6 @@ void set_cmode(int cm) // sets to given view mode strcpy(itc_msg, "Heat Display"); free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_AIRH; display_modes[0] = DISPLAY_AIRH; display_modes[1] = 0; } @@ -2904,10 +2891,6 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(5, sizeof(unsigned int)); - render_mode |= RENDER_FIRE; - render_mode |= RENDER_GLOW; - render_mode |= RENDER_BLUR; - render_mode |= RENDER_EFFE; render_modes[0] = RENDER_FIRE; render_modes[1] = RENDER_GLOW; render_modes[2] = RENDER_BLUR; @@ -2915,7 +2898,6 @@ void set_cmode(int cm) // sets to given view mode render_modes[4] = 0; free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_WARP; display_modes[0] = DISPLAY_WARP; display_modes[1] = 0; memset(fire_r, 0, sizeof(fire_r)); @@ -2941,13 +2923,11 @@ void set_cmode(int cm) // sets to given view mode { free(render_modes); render_modes = calloc(3, sizeof(unsigned int)); - render_mode |= RENDER_EFFE | RENDER_BASC; render_modes[0] = RENDER_EFFE; render_modes[1] = RENDER_BASC; render_modes[2] = 0; free(display_modes); display_modes = calloc(2, sizeof(unsigned int)); - display_mode |= DISPLAY_AIRC; display_modes[0] = DISPLAY_AIRC; display_modes[1] = 0; strcpy(itc_msg, "Alternate Velocity Display"); @@ -2956,6 +2936,8 @@ void set_cmode(int cm) // sets to given view mode { strcpy(itc_msg, "Error: Incorrect Display Number"); } + + update_display_modes();// Update render_mode and display_mode from the relevant arrays save_presets(0); }