diff options
author | Vasily_Makarov <danilka.pro@gmail.com> | 2011-06-10 18:59:05 +0400 |
---|---|---|
committer | Vasily_Makarov <danilka.pro@gmail.com> | 2011-06-10 18:59:05 +0400 |
commit | b6c7454b3b63c0df36888995d0079c45527b5515 (patch) | |
tree | 94ea1708ab57d044647bd954e1808a64bfd082c6 /saedit | |
parent | ee04e07a08e2f26878de3c1830e7a4e364c4aeda (diff) | |
download | evol-tools-b6c7454b3b63c0df36888995d0079c45527b5515.tar.gz evol-tools-b6c7454b3b63c0df36888995d0079c45527b5515.tar.bz2 evol-tools-b6c7454b3b63c0df36888995d0079c45527b5515.tar.xz evol-tools-b6c7454b3b63c0df36888995d0079c45527b5515.zip |
saedit: Add player-stand offset support
Diffstat (limited to 'saedit')
-rw-r--r-- | saedit/main.c | 16 | ||||
-rw-r--r-- | saedit/main.h | 2 |
2 files changed, 15 insertions, 3 deletions
diff --git a/saedit/main.c b/saedit/main.c index 688d0b7..55152ba 100644 --- a/saedit/main.c +++ b/saedit/main.c @@ -44,7 +44,7 @@ cairo_surface_t *get_grid_surface(int w, int h) { return surface; } -gboolean on_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { +gboolean darea_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { int width = widget->allocation.width, height = widget->allocation.height; @@ -58,7 +58,7 @@ gboolean on_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data GdkPixbuf *pbuf = get_sprite_by_index(current_sprite->index); if (pbuf == NULL) return FALSE; - gdk_cairo_set_source_pixbuf(cr, pbuf, width/2 - sprite_width/2 + current_sprite->offsetX + imageset->offsetX, height/2 - sprite_height/2 + current_sprite->offsetY + imageset->offsetY); + gdk_cairo_set_source_pixbuf(cr, pbuf, width/2 - sprite_width/2 + offsetX + current_sprite->offsetX + imageset->offsetX, height/2 - sprite_height/2 + offsetY + current_sprite->offsetY + imageset->offsetY); cairo_paint(cr); cairo_destroy(cr); @@ -399,6 +399,16 @@ void parse_xml_buffer(GtkWidget *button, GtkSourceBuffer *buffer) { show_wrong_source_buffer_dialog(); return; } + + offsetX = 0; + offsetY = 0; + gchar *name_attr = xml_node_get_attr_value(root, "name"); + gchar *action_attr = xml_node_get_attr_value(root, "action"); + if (name_attr != NULL && action_attr != NULL) + if (g_strcmp0(name_attr, "player") == 0 && + g_strcmp0(action_attr, "stand") == 0) + offsetY = -16; + if (!set_up_imagesets(root)) { show_wrong_source_buffer_dialog(); return; @@ -527,7 +537,7 @@ void set_up_interface() { darea = gtk_drawing_area_new(); gtk_paned_pack1(GTK_PANED(vbox), darea, FALSE, FALSE); gtk_widget_set_size_request(darea, -1, 120); - g_signal_connect(darea, "expose-event", G_CALLBACK(on_expose_event), NULL); + g_signal_connect(darea, "expose-event", G_CALLBACK(darea_expose_event), NULL); text = gtk_source_view_new_with_buffer(sbuf); gtk_source_view_set_show_line_numbers(GTK_SOURCE_VIEW(text), TRUE); diff --git a/saedit/main.h b/saedit/main.h index 5c37058..69f5348 100644 --- a/saedit/main.h +++ b/saedit/main.h @@ -53,6 +53,7 @@ static imageset_info *imageset_info_new() { int sprite_width = 64, sprite_height = 64; int spriteset_width, spriteset_height; +int offsetX = 0, offsetY = 0; GtkWidget *win = NULL; GtkWidget *darea = NULL; @@ -106,3 +107,4 @@ static void show_about_dialog(); static void show_imageset_window(); static gboolean frame_image_button_press_event(GtkWidget *widget, GdkEventButton *button, int index); static cairo_surface_t *get_grid_surface(int w, int h); +static gboolean darea_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); |