From 1c7b040e5907eb06683b372059b670e296de1f61 Mon Sep 17 00:00:00 2001 From: eukos Date: Thu, 24 Sep 2015 01:25:13 +0200 Subject: [PATCH] Centered menus for better UX, more intelligent method of saving lmps... --- engine/menu.c | 12 +++++----- engine/sbar.c | 58 +++++++++++++++++++++++++++---------------------- video/vid_gdk.c | 31 +++----------------------- 3 files changed, 41 insertions(+), 60 deletions(-) diff --git a/engine/menu.c b/engine/menu.c index d49af29..e4d157c 100644 --- a/engine/menu.c +++ b/engine/menu.c @@ -514,9 +514,9 @@ Draws one solid graphics character void M_DrawCharacter (int cx, int line, int num) { if (menu_scaled) - Draw_Character_Scaled ( cx + ((vid.vconwidth - 320)>>1), line, num); + Draw_Character_Scaled ( cx + ((vid.vconwidth - 320)>>1), line + ((vid.vconheight - 240)>>1), num); else - Draw_Character ( cx + ((vid.width - 320)>>1), line, num); + Draw_Character ( cx + ((vid.width - 320)>>1), line + ((vid.height - 240)>>1), num); } void M_Print (int cx, int cy, char *str) @@ -545,9 +545,9 @@ void M_PrintWhite (int cx, int cy, char *str) void M_DrawPic (int x, int y, qpic_t *pic) { if (menu_scaled) - Draw_Pic_Scaled (x + ((vid.vconwidth - 320)>>1), y, pic); + Draw_Pic_Scaled (x + ((vid.vconwidth - 320)>>1), y + ((vid.vconheight - 240)>>1), pic); else - Draw_Pic (x + ((vid.width - 320)>>1), y, pic); + Draw_Pic (x + ((vid.width - 320)>>1), y + ((vid.height - 240)>>1), pic); } byte identityTable[256]; @@ -581,9 +581,9 @@ void M_BuildTranslationTable(int top, int bottom) void M_DrawPicTranslate (int x, int y, qpic_t *pic) { if (menu_scaled) - Draw_PicTranslate_Scaled (x + ((vid.vconwidth - 320)>>1), y, pic, translationTable); + Draw_PicTranslate_Scaled (x + ((vid.vconwidth - 320)>>1), y + ((vid.vconheight - 240)>>1), pic, translationTable); else - Draw_PicTranslate (x + ((vid.width - 320)>>1), y, pic, translationTable); + Draw_PicTranslate (x + ((vid.width - 320)>>1), y + ((vid.height - 240)>>1), pic, translationTable); } diff --git a/engine/sbar.c b/engine/sbar.c index 49b9c2b..909054f 100644 --- a/engine/sbar.c +++ b/engine/sbar.c @@ -926,10 +926,12 @@ void Sbar_DeathmatchOverlay (void) // draw the text l = scoreboardlines; - if (sb_scaled) x = 80 + ((vid.vconwidth - 320)>>1); - else x = 80 + ((vid.width - 320)>>1); + if (sb_scaled) + x = 80 + ((vid.vconwidth - 320)>>1); + else + x = 80 + ((vid.width - 320)>>1); - y = 40; + y = 40 + ((vid.vconheight - 240)>>1); for (i=0 ; ifrags; sprintf (num, "%3i",f); - if (sb_scaled){ - Draw_Character_Scaled ( x+8 , y, num[0]); - Draw_Character_Scaled ( x+16 , y, num[1]); - Draw_Character_Scaled ( x+24 , y, num[2]); + if (sb_scaled) + { + Draw_Character_Scaled ( x+8 , y, num[0]); + Draw_Character_Scaled ( x+16 , y, num[1]); + Draw_Character_Scaled ( x+24 , y, num[2]); - if (k == cl.viewentity - 1) - Draw_Character_Scaled ( x - 8, y, 12); + if (k == cl.viewentity - 1) + Draw_Character_Scaled ( x - 8, y, 12); } else { - Draw_Character ( x+8 , y, num[0]); - Draw_Character ( x+16 , y, num[1]); - Draw_Character ( x+24 , y, num[2]); + Draw_Character ( x+8 , y, num[0]); + Draw_Character ( x+16 , y, num[1]); + Draw_Character ( x+24 , y, num[2]); - if (k == cl.viewentity - 1) - Draw_Character ( x - 8, y, 12); + if (k == cl.viewentity - 1) + Draw_Character ( x - 8, y, 12); } // draw name if (sb_scaled) - Draw_String_Scaled (x+64, y, s->name); + Draw_String_Scaled (x+64, y, s->name); else Draw_String (x+64, y, s->name); - y += 10; + y += 10; } } @@ -1017,14 +1023,14 @@ void Sbar_MiniDeathmatchOverlay (void) if (fragsort[i] == cl.viewentity - 1) break; - if (i == scoreboardlines) // we're not there + if (i == scoreboardlines) // we're not there i = 0; - else // figure out start + else // figure out start i = i - numlines/2; - if (i > scoreboardlines - numlines) + if (i > scoreboardlines - numlines) i = scoreboardlines - numlines; - if (i < 0) + if (i < 0) i = 0; x = 324; diff --git a/video/vid_gdk.c b/video/vid_gdk.c index 1b2d473..df6b684 100644 --- a/video/vid_gdk.c +++ b/video/vid_gdk.c @@ -852,7 +852,7 @@ gint VID_EditorViewColormap(gpointer data) if(pic) { Con_Printf("[EDITOR] Previewing Colormap %s\n", filename); - ed_file = Hunk_Alloc(16385 + (sizeof(int) * 2)); + ed_file = malloc(16385 + (sizeof(int) * 2)); ed_file->width = 256; ed_file->height = 64; @@ -931,7 +931,6 @@ gint VID_EditorSaveFile(gpointer data) GtkFileChooser *chooser; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE; gint res; - byte *pic; if(!ed_file) return; @@ -972,19 +971,6 @@ gint VID_EditorSaveFile(gpointer data) filename = gtk_file_chooser_get_filename (chooser); Con_Printf("[EDITOR] Saving LUMP as %s...\n", filename); - - pic = malloc((sizeof(int)*2) + (ed_file->width * ed_file->height)); - - pic[0] = ed_file->width; - pic[1] = ed_file->height; - - memcpy(pic, &ed_file->width, sizeof(int)); - memcpy(pic + sizeof(int), &ed_file->height, sizeof(int)); - - int i; - for(i = 0; i < ed_file->width * ed_file->height; i++) - pic[i+(sizeof(int) * 2)] = ed_file->data[i]; - #if 0 printf("Saving IMAGE: %i, %i\n", pic[0], pic[1]); for(i = 2; i < pic[0] * pic[1]+2; i++) @@ -992,9 +978,9 @@ gint VID_EditorSaveFile(gpointer data) printf("\n...DONE\n"); #endif - COM_WriteFile (filename, pic, ed_file->width * ed_file->height + 2); + COM_WriteFile (filename, ed_file, ed_file->width * ed_file->height + 2); g_free (filename); - free(pic); + // free(pic); } gtk_widget_destroy (dialog); @@ -1314,17 +1300,6 @@ gint VID_EditorQuit(gpointer data) { Con_Printf("[EDITOR] Shutting down\n"); gtk_widget_destroy(ed_window); - - if(ed_file) - free(ed_file); - if(ed_palfile) - free(ed_palfile); - - free(ed_palpic); - free(ed_backtile); - //free(ed_palette); - gdk_rgb_cmap_free(ed_cmap); - vid_ineditor = false; gtk_main_quit(); }