Index: work/remote/animator/gc.h =================================================================== --- work/remote/animator/gc.h (revision 5134) +++ work/remote/animator/gc.h (revision 5135) @@ -8,14 +8,32 @@ #define NUM_GC 32 gc_t gc[NUM_GC]; +gc_t gc_active; +static void set_color(const char *color) +{ + if (strcmp(color, "erase") == 0) + color = "#ffffff"; + if (strcmp(color, "hole") == 0) + color = "#000000"; + if (strcasecmp(gc_active.color, color) == 0) + return; + strcpy(gc_active.color, color); + P_net_printf(s_anim_out, "color %s\n", color); +} + + static gc_t *use_gc(int idx) { + gc_t *g; + if ((idx < 0) || (idx >= NUM_GC)) return NULL; if (!gc[idx].in_use) return NULL; - return gc+idx; + g = gc+idx; + set_color(g->color); + return g; } static void cmd_makeGC(proto_node_t *args) @@ -69,7 +87,7 @@ if ((cs == NULL) || (gs == NULL)) return; get_gc(idx, gs); - if ((strlen(cs) > 7) || (*cs != '#')) + if ((strlen(cs) > sizeof(gc[idx].color)-1)) return; strcpy(gc[idx].color, cs); }