diff options
author | Filippos Karapetis | 2009-03-10 10:55:36 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-03-10 10:55:36 +0000 |
commit | d7b767d90c2c5bb19e3a76432a3ae6292324c89e (patch) | |
tree | f822699d238b84e0fd16f0fc306f6049aa5ef007 /engines/sci/gfx/resource/res_manager.cpp | |
parent | c908f3c3321fb04fbe5741a949ad4d20c85dfd68 (diff) | |
download | scummvm-rg350-d7b767d90c2c5bb19e3a76432a3ae6292324c89e.tar.gz scummvm-rg350-d7b767d90c2c5bb19e3a76432a3ae6292324c89e.tar.bz2 scummvm-rg350-d7b767d90c2c5bb19e3a76432a3ae6292324c89e.zip |
Reverted some of the changes of commit #39192. The cursor reading code has been placed back in a separate file, and not in the resource manager (but it's now 1 function)
svn-id: r39293
Diffstat (limited to 'engines/sci/gfx/resource/res_manager.cpp')
-rw-r--r-- | engines/sci/gfx/resource/res_manager.cpp | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/engines/sci/gfx/resource/res_manager.cpp b/engines/sci/gfx/resource/res_manager.cpp index c3646eb6b4..ee0694725b 100644 --- a/engines/sci/gfx/resource/res_manager.cpp +++ b/engines/sci/gfx/resource/res_manager.cpp @@ -36,17 +36,6 @@ namespace Sci { -#define CURSOR_RESOURCE_SIZE 68 -#define CURSOR_SIZE 16 - -#define GFX_CURSOR_TRANSPARENT 255 - -gfx_pixmap_color_t gfx_sci01_cursor_colors[3] = { - {GFX_COLOR_INDEX_UNMAPPED, 0x00, 0x00, 0x00}, - {GFX_COLOR_INDEX_UNMAPPED, 0xff, 0xff, 0xff}, - {GFX_COLOR_INDEX_UNMAPPED, 0xaa, 0xaa, 0xaa} -}; - int gfxr_interpreter_options_hash(gfx_resource_type_t type, int version, gfx_options_t *options, void *internal, int palette) { switch (type) { case GFX_RESOURCE_TYPE_VIEW: @@ -204,10 +193,6 @@ gfx_pixmap_t *gfxr_interpreter_get_cursor(gfx_resstate_t *state, int nr, void *i ResourceManager *resmgr = (ResourceManager *) state->misc_payload; Resource *res = resmgr->findResource(kResourceTypeCursor, nr, 0); int resid = GFXR_RES_ID(GFX_RESOURCE_TYPE_CURSOR, nr); - int colors[4] = {0, 1, GFX_CURSOR_TRANSPARENT, 1}; - int line; - byte *data; - gfx_pixmap_t *retval; if (!res || !res->data) return NULL; @@ -217,44 +202,7 @@ gfx_pixmap_t *gfxr_interpreter_get_cursor(gfx_resstate_t *state, int nr, void *i return NULL; } - if (state->version != SCI_VERSION_0) - colors[3] = 2; - - if (res->size != CURSOR_RESOURCE_SIZE) { - GFXERROR("Expected resource size of %d, but found %d\n", CURSOR_RESOURCE_SIZE, res->size); - return NULL; - } - - byte *resource = res->data; - - retval = gfx_pixmap_alloc_index_data(gfx_new_pixmap(CURSOR_SIZE, CURSOR_SIZE, resid, 0, 0)); - // FIXME: don't copy palette - retval->palette = new Palette(gfx_sci01_cursor_colors, (state->version != SCI_VERSION_0) ? 3 : 2); - retval->palette->name = "cursor"; - retval->color_key = GFX_CURSOR_TRANSPARENT; - - if (state->version != SCI_VERSION_0) { - retval->xoffset = READ_LE_UINT16(resource); - retval->yoffset = READ_LE_UINT16(resource + 2); - } else if (resource[3]) // center - retval->xoffset = retval->yoffset = CURSOR_SIZE / 2; - else - retval->xoffset = retval->yoffset = 0; - - resource += 4; - - data = retval->index_data; - for (line = 0; line < 16; line++) { - int mask_a = READ_LE_UINT16(resource + (line << 1)); - int mask_b = READ_LE_UINT16(resource + 32 + (line << 1)); - int i; - - for (i = 0; i < 16; i++) { - int color_code = ((mask_a << i) & 0x8000) | (((mask_b << i) >> 1) & 0x4000); - *data++ = colors[color_code >> 14]; - } - } - return retval; + return gfxr_draw_cursor(resid, res->data, res->size, state->version != SCI_VERSION_0); } int *gfxr_interpreter_get_resources(gfx_resstate_t *state, gfx_resource_type_t type, int version, int *entries_nr, void *internal) { |