diff --git a/.gitignore b/.gitignore index 5bc55b9..dc199b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ wordwarvi-0.25.tar.gz /wordwarvi-1.1-6beed31.tar.gz -/wordwarvi-1.0.4.tar.gz diff --git a/Port-to-GTK-3.patch b/Port-to-GTK-3.patch deleted file mode 100644 index a12f21f..0000000 --- a/Port-to-GTK-3.patch +++ /dev/null @@ -1,1072 +0,0 @@ -From: Bastian Germann -Subject: Port to GTK 3 ---- ---- a/Makefile -+++ b/Makefile -@@ -111,7 +111,7 @@ wordwarvi: wordwarvi.c joystick.o rumble.o ${OGGOBJ} wwviaudio.o wwvi_font.o \ - ${OGGOBJ} \ - wwviaudio.o \ - wordwarvi.c -o wordwarvi ${OPENLASELIBDIR} ${OPENLASELIB} -lm ${SNDLIBS} \ -- `$(PKG_CONFIG) --cflags gtk+-2.0` `$(PKG_CONFIG) --libs gtk+-2.0 gthread-2.0` ${LDFLAGS} -+ `$(PKG_CONFIG) --cflags gtk+-3.0` `$(PKG_CONFIG) --libs gtk+-3.0` ${LDFLAGS} - /bin/rm stamp.h - - wordwarvi.6.gz: wordwarvi.6 ---- a/wordwarvi.c -+++ b/wordwarvi.c -@@ -37,6 +37,7 @@ - #endif /* __WIN32__ */ - - #include -+#include /* GTK3: provides legacy GDK_foo aliases for GDK_KEY_foo */ - - #ifdef DO_INHIBIT_SCREENSAVER - #include /* for GDK_WINDOW_XWINDOW, for inhibiting screensaver. */ -@@ -64,6 +65,61 @@ - #define DATADIR "" - #endif - -+/* ---- GTK3 COMPATIBILITY LAYER ---- * -+ * GdkGC and GdkDrawable were removed from GTK3. We provide void* stubs so -+ * all existing drawing-function signatures and call-sites continue to -+ * compile unchanged. The actual drawing is done via a global cairo_t that -+ * is set at the start of every "draw" callback. -+ */ -+typedef void GdkDrawable; -+typedef void GdkGC; -+static cairo_t *current_cr = NULL; -+static gboolean drawing_initialized = FALSE; -+ -+/* Set the Cairo source colour from a (still-valid but deprecated) GdkColor */ -+static inline void wwvi_set_source_color(const GdkColor *color) -+{ -+ if (current_cr) -+ cairo_set_source_rgb(current_cr, -+ color->red / 65535.0, -+ color->green / 65535.0, -+ color->blue / 65535.0); -+} -+#define gdk_gc_set_foreground(gc_arg, color_ptr) wwvi_set_source_color(color_ptr) -+ -+/* GC creation and clip operations become no-ops */ -+#define gdk_gc_new(window_arg) (NULL) -+#define gdk_gc_set_clip_origin(a, b, c) ((void)0) -+#define gdk_gc_set_clip_rectangle(a, b) ((void)0) -+ -+/* Color-map allocation is not needed with Cairo */ -+#define gdk_colormap_alloc_color(a, b, c, d) ((void)0) -+ -+/* cairo-backed line drawing (drop drawable/gc args) */ -+static void wwvi_cairo_draw_line(GdkDrawable *d, GdkGC *g, -+ gint x1, gint y1, gint x2, gint y2) -+{ -+ (void)d; (void)g; -+ if (!current_cr) return; -+ cairo_move_to(current_cr, x1, y1); -+ cairo_line_to(current_cr, x2, y2); -+ cairo_stroke(current_cr); -+} -+#define gdk_draw_line wwvi_cairo_draw_line -+ -+/* cairo-backed rectangle drawing (drop drawable/gc args) */ -+static void wwvi_cairo_draw_rectangle(GdkDrawable *d, GdkGC *g, -+ gboolean filled, gint x, gint y, gint width, gint height) -+{ -+ (void)d; (void)g; -+ if (!current_cr) return; -+ cairo_rectangle(current_cr, x, y, width, height); -+ if (filled) cairo_fill(current_cr); -+ else cairo_stroke(current_cr); -+} -+#define gdk_draw_rectangle wwvi_cairo_draw_rectangle -+/* ---- END GTK3 COMPATIBILITY LAYER ---- */ -+ - #ifdef OPENLASE - /* openlase related defines */ - #define LASERTOP 0.03 -@@ -2698,9 +2754,9 @@ void incorrect_draw_stars(GtkWidget *w) - gl = approximate_horizon(worldx, worldy, &star[i].last_xi); - if (worldy < gl) { - if (star[i].bright && randomn(100) > 10) { -- wwvi_draw_line(w->window, gc, sx, sy-1, sx+1, sy-1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, sx, sy-1, sx+1, sy-1); - } -- wwvi_draw_line(w->window, gc, sx, sy, sx+1, sy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, sx, sy, sx+1, sy); - } - } - /* move stars */ -@@ -2728,9 +2784,9 @@ void correct_draw_stars(GtkWidget *w) - gl = approximate_horizon(worldx, worldy, &star[i].last_xi); - if (worldy < gl) { - if (star[i].bright && randomn(100) > 10) { -- wwvi_draw_line(w->window, gc, sx, sy-1, sx+1, sy-1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, sx, sy-1, sx+1, sy-1); - } -- wwvi_draw_line(w->window, gc, sx, sy, sx+1, sy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, sx, sy, sx+1, sy); - } - } - } -@@ -3362,7 +3418,7 @@ void fuel_draw(struct game_obj_t *o, GtkWidget *w) - 30 - (45 * o->tsd.fuel.level / FUELTANK_CAPACITY); - if (o->tsd.fuel.level > 0) { - gdk_gc_set_foreground(gc, &huex[DARKGREEN]); -- wwvi_draw_rectangle(w->window, gc, TRUE, x1, y1, 50, o->tsd.fuel.level * 45 / FUELTANK_CAPACITY); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, TRUE, x1, y1, 50, o->tsd.fuel.level * 45 / FUELTANK_CAPACITY); - } - - draw_generic(o, w); /* draw the fuel tank in the usual way... */ -@@ -3373,7 +3429,7 @@ void fuel_draw(struct game_obj_t *o, GtkWidget *w) - y1 = o->y - game_state.y + (SCREEN_HEIGHT/2); - x2 = player_target->x - game_state.x; - y2 = player_target->y - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - } - -@@ -3397,16 +3453,16 @@ void jammer_draw(struct game_obj_t *o, GtkWidget *w) - x2 = x5 + o->tsd.jammer.width; - x3 = x5 - (o->tsd.jammer.width >> 1); - x4 = x5 + (o->tsd.jammer.width >> 1); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y1); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y2); -- wwvi_draw_line(w->window, gc, x1, y1, x1, y2); -- wwvi_draw_line(w->window, gc, x2, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x3, y1, x3, y2); -- wwvi_draw_line(w->window, gc, x4, y1, x4, y2); -- wwvi_draw_line(w->window, gc, x5, y1, x5, y2); -- wwvi_draw_line(w->window, gc, x1, y2+4, x2, y2+4); -- wwvi_draw_line(w->window, gc, x1, y2+8, x2, y2+8); -- wwvi_draw_line(w->window, gc, x1, y2+12, x2, y2+12); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x1, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x3, y1, x3, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x4, y1, x4, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x5, y1, x5, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2+4, x2, y2+4); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2+8, x2, y2+8); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2+12, x2, y2+12); - } - - void cron_draw(struct game_obj_t *o, GtkWidget *w) -@@ -3425,7 +3481,7 @@ void cron_draw(struct game_obj_t *o, GtkWidget *w) - x2 = o->tsd.cron.tx - game_state.x; - y2 = o->tsd.cron.ty + 7 - game_state.y + (SCREEN_HEIGHT/2); - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - #endif - -@@ -3434,7 +3490,7 @@ void cron_draw(struct game_obj_t *o, GtkWidget *w) - y1 = o->y - game_state.y + (SCREEN_HEIGHT/2) - 5; - x2 = x1 + 3; - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y1); /* draw eye */ -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1); /* draw eye */ - - /* move the cron job's eye */ - o->tsd.cron.eyepos +=1; -@@ -3451,7 +3507,7 @@ void cron_draw(struct game_obj_t *o, GtkWidget *w) - if (xi != -1) { - y1 = o->y + 7 - game_state.y + (SCREEN_HEIGHT/2); - y2 = gy + (SCREEN_HEIGHT/2) - game_state.y; -- wwvi_bright_line(w->window, gc, x1, y1, x2, y2, -+ wwvi_bright_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2, - randomn(NCOLORS+NSPARKCOLORS+NRAINBOWCOLORS)); /* draw beam. */ - explode(o->x + o->tsd.cron.beam_pos, gy, 0, 1, 20, 3, 10); /* make sparks. */ - } -@@ -3480,19 +3536,19 @@ void lightning_draw( GtkWidget *w, int x1, int y1, int x2, int y2) - /* terminal case, x1, y1, and x2, y2 are very close, just draw a line. */ - if (dx < 10 && dy < 10) { - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - if (dx < dy) { -- wwvi_draw_line(w->window, gc, x1-1, y1, x2-1, y2); -- wwvi_draw_line(w->window, gc, x1+1, y1, x2+1, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-1, y1, x2-1, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+1, y1, x2+1, y2); - gdk_gc_set_foreground(gc, &huex[BLUE]); -- wwvi_draw_line(w->window, gc, x1-2, y1, x2-2, y2); -- wwvi_draw_line(w->window, gc, x1+2, y1, x2+2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-2, y1, x2-2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+2, y1, x2+2, y2); - } else { -- wwvi_draw_line(w->window, gc, x1, y1-1, x2, y2-1); -- wwvi_draw_line(w->window, gc, x1, y1+1, x2, y2+1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1-1, x2, y2-1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1+1, x2, y2+1); - gdk_gc_set_foreground(gc, &huex[BLUE]); -- wwvi_draw_line(w->window, gc, x1, y1-2, x2, y2-1); -- wwvi_draw_line(w->window, gc, x1, y1+2, x2, y2+1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1-2, x2, y2-1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1+2, x2, y2+1); - } - return; - } -@@ -3578,15 +3634,15 @@ void tentacle_draw(struct game_obj_t *o, GtkWidget *w) - } - #ifndef OPENLASE - if (thickness > 0) { -- wwvi_draw_line(w->window, gc, x1-thickness, y1, x2-thickness, y2); -- wwvi_draw_line(w->window, gc, x1+thickness, y1, x2+thickness, y2); -- wwvi_draw_line(w->window, gc, x1, y1-thickness, x2, y2-thickness); -- wwvi_draw_line(w->window, gc, x1, y1+thickness, x2, y2+thickness); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-thickness, y1, x2-thickness, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+thickness, y1, x2+thickness, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1-thickness, x2, y2-thickness); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1+thickness, x2, y2+thickness); - if (i & 0x01) - thickness--; - } else - #endif -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - x1 = x2; - y1 = y2; - } -@@ -5479,7 +5535,7 @@ void player_draw(struct game_obj_t *o, GtkWidget *w) - y1 = o->y + o->v->p[j].y*scale - game_state.y + (SCREEN_HEIGHT/2); - x2 = o->x + o->v->p[j+1].x*scale - game_state.x; - y2 = o->y + o->v->p[j+1].y*scale+(SCREEN_HEIGHT/2) - game_state.y; -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - scale = scale * scalefactor; - } -@@ -5506,7 +5562,7 @@ void xmas_player_draw(struct game_obj_t *o, GtkWidget *w) - x2 = o->bullseye->x - game_state.x; - y2 = o->bullseye->y - game_state.y + (SCREEN_HEIGHT/2); - if (x1 > 0 && x1 < SCREEN_WIDTH && y1 < SCREEN_HEIGHT && y1 > 0) { -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - } - if (o->tsd.reindeer.rudolph && (timer & 0x08)) { /* blink rudolph's nose. */ -@@ -5515,11 +5571,11 @@ void xmas_player_draw(struct game_obj_t *o, GtkWidget *w) - y2 = y1 - 2; - x2 = x1 + game_state.direction; - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y1); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y2); - --y1; - gdk_gc_set_foreground(gc, &huex[RED]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1); - } - } else { - /* this is the insanity that makes the player "zoom" into the game */ -@@ -5554,7 +5610,7 @@ void xmas_player_draw(struct game_obj_t *o, GtkWidget *w) - y1 = o->y + o->v->p[j].y*scale - game_state.y + (SCREEN_HEIGHT/2); - x2 = o->x + o->v->p[j+1].x*scale - game_state.x; - y2 = o->y + o->v->p[j+1].y*scale+(SCREEN_HEIGHT/2) - game_state.y; -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - scale = scale * scalefactor; - } -@@ -6029,12 +6085,12 @@ void laser_draw(struct game_obj_t *o, GtkWidget *w) - x2 = x1 - (15) * (21 - o->alive); - else - x2 = x1 + (15) * (21 - o->alive); -- wwvi_bright_line(w->window, gc, x1, y1, x2, y1, o->color); -+ wwvi_bright_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1, o->color); - - #if DEBUG_HITZONE - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_line(w->window,gc, x1, y1 - LASER_Y_PROXIMITY, x1, y1 + LASER_Y_PROXIMITY); -- wwvi_draw_line(w->window,gc, x2, y1 - LASER_Y_PROXIMITY, x2, y1 + LASER_Y_PROXIMITY); -+ wwvi_draw_line(gtk_widget_get_window(w),gc, x1, y1 - LASER_Y_PROXIMITY, x1, y1 + LASER_Y_PROXIMITY); -+ wwvi_draw_line(gtk_widget_get_window(w),gc, x2, y1 - LASER_Y_PROXIMITY, x2, y1 + LASER_Y_PROXIMITY); - #endif - } - -@@ -6270,7 +6326,7 @@ void bright_spark_draw(struct game_obj_t *o, GtkWidget *w) - - y2 = o->y + (SCREEN_HEIGHT/2) - game_state.y; - y1 = y2 + o->vy; -- wwvi_bright_line(w->window, gc, x1, y1, x2, y2, o->color); -+ wwvi_bright_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2, o->color); - } - - void spark_draw(struct game_obj_t *o, GtkWidget *w) -@@ -6289,7 +6345,7 @@ void spark_draw(struct game_obj_t *o, GtkWidget *w) - y2 = o->y + (SCREEN_HEIGHT/2) - game_state.y; - y1 = y2 + o->vy; - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - - void pixie_dust_draw(struct game_obj_t *o, GtkWidget *w) -@@ -6305,7 +6361,7 @@ void pixie_dust_draw(struct game_obj_t *o, GtkWidget *w) - y2 = o->y + (SCREEN_HEIGHT/2) - game_state.y; - y1 = y2 + randomn(4); - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - - void laserbolt_draw(struct game_obj_t *o, GtkWidget *w) -@@ -6324,7 +6380,7 @@ void laserbolt_draw(struct game_obj_t *o, GtkWidget *w) - y2 = o->y + (SCREEN_HEIGHT/2) - game_state.y; - y1 = y2 - o->vy; - -- wwvi_bright_line(w->window, gc, x1, y1, x2, y2, o->color); -+ wwvi_bright_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2, o->color); - } - - void missile_draw(struct game_obj_t *o, GtkWidget *w) -@@ -6344,12 +6400,12 @@ void missile_draw(struct game_obj_t *o, GtkWidget *w) - rdy2 = dx / 4; - gdk_gc_set_foreground(gc, &huex[o->color]); - if (x1 > 0 && x1+dx*2 > 0 && x1 < SCREEN_WIDTH && x1+dx*2 < SCREEN_WIDTH) { -- wwvi_draw_line(w->window, gc, x1+rdx, y1+rdy, x1+dx*2+rdx, y1+dy*2+rdy); -- wwvi_draw_line(w->window, gc, x1-rdx, y1-rdy, x1+dx*2-rdx, y1+dy*2-rdy); -- wwvi_draw_line(w->window, gc, x1+dx*2+rdx, y1+dy*2+rdy, x1+dx*2-rdx, y1+dy*2-rdy); -- wwvi_draw_line(w->window, gc, x1-rdx2, y1-rdy2, x1+rdx2, y1+rdy2); -- wwvi_draw_line(w->window, gc, x1-rdx2, y1-rdy2, x1+(dx/2), y1+(dy/2)); -- wwvi_draw_line(w->window, gc, x1+rdx2, y1+rdy2, x1+(dx/2), y1+(dy/2)); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+rdx, y1+rdy, x1+dx*2+rdx, y1+dy*2+rdy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-rdx, y1-rdy, x1+dx*2-rdx, y1+dy*2-rdy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+dx*2+rdx, y1+dy*2+rdy, x1+dx*2-rdx, y1+dy*2-rdy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-rdx2, y1-rdy2, x1+rdx2, y1+rdy2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-rdx2, y1-rdy2, x1+(dx/2), y1+(dy/2)); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+rdx2, y1+rdy2, x1+(dx/2), y1+(dy/2)); - } - } - -@@ -6365,7 +6421,7 @@ void harpoon_draw(struct game_obj_t *o, GtkWidget *w) - dx = dx_from_vxy(o->vx, o->vy); - dy = -dy_from_vxy(o->vx, o->vy); - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x1, y1, x1+dx, y1+dy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x1+dx, y1+dy); - } - - void reindeer_move(struct game_obj_t *o) -@@ -7111,26 +7167,26 @@ void worm_draw(struct game_obj_t *o, GtkWidget *w) - if (o->tsd.worm.parent == NULL) { - /* int x3, y3; */ - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x-2, y, x, y-2); -- wwvi_draw_line(w->window, gc, x, y-2, x+2, y); -- wwvi_draw_line(w->window, gc, x+2, y, x, y+2); -- wwvi_draw_line(w->window, gc, x, y+2, x-2, y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-2, y, x, y-2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y-2, x+2, y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x+2, y, x, y+2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y+2, x-2, y); - /* - x3 = o->tsd.worm.tx - game_state.x; - y3 = o->tsd.worm.ty - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x, y, x3, y3); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y, x3, y3); - x3 = o->tsd.worm.ltx - game_state.x; - y3 = o->tsd.worm.lty - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x, y, x3, y3); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y, x3, y3); - */ - } else { - color = NCOLORS + NSPARKCOLORS + ((timer + o->tsd.worm.coloroffset) % NRAINBOWCOLORS); - gdk_gc_set_foreground(gc, &huex[color]); - if (o->tsd.worm.child == NULL) { -- wwvi_draw_line(w->window, gc, x-2, y, x, y-2); -- wwvi_draw_line(w->window, gc, x, y-2, x+2, y); -- wwvi_draw_line(w->window, gc, x+2, y, x, y+2); -- wwvi_draw_line(w->window, gc, x, y+2, x-2, y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-2, y, x, y-2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y-2, x+2, y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x+2, y, x, y+2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y+2, x-2, y); - } - } - -@@ -7138,10 +7194,10 @@ void worm_draw(struct game_obj_t *o, GtkWidget *w) - if (o->tsd.worm.parent == NULL) { - x2 = o->tsd.worm.tx - game_state.x; - y2 = o->tsd.worm.ty - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x, y, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y, x2, y2); - x2 = o->tsd.worm.ltx - game_state.x; - y2 = o->tsd.worm.lty - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x, y, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y, x2, y2); - } else { - #endif - if (o->tsd.worm.parent != NULL) { -@@ -7155,10 +7211,10 @@ void worm_draw(struct game_obj_t *o, GtkWidget *w) - - x2 = o->tsd.worm.parent->x - game_state.x; - y2 = o->tsd.worm.parent->y - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x-delta1, y, x2-delta2, y2); -- wwvi_draw_line(w->window, gc, x+delta1, y, x2+delta2, y2); -- wwvi_draw_line(w->window, gc, x, y-delta1, x2, y2-delta2); -- wwvi_draw_line(w->window, gc, x, y+delta1, x2, y2+delta2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-delta1, y, x2-delta2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x+delta1, y, x2+delta2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y-delta1, x2, y2-delta2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y+delta1, x2, y2+delta2); - } - } - -@@ -7384,10 +7440,10 @@ void gunwheel_draw(struct game_obj_t *o, GtkWidget *w) - - gdk_gc_set_foreground(gc, &huex[o->color]); - -- wwvi_draw_line(w->window, gc, x1-rx, y1-ry, x2-rx, y2-ry); -- wwvi_draw_line(w->window, gc, x1+rx, y1+ry, x2+rx, y2+ry); -- wwvi_draw_line(w->window, gc, x1-rx, y1-ry, x1+rx, y1+ry); -- wwvi_draw_line(w->window, gc, x2-rx, y2-ry, x2+rx, y2+ry); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-rx, y1-ry, x2-rx, y2-ry); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+rx, y1+ry, x2+rx, y2+ry); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-rx, y1-ry, x1+rx, y1+ry); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2-rx, y2-ry, x2+rx, y2+ry); - - make_gunwheel_sound(); - } -@@ -7782,7 +7838,7 @@ void draw_abs_scaled_generic(int x, int y, - x2 = x + (v->p[j+1].x * xscale); - y2 = y + (v->p[j+1].y * yscale); - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - x1 = x2; - y1 = y2; - } -@@ -7814,7 +7870,7 @@ void draw_scaled_generic(struct game_obj_t *o, GtkWidget *w, float xscale, float - x2 = o->x + (o->v->p[j+1].x * xscale) - game_state.x; - y2 = o->y + (o->v->p[j+1].y * yscale) +(SCREEN_HEIGHT/2) - game_state.y; - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - x1 = x2; - y1 = y2; - } -@@ -7839,10 +7895,10 @@ void draw_generic(struct game_obj_t *o, GtkWidget *w) - x1 = o->x - game_state.x; - y1 = o->y - game_state.y + (SCREEN_HEIGHT/2); - if (x1 > 0 && x1 < SCREEN_WIDTH && y1 < SCREEN_HEIGHT && y1 > 0) { -- /* wwvi_draw_line(w->window, gc, x1-10, y1, x1+10, y1); */ -- wwvi_draw_line(w->window, gc, x1, y1-10, x1, y1+10); -- wwvi_draw_line(w->window, gc, x1-10, y1 + o->above_target_y, x1+10, y1 + o->above_target_y); -- wwvi_draw_line(w->window, gc, x1-10, y1 + o->below_target_y, x1+10, y1 + o->below_target_y); -+ /* wwvi_draw_line(gtk_widget_get_window(w), gc, x1-10, y1, x1+10, y1); */ -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1-10, x1, y1+10); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-10, y1 + o->above_target_y, x1+10, y1 + o->above_target_y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-10, y1 + o->below_target_y, x1+10, y1 + o->below_target_y); - } - } - #endif -@@ -7864,7 +7920,7 @@ void draw_generic(struct game_obj_t *o, GtkWidget *w) - x2 = o->x + o->v->p[j+1].x - game_state.x; - y2 = o->y + o->v->p[j+1].y+(SCREEN_HEIGHT/2) - game_state.y; - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - x1 = x2; - y1 = y2; - } -@@ -7995,13 +8051,13 @@ void truss_draw(struct game_obj_t *o, GtkWidget *w) - x4 = x + o->tsd.truss.bottom_width / 2; /* bottom right corner */ - y4 = y + o->tsd.truss.height / 2; - -- wwvi_draw_line(w->window, gc, x3, y3, x1, y1); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x2, y2, x4, y4); -- wwvi_draw_line(w->window, gc, x4, y4, x1, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x3, y3, x1, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y2, x4, y4); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x4, y4, x1, y1); - #ifndef OPENLASE -- wwvi_draw_line(w->window, gc, x2, y2, x3, y3); -- wwvi_draw_line(w->window, gc, x3, y3, x4, y4); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y2, x3, y3); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x3, y3, x4, y4); - #endif - } - -@@ -8056,8 +8112,8 @@ void kgun_draw(struct game_obj_t *o, GtkWidget *w) - y1 = o->y+(5*invert) - game_state.y + (SCREEN_HEIGHT/2); - crossbeam_y = y1 + (20*invert); - -- wwvi_draw_line(w->window, gc, x1, y1, x1+5, crossbeam_y); -- wwvi_draw_line(w->window, gc, x1+10, y1, x1+6, crossbeam_y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x1+5, crossbeam_y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1+10, y1, x1+6, crossbeam_y); - - /* We're going to draw a swivelling dual gun turret. Two */ - /* guns mounted on a crossbeam that kind of swivel around */ -@@ -8148,33 +8204,33 @@ void kgun_draw(struct game_obj_t *o, GtkWidget *w) - gunbacky += crossbeam_y + recoily; - - /* draw the crossbeam */ -- wwvi_draw_line(w->window, gc, crossbeam_x1, crossbeam_y, crossbeam_x2, crossbeam_y); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, crossbeam_x1, crossbeam_y, crossbeam_x2, crossbeam_y); - - /* draw the main barrels */ -- wwvi_draw_line(w->window, gc, gunbackx, gunbacky, guntipx, guntipy); -- wwvi_draw_line(w->window, gc, gunbackx+xoffset, gunbacky, guntipx+xoffset, guntipy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx, gunbacky, guntipx, guntipy); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx+xoffset, gunbacky, guntipx+xoffset, guntipy); - - /* draw the back edges of the gun butts */ -- wwvi_draw_line(w->window, gc, gunbackx-thickxo, gunbacky-thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx-thickxo, gunbacky-thickyo, - gunbackx+thickxo, gunbacky+thickyo); -- wwvi_draw_line(w->window, gc, gunbackx-thickxo+xoffset, gunbacky-thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx-thickxo+xoffset, gunbacky-thickyo, - gunbackx+thickxo+xoffset, gunbacky+thickyo); - /* draw the front edges of the gun butts */ -- wwvi_draw_line(w->window, gc, crossbeam_x1-thickxo+recoilx, crossbeam_y-thickyo+recoily, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, crossbeam_x1-thickxo+recoilx, crossbeam_y-thickyo+recoily, - crossbeam_x1+thickxo+recoilx, crossbeam_y+thickyo+recoily); -- wwvi_draw_line(w->window, gc, crossbeam_x1-thickxo+xoffset+recoilx, -- crossbeam_y-thickyo+recoily, -- crossbeam_x1+thickxo+xoffset+recoilx, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, crossbeam_x1-thickxo+xoffset+recoilx, -+ crossbeam_y-thickyo+recoily, -+ crossbeam_x1+thickxo+xoffset+recoilx, - crossbeam_y+thickyo+recoily); - - /* draw the long sides of the gun butts */ -- wwvi_draw_line(w->window, gc, gunbackx-thickxo, gunbacky-thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx-thickxo, gunbacky-thickyo, - crossbeam_x1-thickxo+recoilx, crossbeam_y-thickyo+recoily); -- wwvi_draw_line(w->window, gc, gunbackx-thickxo+xoffset, gunbacky-thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx-thickxo+xoffset, gunbacky-thickyo, - crossbeam_x1-thickxo+xoffset+recoilx, crossbeam_y-thickyo+recoily); -- wwvi_draw_line(w->window, gc, gunbackx+thickxo, gunbacky+thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx+thickxo, gunbacky+thickyo, - crossbeam_x1+thickxo+recoilx, crossbeam_y+thickyo+recoily); -- wwvi_draw_line(w->window, gc, gunbackx+thickxo+xoffset, gunbacky+thickyo, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, gunbackx+thickxo+xoffset, gunbacky+thickyo, - crossbeam_x1+thickxo+xoffset+recoilx, crossbeam_y+thickyo+recoily); - - } -@@ -8267,17 +8323,17 @@ static inline void draw_on_radar(GtkWidget *w, struct game_obj_t *o, int y_corre - if ((timer & 0x04) == 0x04) /* make 'em blink */ - return; - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y1); -- wwvi_draw_line(w->window, gc, x1, y2, x1, y1); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y1); -- wwvi_draw_line(w->window, gc, x2, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x2, y2, x1, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x1, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y2, x1, y2); - return; - } - gdk_gc_set_foreground(gc, &huex[o->color]); -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y1); - } - - /* Here's where we put noise on the screen. total_radar_noise */ -@@ -8307,8 +8363,8 @@ static inline void draw_on_radar(GtkWidget *w, struct game_obj_t *o, int y_corre - x2 = xradarnoise[nx]+1; - y1 = yradarnoise[ny]-1; - y2 = yradarnoise[ny]+1; -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y1); - nx++; if (nx >= XRADARN) nx = 0; - ny++; if (ny >= YRADARN) ny = 0; - nc++; if (nc >= CRADARN) nc = 0; -@@ -8346,8 +8402,8 @@ static inline void debug_draw_target_guidelines(GtkWidget *w, struct game_obj_t - gdk_gc_set_foreground(gc, &huex[WHITE]); - x1 = o->x - game_state.x; - y1 = o->y - game_state.y + (SCREEN_HEIGHT/2); -- wwvi_draw_line(w->window, gc, x1-5, y1, x1+5, y1); -- wwvi_draw_line(w->window, gc, x1, y1-5, x1, y1+5); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1-5, y1, x1+5, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1-5, x1, y1+5); - } - - static inline void debug_display_target_list_count(GtkWidget *w, int total) -@@ -8427,8 +8483,8 @@ static void draw_letter(GtkWidget *w, struct my_vect_obj **font, unsigned char l - } - x2 = livecursorx + font[letter]->p[i+1].x; - y2 = livecursory + font[letter]->p[i+1].y; -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- /*wwvi_draw_line(w->window, gc, x1-1, y1+1, x2-1, y2+1); */ -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ /*wwvi_draw_line(gtk_widget_get_window(w), gc, x1-1, y1+1, x2-1, y2+1); */ - x1 = x2; - y1 = y2; - } -@@ -8479,7 +8535,7 @@ static void abs_xy_draw_letter(GtkWidget *w, struct my_vect_obj **font, - x2 = x + font[letter]->p[i+1].x; - y2 = y + font[letter]->p[i+1].y; - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); - } - } - -@@ -8533,8 +8589,8 @@ static void xy_draw_letter(GtkWidget *w, struct my_vect_obj **font, - x2 = x + font[letter]->p[i+1].x - game_state.x; - y2 = y + font[letter]->p[i+1].y - game_state.y + (SCREEN_HEIGHT/2); - if (x1 > 0 && x2 > 0) -- wwvi_draw_line(w->window, gc, x1, y1, x2, y2); -- /* wwvi_draw_line(w->window, gc, x1-1, y1+1, x2-1, y2+1); */ -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x2, y2); -+ /* wwvi_draw_line(gtk_widget_get_window(w), gc, x1-1, y1+1, x2-1, y2+1); */ - } - } - -@@ -10270,7 +10326,7 @@ static void do_newhighscore(GtkWidget *w, - #ifndef OPENLASE - rainbow_abs_xy_draw_string(w, message, BIG_FONT, x+1, y+1); - #endif -- wwvi_draw_line(w->window, gc, x-25, y+25, x+55, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y+25, x+55, y+25); - } - - /* Print the alphabet. */ -@@ -10287,10 +10343,10 @@ static void do_newhighscore(GtkWidget *w, - #endif - if (i == highscore_letter) { - x = 60 + (i%9)*80; -- wwvi_draw_line(w->window, gc, x-25, y-65, x-25, y+25); -- wwvi_draw_line(w->window, gc, x-25, y-65, x+55, y-65); -- wwvi_draw_line(w->window, gc, x-25, y+25, x+55, y+25); -- wwvi_draw_line(w->window, gc, x+55, y-65, x+55, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y-65, x-25, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y-65, x+55, y-65); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y+25, x+55, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x+55, y-65, x+55, y+25); - } - } - rainbow_abs_xy_draw_string(w, "Done", SMALL_FONT, 60 + 8*80, 80+100*4); -@@ -10309,10 +10365,10 @@ static void do_newhighscore(GtkWidget *w, - if (highscore_letter == 26 && !finished) { - x = 60 + 8*80; - y = 80+100*4; -- wwvi_draw_line(w->window, gc, x-25, y-65, x-25, y+25); -- wwvi_draw_line(w->window, gc, x-25, y-65, x+55, y-65); -- wwvi_draw_line(w->window, gc, x-25, y+25, x+55, y+25); -- wwvi_draw_line(w->window, gc, x+55, y-65, x+55, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y-65, x-25, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y-65, x+55, y-65); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x-25, y+25, x+55, y+25); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x+55, y-65, x+55, y+25); - } - - if (highscore_current_initial == 3 && finish_timer == 0) { -@@ -10408,7 +10464,7 @@ void update_intermission_starfield(GtkWidget *w) - y = (int) star[i].y; - x2 = (int) star[i].lx; - y2 = (int) star[i].ly; -- wwvi_draw_line(w->window, gc, x, y, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x, y, x2, y2); - } - } - -@@ -10611,15 +10667,15 @@ static void draw_radar(GtkWidget *w) - gdk_gc_set_foreground(gc, &huex[RED]); - - /* draw radar border */ -- wwvi_draw_line(w->window, gc, x1, y1, x1, y2); -- wwvi_draw_line(w->window, gc, x1, y2, x2, y2); -- wwvi_draw_line(w->window, gc, x2, y2, x2, y1); -- wwvi_draw_line(w->window, gc, x2, y1, x1, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1, x1, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y2, x2, y2); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y2, x2, y1); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x2, y1, x1, y1); - - /* draw health bar */ - gdk_gc_set_foreground(gc, &huex[ORANGE]); - if (game_state.health > 0) -- wwvi_draw_rectangle(w->window, gc, TRUE, RADAR_LEFT_MARGIN, -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, TRUE, RADAR_LEFT_MARGIN, - SCREEN_HEIGHT - RADAR_HEIGHT - RADAR_YMARGIN - 10, - ((SCREEN_WIDTH - RADAR_LEFT_MARGIN - RADAR_RIGHT_MARGIN) * game_state.health / game_state.max_player_health), - RADAR_YMARGIN - 5); -@@ -10663,26 +10719,26 @@ static void draw_radar(GtkWidget *w) - gdk_gc_set_foreground(gc, &huex[WHITE]); - - /* draw upper left corner */ -- wwvi_draw_line(w->window, gc, viewport_left, viewport_top, viewport_left, viewport_top + 5); -- wwvi_draw_line(w->window, gc, viewport_left, viewport_top, viewport_left+5, viewport_top); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_top, viewport_left, viewport_top + 5); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_top, viewport_left+5, viewport_top); - - /* draw upper right corner */ -- wwvi_draw_line(w->window, gc, viewport_right, viewport_top, viewport_right, viewport_top + 5); -- wwvi_draw_line(w->window, gc, viewport_right, viewport_top, viewport_right-5, viewport_top); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_right, viewport_top, viewport_right, viewport_top + 5); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_right, viewport_top, viewport_right-5, viewport_top); - - /* draw lower left corner */ -- wwvi_draw_line(w->window, gc, viewport_left, viewport_bottom, viewport_left, viewport_bottom - 5); -- wwvi_draw_line(w->window, gc, viewport_left, viewport_bottom, viewport_left+5, viewport_bottom); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_bottom, viewport_left, viewport_bottom - 5); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_bottom, viewport_left+5, viewport_bottom); - - /* draw lower right corner */ -- wwvi_draw_line(w->window, gc, viewport_right, viewport_bottom, viewport_right, viewport_bottom - 5); -- wwvi_draw_line(w->window, gc, viewport_right, viewport_bottom, viewport_right-5, viewport_bottom); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_right, viewport_bottom, viewport_right, viewport_bottom - 5); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_right, viewport_bottom, viewport_right-5, viewport_bottom); - - #if 0 -- wwvi_draw_line(w->window, gc, viewport_left, viewport_top, viewport_left, viewport_bottom); -- wwvi_draw_line(w->window, gc, viewport_right, viewport_top, viewport_right, viewport_bottom); -- wwvi_draw_line(w->window, gc, viewport_left, viewport_top, viewport_right, viewport_top); -- wwvi_draw_line(w->window, gc, viewport_left, viewport_bottom, viewport_right, viewport_bottom); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_top, viewport_left, viewport_bottom); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_right, viewport_top, viewport_right, viewport_bottom); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_top, viewport_right, viewport_top); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, viewport_left, viewport_bottom, viewport_right, viewport_bottom); - #endif - } - #endif -@@ -10732,7 +10788,7 @@ static void draw_radar(GtkWidget *w) - - if (game_state.radar_state == RADAR_FRITZED) { - gdk_gc_set_foreground(gc, &huex[randomn(NCOLORS+NSPARKCOLORS+NRAINBOWCOLORS)]); -- wwvi_draw_line(w->window, gc, x1, y1 + timer % RADAR_HEIGHT, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, x1, y1 + timer % RADAR_HEIGHT, - x2, y1 + timer % RADAR_HEIGHT); - } else if (game_state.radar_state <= RADAR_BOOTUP) { - /* radar is booting up, display bootup message. */ -@@ -10751,21 +10807,14 @@ static void draw_radar(GtkWidget *w) - static gint main_da_configure(GtkWidget *w, - __attribute__((unused)) GdkEventConfigure *event) - { -- GdkRectangle cliprect; -- -- /* first time through, gc is null, because gc can't be set without */ -- /* a window, but, the window isn't there yet until it's shown, but */ -- /* the show generates a configure... chicken and egg. And we can't */ -- /* proceed without gc != NULL... but, it's ok, because 1st time thru */ -- /* we already sort of know the drawing area/window size. */ -- -- if (gc == NULL) -+ /* Skip the first spurious configure that arrives before drawing is ready */ -+ if (!drawing_initialized) - return TRUE; - -- /* gtk_widget_set_size_request(w, w->allocation.width, w->allocation.height);*/ -+ /* gtk_widget_set_size_request(w, gtk_widget_get_allocated_width(w), gtk_widget_get_allocated_height(w));*/ - /* gtk_window_get_size(GTK_WINDOW (w), &real_screen_width, &real_screen_height);*/ -- real_screen_width = w->allocation.width; -- real_screen_height = w->allocation.height; -+ real_screen_width = gtk_widget_get_allocated_width(w); -+ real_screen_height = gtk_widget_get_allocated_height(w); - xscale_screen = (float) real_screen_width / (float) SCREEN_WIDTH; - yscale_screen = (float) real_screen_height / (float) SCREEN_HEIGHT; - if (real_screen_width == 800 && real_screen_height == 600) { -@@ -10779,12 +10828,6 @@ static gint main_da_configure(GtkWidget *w, - if (thicklines) - current_draw_line = thick_scaled_line; - } -- gdk_gc_set_clip_origin(gc, 0, 0); -- cliprect.x = 0; -- cliprect.y = 0; -- cliprect.width = real_screen_width; -- cliprect.height = real_screen_height; -- gdk_gc_set_clip_rectangle(gc, &cliprect); - return TRUE; - } - -@@ -10796,9 +10839,9 @@ static void draw_quit_screen(GtkWidget *w) - quittimer++; - - gdk_gc_set_foreground(gc, &huex[BLACK]); -- wwvi_draw_rectangle(w->window, gc, TRUE, 100, 100, SCREEN_WIDTH-200, SCREEN_HEIGHT-200); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, TRUE, 100, 100, SCREEN_WIDTH-200, SCREEN_HEIGHT-200); - gdk_gc_set_foreground(gc, &huex[RED]); -- wwvi_draw_rectangle(w->window, gc, FALSE, 100, 100, SCREEN_WIDTH-200, SCREEN_HEIGHT-200); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, FALSE, 100, 100, SCREEN_WIDTH-200, SCREEN_HEIGHT-200); - - gdk_gc_set_foreground(gc, &huex[WHITE]); - abs_xy_draw_string(w, "Quit?", BIG_FONT, 300, 280); -@@ -10819,35 +10862,41 @@ static void draw_quit_screen(GtkWidget *w) - - if ((quittimer & 0x04)) { - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_rectangle(w->window, gc, FALSE, x, 420, 200, 50); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, FALSE, x, 420, 200, 50); - } - } - - - - static void draw_help_screen(GtkWidget *w); --/* This is the expose function of the main drawing area. This is */ --/* where everything gets drawn. */ --static int main_da_expose(GtkWidget *w, GdkEvent *event, gpointer p) -+/* This is the draw callback of the main drawing area (GTK3: "draw" signal). -+ * This is where everything gets drawn. */ -+static gboolean main_da_draw(GtkWidget *w, cairo_t *cr, gpointer p) - { - int i; - int sx1, sx2; - static int last_lowx = 0, last_highx = TERRAIN_LENGTH-1; - /* int last_lowx = 0, last_highx = TERRAIN_LENGTH-1;*/ - -+ /* Set up the cairo context for this frame */ -+ current_cr = cr; -+ cairo_set_line_width(cr, 1.0); -+ /* Clear drawing area to black */ -+ cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); -+ cairo_paint(cr); -+ - if (timer_event == START_INTERMISSION_EVENT) { - openlase_startframe(); -- do_intermission(w, event, p); -+ do_intermission(w, NULL, p); - openlase_renderframe(); -- return 0; -+ return FALSE; - } - - if (timer_event == NEW_HIGH_SCORE_EVENT) { - openlase_startframe(); -- do_newhighscore(w, event, p); -+ do_newhighscore(w, NULL, p); - openlase_renderframe(); -- return 0; -- return 0; -+ return FALSE; - } - - openlase_startframe(); -@@ -10890,22 +10939,22 @@ static int main_da_expose(GtkWidget *w, GdkEvent *event, gpointer p) - printf(".\n"); - } - #endif -- wwvi_draw_line(w->window, gc, terrain.x[i] - game_state.x, terrain.y[i]+(SCREEN_HEIGHT/2) - game_state.y, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, terrain.x[i] - game_state.x, terrain.y[i]+(SCREEN_HEIGHT/2) - game_state.y, - terrain.x[i+1] - game_state.x, terrain.y[i+1]+(SCREEN_HEIGHT/2) - game_state.y); - } - gdk_gc_set_foreground(gc, &huex[RED]); - - /* draw "system memory boundaries" (ha!) */ - if (game_state.x > terrain.x[0] - SCREEN_WIDTH && game_state.x < terrain.x[0] + SCREEN_WIDTH) -- wwvi_draw_line(w->window, gc, terrain.x[0] - game_state.x, 0, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, terrain.x[0] - game_state.x, 0, - terrain.x[0] - game_state.x, SCREEN_HEIGHT); - if (game_state.x > terrain.x[TERRAIN_LENGTH - 1] - SCREEN_WIDTH && - game_state.x < terrain.x[TERRAIN_LENGTH - 1] + SCREEN_WIDTH) -- wwvi_draw_line(w->window, gc, terrain.x[TERRAIN_LENGTH-1] - game_state.x, 0, -- terrain.x[TERRAIN_LENGTH-1] - game_state.x, SCREEN_HEIGHT); -+ wwvi_draw_line(gtk_widget_get_window(w), gc, terrain.x[TERRAIN_LENGTH-1] - game_state.x, 0, -+ terrain.x[TERRAIN_LENGTH-1] - game_state.x, SCREEN_HEIGHT); - set_font(SMALL_FONT); - if (game_state.y < KERNEL_Y_BOUNDARY + SCREEN_HEIGHT) { -- wwvi_draw_line(w->window, gc, 0, KERNEL_Y_BOUNDARY - game_state.y + SCREEN_HEIGHT/2, -+ wwvi_draw_line(gtk_widget_get_window(w), gc, 0, KERNEL_Y_BOUNDARY - game_state.y + SCREEN_HEIGHT/2, - SCREEN_WIDTH, KERNEL_Y_BOUNDARY - game_state.y + SCREEN_HEIGHT/2); - livecursorx = (SCREEN_WIDTH - abs(game_state.x) % SCREEN_WIDTH); - livecursory = KERNEL_Y_BOUNDARY - game_state.y + SCREEN_HEIGHT/2 - 10; -@@ -10925,7 +10974,7 @@ static int main_da_expose(GtkWidget *w, GdkEvent *event, gpointer p) - draw_help_screen(w); - - openlase_renderframe(); -- return 0; -+ return FALSE; - } - static void do_game_pause(void) - { -@@ -10974,7 +11023,7 @@ void inhibit_screensaver( - char cmd[1024]; - return; - -- xwindow_id = GDK_WINDOW_XWINDOW (GTK_WIDGET (widget)->window); -+ xwindow_id = gdk_x11_window_get_xid(gtk_widget_get_window(GTK_WIDGET(widget))); - - sprintf(cmd, "xdg-screensaver suspend 0x%08x > /dev/null 2>&1 &", xwindow_id); - rc = system(cmd); -@@ -10994,7 +11043,7 @@ void resume_screensaver( - char cmd[1024]; - return; - -- xwindow_id = GDK_WINDOW_XWINDOW (GTK_WIDGET (widget)->window); -+ xwindow_id = gdk_x11_window_get_xid(gtk_widget_get_window(GTK_WIDGET(widget))); - - sprintf(cmd, "xdg-screensaver resume 0x%08x > /dev/null 2>&1 &", xwindow_id); - rc = system(cmd); -@@ -11350,10 +11399,8 @@ gint advance_game(__attribute__((unused)) gpointer data) - if (game_pause == 1) { - if (game_pause_help) { - deal_with_keyboard(); -- gdk_threads_enter(); - gtk_widget_queue_draw(main_da); - nframes++; -- gdk_threads_leave(); - } - return TRUE; - } -@@ -11364,16 +11411,13 @@ gint advance_game(__attribute__((unused)) gpointer data) - deal_with_keyboard(); - - if (in_the_process_of_quitting) { -- gdk_threads_enter(); - gtk_widget_queue_draw(main_da); - nframes++; -- gdk_threads_leave(); - if (final_quit_selection) - really_quit(); - return TRUE; - } - -- gdk_threads_enter(); - game_state.x += game_state.vx; - game_state.y += game_state.vy; - -@@ -11404,7 +11448,6 @@ gint advance_game(__attribute__((unused)) gpointer data) - } - gtk_widget_queue_draw(main_da); - nframes++; -- gdk_threads_leave(); - #if 0 - if (WORLDWIDTH - game_state.x < 100) - return FALSE; -@@ -12446,9 +12489,9 @@ static void draw_help_screen(GtkWidget *w) - - - gdk_gc_set_foreground(gc, &huex[BLACK]); -- wwvi_draw_rectangle(w->window, gc, TRUE, 50, 50, SCREEN_WIDTH-100, SCREEN_HEIGHT-100); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, TRUE, 50, 50, SCREEN_WIDTH-100, SCREEN_HEIGHT-100); - gdk_gc_set_foreground(gc, &huex[RED]); -- wwvi_draw_rectangle(w->window, gc, FALSE, 50, 50, SCREEN_WIDTH-100, SCREEN_HEIGHT-100); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, FALSE, 50, 50, SCREEN_WIDTH-100, SCREEN_HEIGHT-100); - - if (helpscreen_pixel_row > -30) - abs_xy_draw_string(w, "-- More Above -- (press 'up' arrow)", TINY_FONT, 80, 70); -@@ -12665,7 +12708,7 @@ static void draw_help_screen(GtkWidget *w) - - if ((quittimer & 0x04)) { - gdk_gc_set_foreground(gc, &huex[WHITE]); -- wwvi_draw_rectangle(w->window, gc, FALSE, x, 420, 200, 50); -+ wwvi_draw_rectangle(gtk_widget_get_window(w), gc, FALSE, x, 420, 200, 50); - } - #endif - } -@@ -13500,8 +13543,8 @@ void set_cursor(GtkWidget *window) - { - GdkCursor* cursor; - cursor = gdk_cursor_new(GDK_CROSS); -- gdk_window_set_cursor(window->window, cursor); -- gdk_cursor_destroy(cursor); -+ gdk_window_set_cursor(gtk_widget_get_window(window), cursor); -+ g_object_unref(cursor); - } - - char *trim_whitespace(char *s) -@@ -13907,7 +13950,6 @@ int main(int argc, char *argv[]) - { - /* GtkWidget is the storage type for widgets */ - GtkWidget *vbox; -- GdkRectangle cliprect; - int i; - int blueprint = 0; - int retrogreen = 0; -@@ -14184,7 +14226,6 @@ int main(int argc, char *argv[]) - else - init_clips(); - #endif -- gtk_set_locale(); - gtk_init (&argc, &argv); - - gdk_color_parse("white", &huex[WHITE]); -@@ -14229,7 +14270,7 @@ int main(int argc, char *argv[]) - gtk_window_fullscreen(GTK_WINDOW (window)); - gtk_window_set_decorated( GTK_WINDOW (window), FALSE); - -- real_screen_width = gdk_screen_get_width(screen); -+ real_screen_width = gdk_screen_get_width(screen); /* deprecated but GTK3-compatible */ - real_screen_height = gdk_screen_get_height(screen); - - current_draw_line = scaled_line; -@@ -14264,12 +14305,11 @@ int main(int argc, char *argv[]) - #endif - gtk_container_set_border_width (GTK_CONTAINER (window), 0); - -- vbox = gtk_vbox_new(FALSE, 0); -+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - main_da = gtk_drawing_area_new(); -- gtk_widget_modify_bg(main_da, GTK_STATE_NORMAL, &huex[WHITE]); - /* gtk_widget_set_size_request(main_da, real_screen_width, real_screen_height);*/ - -- g_signal_connect(G_OBJECT (main_da), "expose_event", G_CALLBACK (main_da_expose), NULL); -+ g_signal_connect(G_OBJECT (main_da), "draw", G_CALLBACK (main_da_draw), NULL); - g_signal_connect(G_OBJECT (main_da), "configure_event", G_CALLBACK (main_da_configure), NULL); - - gtk_container_add (GTK_CONTAINER (window), vbox); -@@ -14288,9 +14328,7 @@ int main(int argc, char *argv[]) - - /* print_target_list();*/ - -- for (i=0;iwindow); -+ jsfd = open_joystick(joystick_device, gtk_widget_get_window(window)); - if (jsfd < 0) { - printf("No joystick...\n"); - } else - check_for_screensaver(); - -- gc = gdk_gc_new(GTK_WIDGET(main_da)->window); -- gdk_gc_set_foreground(gc, &huex[BLUE]); -- gdk_gc_set_foreground(gc, &huex[WHITE]); -- -- gdk_gc_set_clip_origin(gc, 0, 0); -- cliprect.x = 0; -- cliprect.y = 0; -- cliprect.width = real_screen_width; -- cliprect.height = real_screen_height; -- gdk_gc_set_clip_rectangle(gc, &cliprect); -+ /* gc is unused in GTK3 (replaced by cairo_t *current_cr, see compat layer) */ -+ gc = NULL; -+ drawing_initialized = TRUE; - - gtk_window_get_size(GTK_WINDOW (window), &real_screen_width, &real_screen_height); - if (real_screen_width == 800 && real_screen_height == 600) { -@@ -14360,17 +14391,6 @@ int main(int argc, char *argv[]) - - timer_tag = g_timeout_add(1000 / frame_rate_hz, advance_game, NULL); - --#ifndef GLIB_VERSION_2_32 -- /* this is only needed in glibc versions before 2.32 */ -- -- /* Apparently (some versions of?) portaudio calls g_thread_init(). */ -- /* It may only be called once, and subsequent calls abort, so */ -- /* only call it if the thread system is not already initialized. */ -- if (!g_thread_supported ()) -- g_thread_init(NULL); --#endif -- -- gdk_threads_init(); - - gettimeofday(&start_time, NULL); - diff --git a/sources b/sources index b5cf594..3c28118 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wordwarvi-1.0.4.tar.gz) = 3bbb17f8c93aa0250ff25d0851c550872353fb0925a3495c8b073409094b4e8bbbb9c335c4ddd360588d29e27906624e3dfc61a5335dcfe6ca1fd5dfd6d26bca +d7b1e62c72302d93d5f36b50500d9d31 wordwarvi-1.1-6beed31.tar.gz diff --git a/wordwarvi.rpmlintrc b/wordwarvi.rpmlintrc deleted file mode 100644 index 676802d..0000000 --- a/wordwarvi.rpmlintrc +++ /dev/null @@ -1,4 +0,0 @@ -addFilter("E: spelling-error") -addFilter("E: incorrect-fsf-address") -addFilter("W: no-%check-section") -addFilter("W: invalid-license") diff --git a/wordwarvi.spec b/wordwarvi.spec index b5954ad..0e64835 100644 --- a/wordwarvi.spec +++ b/wordwarvi.spec @@ -1,24 +1,19 @@ -%global forgeurl https://github.com/smcameron/wordwarvi/ +%global commit 6beed311c2ecb3f9662f35ecc06948bd89ed9455 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: wordwarvi -Version: 1.0.4 -Release: 3%{?dist} -# Accidentally used 1.1 for 1.0.1 -Epoch: 1 -%forgemeta +Version: 1.1 +Release: 5.git%{shortcommit}%{?dist} Summary: Side-scrolling shoot 'em up '80s style arcade game -# Code is GPL-2.0-or-later except 'ogg_to_pcm.c' / 'ogg_to_pcm.h' which are -# GPL-2.0-only (from vorbis-tools 'oggdec.c'); effective code license is -# GPL-2.0-only. Some sounds are CC-BY-3.0, rest are CC-BY-SA-3.0. -License: GPL-2.0-only AND CC-BY-3.0 AND CC-BY-SA-3.0 +Group: Amusements/Games +License: GPLv2+ and CC-BY and CC-BY-SA URL: https://smcameron.github.io/wordwarvi/ -Source0: %{forgesource} +# The 1.1 release never got a tag in git, so we use the commit-id +Source0: https://github.com/smcameron/wordwarvi/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz Source1: %{name}.desktop Source2: %{name}.png Source3: %{name}.appdata.xml -Patch1: Port-to-GTK-3.patch -BuildRequires: make gcc -BuildRequires: gtk3-devel portaudio-devel libvorbis-devel +BuildRequires: gtk2-devel portaudio-devel libvorbis-devel BuildRequires: desktop-file-utils libappstream-glib Requires: hicolor-icon-theme @@ -35,15 +30,15 @@ vi, mmm-kay? %prep -%autosetup -p1 +%setup -qn %{name}-%{commit} %build -%make_build PREFIX=%{_prefix} +make %{?_smp_mflags} PREFIX=%{_prefix} CFLAGS="$RPM_OPT_FLAGS" %install -%make_install PREFIX=%{_prefix} BINDIR=%{_bindir} +make install PREFIX=%{_prefix} DESTDIR=$RPM_BUILD_ROOT # below is the desktop file and icon stuff. mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications @@ -57,9 +52,21 @@ appstream-util validate-relax --nonet \ $RPM_BUILD_ROOT%{_datadir}/appdata/%{name}.appdata.xml +%post +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + + %files -%doc AUTHORS README changelog.txt sounds/Attribution.txt -%license COPYING +%doc AUTHORS COPYING README changelog.txt sounds/Attribution.txt %{_bindir}/%{name} %{_datadir}/%{name} %{_mandir}/man6/%{name}.6* @@ -69,75 +76,6 @@ appstream-util validate-relax --nonet \ %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 1:1.0.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Tue Jul 14 2026 Michal Schorm - 1:1.0.4-2 -- Fix SPDX license expression: 'GPL-2.0-only AND CC-BY-3.0 AND CC-BY-SA-3.0' -- 'ogg_to_pcm.c' is GPL-2.0-only (from vorbis-tools), not GPL-2.0-or-later - -* Tue May 12 2026 Hans de Goede - 1:1.0.4-1 -- Update to 1.0.4 release -- Add Epoch because the 1.1 release from git was 1.0.1 -- Add Debian patch to port to GTK3 - -* Sat Jan 17 2026 Fedora Release Engineering - 1.1-24.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Jul 25 2025 Fedora Release Engineering - 1.1-23.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 1.1-22.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Sep 04 2024 Miroslav Suchý - 1.1-21.git6beed31 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 1.1-20.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 1.1-19.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 1.1-18.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 1.1-17.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 1.1-16.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 1.1-15.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 1.1-14.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 1.1-13.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 1.1-12.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 1.1-11.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 1.1-10.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 03 2019 Fedora Release Engineering - 1.1-9.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 1.1-8.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 1.1-7.git6beed31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 18 2018 Igor Gnatenko - 1.1-6.git6beed31 -- Remove obsolete scriptlets - * Thu Aug 03 2017 Fedora Release Engineering - 1.1-5.git6beed31 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild