diff options
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 1076 |
1 files changed, 393 insertions, 683 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 5feec224e9..d7842b260d 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -31,7 +31,7 @@ #undef DEBUG_LSRECT -/* Graph subfunctions */ +// Graph subfunctions #define K_GRAPH_GET_COLORS_NR 2 #define K_GRAPH_DRAW_LINE 4 #define K_GRAPH_SAVE_BOX 7 @@ -43,7 +43,7 @@ #define K_GRAPH_REDRAW_BOX 13 #define K_GRAPH_ADJUST_PRIORITY 14 -/* Control types and flags */ +// Control types and flags #define K_CONTROL_BUTTON 1 #define K_CONTROL_TEXT 2 #define K_CONTROL_EDIT 3 @@ -90,33 +90,29 @@ if (val == GFX_ERROR) \ SCIkwarn(SCIkWARNING, "GFX subsystem returned error on \"" #x "\"!\n"); \ else {\ - SCIkwarn(SCIkERROR, "GFX subsystem fatal error condition on \"" #x "\"!\n"); \ + SCIkwarn(SCIkERROR, "GFX subsystem fatal error condition on \"" #x "\"!\n"); \ vm_handle_fatal_error(s, __LINE__, __FILE__); \ - } \ - }\ + } \ + }\ } #define ASSERT(x) { \ - int val = !!(x); \ - if (!val) { \ - SCIkwarn(SCIkERROR, "Fatal error condition on \"" #x "\"!\n"); \ - BREAKPOINT(); \ - vm_handle_fatal_error(s, __LINE__, __FILE__); \ - } \ + int val = !!(x); \ + if (!val) { \ + SCIkwarn(SCIkERROR, "Fatal error condition on \"" #x "\"!\n"); \ + BREAKPOINT(); \ + vm_handle_fatal_error(s, __LINE__, __FILE__); \ + } \ } - -static inline int -sign_extend_byte(int value) { +static inline int sign_extend_byte(int value) { if (value & 0x80) return value - 256; else return value; } - -static void -assert_primary_widget_lists(state_t *s) { +static void assert_primary_widget_lists(state_t *s) { if (!s->dyn_views) { rect_t bounds = s->picture_port->bounds; @@ -134,8 +130,7 @@ assert_primary_widget_lists(state_t *s) { } } -static void -reparentize_primary_widget_lists(state_t *s, gfxw_port_t *newport) { +static void reparentize_primary_widget_lists(state_t *s, gfxw_port_t *newport) { if (!newport) newport = s->picture_port; @@ -146,28 +141,25 @@ reparentize_primary_widget_lists(state_t *s, gfxw_port_t *newport) { } } -int -_find_view_priority(state_t *s, int y) { - /* if (s->version <= SCI_VERSION_LTU_PRIORITY_OB1) - ++y; */ +int _find_view_priority(state_t *s, int y) { + /*if (s->version <= SCI_VERSION_LTU_PRIORITY_OB1) + ++y; */ - if (s->pic_priority_table) { /* SCI01 priority table set? */ + if (s->pic_priority_table) { // SCI01 priority table set? int j; for (j = 0; j < 15; j++) if (y < s->pic_priority_table[j+1]) return j; - return 14; /* Maximum */ + return 14; // Maximum } else { if (s->version >= SCI_VERSION_FTU_PRIORITY_14_ZONES) return SCI0_VIEW_PRIORITY_14_ZONES(y); else - return SCI0_VIEW_PRIORITY(y) == 15 ? 14 : - SCI0_VIEW_PRIORITY(y); + return SCI0_VIEW_PRIORITY(y) == 15 ? 14 : SCI0_VIEW_PRIORITY(y); } } -int -_find_priority_band(state_t *s, int nr) { +int _find_priority_band(state_t *s, int nr) { if (s->version >= SCI_VERSION_FTU_PRIORITY_14_ZONES && (nr < 0 || nr > 14)) { if (nr == 15) return 0xffff; @@ -182,7 +174,7 @@ _find_priority_band(state_t *s, int nr) { return 0; } - if (s->pic_priority_table) /* SCI01 priority table set? */ + if (s->pic_priority_table) // SCI01 priority table set? return s->pic_priority_table[nr]; else { int retval; @@ -192,14 +184,13 @@ _find_priority_band(state_t *s, int nr) { else retval = SCI0_PRIORITY_BAND_FIRST(nr); - /* if (s->version <= SCI_VERSION_LTU_PRIORITY_OB1) - --retval; */ +/* if (s->version <= SCI_VERSION_LTU_PRIORITY_OB1) + --retval; */ return retval; } } -reg_t -graph_save_box(state_t *s, rect_t area) { +reg_t graph_save_box(state_t *s, rect_t area) { reg_t handle = kalloc(s, "graph_save_box()", sizeof(gfxw_snapshot_t *)); gfxw_snapshot_t **ptr = (gfxw_snapshot_t **) kmem(s, handle); @@ -208,9 +199,7 @@ graph_save_box(state_t *s, rect_t area) { return handle; } - -void -graph_restore_box(state_t *s, reg_t handle) { +void graph_restore_box(state_t *s, reg_t handle) { gfxw_snapshot_t **ptr; int port_nr = s->port->ID; @@ -226,9 +215,8 @@ graph_restore_box(state_t *s, reg_t handle) { return; } - while (port_nr > 2 && !(s->port->flags & GFXW_FLAG_IMMUNE_TO_SNAPSHOTS) - && (gfxw_widget_matches_snapshot(*ptr, GFXW(s->port)))) { - /* This shouldn't ever happen, actually, since windows (ports w/ ID > 2) should all be immune */ + while (port_nr > 2 && !(s->port->flags & GFXW_FLAG_IMMUNE_TO_SNAPSHOTS) && (gfxw_widget_matches_snapshot(*ptr, GFXW(s->port)))) { + // This shouldn't ever happen, actually, since windows (ports w/ ID > 2) should all be immune gfxw_port_t *newport = gfxw_find_port(s->visual, port_nr); SCIkwarn(SCIkERROR, "Port %d is not immune against snapshots!\n", s->port->ID); port_nr--; @@ -274,8 +262,7 @@ graph_restore_box(state_t *s, reg_t handle) { static gfx_pixmap_color_t white = {GFX_COLOR_INDEX_UNMAPPED, 255, 255, 255}; -gfx_pixmap_color_t * -get_pic_color(state_t *s, int color) { +gfx_pixmap_color_t *get_pic_color(state_t *s, int color) { if (s->resmgr->sci_version < SCI_VERSION_01_VGA) return &(s->ega_colors[color].visual); @@ -284,15 +271,13 @@ get_pic_color(state_t *s, int color) { else if (color < KERNEL_COLORS_NR) return &(KERNEL_COLOR_PALETTE[color]); else { - SCIkwarn(SCIkERROR, "Color index %d out of bounds for pic %d (%d max)", - color, s->gfx_state->pic_nr, KERNEL_COLORS_NR); + SCIkwarn(SCIkERROR, "Color index %d out of bounds for pic %d (%d max)", color, s->gfx_state->pic_nr, KERNEL_COLORS_NR); BREAKPOINT(); - return NULL; /* Well, rather, not return. But gcc gets scared here. */ + return NULL; } } -static gfx_color_t -graph_map_color(state_t *s, int color, int priority, int control) { +static gfx_color_t graph_map_color(state_t *s, int color, int priority, int control) { gfx_color_t retval; if (s->resmgr->sci_version < SCI_VERSION_01_VGA) { @@ -304,20 +289,13 @@ graph_map_color(state_t *s, int color, int priority, int control) { retval.alpha = 0; retval.priority = priority; retval.control = control; - retval.mask = - GFX_MASK_VISUAL | - ((priority >= 0) ? GFX_MASK_PRIORITY : 0) | - ((control >= 0) ? GFX_MASK_CONTROL : 0); + retval.mask = GFX_MASK_VISUAL | ((priority >= 0) ? GFX_MASK_PRIORITY : 0) | ((control >= 0) ? GFX_MASK_CONTROL : 0); }; return retval; } -/* --- */ - - -reg_t -kSetCursor_SCI11(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kSetCursor_SCI11(state_t *s, int funct_nr, int argc, reg_t *argv) { switch (argc) { case 1 : if (UKPV(0) == 0) { @@ -360,8 +338,7 @@ kSetCursor_SCI11(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } -reg_t -kSetCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kSetCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { if (s->version >= SCI_VERSION(1, 001, 000) || has_kernel_function(s, "MoveCursor")) { return kSetCursor_SCI11(s, funct_nr, argc, argv); @@ -372,32 +349,28 @@ kSetCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { } else s->mouse_pointer_view = GFXOP_NO_POINTER; - s->mouse_pointer_loop = s->mouse_pointer_cel = 0; /* Not used with cursor-format pointers */ + s->mouse_pointer_loop = s->mouse_pointer_cel = 0; // Not used with cursor-format pointers GFX_ASSERT(gfxop_set_pointer_cursor(s->gfx_state, s->mouse_pointer_view)); if (argc > 2) { - Common::Point newpos = Common::Point(SKPV(2) + s->port->bounds.x, - SKPV(3) + s->port->bounds.y); - + Common::Point newpos = Common::Point(SKPV(2) + s->port->bounds.x, SKPV(3) + s->port->bounds.y); GFX_ASSERT(gfxop_set_pointer_position(s->gfx_state, newpos)); } return s->r_acc; - } extern int oldx, oldy; -reg_t -kMoveCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kMoveCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { Common::Point newpos; static Common::Point oldpos(0, 0); newpos = s->gfx_state->pointer_pos; if (argc == 1) { - /* Case ignored on IBM PC */ + // Case ignored on IBM PC } else { newpos.x = SKPV(0) + s->port->zone.x; newpos.y = SKPV(1) + s->port->zone.y; @@ -418,14 +391,12 @@ kMoveCursor(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } -static inline void -_ascertain_port_contents(gfxw_port_t *port) { +static inline void _ascertain_port_contents(gfxw_port_t *port) { if (!port->contents) port->contents = (gfxw_widget_t *) gfxw_new_list(port->bounds, 0); } -reg_t -kShow(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kShow(state_t *s, int funct_nr, int argc, reg_t *argv) { int old_map = s->pic_visible_map; s->pic_visible_map = (gfx_map_mask_t) UKPV_OR_ALT(0, 1); @@ -438,7 +409,7 @@ kShow(state_t *s, int funct_nr, int argc, reg_t *argv) { gfxop_set_visible_map(s->gfx_state, s->pic_visible_map); if (old_map != s->pic_visible_map) { - if (s->pic_visible_map == GFX_MASK_VISUAL) /* Full widget redraw */ + if (s->pic_visible_map == GFX_MASK_VISUAL) // Full widget redraw s->visual->draw(GFXW(s->visual), Common::Point(0, 0)); gfxop_update(s->gfx_state); @@ -455,9 +426,7 @@ kShow(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } - -reg_t -kPicNotValid(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kPicNotValid(state_t *s, int funct_nr, int argc, reg_t *argv) { s->r_acc = make_reg(0, s->pic_not_valid); if (argc) s->pic_not_valid = (byte)UKPV(0); @@ -465,8 +434,7 @@ kPicNotValid(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } -void -_k_redraw_box(state_t *s, int x1, int y1, int x2, int y2) { +void _k_redraw_box(state_t *s, int x1, int y1, int x2, int y2) { sciprintf("_k_redraw_box(): Unimplemented!\n"); #if 0 int i; @@ -476,15 +444,9 @@ _k_redraw_box(state_t *s, int x1, int y1, int x2, int y2) { for (i = 0;i < s->dyn_views_nr;i++) { - *(list[i].underBitsp) = graph_save_box(s, - list[i].nsLeft, - list[i].nsTop, - list[i].nsRight - list[i].nsLeft, - list[i].nsBottom - list[i].nsTop, - SCI_MAP_VISUAL | SCI_MAP_PRIORITY); - draw_view0(s->pic, s->ports[0], - list[i].nsLeft, list[i].nsTop, - list[i].priority, list[i].loop, + *(list[i].underBitsp) = graph_save_box(s, list[i].nsLeft, list[i].nsTop, list[i].nsRight - list[i].nsLeft, + list[i].nsBottom - list[i].nsTop, SCI_MAP_VISUAL | SCI_MAP_PRIORITY); + draw_view0(s->pic, s->ports[0], list[i].nsLeft, list[i].nsTop, list[i].priority, list[i].loop, list[i].cel, 0, list[i].view); } @@ -497,8 +459,7 @@ _k_redraw_box(state_t *s, int x1, int y1, int x2, int y2) { #endif } -void -_k_graph_rebuild_port_with_color(state_t *s, gfx_color_t newbgcolor) { +void _k_graph_rebuild_port_with_color(state_t *s, gfx_color_t newbgcolor) { gfxw_port_t *port = s->port; gfxw_port_t *newport; @@ -524,15 +485,14 @@ static int activated_icon_bar; static int port_origin_x; static int port_origin_y; -reg_t -kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { rect_t area; gfxw_port_t *port = s->port; int redraw_port = 0; area = gfx_rect(SKPV(2), SKPV(1) , SKPV(4), SKPV(3)); - area.xl = area.xl - area.x; /* Since the actual coordinates are absolute */ + area.xl = area.xl - area.x; // Since the actual coordinates are absolute area.yl = area.yl - area.y; switch (SKPV(0)) { @@ -547,12 +507,10 @@ kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { gfx_color_t gfxcolor = graph_map_color(s, SKPV(5) & 0xf, SKPV_OR_ALT(6, -1), SKPV_OR_ALT(7, -1)); SCIkdebug(SCIkGRAPHICS, "draw_line((%d, %d), (%d, %d), col=%d, p=%d, c=%d, mask=%d)\n", - SKPV(2), SKPV(1), SKPV(4), SKPV(3), SKPV(5), SKPV_OR_ALT(6, -1), SKPV_OR_ALT(7, -1), - gfxcolor.mask); + SKPV(2), SKPV(1), SKPV(4), SKPV(3), SKPV(5), SKPV_OR_ALT(6, -1), SKPV_OR_ALT(7, -1), gfxcolor.mask); redraw_port = 1; - ADD_TO_CURRENT_BG_WIDGETS(GFXW(gfxw_new_line(Common::Point(SKPV(2), SKPV(1)), - Common::Point(SKPV(4), SKPV(3)), + ADD_TO_CURRENT_BG_WIDGETS(GFXW(gfxw_new_line(Common::Point(SKPV(2), SKPV(1)), Common::Point(SKPV(4), SKPV(3)), gfxcolor, GFX_LINE_MODE_CORRECT, GFX_LINE_STYLE_NORMAL))); } @@ -596,8 +554,7 @@ kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { color.mask = (byte)UKPV(5); SCIkdebug(SCIkGRAPHICS, "fill_box_any((%d, %d), (%d, %d), col=%d, p=%d, c=%d, mask=%d)\n", - SKPV(2), SKPV(1), SKPV(4), SKPV(3), SKPV(6), SKPV_OR_ALT(7, -1), SKPV_OR_ALT(8, -1), - UKPV(5)); + SKPV(2), SKPV(1), SKPV(4), SKPV(3), SKPV(6), SKPV_OR_ALT(7, -1), SKPV_OR_ALT(8, -1), UKPV(5)); ADD_TO_CURRENT_BG_WIDGETS(gfxw_new_box(s->gfx_state, area, color, color, GFX_BOX_SHADE_FLAT)); @@ -606,8 +563,7 @@ kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_GRAPH_UPDATE_BOX: { - SCIkdebug(SCIkGRAPHICS, "update_box(%d, %d, %d, %d)\n", - SKPV(1), SKPV(2), SKPV(3), SKPV(4)); + SCIkdebug(SCIkGRAPHICS, "update_box(%d, %d, %d, %d)\n", SKPV(1), SKPV(2), SKPV(3), SKPV(4)); area.x += s->port->zone.x; area.y += s->port->zone.y; @@ -620,8 +576,7 @@ kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_GRAPH_REDRAW_BOX: { - SCIkdebug(SCIkGRAPHICS, "redraw_box(%d, %d, %d, %d)\n", - SKPV(1), SKPV(2), SKPV(3), SKPV(4)); + SCIkdebug(SCIkGRAPHICS, "redraw_box(%d, %d, %d, %d)\n", SKPV(1), SKPV(2), SKPV(3), SKPV(4)); area.x += s->port->zone.x; area.y += s->port->zone.y; @@ -652,12 +607,11 @@ kGraph(state_t *s, int funct_nr, int argc, reg_t *argv) { FULL_REDRAW(); gfxop_update(s->gfx_state); + return s->r_acc; } - -reg_t -kTextSize(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kTextSize(state_t *s, int funct_nr, int argc, reg_t *argv) { int width, height; char *text = argv[1].segment ? (char *) kernel_dereference_bulk_pointer(s, argv[1], 0) : NULL; reg_t *dest = kernel_dereference_reg_pointer(s, argv[0], 4); @@ -669,17 +623,14 @@ kTextSize(state_t *s, int funct_nr, int argc, reg_t *argv) { dest[0] = dest[1] = NULL_REG; - if (!text || !*text || !dest) { /* Empty text */ + if (!text || !*text || !dest) { // Empty text dest[2] = dest[3] = make_reg(0, 0); - SCIkdebug(SCIkSTRINGS, "GetTextSize: Empty string\n"); return s->r_acc; } - GFX_ASSERT(gfxop_get_text_params(s->gfx_state, font_nr, text, - maxwidth ? maxwidth : MAX_TEXT_WIDTH_MAGIC_VALUE, - &width, &height, 0, - NULL, NULL, NULL)); + GFX_ASSERT(gfxop_get_text_params(s->gfx_state, font_nr, text, maxwidth ? maxwidth : MAX_TEXT_WIDTH_MAGIC_VALUE, + &width, &height, 0, NULL, NULL, NULL)); SCIkdebug(SCIkSTRINGS, "GetTextSize '%s' -> %dx%d\n", text, width, height); dest[2] = make_reg(0, height); @@ -689,24 +640,20 @@ kTextSize(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } - int debug_sleeptime_factor = 1; -reg_t -kWait(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kWait(state_t *s, int funct_nr, int argc, reg_t *argv) { GTimeVal time; int sleep_time = UKPV(0); sci_get_current_time(&time); - s->r_acc = make_reg(0, ((time.tv_usec - s->last_wait_time.tv_usec) * 60 / 1000000) + - (time.tv_sec - s->last_wait_time.tv_sec) * 60); + s->r_acc = make_reg(0, ((time.tv_usec - s->last_wait_time.tv_usec) * 60 / 1000000) + (time.tv_sec - s->last_wait_time.tv_sec) * 60); memcpy(&(s->last_wait_time), &time, sizeof(GTimeVal)); - /* Reset optimization flags: Game is playing along nicely anyway */ - s->kernel_opt_flags &= ~(KERNEL_OPT_FLAG_GOT_EVENT - | KERNEL_OPT_FLAG_GOT_2NDEVENT); + // Reset optimization flags: Game is playing along nicely anyway + s->kernel_opt_flags &= ~(KERNEL_OPT_FLAG_GOT_EVENT | KERNEL_OPT_FLAG_GOT_2NDEVENT); sleep_time *= debug_sleeptime_factor; GFX_ASSERT(gfxop_usleep(s->gfx_state, sleep_time * 1000000 / 60)); @@ -714,27 +661,19 @@ kWait(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } - -reg_t -kCoordPri(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kCoordPri(state_t *s, int funct_nr, int argc, reg_t *argv) { int y = SKPV(0); return make_reg(0, VIEW_PRIORITY(y)); } - -reg_t -kPriCoord(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kPriCoord(state_t *s, int funct_nr, int argc, reg_t *argv) { int priority = SKPV(0); return make_reg(0, PRIORITY_BAND_FIRST(priority)); } - - -void -_k_dirloop(reg_t obj, word angle, state_t *s, int funct_nr, - int argc, reg_t *argv) { +void _k_dirloop(reg_t obj, word angle, state_t *s, int funct_nr, int argc, reg_t *argv) { int view = GET_SEL32V(obj, view); int signal = GET_SEL32V(obj, signal); int loop; @@ -779,9 +718,7 @@ _k_dirloop(reg_t obj, word angle, state_t *s, int funct_nr, PUT_SEL32V(obj, loop, loop); } - -reg_t -kDirLoop(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDirLoop(state_t *s, int funct_nr, int argc, reg_t *argv) { _k_dirloop(argv[0], UKPV(1), s, funct_nr, argc, argv); return s->r_acc; @@ -790,18 +727,13 @@ kDirLoop(state_t *s, int funct_nr, int argc, reg_t *argv) { #define GASEOUS_VIEW_MASK_ACTIVE (_K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_IGNORE_ACTOR) #define GASEOUS_VIEW_MASK_PASSIVE (_K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_IGNORE_ACTOR) -abs_rect_t -set_base(struct _state *s, reg_t object); +abs_rect_t set_base(struct _state *s, reg_t object); -inline abs_rect_t -get_nsrect(struct _state *s, reg_t object, byte clip); +inline abs_rect_t get_nsrect(struct _state *s, reg_t object, byte clip); -static inline abs_rect_t -nsrect_clip(state_t *s, int y, abs_rect_t retval, int priority); +static inline abs_rect_t nsrect_clip(state_t *s, int y, abs_rect_t retval, int priority); -static int -collides_with(state_t *s, abs_rect_t area, reg_t other_obj, int use_nsrect, int view_mask, int funct_nr, int argc, - reg_t *argv) { +static int collides_with(state_t *s, abs_rect_t area, reg_t other_obj, int use_nsrect, int view_mask, int funct_nr, int argc, reg_t *argv) { int other_signal = GET_SEL32V(other_obj, signal); int other_priority = GET_SEL32V(other_obj, priority); int y = GET_SEL32SV(other_obj, y); @@ -818,40 +750,30 @@ collides_with(state_t *s, abs_rect_t area, reg_t other_obj, int use_nsrect, int } if (other_area.xend < 0 || other_area.yend < 0 || area.xend < 0 || area.yend < 0) - return 0; /* Out of scope */ + return 0; // Out of scope if (other_area.x >= 320 || other_area.y >= 190 || area.xend >= 320 || area.yend >= 190) - return 0; /* Out of scope */ + return 0; // Out of scope - SCIkdebug(SCIkBRESEN, "OtherSignal=%04x, z=%04x obj="PREG"\n", other_signal, - (other_signal & view_mask), PRINT_REG(other_obj)); + SCIkdebug(SCIkBRESEN, "OtherSignal=%04x, z=%04x obj="PREG"\n", other_signal, (other_signal & view_mask), PRINT_REG(other_obj)); if ((other_signal & (view_mask)) == 0) { - /* check whether the other object ignores actors */ + // check whether the other object ignores actors - SCIkdebug(SCIkBRESEN, " against (%d,%d) to (%d,%d)\n", - other_area.x, other_area.y, other_area.xend, other_area.yend); + SCIkdebug(SCIkBRESEN, " against (%d,%d) to (%d,%d)\n", other_area.x, other_area.y, other_area.xend, other_area.yend); - - if (((other_area.xend > area.x) - && (other_area.x < area.xend)) /* [other_x, other_xend] intersects [x, xend])? */ - && - ((other_area.yend > area.y) - && (other_area.y < area.yend))) /* [other_y, other_yend] intersects [y, yend]? */ + if (((other_area.xend > area.x) && (other_area.x < area.xend)) // [other_x, other_xend] intersects [x, xend])? + && ((other_area.yend > area.y) && (other_area.y < area.yend))) // [other_y, other_yend] intersects [y, yend]? return 1; /* CR (from :Bob Heitman:) Collision rects have Mac semantics, ((0,0),(1,1)) only - ** covers the coordinate (0,0) */ - - + ** covers the coordinate (0,0) */ } SCIkdebug(SCIkBRESEN, " (no)\n"); return 0; } - -reg_t -kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { +reg_t kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { reg_t obj = argv[0]; reg_t cliplist_ref = KP_ALT(1, NULL_REG); list_t *cliplist = NULL; @@ -864,47 +786,41 @@ kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { word edgehit; word illegal_bits; - abs_zone.x = GET_SEL32SV(obj, brLeft); abs_zone.xend = GET_SEL32SV(obj, brRight); abs_zone.y = GET_SEL32SV(obj, brTop); abs_zone.yend = GET_SEL32SV(obj, brBottom); - zone = gfx_rect(abs_zone.x + port->zone.x, abs_zone.y + port->zone.y, - abs_zone.xend - abs_zone.x, abs_zone.yend - abs_zone.y); + zone = gfx_rect(abs_zone.x + port->zone.x, abs_zone.y + port->zone.y, abs_zone.xend - abs_zone.x, abs_zone.yend - abs_zone.y); signal = GET_SEL32V(obj, signal); SCIkdebug(SCIkBRESEN, "Checking collision: (%d,%d) to (%d,%d) ([%d..%d]x[%d..%d]), obj="PREG", sig=%04x, cliplist="PREG"\n", - GFX_PRINT_RECT(zone), - abs_zone.x, abs_zone.xend, abs_zone.y, abs_zone.yend, + GFX_PRINT_RECT(zone), abs_zone.x, abs_zone.xend, abs_zone.y, abs_zone.yend, PRINT_REG(obj), signal, PRINT_REG(cliplist_ref)); illegal_bits = GET_SEL32V(obj, illegalBits); - retval = !(illegal_bits - & (edgehit = gfxop_scan_bitmask(s->gfx_state, zone, GFX_MASK_CONTROL))); + retval = !(illegal_bits & (edgehit = gfxop_scan_bitmask(s->gfx_state, zone, GFX_MASK_CONTROL))); SCIkdebug(SCIkBRESEN, "edgehit = %04x (illegalBits %04x)\n", edgehit, illegal_bits); if (retval == 0) { SCIkdebug(SCIkBRESEN, " -> %04x\n", retval); - return not_register(s, NULL_REG); /* Can'tBeHere */ + return not_register(s, NULL_REG); // Can't BeHere } retval = 0; - if ((illegal_bits & 0x8000) /* If we are vulnerable to those views at all... */ - && s->dyn_views) { /* ...check against all stop-updated dynviews */ + if ((illegal_bits & 0x8000) // If we are vulnerable to those views at all... + && s->dyn_views) { // ...check against all stop-updated dynviews gfxw_dyn_view_t *widget = (gfxw_dyn_view_t *) s->dyn_views->contents; SCIkdebug(SCIkBRESEN, "Checking vs dynviews:\n"); while (widget) { - if (widget->ID - && (widget->signal & _K_VIEW_SIG_FLAG_FREESCI_STOPUPD) + if (widget->ID && (widget->signal & _K_VIEW_SIG_FLAG_FREESCI_STOPUPD) && ((widget->ID != obj.segment) || (widget->subID != obj.offset)) && is_object(s, make_reg(widget->ID, widget->subID))) - if (collides_with(s, abs_zone, make_reg(widget->ID, widget->subID), 1, - GASEOUS_VIEW_MASK_ACTIVE, funct_nr, argc, argv)) + if (collides_with(s, abs_zone, make_reg(widget->ID, widget->subID), 1, GASEOUS_VIEW_MASK_ACTIVE, funct_nr, argc, argv)) return not_register(s, NULL_REG); widget = (gfxw_dyn_view_t *) widget->next; @@ -912,9 +828,9 @@ kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { } if (signal & GASEOUS_VIEW_MASK_ACTIVE) { - retval = signal & GASEOUS_VIEW_MASK_ACTIVE; /* CanBeHere- it's either being disposed, or it ignores actors anyway */ + retval = signal & GASEOUS_VIEW_MASK_ACTIVE; // CanBeHere- it's either being disposed, or it ignores actors anyway SCIkdebug(SCIkBRESEN, " -> %04x\n", retval); - return not_register(s, make_reg(0, retval)); /* CanBeHere */ + return not_register(s, make_reg(0, retval)); // CanBeHere } if (cliplist_ref.segment) @@ -923,23 +839,23 @@ kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { if (cliplist) { node_t *node = LOOKUP_NODE(cliplist->first); - retval = 0; /* Assume that we Can'tBeHere... */ + retval = 0; // Assume that we Can'tBeHere... - while (node) { /* Check each object in the list against our bounding rectangle */ + while (node) { // Check each object in the list against our bounding rectangle reg_t other_obj = node->value; SCIkdebug(SCIkBRESEN, " comparing against "PREG"\n", PRINT_REG(other_obj)); if (!is_object(s, other_obj)) { SCIkdebug(SCIkWARNING, "CanBeHere() cliplist contains non-object %04x\n", other_obj); - } else if (!REG_EQ(other_obj, obj)) { /* Clipping against yourself is not recommended */ + } else if (!REG_EQ(other_obj, obj)) { // Clipping against yourself is not recommended if (collides_with(s, abs_zone, other_obj, 0, GASEOUS_VIEW_MASK_PASSIVE, funct_nr, argc, argv)) { SCIkdebug(SCIkBRESEN, " -> %04x\n", retval); return not_register(s, NULL_REG); } - } /* if (other_obj != obj) */ - node = LOOKUP_NODE(node->succ); /* move on */ + } // if (other_obj != obj) + node = LOOKUP_NODE(node->succ); // move on } } @@ -948,10 +864,9 @@ kCanBeHere(state_t *s, int funct_nr, int argc, reg_t * argv) { SCIkdebug(SCIkBRESEN, " -> %04x\n", retval); return not_register(s, make_reg(0, retval)); -} /* CanBeHere */ +} // CanBeHere -reg_t -kIsItSkip(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kIsItSkip(state_t *s, int funct_nr, int argc, reg_t *argv) { int view = SKPV(0); int loop = SKPV(1); int cel = SKPV(2); @@ -966,16 +881,15 @@ kIsItSkip(state_t *s, int funct_nr, int argc, reg_t *argv) { } pxm = res->loops[loop].cels[cel]; - if (x > pxm->index_xl) x = pxm->index_xl - 1; - if (y > pxm->index_yl) y = pxm->index_yl - 1; + if (x > pxm->index_xl) + x = pxm->index_xl - 1; + if (y > pxm->index_yl) + y = pxm->index_yl - 1; - return make_reg(0, - pxm->index_data[y*pxm->index_xl+x] == - pxm->color_key); + return make_reg(0, pxm->index_data[y * pxm->index_xl + x] == pxm->color_key); } -reg_t -kCelHigh(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kCelHigh(state_t *s, int funct_nr, int argc, reg_t *argv) { int view = SKPV(0); int loop = SKPV(1); int cel = SKPV(2); @@ -993,8 +907,7 @@ kCelHigh(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, height); } -reg_t -kCelWide(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kCelWide(state_t *s, int funct_nr, int argc, reg_t *argv) { int view = SKPV(0); int loop = SKPV(1); int cel = SKPV(2); @@ -1012,13 +925,11 @@ kCelWide(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, width); } -reg_t -kNumLoops(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kNumLoops(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t obj = argv[0]; int view = GET_SEL32V(obj, view); int loops_nr = gfxop_lookup_view_get_loops(s->gfx_state, view); - if (loops_nr < 0) { SCIkwarn(SCIkERROR, "view.%d (0x%x) not found\n", view, view); return NULL_REG; @@ -1029,17 +940,16 @@ kNumLoops(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, loops_nr); } - -reg_t -kNumCels(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kNumCels(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t obj = argv[0]; int loop = GET_SEL32V(obj, loop); int view = GET_SEL32V(obj, view); int cel = 0xffff; - if (gfxop_check_cel(s->gfx_state, view, &loop, &cel)) { /* OK, this is a hack and there's a - ** real function to calculate cel numbers... */ + if (gfxop_check_cel(s->gfx_state, view, &loop, &cel)) { + // OK, this is a hack and there's a + // real function to calculate cel numbers... SCIkwarn(SCIkERROR, "view.%d (0x%x) not found\n", view, view); return NULL_REG; } @@ -1049,14 +959,12 @@ kNumCels(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, cel + 1); } -reg_t -kOnControl(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kOnControl(state_t *s, int funct_nr, int argc, reg_t *argv) { int arg = 0; gfx_map_mask_t map; int xstart, ystart; int xlen = 1, ylen = 1; - if (argc == 2 || argc == 4) map = GFX_MASK_CONTROL; else { @@ -1075,13 +983,11 @@ kOnControl(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, gfxop_scan_bitmask(s->gfx_state, gfx_rect(xstart, ystart + 10, xlen, ylen), map)); } -void -_k_view_list_free_backgrounds(state_t *s, view_object_t *list, int list_nr); +void _k_view_list_free_backgrounds(state_t *s, view_object_t *list, int list_nr); int sci01_priority_table_flags = 0; -reg_t -kDrawPic(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDrawPic(state_t *s, int funct_nr, int argc, reg_t *argv) { int pic_nr = SKPV(0); int add_to_pic = 1; int palette = SKPV_OR_ALT(3, 0); @@ -1092,9 +998,10 @@ kDrawPic(state_t *s, int funct_nr, int argc, reg_t *argv) { if (s->version < SCI_VERSION_FTU_NEWER_DRAWPIC_PARAMETERS) { if (!SKPV_OR_ALT(2, 0)) add_to_pic = 0; - } else + } else { if (SKPV_OR_ALT(2, 1)) add_to_pic = 0; + } gfxop_disable_dirty_frames(s->gfx_state); @@ -1157,7 +1064,7 @@ kDrawPic(state_t *s, int funct_nr, int argc, reg_t *argv) { s->pic_priority_table = NULL; if (argc > 1) - s->pic_animate = SKPV(1); /* The animation used during kAnimate() later on */ + s->pic_animate = SKPV(1); // The animation used during kAnimate() later on s->dyn_views = NULL; s->drop_views = NULL; @@ -1176,11 +1083,7 @@ kDrawPic(state_t *s, int funct_nr, int argc, reg_t *argv) { } - - - -abs_rect_t -set_base(state_t *s, reg_t object) { +abs_rect_t set_base(state_t *s, reg_t object) { int x, y, original_y, z, ystep, xsize, ysize; int xbase, ybase, xend, yend; int view, loop, cel; @@ -1196,7 +1099,7 @@ set_base(state_t *s, reg_t object) { else z = 0; - y -= z; /* Subtract z offset */ + y -= z; // Subtract z offset ystep = GET_SEL32SV(object, yStep); @@ -1220,14 +1123,12 @@ set_base(state_t *s, reg_t object) { PUT_SEL32V(object, cel, 0); } - gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, - &xsize, &ysize, &offset); + gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, &xsize, &ysize, &offset); xmod = offset.x; ymod = offset.y; } - xbase = x - xmod - (xsize >> 1); xend = xbase + xsize; yend = y /* - ymod */ + 1; @@ -1244,17 +1145,14 @@ set_base(state_t *s, reg_t object) { return retval; } - -void -_k_base_setter(state_t *s, reg_t object) { +void _k_base_setter(state_t *s, reg_t object) { abs_rect_t absrect = set_base(s, object); - if (lookup_selector(s, object, s->selector_map.brLeft, NULL, NULL) - != SELECTOR_VARIABLE) - return; /* non-fatal */ + if (lookup_selector(s, object, s->selector_map.brLeft, NULL, NULL) != SELECTOR_VARIABLE) + return; // non-fatal if (s->version <= SCI_VERSION_LTU_BASE_OB1) - --absrect.y; /* Compensate for early SCI OB1 'bug' */ + --absrect.y; // Compensate for early SCI OB1 'bug' PUT_SEL32V(object, brLeft, absrect.x); PUT_SEL32V(object, brRight, absrect.xend); @@ -1262,26 +1160,22 @@ _k_base_setter(state_t *s, reg_t object) { PUT_SEL32V(object, brBottom, absrect.yend); } -reg_t -kBaseSetter(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kBaseSetter(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t object = argv[0]; - _k_base_setter(s, object); return s->r_acc; -} /* kBaseSetter */ +} // kBaseSetter - -static inline abs_rect_t -nsrect_clip(state_t *s, int y, abs_rect_t retval, int priority) { +static inline abs_rect_t nsrect_clip(state_t *s, int y, abs_rect_t retval, int priority) { int pri_top; if (priority == -1) priority = VIEW_PRIORITY(y); pri_top = PRIORITY_BAND_FIRST(priority) + 1; - /* +1: Don't know why, but this seems to be happening */ + // +1: Don't know why, but this seems to be happening if (retval.y < pri_top) retval.y = pri_top; @@ -1292,8 +1186,7 @@ nsrect_clip(state_t *s, int y, abs_rect_t retval, int priority) { return retval; } -inline abs_rect_t -calculate_nsrect(state_t *s, int x, int y, int view, int loop, int cel) { +inline abs_rect_t calculate_nsrect(state_t *s, int x, int y, int view, int loop, int cel) { int xbase, ybase, xend, yend, xsize, ysize; int xmod = 0, ymod = 0; abs_rect_t retval = {0, 0, 0, 0}; @@ -1303,8 +1196,7 @@ calculate_nsrect(state_t *s, int x, int y, int view, int loop, int cel) { } else { Common::Point offset = Common::Point(0, 0); - gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, - &xsize, &ysize, &offset); + gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, &xsize, &ysize, &offset); xmod = offset.x; ymod = offset.y; @@ -1312,7 +1204,7 @@ calculate_nsrect(state_t *s, int x, int y, int view, int loop, int cel) { xbase = x - xmod - (xsize >> 1); xend = xbase + xsize; - yend = y - ymod + 1; /* +1: magic modifier */ + yend = y - ymod + 1; // +1: magic modifier ybase = yend - ysize; retval.x = xbase; @@ -1323,8 +1215,7 @@ calculate_nsrect(state_t *s, int x, int y, int view, int loop, int cel) { return retval; } -inline abs_rect_t -get_nsrect(state_t *s, reg_t object, byte clip) { +inline abs_rect_t get_nsrect(state_t *s, reg_t object, byte clip) { int x, y, z; int view, loop, cel; abs_rect_t retval; @@ -1337,7 +1228,7 @@ get_nsrect(state_t *s, reg_t object, byte clip) { else z = 0; - y -= z; /* Subtract z offset */ + y -= z; // Subtract z offset view = GET_SEL32SV(object, view); loop = sign_extend_byte(GET_SEL32SV(object, loop)); @@ -1353,12 +1244,12 @@ get_nsrect(state_t *s, reg_t object, byte clip) { return retval; } -static void -_k_set_now_seen(state_t *s, reg_t object) { +static void _k_set_now_seen(state_t *s, reg_t object) { abs_rect_t absrect = get_nsrect(s, object, 0); - if (lookup_selector(s, object, s->selector_map.nsTop, NULL, NULL) - != SELECTOR_VARIABLE) { return; } /* This isn't fatal */ + if (lookup_selector(s, object, s->selector_map.nsTop, NULL, NULL) != SELECTOR_VARIABLE) { + return; + } // This isn't fatal PUT_SEL32V(object, nsLeft, absrect.x); PUT_SEL32V(object, nsRight, absrect.xend); @@ -1366,18 +1257,15 @@ _k_set_now_seen(state_t *s, reg_t object) { PUT_SEL32V(object, nsBottom, absrect.yend); } - -reg_t -kSetNowSeen(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kSetNowSeen(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t object = argv[0]; _k_set_now_seen(s, object); return s->r_acc; -} /* kSetNowSeen */ +} // kSetNowSeen -reg_t -kPalette(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kPalette(state_t *s, int funct_nr, int argc, reg_t *argv) { switch (UKPV(0)) { case 5 : { int r = UKPV(1); @@ -1399,8 +1287,8 @@ kPalette(state_t *s, int funct_nr, int argc, reg_t *argv) { } } - /* Don't warn about inexact mappings -- it's actually the - ** rule rather than the exception */ + // Don't warn about inexact mappings -- it's actually the + // rule rather than the exception return make_reg(0, bestindex); } @@ -1410,29 +1298,25 @@ kPalette(state_t *s, int funct_nr, int argc, reg_t *argv) { default : SCIkdebug(SCIkWARNING, "Unimplemented subfunction: %d\n", UKPV(0)); } + return s->r_acc; } -static void -_k_draw_control(state_t *s, reg_t obj, int inverse); - +static void _k_draw_control(state_t *s, reg_t obj, int inverse); -static void -_k_disable_delete_for_now(state_t *s, reg_t obj) { +static void _k_disable_delete_for_now(state_t *s, reg_t obj) { reg_t text_pos = GET_SEL32(obj, text); char *text = IS_NULL_REG(text_pos) ? NULL : (char *) sm_dereference(&s->seg_manager, text_pos, NULL); int type = GET_SEL32V(obj, type); int state = GET_SEL32V(obj, state); - if (type == K_CONTROL_BUTTON && text && - !strcmp(s->game_name, "sq4") && - s->version < SCI_VERSION(1, 001, 000) && - !strcmp(text, " Delete ")) + if (type == K_CONTROL_BUTTON && text && !strcmp(s->game_name, "sq4") && + s->version < SCI_VERSION(1, 001, 000) && !strcmp(text, " Delete ")) { PUT_SEL32V(obj, state, (state | CONTROL_STATE_GRAY) & ~CONTROL_STATE_ENABLED); + } } -reg_t -kDrawControl(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDrawControl(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t obj = argv[0]; _k_disable_delete_for_now(s, obj); @@ -1441,56 +1325,46 @@ kDrawControl(state_t *s, int funct_nr, int argc, reg_t *argv) { return NULL_REG; } - -reg_t -kHiliteControl(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kHiliteControl(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t obj = argv[0]; - _k_draw_control(s, obj, 1); + return s->r_acc; } - -void -update_cursor_limits(int *display_offset, int *cursor, int max_displayed) { +void update_cursor_limits(int *display_offset, int *cursor, int max_displayed) { if (*cursor < *display_offset + 4) { if (*cursor < 8) *display_offset = 0; else *display_offset = *cursor - 8; - } else if (*cursor - *display_offset > max_displayed - 8) *display_offset = 12 + *cursor - max_displayed; - } #define _K_EDIT_DELETE \ - if (cursor < textlen) { \ - memmove(text + cursor, text + cursor + 1, textlen - cursor +1); \ -} + if (cursor < textlen) { \ + memmove(text + cursor, text + cursor + 1, textlen - cursor +1); \ + } #define _K_EDIT_BACKSPACE \ - if (cursor) { \ - --cursor; \ - memmove(text + cursor, text + cursor + 1, textlen - cursor +1); \ - --textlen; \ -} - - + if (cursor) { \ + --cursor; \ + memmove(text + cursor, text + cursor + 1, textlen - cursor +1); \ + --textlen; \ + } -reg_t -kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { reg_t obj = argv[0]; reg_t event = argv[1]; - if (obj.segment) { word ct_type = GET_SEL32V(obj, type); switch (ct_type) { case 0: - break; /* NOP */ + break; // NOP case K_CONTROL_EDIT: if (event.segment && ((GET_SEL32V(event, type)) == SCI_EVT_KEYBOARD)) { @@ -1506,8 +1380,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { int textlen; if (!text) { - SCIkdebug(SCIkWARNING, "Could not draw control: "PREG" does not reference text!\n", - PRINT_REG(text_pos)); + SCIkdebug(SCIkWARNING, "Could not draw control: "PREG" does not reference text!\n", PRINT_REG(text_pos)); return s->r_acc; } @@ -1539,7 +1412,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { break; case 'k': text[cursor] = 0; - break; /* Terminate string */ + break; // Terminate string case 'h': _K_EDIT_BACKSPACE; break; @@ -1549,8 +1422,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { } PUT_SEL32V(event, claimed, 1); - } else if (modifiers & SCI_EVM_ALT) { /* Ctrl has precedence over Alt */ - + } else if (modifiers & SCI_EVM_ALT) { // Ctrl has precedence over Alt switch (key) { case 0x2100 /* A-f */: while ((cursor < textlen) && (text[cursor++] != ' ')); @@ -1559,12 +1431,10 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { while ((cursor > 0) && (text[--cursor - 1] != ' ')); break; case 0x2000 /* A-d */: { - while ((cursor < textlen) && (text[cursor] == ' ')) { _K_EDIT_DELETE; textlen--; } - while ((cursor < textlen) && (text[cursor] != ' ')) { _K_EDIT_DELETE; textlen--; @@ -1573,11 +1443,8 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { } } PUT_SEL32V(event, claimed, 1); - } else if (key < 31) { - PUT_SEL32V(event, claimed, 1); - switch (key) { case SCI_K_BACKSPACE: _K_EDIT_BACKSPACE; @@ -1585,9 +1452,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { default: PUT_SEL32V(event, claimed, 0); } - } else if (key & 0xff00) { - switch (key) { case SCI_K_HOME: cursor = 0; @@ -1596,16 +1461,17 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { cursor = textlen; break; case SCI_K_RIGHT: - if (cursor + 1 <= textlen) ++cursor; + if (cursor + 1 <= textlen) + ++cursor; break; case SCI_K_LEFT: - if (cursor > 0) --cursor; + if (cursor > 0) + --cursor; break; case SCI_K_DELETE: _K_EDIT_DELETE; break; } - PUT_SEL32V(event, claimed, 1); } else if ((key > 31) && (key < 128)) { int inserting = (modifiers & SCI_EVM_INSERT); @@ -1615,7 +1481,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { if (cursor == textlen) { if (textlen < max) { text[cursor++] = key; - text[cursor] = 0; /* Terminate string */ + text[cursor] = 0; // Terminate string } } else if (inserting) { if (textlen < max) { @@ -1626,7 +1492,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { text[cursor++] = key; } - } else { /* Overwriting */ + } else { // Overwriting text[cursor++] = key; } @@ -1641,7 +1507,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { PUT_SEL32V(event, claimed, 1); } - PUT_SEL32V(obj, cursor, cursor); /* Write back cursor position */ + PUT_SEL32V(obj, cursor, cursor); // Write back cursor position } case K_CONTROL_ICON: @@ -1668,9 +1534,7 @@ kEditControl(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } - -static void -_k_draw_control(state_t *s, reg_t obj, int inverse) { +static void _k_draw_control(state_t *s, reg_t obj, int inverse) { int x = GET_SEL32SV(obj, nsLeft); int y = GET_SEL32SV(obj, nsTop); int xl = GET_SEL32SV(obj, nsRight) - x; @@ -1679,7 +1543,7 @@ _k_draw_control(state_t *s, reg_t obj, int inverse) { int font_nr = GET_SEL32V(obj, font); reg_t text_pos = GET_SEL32(obj, text); - char *text = IS_NULL_REG(text_pos) ? NULL : (char *) sm_dereference(&s->seg_manager, text_pos, NULL); + char *text = IS_NULL_REG(text_pos) ? NULL : (char *)sm_dereference(&s->seg_manager, text_pos, NULL); int view = GET_SEL32V(obj, view); int cel = sign_extend_byte(GET_SEL32V(obj, cel)); int loop = sign_extend_byte(GET_SEL32V(obj, loop)); @@ -1695,13 +1559,10 @@ _k_draw_control(state_t *s, reg_t obj, int inverse) { } switch (type) { - case K_CONTROL_BUTTON: - SCIkdebug(SCIkGRAPHICS, "drawing button "PREG" to %d,%d\n", PRINT_REG(obj), x, y); ADD_TO_CURRENT_BG_WIDGETS(sciw_new_button_control(s->port, obj, area, text, font_nr, - (gint8)(state & CONTROL_STATE_FRAMED), - (gint8)inverse, (gint8)(state & CONTROL_STATE_GRAY))); + (gint8)(state & CONTROL_STATE_FRAMED), (gint8)inverse, (gint8)(state & CONTROL_STATE_GRAY))); break; case K_CONTROL_TEXT: @@ -1709,10 +1570,8 @@ _k_draw_control(state_t *s, reg_t obj, int inverse) { SCIkdebug(SCIkGRAPHICS, "drawing text "PREG" to %d,%d, mode=%d\n", PRINT_REG(obj), x, y, mode); - ADD_TO_CURRENT_BG_WIDGETS( - sciw_new_text_control(s->port, obj, area, text, font_nr, mode, - (gint8)(!!(state & CONTROL_STATE_DITHER_FRAMED)), - (gint8)inverse)); + ADD_TO_CURRENT_BG_WIDGETS(sciw_new_text_control(s->port, obj, area, text, font_nr, mode, + (gint8)(!!(state & CONTROL_STATE_DITHER_FRAMED)), (gint8)inverse)); break; case K_CONTROL_EDIT: @@ -1750,18 +1609,17 @@ _k_draw_control(state_t *s, reg_t obj, int inverse) { int entry_size = GET_SEL32V(obj, x); int i; - SCIkdebug(SCIkGRAPHICS, "drawing list control %04x to %d,%d, diff %d\n", obj, x, y, - SCI_MAX_SAVENAME_LENGTH); + SCIkdebug(SCIkGRAPHICS, "drawing list control %04x to %d,%d, diff %d\n", obj, x, y, SCI_MAX_SAVENAME_LENGTH); cursor = GET_SEL32V(obj, cursor) - text_pos.offset; entries_nr = 0; seeker = text; - while (seeker[0]) { /* Count string entries in NULL terminated string list */ + while (seeker[0]) { // Count string entries in NULL terminated string list ++entries_nr; seeker += entry_size; } - if (entries_nr) { /* determine list_top, selection, and the entries_list */ + if (entries_nr) { // determine list_top, selection, and the entries_list seeker = text; entries_list = (char**)sci_malloc(sizeof(char *) * entries_nr); for (i = 0; i < entries_nr; i++) { @@ -1795,29 +1653,23 @@ _k_draw_control(state_t *s, reg_t obj, int inverse) { } -static void -draw_rect_to_control_map(state_t *s, abs_rect_t abs_zone) { +static void draw_rect_to_control_map(state_t *s, abs_rect_t abs_zone) { gfxw_box_t *box; gfx_color_t color; gfxop_set_color(s->gfx_state, &color, -1, -1, -1, -1, -1, 0xf); - SCIkdebug(SCIkGRAPHICS, " adding control block (%d,%d)to(%d,%d)\n", - abs_zone.x, abs_zone.y, abs_zone.xend, abs_zone.yend); + SCIkdebug(SCIkGRAPHICS, " adding control block (%d,%d)to(%d,%d)\n", abs_zone.x, abs_zone.y, abs_zone.xend, abs_zone.yend); - box = gfxw_new_box(s->gfx_state, - gfx_rect(abs_zone.x, abs_zone.y, - abs_zone.xend - abs_zone.x, - abs_zone.yend - abs_zone.y), - color, color, GFX_BOX_SHADE_FLAT); + box = gfxw_new_box(s->gfx_state, gfx_rect(abs_zone.x, abs_zone.y, abs_zone.xend - abs_zone.x, + abs_zone.yend - abs_zone.y), color, color, GFX_BOX_SHADE_FLAT); assert_primary_widget_lists(s); ADD_TO_CURRENT_PICTURE_PORT(box); } -static inline void -draw_obj_to_control_map(state_t *s, gfxw_dyn_view_t *view) { +static inline void draw_obj_to_control_map(state_t *s, gfxw_dyn_view_t *view) { reg_t obj = make_reg(view->ID, view->subID); if (!is_object(s, obj)) @@ -1829,9 +1681,7 @@ draw_obj_to_control_map(state_t *s, gfxw_dyn_view_t *view) { } } - -static void -_k_view_list_do_postdraw(state_t *s, gfxw_list_t *list) { +static void _k_view_list_do_postdraw(state_t *s, gfxw_list_t *list) { gfxw_dyn_view_t *widget = (gfxw_dyn_view_t *) list->contents; while (widget) { @@ -1873,8 +1723,8 @@ _k_view_list_do_postdraw(state_t *s, gfxw_list_t *list) { #endif } #ifdef DEBUG_LSRECT - else fprintf(stderr, "Not lsRecting "PREG" because %d\n", PRINT_REG(obj), - lookup_selector(s, obj, s->selector_map.nsBottom, NULL, NULL)); + else + fprintf(stderr, "Not lsRecting "PREG" because %d\n", PRINT_REG(obj), lookup_selector(s, obj, s->selector_map.nsBottom, NULL, NULL)); #endif if (widget->signal & _K_VIEW_SIG_FLAG_HIDDEN) @@ -1892,8 +1742,7 @@ _k_view_list_do_postdraw(state_t *s, gfxw_list_t *list) { } } -void -_k_view_list_mark_free(state_t *s, reg_t off) { +void _k_view_list_mark_free(state_t *s, reg_t off) { if (s->dyn_views) { gfxw_dyn_view_t *w = (gfxw_dyn_view_t *) s->dyn_views->contents; @@ -1911,12 +1760,9 @@ _k_view_list_mark_free(state_t *s, reg_t off) { static int _k_animate_ran = 0; -int -_k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, - int funct_nr, int argc, reg_t *argv) -/* disposes all list members flagged for disposal; funct_nr is the invoking kfunction */ -/* returns non-zero IFF views were dropped */ -{ +int _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, int funct_nr, int argc, reg_t *argv) { +// disposes all list members flagged for disposal; funct_nr is the invoking kfunction +// returns non-zero IFF views were dropped int signal; int dropped = 0; @@ -1924,10 +1770,10 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, if (widget) { int retval; - /* Recurse: */ + // Recurse: retval = _k_view_list_dispose_loop(s, list, (gfxw_dyn_view_t *) widget->next, funct_nr, argc, argv); - if (retval == -1) /* Bail out on annihilation, rely on re-start from Animate() */ + if (retval == -1) // Bail out on annihilation, rely on re-start from Animate() return -1; if (GFXW_IS_DYN_VIEW(widget) && (widget->ID != GFXW_NO_ID)) { @@ -1937,24 +1783,17 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, reg_t under_bits = NULL_REG; if (!is_object(s, obj)) { - SCIkwarn(SCIkERROR, "Non-object "PREG" present" - " in view list during delete time\n", - PRINT_REG(obj)); + SCIkwarn(SCIkERROR, "Non-object "PREG" present in view list during delete time\n", PRINT_REG(obj)); obj = NULL_REG; } else - - if (widget->under_bitsp) { /* Is there a bg picture left to clean? */ - + if (widget->under_bitsp) { // Is there a bg picture left to clean? reg_t mem_handle = *((reg_t*)(widget->under_bitsp)); if (mem_handle.segment) { if (!kfree(s, mem_handle)) { *((reg_t*)(widget->under_bitsp)) = make_reg(0, widget->under_bits = 0); } else { - SCIkwarn(SCIkWARNING, - "Treating viewobj "PREG - " as no longer" - " present\n", PRINT_REG(obj)); + SCIkwarn(SCIkWARNING, "Treating viewobj "PREG" as no longer present\n", PRINT_REG(obj)); obj = NULL_REG; } } @@ -1962,11 +1801,9 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, if (is_object(s, obj)) { if (invoke_selector(INV_SEL(obj, delete_, 1), 0)) - SCIkwarn(SCIkWARNING, "Object at "PREG" requested deletion, but does not have" - " a delete funcselector\n", PRINT_REG(obj)); + SCIkwarn(SCIkWARNING, "Object at "PREG" requested deletion, but does not have a delete funcselector\n", PRINT_REG(obj)); if (_k_animate_ran) { - SCIkwarn(SCIkWARNING, "Object at "PREG" invoked kAnimate() during deletion!\n", - PRINT_REG(obj)); + SCIkwarn(SCIkWARNING, "Object at "PREG" invoked kAnimate() during deletion!\n", PRINT_REG(obj)); return dropped; } @@ -1978,15 +1815,12 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, graph_restore_box(s, under_bits); } - SCIkdebug(SCIkGRAPHICS, "Freeing "PREG" with signal=%04x\n", - PRINT_REG(obj), signal); + SCIkdebug(SCIkGRAPHICS, "Freeing "PREG" with signal=%04x\n", PRINT_REG(obj), signal); if (!(signal & _K_VIEW_SIG_FLAG_HIDDEN)) { - SCIkdebug(SCIkGRAPHICS, "Adding view at "PREG" to background\n", - PRINT_REG(obj)); + SCIkdebug(SCIkGRAPHICS, "Adding view at "PREG" to background\n", PRINT_REG(obj)); if (!(gfxw_remove_id(widget->parent, widget->ID, widget->subID) == GFXW(widget))) { - SCIkwarn(SCIkERROR, "Attempt to remove view with ID %x:%x from list failed!\n", - widget->ID, widget->subID); + SCIkwarn(SCIkERROR, "Attempt to remove view with ID %x:%x from list failed!\n", widget->ID, widget->subID); BREAKPOINT(); } @@ -2000,7 +1834,7 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, SCIkdebug(SCIkGRAPHICS, "Deleting view at "PREG"\n", PRINT_REG(obj)); widget->flags |= GFXW_FLAG_VISIBLE; gfxw_annihilate(GFXW(widget)); - return -1; /* restart: Done in Animate() */ + return -1; // restart: Done in Animate() } } } @@ -2016,8 +1850,7 @@ _k_view_list_dispose_loop(state_t *s, list_t *list, gfxw_dyn_view_t *widget, #define _K_MAKE_VIEW_LIST_CALC_PRIORITY 2 #define _K_MAKE_VIEW_LIST_DRAW_TO_CONTROL_MAP 4 -static gfxw_dyn_view_t * -_k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, int argc, reg_t *argv) { +static gfxw_dyn_view_t *_k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, int argc, reg_t *argv) { short oldloop, oldcel; int cel, loop, view_nr = GET_SEL32SV(obj, view); int palette; @@ -2035,11 +1868,11 @@ _k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, in pos.x = GET_SEL32SV(obj, x); pos.y = GET_SEL32SV(obj, y); - pos.y++; /* magic: Sierra appears to do something like this */ + pos.y++; // magic: Sierra appears to do something like this z = GET_SEL32SV(obj, z); - /* !-- nsRect used to be checked here! */ + // !-- nsRect used to be checked here! loop = oldloop = sign_extend_byte(GET_SEL32V(obj, loop)); cel = oldcel = sign_extend_byte(GET_SEL32V(obj, cel)); @@ -2048,7 +1881,7 @@ _k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, in else palette = 0; - /* Clip loop and cel, write back if neccessary */ + // Clip loop and cel, write back if neccessary if (gfxop_check_cel(s->gfx_state, view_nr, &loop, &cel)) { return NULL; } @@ -2065,16 +1898,14 @@ _k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, in PUT_SEL32V(obj, cel, cel); } - if (lookup_selector(s, obj, s->selector_map.underBits, &(under_bitsp), NULL) - != SELECTOR_VARIABLE) { + if (lookup_selector(s, obj, s->selector_map.underBits, &(under_bitsp), NULL) != SELECTOR_VARIABLE) { under_bitsp = NULL; under_bits = NULL_REG; SCIkdebug(SCIkGRAPHICS, "Object at "PREG" has no underBits\n", PRINT_REG(obj)); } else under_bits = *((reg_t *)under_bitsp); - if (lookup_selector(s, obj, s->selector_map.signal, &(signalp), NULL) - != SELECTOR_VARIABLE) { + if (lookup_selector(s, obj, s->selector_map.signal, &(signalp), NULL) != SELECTOR_VARIABLE) { signalp = NULL; signal = 0; SCIkdebug(SCIkGRAPHICS, "Object at "PREG" has no signal selector\n", PRINT_REG(obj)); @@ -2083,15 +1914,12 @@ _k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, in SCIkdebug(SCIkGRAPHICS, " with signal = %04x\n", signal); } - widget = gfxw_new_dyn_view(s->gfx_state, pos, z, view_nr, loop, cel, palette, - -1, -1, ALIGN_CENTER, ALIGN_BOTTOM, nr); + widget = gfxw_new_dyn_view(s->gfx_state, pos, z, view_nr, loop, cel, palette, -1, -1, ALIGN_CENTER, ALIGN_BOTTOM, nr); if (widget) { - widget = (gfxw_dyn_view_t *) gfxw_set_id(GFXW(widget), obj.segment, obj.offset); - widget = gfxw_dyn_view_set_params(widget, under_bits.segment, - under_bitsp, signal, signalp); - widget->flags |= GFXW_FLAG_IMMUNE_TO_SNAPSHOTS; /* Only works the first time 'round */ + widget = gfxw_dyn_view_set_params(widget, under_bits.segment, under_bitsp, signal, signalp); + widget->flags |= GFXW_FLAG_IMMUNE_TO_SNAPSHOTS; // Only works the first time 'round' return widget; } else { @@ -2100,15 +1928,11 @@ _k_make_dynview_obj(state_t *s, reg_t obj, int options, int nr, int funct_nr, in } } - -static void -_k_make_view_list(state_t *s, gfxw_list_t **widget_list, list_t *list, int options, - int funct_nr, int argc, reg_t *argv) +static void _k_make_view_list(state_t *s, gfxw_list_t **widget_list, list_t *list, int options, int funct_nr, int argc, reg_t *argv) { /* Creates a view_list from a node list in heap space. Returns the list, stores the ** number of list entries in *list_nr. Calls doit for each entry if cycle is set. ** argc, argv, funct_nr should be the same as in the calling kernel function. */ -{ node_t *node; int sequence_nr = 0; gfxw_dyn_view_t *widget; @@ -2119,17 +1943,17 @@ _k_make_view_list(state_t *s, gfxw_list_t **widget_list, list_t *list, int optio }; assert_primary_widget_lists(s); - /* In case one of the views' doit() does a DrawPic... */ - /* Yes, this _does_ happen! */ + // In case one of the views' doit() does a DrawPic... + // Yes, this _does_ happen! - if (!list) { /* list sanity check */ + if (!list) { // list sanity check SCIkwarn(SCIkERROR, "Attempt to make list from non-list!\n"); BREAKPOINT(); } node = LOOKUP_NODE(list->first); while (node) { - reg_t obj = node->value; /* The object we're using */ + reg_t obj = node->value; // The object we're using reg_t next_node; gfxw_dyn_view_t *tempWidget; @@ -2139,28 +1963,25 @@ _k_make_view_list(state_t *s, gfxw_list_t **widget_list, list_t *list, int optio if (!(signal & _K_VIEW_SIG_FLAG_FROZEN)) { SCIkdebug(SCIkGRAPHICS, " invoking "PREG"::doit()\n", PRINT_REG(obj)); - invoke_selector(INV_SEL(obj, doit, 1), 0); /* Call obj::doit() if neccessary */ + invoke_selector(INV_SEL(obj, doit, 1), 0); // Call obj::doit() if neccessary } } - next_node = node->succ; /* In case the cast list was changed */ + next_node = node->succ; // In case the cast list was changed - if (list->first.segment == 0 && - list->first.offset == 0) /* The cast list was completely emptied! */ + if (list->first.segment == 0 && list->first.offset == 0) // The cast list was completely emptied! break; - tempWidget = _k_make_dynview_obj(s, obj, options, sequence_nr--, - funct_nr, argc, argv); + tempWidget = _k_make_dynview_obj(s, obj, options, sequence_nr--, funct_nr, argc, argv); if (tempWidget) GFX_ASSERT((*widget_list)->add(GFXWC(*widget_list), GFXW(tempWidget))); - node = LOOKUP_NODE(next_node); /* Next node */ + node = LOOKUP_NODE(next_node); // Next node } - widget = (gfxw_dyn_view_t *)(*widget_list)->contents; - while (widget) { /* Read back widget values */ + while (widget) { // Read back widget values if (widget->signalp) widget->signal = ((reg_t *)(widget->signalp))->offset; @@ -2168,9 +1989,7 @@ _k_make_view_list(state_t *s, gfxw_list_t **widget_list, list_t *list, int optio } } - -static void -_k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { +static void _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { gfxw_dyn_view_t *view = (gfxw_dyn_view_t *) list->contents; while (view) { reg_t obj = make_reg(view->ID, view->subID); @@ -2179,27 +1998,24 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { int oldsignal = view->signal; _k_set_now_seen(s, obj); - _priority = /*GET_SELECTOR(obj, y); */((view->pos.y));/**/ + _priority = /*GET_SELECTOR(obj, y); */((view->pos.y)); _priority = _find_view_priority(s, _priority - 1); - if (options & _K_MAKE_VIEW_LIST_DRAW_TO_CONTROL_MAP) { /* Picview */ + if (options & _K_MAKE_VIEW_LIST_DRAW_TO_CONTROL_MAP) { // Picview priority = GET_SEL32SV(obj, priority); if (priority < 0) - priority = _priority; /* Always for picviews */ - } else { /* Dynview */ - if (has_nsrect - && !(view->signal & _K_VIEW_SIG_FLAG_FIX_PRI_ON)) { /* Calculate priority */ - + priority = _priority; // Always for picviews + } else { // Dynview + if (has_nsrect && !(view->signal & _K_VIEW_SIG_FLAG_FIX_PRI_ON)) { // Calculate priority if (options & _K_MAKE_VIEW_LIST_CALC_PRIORITY) PUT_SEL32V(obj, priority, _priority); priority = _priority; - } else /* DON'T calculate the priority */ + } else // DON'T calculate the priority priority = GET_SEL32SV(obj, priority); } - view->color.priority = priority; if (priority > -1) @@ -2207,8 +2023,8 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { else view->color.mask &= ~GFX_MASK_PRIORITY; - /* CR (from :Bob Heitman:) stopupdated views (like pic views) have - ** their clipped nsRect drawn to the control map */ + // CR (from :Bob Heitman:) stopupdated views (like pic views) have + // their clipped nsRect drawn to the control map if (view->signal & _K_VIEW_SIG_FLAG_STOP_UPDATE) { view->signal |= _K_VIEW_SIG_FLAG_FREESCI_STOPUPD; SCIkdebug(SCIkGRAPHICS, "Setting magic STOP_UPD for "PREG"\n", PRINT_REG(obj)); @@ -2217,14 +2033,13 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { if ((options & _K_MAKE_VIEW_LIST_DRAW_TO_CONTROL_MAP)) draw_obj_to_control_map(s, view); - - /* Extreme Pattern Matching ugliness ahead... */ + // Extreme Pattern Matching ugliness ahead... if (view->signal & _K_VIEW_SIG_FLAG_NO_UPDATE) { - if (((view->signal & (_K_VIEW_SIG_FLAG_UPDATED | _K_VIEW_SIG_FLAG_FORCE_UPDATE))) /* 9.1.1.1 */ + if (((view->signal & (_K_VIEW_SIG_FLAG_UPDATED | _K_VIEW_SIG_FLAG_FORCE_UPDATE))) // 9.1.1.1 || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_REMOVE)) == _K_VIEW_SIG_FLAG_HIDDEN) - || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_REMOVE)) == _K_VIEW_SIG_FLAG_REMOVE) /* 9.1.1.2 */ - || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE)) == _K_VIEW_SIG_FLAG_ALWAYS_UPDATE) /* 9.1.1.3 */ - || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE)) == (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE))) { /* 9.1.1.4 */ + || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_REMOVE)) == _K_VIEW_SIG_FLAG_REMOVE) // 9.1.1.2 + || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE)) == _K_VIEW_SIG_FLAG_ALWAYS_UPDATE) // 9.1.1.3 + || ((view->signal & (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE)) == (_K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE))) { // 9.1.1.4 s->pic_not_valid++; view->signal &= ~_K_VIEW_SIG_FLAG_STOP_UPDATE; } @@ -2239,7 +2054,7 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { if (view->signal & _K_VIEW_SIG_FLAG_STOP_UPDATE) { s->pic_not_valid++; view->signal &= ~_K_VIEW_SIG_FLAG_FORCE_UPDATE; - } else { /* if not STOP_UPDATE */ + } else { // if not STOP_UPDATE if (view->signal & _K_VIEW_SIG_FLAG_ALWAYS_UPDATE) s->pic_not_valid++; view->signal &= ~_K_VIEW_SIG_FLAG_FORCE_UPDATE; @@ -2248,8 +2063,8 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { SCIkdebug(SCIkGRAPHICS, " dv["PREG"]: signal %04x -> %04x\n", PRINT_REG(obj), oldsignal, view->signal); - /* Never happens - if (view->signal & 0) { + // Never happens +/* if (view->signal & 0) { view->signal &= ~_K_VIEW_SIG_FLAG_FREESCI_STOPUPD; fprintf(stderr, "Unsetting magic StopUpd for view "PREG"\n", PRINT_REG(obj)); } */ @@ -2258,8 +2073,8 @@ _k_prepare_view_list(state_t *s, gfxw_list_t *list, int options) { } } -static void -_k_update_signals_in_view_list(gfxw_list_t *old_list, gfxw_list_t *new_list) { /* O(n^2)... a bit painful, but much faster than the redraws it helps prevent */ +static void _k_update_signals_in_view_list(gfxw_list_t *old_list, gfxw_list_t *new_list) { + // O(n^2)... a bit painful, but much faster than the redraws it helps prevent gfxw_dyn_view_t *old_widget = (gfxw_dyn_view_t *) old_list->contents; /* Traverses all old widgets, updates them with signals from the new widgets. @@ -2278,17 +2093,16 @@ _k_update_signals_in_view_list(gfxw_list_t *old_list, gfxw_list_t *new_list) { / if (new_widget) { int carry = old_widget->signal & _K_VIEW_SIG_FLAG_FREESCI_STOPUPD; - /* Transfer 'stopupd' flag */ + // Transfer 'stopupd' flag if ((new_widget->pos.x != old_widget->pos.x) || (new_widget->pos.y != old_widget->pos.y) - /* ** No idea why this is supposed to be bad ** - || (new_widget->z != old_widget->z) + // No idea why this is supposed to be bad +/* || (new_widget->z != old_widget->z) || (new_widget->view != old_widget->view) || (new_widget->loop != old_widget->loop) || (new_widget->cel != old_widget->cel) - */ - ) + */) carry = 0; old_widget->signal = new_widget->signal |= carry; @@ -2298,20 +2112,18 @@ _k_update_signals_in_view_list(gfxw_list_t *old_list, gfxw_list_t *new_list) { / } } -static void -_k_view_list_kryptonize(gfxw_widget_t *v) { +static void _k_view_list_kryptonize(gfxw_widget_t *v) { if (v) { v->flags &= ~GFXW_FLAG_IMMUNE_TO_SNAPSHOTS; _k_view_list_kryptonize(v->next); } } -static void -_k_raise_topmost_in_view_list(state_t *s, gfxw_list_t *list, gfxw_dyn_view_t *view) { +static void _k_raise_topmost_in_view_list(state_t *s, gfxw_list_t *list, gfxw_dyn_view_t *view) { if (view) { - gfxw_dyn_view_t *next = (gfxw_dyn_view_t *) view->next; + gfxw_dyn_view_t *next = (gfxw_dyn_view_t *)view->next; - /* step 11 */ + // step 11 if ((view->signal & (_K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_HIDDEN | _K_VIEW_SIG_FLAG_ALWAYS_UPDATE)) == 0) { SCIkdebug(SCIkGRAPHICS, "Forcing precedence 2 at ["PREG"] with %04x\n", PRINT_REG(make_reg(view->ID, view->subID)), view->signal); view->force_precedence = 2; @@ -2336,22 +2148,20 @@ _k_raise_topmost_in_view_list(state_t *s, gfxw_list_t *list, gfxw_dyn_view_t *vi } } - -static void -_k_redraw_view_list(state_t *s, gfxw_list_t *list) { +static void _k_redraw_view_list(state_t *s, gfxw_list_t *list) { gfxw_dyn_view_t *view = (gfxw_dyn_view_t *) list->contents; while (view) { SCIkdebug(SCIkGRAPHICS, " dv["PREG"]: signal %04x\n", make_reg(view->ID, view->subID), view->signal); - /* step 1 of subalgorithm */ + // step 1 of subalgorithm if (view->signal & _K_VIEW_SIG_FLAG_NO_UPDATE) { if (view->signal & _K_VIEW_SIG_FLAG_FORCE_UPDATE) view->signal &= ~_K_VIEW_SIG_FLAG_FORCE_UPDATE; if (view->signal & _K_VIEW_SIG_FLAG_UPDATED) view->signal &= ~(_K_VIEW_SIG_FLAG_UPDATED | _K_VIEW_SIG_FLAG_NO_UPDATE); - } else { /* NO_UPD is not set */ + } else { // NO_UPD is not set if (view->signal & _K_VIEW_SIG_FLAG_STOP_UPDATE) { view->signal &= ~_K_VIEW_SIG_FLAG_STOP_UPDATE; view->signal |= _K_VIEW_SIG_FLAG_NO_UPDATE; @@ -2361,8 +2171,7 @@ _k_redraw_view_list(state_t *s, gfxw_list_t *list) { SCIkdebug(SCIkGRAPHICS, " at substep 6: signal %04x\n", view->signal); if (view->signal & _K_VIEW_SIG_FLAG_ALWAYS_UPDATE) - view->signal &= ~(_K_VIEW_SIG_FLAG_STOP_UPDATE | _K_VIEW_SIG_FLAG_UPDATED - | _K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_FORCE_UPDATE); + view->signal &= ~(_K_VIEW_SIG_FLAG_STOP_UPDATE | _K_VIEW_SIG_FLAG_UPDATED | _K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_FORCE_UPDATE); SCIkdebug(SCIkGRAPHICS, " at substep 11/14: signal %04x\n", view->signal); @@ -2380,29 +2189,24 @@ _k_redraw_view_list(state_t *s, gfxw_list_t *list) { } } - -/* Flags for _k_draw_view_list */ -/* Whether some magic with the base object's "signal" selector should be done: */ +// Flags for _k_draw_view_list +// Whether some magic with the base object's "signal" selector should be done: #define _K_DRAW_VIEW_LIST_USE_SIGNAL 1 -/* This flag draws all views with the "DISPOSE_ME" flag set: */ +// This flag draws all views with the "DISPOSE_ME" flag set: #define _K_DRAW_VIEW_LIST_DISPOSEABLE 2 -/* Use this one to draw all views with "DISPOSE_ME" NOT set: */ +// Use this one to draw all views with "DISPOSE_ME" NOT set: #define _K_DRAW_VIEW_LIST_NONDISPOSEABLE 4 -/* Draw as picviews */ +// Draw as picviews #define _K_DRAW_VIEW_LIST_PICVIEW 8 - -void -_k_draw_view_list(state_t *s, gfxw_list_t *list, int flags) -/* Draws list_nr members of list to s->pic. */ -{ +void _k_draw_view_list(state_t *s, gfxw_list_t *list, int flags) { + // Draws list_nr members of list to s->pic. gfxw_dyn_view_t *widget = (gfxw_dyn_view_t *) list->contents; if (GFXWC(s->port) != GFXWC(s->dyn_views->parent)) - return; /* Return if the pictures are meant for a different port */ + return; // Return if the pictures are meant for a different port while (widget) { - if (flags & _K_DRAW_VIEW_LIST_PICVIEW) widget = gfxw_picviewize_dynview(widget); @@ -2419,29 +2223,27 @@ _k_draw_view_list(state_t *s, gfxw_list_t *list, int flags) || ((flags & _K_DRAW_VIEW_LIST_NONDISPOSEABLE) && !(signal & _K_VIEW_SIG_FLAG_DISPOSE_ME))) { if (flags & _K_DRAW_VIEW_LIST_USE_SIGNAL) { - signal &= ~(_K_VIEW_SIG_FLAG_STOP_UPDATE | _K_VIEW_SIG_FLAG_UPDATED | - _K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_FORCE_UPDATE); - /* Clear all of those flags */ + signal &= ~(_K_VIEW_SIG_FLAG_STOP_UPDATE | _K_VIEW_SIG_FLAG_UPDATED | _K_VIEW_SIG_FLAG_NO_UPDATE | _K_VIEW_SIG_FLAG_FORCE_UPDATE); + // Clear all of those flags if (signal & _K_VIEW_SIG_FLAG_HIDDEN) gfxw_hide_widget(GFXW(widget)); else gfxw_show_widget(GFXW(widget)); - *((reg_t *)(widget->signalp)) = make_reg(0, signal); /* Write the changes back */ + *((reg_t *)(widget->signalp)) = make_reg(0, signal); // Write the changes back }; - } /* ...if we're drawing disposeables and this one is disposeable, or if we're drawing non- - ** disposeables and this one isn't disposeable */ + } // ...if we're drawing disposeables and this one is disposeable, or if we're drawing non- + // disposeables and this one isn't disposeable } widget = (gfxw_dyn_view_t *) widget->next; - } /* while (widget) */ + } // while (widget) } -reg_t -kAddToPic(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kAddToPic(state_t *s, int funct_nr, int argc, reg_t *argv) { gfxw_list_t *pic_views; reg_t list_ref = argv[0]; @@ -2467,26 +2269,19 @@ kAddToPic(state_t *s, int funct_nr, int argc, reg_t *argv) { } else { widget->ID = -1; if (control >= 0) { - abs_rect_t abs_zone = nsrect_clip(s, y, - calculate_nsrect(s, x, y, - view, loop, cel), - priority); - + abs_rect_t abs_zone = nsrect_clip(s, y, calculate_nsrect(s, x, y, view, loop, cel), priority); draw_rect_to_control_map(s, abs_zone); } ADD_TO_CURRENT_PICTURE_PORT(gfxw_picviewize_dynview((gfxw_dyn_view_t *) widget)); } - } else { list_t *list; if (!list_ref.segment) { - SCIkdebug(SCIkWARNING, "Attempt to AddToPic single non-list: "PREG"\n", - PRINT_REG(list_ref)); + SCIkdebug(SCIkWARNING, "Attempt to AddToPic single non-list: "PREG"\n", PRINT_REG(list_ref)); return s->r_acc; } - list = LOOKUP_LIST(list_ref); pic_views = gfxw_new_list(s->picture_port->bounds, 1); @@ -2494,12 +2289,12 @@ kAddToPic(state_t *s, int funct_nr, int argc, reg_t *argv) { SCIkdebug(SCIkGRAPHICS, "Preparing picview list...\n"); _k_make_view_list(s, &pic_views, list, 0, funct_nr, argc, argv); _k_prepare_view_list(s, pic_views, _K_MAKE_VIEW_LIST_DRAW_TO_CONTROL_MAP); - /* Store pic views for later re-use */ + // Store pic views for later re-use SCIkdebug(SCIkGRAPHICS, "Drawing picview list...\n"); ADD_TO_CURRENT_PICTURE_PORT(pic_views); _k_draw_view_list(s, pic_views, _K_DRAW_VIEW_LIST_NONDISPOSEABLE | _K_DRAW_VIEW_LIST_DISPOSEABLE | _K_DRAW_VIEW_LIST_PICVIEW); - /* Draw relative to the bottom center */ + // Draw relative to the bottom center SCIkdebug(SCIkGRAPHICS, "Returning.\n"); } reparentize_primary_widget_lists(s, s->port); @@ -2507,15 +2302,11 @@ kAddToPic(state_t *s, int funct_nr, int argc, reg_t *argv) { return s->r_acc; } - -reg_t -kGetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kGetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { return make_reg(0, s->port->ID); } - -reg_t -kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { if (activated_icon_bar && argc == 6) { port_origin_x = port_origin_y = 0; activated_icon_bar = 0; @@ -2542,7 +2333,7 @@ kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { return NULL_REG; } - s->port->draw(GFXW(s->port), gfxw_point_zero); /* Update the port we're leaving */ + s->port->draw(GFXW(s->port), gfxw_point_zero); // Update the port we're leaving s->port = new_port; return s->r_acc; } @@ -2551,7 +2342,7 @@ kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { port_origin_x = SKPV(1); if (SKPV(0) == -10) { - s->port->draw(GFXW(s->port), gfxw_point_zero); /* Update the port we're leaving */ + s->port->draw(GFXW(s->port), gfxw_point_zero); // Update the port we're leaving s->port = s->iconbar_port; activated_icon_bar = 1; return s->r_acc; @@ -2559,8 +2350,8 @@ kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { s->gfx_state->options->pic_port_bounds = gfx_rect(UKPV(5), UKPV(4), UKPV(3), UKPV(2)); - /* FIXME: Should really only invalidate all loaded pic resources here; - this is overkill */ + // FIXME: Should really only invalidate all loaded pic resources here; + // this is overkill gfxr_free_all_resources(s->gfx_state->driver, s->gfx_state->resstate); break; @@ -2573,8 +2364,7 @@ kSetPort(state_t *s, int funct_nr, int argc, reg_t *argv) { return NULL_REG; } -static inline void -add_to_chrono(state_t *s, gfxw_widget_t *widget) { +static inline void add_to_chrono(state_t *s, gfxw_widget_t *widget) { gfxw_port_t *chrono_port; gfxw_list_t *tw; @@ -2585,8 +2375,7 @@ add_to_chrono(state_t *s, gfxw_widget_t *widget) { ADD_TO_CURRENT_PORT(chrono_port); } -reg_t -kDrawCel(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDrawCel(state_t *s, int funct_nr, int argc, reg_t *argv) { int view = SKPV(0); int loop = SKPV(1); int cel = SKPV(2); @@ -2595,20 +2384,19 @@ kDrawCel(state_t *s, int funct_nr, int argc, reg_t *argv) { int priority = SKPV_OR_ALT(5, -1); gfxw_view_t *new_view; - /* - if (!view) { - SCIkwarn(SCIkERROR, "Attempt to draw non-existing view.%03d\n", view); - return; - } - */ +/* + if (!view) { + SCIkwarn(SCIkERROR, "Attempt to draw non-existing view.%03d\n", view); + return; + } +*/ if (gfxop_check_cel(s->gfx_state, view, &loop, &cel)) { SCIkwarn(SCIkERROR, "Attempt to draw non-existing view.%03d\n", view); return s->r_acc; } - SCIkdebug(SCIkGRAPHICS, "DrawCel((%d,%d), (view.%d, %d, %d), p=%d)\n", x, y, view, loop, - cel, priority); + SCIkdebug(SCIkGRAPHICS, "DrawCel((%d,%d), (view.%d, %d, %d), p=%d)\n", x, y, view, loop, cel, priority); new_view = gfxw_new_view(s->gfx_state, Common::Point(x, y), view, loop, cel, 0, priority, -1, ALIGN_LEFT, ALIGN_TOP, GFXW_VIEW_FLAG_DONT_MODIFY_OFFSET); @@ -2620,13 +2408,10 @@ kDrawCel(state_t *s, int funct_nr, int argc, reg_t *argv) { #endif FULL_REDRAW(); - - return s->r_acc; } -reg_t -kDisposeWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDisposeWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { unsigned int goner_nr = SKPV(0); gfxw_port_t *goner; gfxw_port_t *pred; @@ -2644,16 +2429,15 @@ kDisposeWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { } if (s->drop_views && GFXWC(s->drop_views->parent) == GFXWC(goner)) - s->drop_views = NULL; /* Kill it */ + s->drop_views = NULL; // Kill it pred = gfxw_remove_port(s->visual, goner); - if (goner == s->port) /* Did we kill the active port? */ + if (goner == s->port) // Did we kill the active port? s->port = pred; - /* Find the last port that exists and that isn't marked no-switch */ - while ((!s->visual->port_refs[id] && id >= 0) || - (s->visual->port_refs[id]->flags & GFXW_FLAG_NO_IMPLICIT_SWITCH)) + // Find the last port that exists and that isn't marked no-switch + while ((!s->visual->port_refs[id] && id >= 0) || (s->visual->port_refs[id]->flags & GFXW_FLAG_NO_IMPLICIT_SWITCH)) id--; sciprintf("Activating port %d after disposing window %d\n", id, goner_nr); @@ -2663,11 +2447,11 @@ kDisposeWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { s->port = gfxw_find_default_port(s->visual); gfxop_update(s->gfx_state); + return s->r_acc; } -reg_t -kNewWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kNewWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { gfxw_port_t *window; int x, y, xl, yl, flags; gfx_color_t bgcolor; @@ -2675,7 +2459,7 @@ kNewWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { gfx_color_t black; gfx_color_t lWhite; int priority; - int argextra = argc == 13 ? 4 : 0; /* Triggers in PQ3 */ + int argextra = argc == 13 ? 4 : 0; // Triggers in PQ3 y = SKPV(0); x = SKPV(1); @@ -2711,23 +2495,17 @@ kNewWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { black.visual = *(get_pic_color(s, 0)); black.mask = GFX_MASK_VISUAL; black.alpha = 0; - lWhite.visual = *(get_pic_color(s, s->resmgr->sci_version < SCI_VERSION_01_VGA ? 15 : 255)), - lWhite.mask = GFX_MASK_VISUAL; + lWhite.visual = *(get_pic_color(s, s->resmgr->sci_version < SCI_VERSION_01_VGA ? 15 : 255)), lWhite.mask = GFX_MASK_VISUAL; lWhite.alpha = 0; - window = sciw_new_window(s, gfx_rect(x, y, xl, yl), s->titlebar_port->font_nr, - fgcolor, bgcolor, s->titlebar_port->font_nr, - lWhite, - black, - argv[4+argextra].segment ? kernel_dereference_char_pointer(s, argv[4+argextra], 0) : NULL, - flags); + window = sciw_new_window(s, gfx_rect(x, y, xl, yl), s->titlebar_port->font_nr, fgcolor, bgcolor, + s->titlebar_port->font_nr, lWhite, black, argv[4 + argextra].segment ? + kernel_dereference_char_pointer(s, argv[4 + argextra], 0) : NULL, flags); - /* PQ3 has the interpreter store underBits implicitly. - The feature was promptly removed after its release, never to be seen again. */ + // PQ3 has the interpreter store underBits implicitly. + // The feature was promptly removed after its release, never to be seen again. if (argextra) - gfxw_port_auto_restore_background(s->visual, window, - gfx_rect(SKPV(5), SKPV(4), - SKPV(7) - SKPV(5), SKPV(6) - SKPV(4))); + gfxw_port_auto_restore_background(s->visual, window, gfx_rect(SKPV(5), SKPV(4), SKPV(7) - SKPV(5), SKPV(6) - SKPV(4))); ADD_TO_WINDOW_PORT(window); FULL_REDRAW(); @@ -2735,49 +2513,45 @@ kNewWindow(state_t *s, int funct_nr, int argc, reg_t *argv) { window->draw(GFXW(window), gfxw_point_zero); gfxop_update(s->gfx_state); - s->port = window; /* Set active port */ + s->port = window; // Set active port return make_reg(0, window->ID); } - -#define K_ANIMATE_CENTER_OPEN_H 0 /* horizontally open from center */ -#define K_ANIMATE_CENTER_OPEN_V 1 /* vertically open from center */ -#define K_ANIMATE_RIGHT_OPEN 2 /* open from right */ -#define K_ANIMATE_LEFT_OPEN 3 /* open from left */ -#define K_ANIMATE_BOTTOM_OPEN 4 /* open from bottom */ -#define K_ANIMATE_TOP_OPEN 5 /* open from top */ -#define K_ANIMATE_BORDER_OPEN_F 6 /* open from edges to center */ -#define K_ANIMATE_CENTER_OPEN_F 7 /* open from center to edges */ -#define K_ANIMATE_OPEN_CHECKERS 8 /* open random checkboard */ -#define K_ANIMATE_BORDER_CLOSE_H_CENTER_OPEN_H 9 /* horizontally close to center,reopen from center */ -#define K_ANIMATE_BORDER_CLOSE_V_CENTER_OPEN_V 10 /* vertically close to center, reopen from center */ -#define K_ANIMATE_LEFT_CLOSE_RIGHT_OPEN 11 /* close to right, reopen from right */ -#define K_ANIMATE_RIGHT_CLOSE_LEFT_OPEN 12 /* close to left, reopen from left */ -#define K_ANIMATE_TOP_CLOSE_BOTTOM_OPEN 13 /* close to bottom, reopen from bottom */ -#define K_ANIMATE_BOTTOM_CLOSE_TOP_OPEN 14 /* close to top, reopen from top */ -#define K_ANIMATE_CENTER_CLOSE_F_BORDER_OPEN_F 15 /* close from center to edges, -** reopen from edges to center */ -#define K_ANIMATE_BORDER_CLOSE_F_CENTER_OPEN_F 16 /* close from edges to center, reopen from -** center to edges */ -#define K_ANIMATE_CLOSE_CHECKERS_OPEN_CHECKERS 17 /* close random checkboard, reopen */ +#define K_ANIMATE_CENTER_OPEN_H 0 // horizontally open from center +#define K_ANIMATE_CENTER_OPEN_V 1 // vertically open from center +#define K_ANIMATE_RIGHT_OPEN 2 // open from right +#define K_ANIMATE_LEFT_OPEN 3 // open from left +#define K_ANIMATE_BOTTOM_OPEN 4 // open from bottom +#define K_ANIMATE_TOP_OPEN 5 // open from top +#define K_ANIMATE_BORDER_OPEN_F 6 // open from edges to center +#define K_ANIMATE_CENTER_OPEN_F 7 // open from center to edges +#define K_ANIMATE_OPEN_CHECKERS 8 // open random checkboard +#define K_ANIMATE_BORDER_CLOSE_H_CENTER_OPEN_H 9 // horizontally close to center,reopen from center +#define K_ANIMATE_BORDER_CLOSE_V_CENTER_OPEN_V 10 // vertically close to center, reopen from center +#define K_ANIMATE_LEFT_CLOSE_RIGHT_OPEN 11 // close to right, reopen from right +#define K_ANIMATE_RIGHT_CLOSE_LEFT_OPEN 12 // close to left, reopen from left +#define K_ANIMATE_TOP_CLOSE_BOTTOM_OPEN 13 // close to bottom, reopen from bottom +#define K_ANIMATE_BOTTOM_CLOSE_TOP_OPEN 14 // close to top, reopen from top +#define K_ANIMATE_CENTER_CLOSE_F_BORDER_OPEN_F 15 // close from center to edges, +// reopen from edges to center +#define K_ANIMATE_BORDER_CLOSE_F_CENTER_OPEN_F 16 // close from edges to center, reopen from +// center to edges */ +#define K_ANIMATE_CLOSE_CHECKERS_OPEN_CHECKERS 17 // close random checkboard, reopen #define K_ANIMATE_SCROLL_LEFT 0x28 #define K_ANIMATE_SCROLL_RIGHT 0x29 #define K_ANIMATE_SCROLL_DOWN 0x2a #define K_ANIMATE_SCROLL_UP 0x2b -#define K_ANIMATE_OPEN_SIMPLE 100 /* No animation */ - +#define K_ANIMATE_OPEN_SIMPLE 100 // No animation #define GRAPH_BLANK_BOX(s, x, y, xl, yl, color) GFX_ASSERT(gfxop_fill_box(s->gfx_state, \ - gfx_rect(x, (((y) < 10)? 10 : (y)), xl, (((y) < 10)? ((y) - 10) : 0) + (yl)), s->ega_colors[color])); + gfx_rect(x, (((y) < 10)? 10 : (y)), xl, (((y) < 10)? ((y) - 10) : 0) + (yl)), s->ega_colors[color])); #define GRAPH_UPDATE_BOX(s, x, y, xl, yl) GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, \ gfx_rect(x, (((y) < 10)? 10 : (y)) - 10, xl, (((y) < 10)? ((y) - 10) : 0) + (yl)), Common::Point(x, ((y) < 10)? 10 : (y) ))); - -static void -animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { +static void animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { int i, remaining_checkers; int update_counter; int granularity0 = s->animation_granularity << 1; @@ -2802,17 +2576,15 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, gfx_rect(0, 0, 320, 190), Common::Point(0, 10))); gfxop_update_box(s->gfx_state, gfx_rect(0, 0, 320, 200)); - /*SCIkdebug(SCIkGRAPHICS, "Animating pic opening type %x\n", s->pic_animate);*/ + //SCIkdebug(SCIkGRAPHICS, "Animating pic opening type %x\n", s->pic_animate); gfxop_enable_dirty_frames(s->gfx_state); if (s->animation_delay < 1) s->pic_animate = K_ANIMATE_OPEN_SIMPLE; - switch (s->pic_animate) { case K_ANIMATE_BORDER_CLOSE_H_CENTER_OPEN_H : - for (i = 0; i < 159 + granularity1; i += granularity1) { GRAPH_BLANK_BOX(s, i, 10, granularity1, 190, 0); gfxop_update(s->gfx_state); @@ -2953,25 +2725,20 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { int height = real_i * 3; int width = real_i * 5; - GRAPH_BLANK_BOX(s, width, 10 + height, - width_l, 190 - 2*height, 0); + GRAPH_BLANK_BOX(s, width, 10 + height, width_l, 190 - 2 * height, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, 320 - width_l - width, - 10 + height, width_l, 190 - 2*height, 0); + GRAPH_BLANK_BOX(s, 320 - width_l - width, 10 + height, width_l, 190 - 2 * height, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, width, 10 + height, - 320 - 2*width, height_l, 0); + GRAPH_BLANK_BOX(s, width, 10 + height, 320 - 2 * width, height_l, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, width, 200 - height_l - height, - 320 - 2*width, height_l, 0); + GRAPH_BLANK_BOX(s, width, 200 - height_l - height, 320 - 2 * width, height_l, 0); gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 4 * s->animation_delay); process_sound_events(s); } - case K_ANIMATE_BORDER_OPEN_F : for (i = 0; i < 31 + granularity3; i += granularity3) { @@ -2981,18 +2748,14 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { int height = real_i * 3; int width = real_i * 5; - GRAPH_UPDATE_BOX(s, width, 10 + height, - width_l, 190 - 2*height); + GRAPH_UPDATE_BOX(s, width, 10 + height, width_l, 190 - 2 * height); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, 320 - width_l - width, - 10 + height, width_l, 190 - 2*height); + GRAPH_UPDATE_BOX(s, 320 - width_l - width, 10 + height, width_l, 190 - 2 * height); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, width, 10 + height, - 320 - 2*width, height_l); + GRAPH_UPDATE_BOX(s, width, 10 + height, 320 - 2 * width, height_l); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, width, 200 - height_l - height, - 320 - 2*width, height_l); + GRAPH_UPDATE_BOX(s, width, 200 - height_l - height, 320 - 2 * width, height_l); gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 4 * s->animation_delay); @@ -3001,7 +2764,6 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { break; - case K_ANIMATE_BORDER_CLOSE_F_CENTER_OPEN_F : for (i = 0; i < 31 + granularity3; i += granularity3) { @@ -3011,25 +2773,20 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { int height = real_i * 3; int width = real_i * 5; - GRAPH_BLANK_BOX(s, width, 10 + height, - width_l, 190 - 2*height, 0); + GRAPH_BLANK_BOX(s, width, 10 + height, width_l, 190 - 2 * height, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, 320 - width_l - width, - 10 + height, width_l, 190 - 2*height, 0); + GRAPH_BLANK_BOX(s, 320 - width_l - width, 10 + height, width_l, 190 - 2 * height, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, width, 10 + height, - 320 - 2*width, height_l, 0); + GRAPH_BLANK_BOX(s, width, 10 + height, 320 - 2 * width, height_l, 0); gfxop_update(s->gfx_state); - GRAPH_BLANK_BOX(s, width, 200 - height_l - height, - 320 - 2*width, height_l, 0); + GRAPH_BLANK_BOX(s, width, 200 - height_l - height, 320 - 2 * width, height_l, 0); gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 7 * s->animation_delay); process_sound_events(s); } - case K_ANIMATE_CENTER_OPEN_F : for (i = 31; i >= 1 - granularity3; i -= granularity3) { @@ -3039,27 +2796,21 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { int height = real_i * 3; int width = real_i * 5; - GRAPH_UPDATE_BOX(s, width, 10 + height, - width_l, 190 - 2*height); + GRAPH_UPDATE_BOX(s, width, 10 + height, width_l, 190 - 2 * height); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, 320 - width_l - width, - 10 + height, width_l, 190 - 2*height); + GRAPH_UPDATE_BOX(s, 320 - width_l - width, 10 + height, width_l, 190 - 2*height); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, width, 10 + height, - 320 - 2 * width, height_l); + GRAPH_UPDATE_BOX(s, width, 10 + height, 320 - 2 * width, height_l); gfxop_update(s->gfx_state); - GRAPH_UPDATE_BOX(s, width, 200 - height_l - height, - 320 - 2 * width, height_l); + GRAPH_UPDATE_BOX(s, width, 200 - height_l - height, 320 - 2 * width, height_l); gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 7 * s->animation_delay); process_sound_events(s); } - break; - case K_ANIMATE_CLOSE_CHECKERS_OPEN_CHECKERS : memset(checkers, 0, sizeof(checkers)); @@ -3071,8 +2822,9 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { i = -1; while (checker) - if (checkers[++i] == 0) --checker; - checkers[i] = 1; /* Mark checker as used */ + if (checkers[++i] == 0) + --checker; + checkers[i] = 1; // Mark checker as used x = i % 32; y = i / 32; @@ -3103,7 +2855,7 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { while (checker) if (checkers[++i] == 0) --checker; - checkers[i] = 1; /* Mark checker as used */ + checkers[i] = 1; // Mark checker as used x = i % 32; y = i / 32; @@ -3128,14 +2880,9 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_ANIMATE_SCROLL_LEFT : for (i = 0; i < 319; i += granularity0) { - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, - gfx_rect(320 - i, 0, i, 190), - Common::Point(0, 10))); - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, - gfx_rect(0, 0, 320 - i, 190), - Common::Point(i, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, gfx_rect(320 - i, 0, i, 190), Common::Point(0, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, gfx_rect(0, 0, 320 - i, 190), Common::Point(i, 10))); gfxop_update(s->gfx_state); - gfxop_usleep(s->gfx_state, s->animation_delay >> 3); } GRAPH_UPDATE_BOX(s, 0, 10, 320, 190); @@ -3144,14 +2891,9 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_ANIMATE_SCROLL_RIGHT : for (i = 0; i < 319; i += granularity0) { - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, - gfx_rect(0, 0, i, 190), - Common::Point(319 - i, 10))); - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, - gfx_rect(i, 0, 320 - i, 190), - Common::Point(0, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, gfx_rect(0, 0, i, 190), Common::Point(319 - i, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, gfx_rect(i, 0, 320 - i, 190), Common::Point(0, 10))); gfxop_update(s->gfx_state); - gfxop_usleep(s->gfx_state, s->animation_delay >> 3); } GRAPH_UPDATE_BOX(s, 0, 10, 320, 190); @@ -3160,14 +2902,9 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_ANIMATE_SCROLL_UP : for (i = 0; i < 189; i += granularity0) { - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, - gfx_rect(0, 190 - i, 320, i), - Common::Point(0, 10))); - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, - gfx_rect(0, 0, 320, 190 - i), - Common::Point(0, 10 + i))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, gfx_rect(0, 190 - i, 320, i), Common::Point(0, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, gfx_rect(0, 0, 320, 190 - i), Common::Point(0, 10 + i))); gfxop_update(s->gfx_state); - gfxop_usleep(s->gfx_state, s->animation_delay >> 3); } GRAPH_UPDATE_BOX(s, 0, 10, 320, 190); @@ -3176,14 +2913,9 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { case K_ANIMATE_SCROLL_DOWN : for (i = 0; i < 189; i += granularity0) { - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, - gfx_rect(0, 0, 320, i), - Common::Point(0, 200 - i))); - GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, - gfx_rect(0, i, 320, 190 - i), - Common::Point(0, 10))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, newscreen, gfx_rect(0, 0, 320, i), Common::Point(0, 200 - i))); + GFX_ASSERT(gfxop_draw_pixmap(s->gfx_state, s->old_screen, gfx_rect(0, i, 320, 190 - i), Common::Point(0, 10))); gfxop_update(s->gfx_state); - gfxop_usleep(s->gfx_state, s->animation_delay >> 3); } GRAPH_UPDATE_BOX(s, 0, 10, 320, 190); @@ -3199,23 +2931,18 @@ animate_do_animation(state_t *s, int funct_nr, int argc, reg_t *argv) { GFX_ASSERT(gfxop_free_pixmap(s->gfx_state, s->old_screen)); GFX_ASSERT(gfxop_free_pixmap(s->gfx_state, newscreen)); s->old_screen = NULL; - } - -reg_t -kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) -/* Animations are supposed to take a maximum of s->animation_delay milliseconds. */ -{ +reg_t kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) { + // Animations are supposed to take a maximum of s->animation_delay milliseconds. reg_t cast_list_ref = KP_ALT(0, NULL_REG); int cycle = (KP_ALT(1, NULL_REG)).offset; list_t *cast_list = NULL; int open_animation = 0; - - process_sound_events(s); /* Take care of incoming events (kAnimate is called semi-regularly) */ - _k_animate_ran = 1; /* Used by some of the invoked functions to check for recursion, which may, - ** after all, damage the cast list */ + process_sound_events(s); // Take care of incoming events (kAnimate is called semi-regularly) + _k_animate_ran = 1; // Used by some of the invoked functions to check for recursion, which may, + // after all, damage the cast list if (cast_list_ref.segment) { cast_list = LOOKUP_LIST(cast_list_ref); @@ -3223,15 +2950,14 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) return s->r_acc; } - open_animation = (s->pic_is_new) && (s->pic_not_valid); s->pic_is_new = 0; assert_primary_widget_lists(s); - if (!s->dyn_views->contents /* Only reparentize empty dynview list */ - && ((GFXWC(s->port) != GFXWC(s->dyn_views->parent)) /* If dynviews are on other port... */ - || (s->dyn_views->next))) /* ... or not on top of the view list */ + if (!s->dyn_views->contents // Only reparentize empty dynview list + && ((GFXWC(s->port) != GFXWC(s->dyn_views->parent)) // If dynviews are on other port... + || (s->dyn_views->next))) // ... or not on top of the view list reparentize_primary_widget_lists(s, s->port); if (cast_list) { @@ -3240,17 +2966,16 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) _k_make_view_list(s, &(templist), cast_list, (cycle ? _K_MAKE_VIEW_LIST_CYCLE : 0) | _K_MAKE_VIEW_LIST_CALC_PRIORITY, funct_nr, argc, argv); - /* Make sure that none of the doits() did something evil */ + // Make sure that none of the doits() did something evil assert_primary_widget_lists(s); - if (!s->dyn_views->contents /* Only reparentize empty dynview list */ - && ((GFXWC(s->port) != GFXWC(s->dyn_views->parent)) /* If dynviews are on other port... */ - || (s->dyn_views->next))) /* ... or not on top of the view list */ + if (!s->dyn_views->contents // Only reparentize empty dynview list + && ((GFXWC(s->port) != GFXWC(s->dyn_views->parent)) // If dynviews are on other port... + || (s->dyn_views->next))) // ... or not on top of the view list reparentize_primary_widget_lists(s, s->port); - /* End of doit() recovery code */ - + // End of doit() recovery code - if (s->pic_is_new) { /* Happens if DrawPic() is executed by a dynview (yes, that happens) */ + if (s->pic_is_new) { // Happens if DrawPic() is executed by a dynview (yes, that happens) kAnimate(s, funct_nr, argc, argv); /* Tail-recurse */ return s->r_acc; } @@ -3266,20 +2991,20 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) _k_update_signals_in_view_list(s->dyn_views, templist); s->dyn_views->tag(GFXW(s->dyn_views)); - _k_raise_topmost_in_view_list(s, s->dyn_views, (gfxw_dyn_view_t *) templist->contents); + _k_raise_topmost_in_view_list(s, s->dyn_views, (gfxw_dyn_view_t *)templist->contents); templist->widfree(GFXW(templist)); - s->dyn_views->free_tagged(GFXWC(s->dyn_views)); /* Free obsolete dynviews */ - } /* if (cast_list) */ + s->dyn_views->free_tagged(GFXWC(s->dyn_views)); // Free obsolete dynviews + } // if (cast_list) if (open_animation) { - gfxop_clear_box(s->gfx_state, gfx_rect(0, 10, 320, 190)); /* Propagate pic */ + gfxop_clear_box(s->gfx_state, gfx_rect(0, 10, 320, 190)); // Propagate pic s->visual->add_dirty_abs(GFXWC(s->visual), gfx_rect_fullscreen, 0); - /* Mark screen as dirty so picviews will be drawn correctly */ + // Mark screen as dirty so picviews will be drawn correctly FULL_REDRAW(); animate_do_animation(s, funct_nr, argc, argv); - } /* if (open_animation) */ + } // if (open_animation) if (cast_list) { int retval; @@ -3289,7 +3014,7 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) _k_view_list_do_postdraw(s, s->dyn_views); - /* _k_view_list_dispose_loop() returns -1 if it requested a re-start, so we do just that. */ + // _k_view_list_dispose_loop() returns -1 if it requested a re-start, so we do just that. while ((retval = _k_view_list_dispose_loop(s, cast_list, (gfxw_dyn_view_t *) s->dyn_views->contents, funct_nr, argc, argv) < 0)) reparentize = 1; @@ -3304,9 +3029,9 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) } if ((reparentize | retval) - && (GFXWC(s->port) == GFXWC(s->dyn_views->parent)) /* If dynviews are on the same port... */ - && (s->dyn_views->next)) /* ... and not on top of the view list... */ - reparentize_primary_widget_lists(s, s->port); /* ...then reparentize. */ + && (GFXWC(s->port) == GFXWC(s->dyn_views->parent)) // If dynviews are on the same port... + && (s->dyn_views->next)) // ... and not on top of the view list... + reparentize_primary_widget_lists(s, s->port); // ...then reparentize. _k_view_list_kryptonize(s->dyn_views->contents); } @@ -3318,8 +3043,7 @@ kAnimate(state_t *s, int funct_nr, int argc, reg_t *argv) #define SHAKE_DOWN 1 #define SHAKE_RIGHT 2 -reg_t -kShakeScreen(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kShakeScreen(state_t *s, int funct_nr, int argc, reg_t *argv) { int shakes = SKPV_OR_ALT(0, 1); int directions = SKPV_OR_ALT(1, 1); gfx_pixmap_t *screen = gfxop_grab_pixmap(s->gfx_state, gfx_rect(0, 0, 320, 200)); @@ -3346,7 +3070,6 @@ kShakeScreen(state_t *s, int funct_nr, int argc, reg_t *argv) { gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 50000); - gfxop_draw_pixmap(s->gfx_state, screen, gfx_rect(0, 0, 320, 200), Common::Point(0, 0)); gfxop_update(s->gfx_state); gfxop_usleep(s->gfx_state, 50000); @@ -3368,9 +3091,7 @@ kShakeScreen(state_t *s, int funct_nr, int argc, reg_t *argv) { #define K_DISPLAY_RESTORE_UNDER 108 #define K_DONT_UPDATE_IMMEDIATELY 121 - -reg_t -kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { +reg_t kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { int argpt; reg_t textp = argv[0]; int index = UKPV_OR_ALT(1, 0); @@ -3383,8 +3104,7 @@ kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { gfx_color_t color0, *color1, bg_color; gfx_alignment_t halign = ALIGN_LEFT; - rect_t area = gfx_rect(port->draw_pos.x, port->draw_pos.y, - 320 - port->draw_pos.x, 200 - port->draw_pos.y); + rect_t area = gfx_rect(port->draw_pos.x, port->draw_pos.y, 320 - port->draw_pos.x, 200 - port->draw_pos.y); int gray = port->gray_text; int font_nr = port->font_nr; gfxw_text_t *text_handle; @@ -3392,10 +3112,9 @@ kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { color0 = port->color; bg_color = port->bgcolor; - if (textp.segment) { argpt = 1; - text = (char *) kernel_dereference_bulk_pointer(s, textp, 0); + text = (char *)kernel_dereference_bulk_pointer(s, textp, 0); } else { argpt = 2; text = kernel_lookup_text(s, textp, index); @@ -3407,7 +3126,6 @@ kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { } while (argpt < argc) { - switch (UKPV(argpt++)) { case K_DISPLAY_SET_COORDS: @@ -3508,16 +3226,14 @@ kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { if (s->version >= SCI_VERSION_FTU_DISPLAY_COORDS_FUZZY) { if (halign == ALIGN_LEFT) - GFX_ASSERT(gfxop_get_text_params(s->gfx_state, font_nr, text, - area.xl, &area.xl, &area.yl, 0, - NULL, NULL, NULL)); + GFX_ASSERT(gfxop_get_text_params(s->gfx_state, font_nr, text, area.xl, &area.xl, &area.yl, 0, NULL, NULL, NULL)); - /* Make the text fit on the screen */ + // Make the text fit on the screen if (area.x + area.xl > 320) - area.x += 320 - area.x - area.xl; /* Plus negative number = subtraction */ + area.x += 320 - area.x - area.xl; // Plus negative number = subtraction if (area.y + area.yl > 200) { - area.y += 200 - area.y - area.yl; /* Plus negative number = subtraction */ + area.y += 200 - area.y - area.yl; // Plus negative number = subtraction } } @@ -3528,36 +3244,30 @@ kDisplay(state_t *s, int funct_nr, int argc, reg_t *argv) { assert_primary_widget_lists(s); - text_handle = gfxw_new_text(s->gfx_state, area, font_nr, text, halign, - ALIGN_TOP, color0, *color1, bg_color, 0); + text_handle = gfxw_new_text(s->gfx_state, area, font_nr, text, halign, ALIGN_TOP, color0, *color1, bg_color, 0); if (!text_handle) { SCIkwarn(SCIkERROR, "Display: Failed to create text widget!\n"); return NULL_REG; } - if (save_under) { /* Backup */ + if (save_under) { // Backup rect_t save_area = text_handle->bounds; save_area.x += port->bounds.x; save_area.y += port->bounds.y; s->r_acc = graph_save_box(s, save_area); - text_handle->serial++; /* This is evil! */ - - SCIkdebug(SCIkGRAPHICS, "Saving (%d, %d) size (%d, %d) as "PREG"\n", - save_area.x, save_area.y, save_area.xl, save_area.yl, s->r_acc); + text_handle->serial++; // This is evil! + SCIkdebug(SCIkGRAPHICS, "Saving (%d, %d) size (%d, %d) as "PREG"\n", save_area.x, save_area.y, save_area.xl, save_area.yl, s->r_acc); } - SCIkdebug(SCIkGRAPHICS, "Display: Commiting text '%s'\n", text); - /* - ADD_TO_CURRENT_FG_WIDGETS(text_handle); - */ + //ADD_TO_CURRENT_FG_WIDGETS(text_handle); ADD_TO_CURRENT_FG_WIDGETS(GFXW(text_handle)); - if ((!s->pic_not_valid) && update_immediately) { /* Refresh if drawn to valid picture */ + if ((!s->pic_not_valid) && update_immediately) { // Refresh if drawn to valid picture FULL_REDRAW(); SCIkdebug(SCIkGRAPHICS, "Refreshing display...\n"); } |