--- deliantra/Deliantra-Client/Client.xs 2008/05/20 02:47:21 1.259 +++ deliantra/Deliantra-Client/Client.xs 2008/05/20 20:29:47 1.260 @@ -2294,17 +2294,14 @@ } } - if (data - (uint8_t *)SvPVX (data_sv) == w * h + 5) - { - SvREFCNT_dec (data_sv); - RETVAL = &PL_sv_undef; - } - else + /* if size is w*h + 5 then no data has been found */ + if (data - (uint8_t *)SvPVX (data_sv) != w * h + 5) { SvPOK_only (data_sv); SvCUR_set (data_sv, data - (uint8_t *)SvPVX (data_sv)); - RETVAL = data_sv; } + + RETVAL = data_sv; } OUTPUT: RETVAL @@ -2320,9 +2317,9 @@ uint8_t *data, *end; len = SvLEN (data_sv); - SvGROW (data_sv, len + 7); // reserve at least 7+ bytes more + SvGROW (data_sv, len + 8); // reserve at least 7+ bytes more data = SvPVbyte_nolen (data_sv); - end = data + len + 7; + end = data + len + 8; if (len < 5) XSRETURN_EMPTY; @@ -2368,7 +2365,8 @@ if (cell->darkness == 0) { - cell->darkness = 0; + /*cell->darkness = 0;*/ + EXTEND (SP, 3); for (z = 0; z <= 2; z++) { @@ -2376,7 +2374,7 @@ if (t >= self->texs || (t && !self->tex [t].name)) { - XPUSHs (sv_2mortal (newSViv (t))); + PUSHs (sv_2mortal (newSViv (t))); need_texid (self, t); }