ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/Client.xs
(Generate patch)

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.259 by root, Tue May 20 02:47:21 2008 UTC vs.
Revision 1.260 by root, Tue May 20 20:29:47 2008 UTC

2292 else 2292 else
2293 *data++ = 0; 2293 *data++ = 0;
2294 } 2294 }
2295 } 2295 }
2296 2296
2297 /* if size is w*h + 5 then no data has been found */
2297 if (data - (uint8_t *)SvPVX (data_sv) == w * h + 5) 2298 if (data - (uint8_t *)SvPVX (data_sv) != w * h + 5)
2298 {
2299 SvREFCNT_dec (data_sv);
2300 RETVAL = &PL_sv_undef;
2301 }
2302 else
2303 { 2299 {
2304 SvPOK_only (data_sv); 2300 SvPOK_only (data_sv);
2305 SvCUR_set (data_sv, data - (uint8_t *)SvPVX (data_sv)); 2301 SvCUR_set (data_sv, data - (uint8_t *)SvPVX (data_sv));
2306 RETVAL = data_sv;
2307 } 2302 }
2303
2304 RETVAL = data_sv;
2308} 2305}
2309 OUTPUT: 2306 OUTPUT:
2310 RETVAL 2307 RETVAL
2311 2308
2312void 2309void
2318 int x1, y1; 2315 int x1, y1;
2319 STRLEN len; 2316 STRLEN len;
2320 uint8_t *data, *end; 2317 uint8_t *data, *end;
2321 2318
2322 len = SvLEN (data_sv); 2319 len = SvLEN (data_sv);
2323 SvGROW (data_sv, len + 7); // reserve at least 7+ bytes more 2320 SvGROW (data_sv, len + 8); // reserve at least 7+ bytes more
2324 data = SvPVbyte_nolen (data_sv); 2321 data = SvPVbyte_nolen (data_sv);
2325 end = data + len + 7; 2322 end = data + len + 8;
2326 2323
2327 if (len < 5) 2324 if (len < 5)
2328 XSRETURN_EMPTY; 2325 XSRETURN_EMPTY;
2329 2326
2330 if (*data++ != 0) 2327 if (*data++ != 0)
2366 if (flags & 2) { tile[1] = *data++ << 8; tile[1] |= *data++; } 2363 if (flags & 2) { tile[1] = *data++ << 8; tile[1] |= *data++; }
2367 if (flags & 4) { tile[2] = *data++ << 8; tile[2] |= *data++; } 2364 if (flags & 4) { tile[2] = *data++ << 8; tile[2] |= *data++; }
2368 2365
2369 if (cell->darkness == 0) 2366 if (cell->darkness == 0)
2370 { 2367 {
2371 cell->darkness = 0; 2368 /*cell->darkness = 0;*/
2369 EXTEND (SP, 3);
2372 2370
2373 for (z = 0; z <= 2; z++) 2371 for (z = 0; z <= 2; z++)
2374 { 2372 {
2375 tileid t = tile [z]; 2373 tileid t = tile [z];
2376 2374
2377 if (t >= self->texs || (t && !self->tex [t].name)) 2375 if (t >= self->texs || (t && !self->tex [t].name))
2378 { 2376 {
2379 XPUSHs (sv_2mortal (newSViv (t))); 2377 PUSHs (sv_2mortal (newSViv (t)));
2380 need_texid (self, t); 2378 need_texid (self, t);
2381 } 2379 }
2382 2380
2383 cell->tile [z] = t; 2381 cell->tile [z] = t;
2384 } 2382 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines