ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/cfperl.xs
(Generate patch)

Comparing deliantra/server/server/cfperl.xs (file contents):
Revision 1.29 by root, Wed Aug 30 08:28:33 2006 UTC vs.
Revision 1.31 by root, Wed Aug 30 12:08:15 2006 UTC

501 } 501 }
502 502
503 FREETMPS; 503 FREETMPS;
504 LEAVE; 504 LEAVE;
505 } 505 }
506}
507
508// compatibility support, should be removed when no longer needed
509int fprintf (object_freezer &freezer, const char *format, ...)
510{
511 va_list ap;
512
513 va_start (ap, format);
514 vfprintf (freezer.fp, format, ap);
515 va_end (ap);
516}
517
518int fputs (const char *s, object_freezer &freezer)
519{
520 fputs (s, freezer.fp);
506} 521}
507 522
508void object_thawer::get (data_type type, void *obj, attachable_base *ext, int oid) 523void object_thawer::get (data_type type, void *obj, attachable_base *ext, int oid)
509{ 524{
510 if (!av || oid < 0) // this is actually an error of sorts 525 if (!av || oid < 0) // this is actually an error of sorts
2316 case 7: RETVAL = newSVuv ( GET_MAP_MOVE_OFF (obj, x, y)); break; 2331 case 7: RETVAL = newSVuv ( GET_MAP_MOVE_OFF (obj, x, y)); break;
2317 } 2332 }
2318 OUTPUT: 2333 OUTPUT:
2319 RETVAL 2334 RETVAL
2320 2335
2321# "deserialise" perl map data into the map # TODO# compatibility cruft, remove
2322void
2323_set_obs (mapstruct *map, SV *sv)
2324 CODE:
2325{
2326 object *o;
2327 AV *av;
2328 int x, y;
2329 AV *obs = (AV *)SvRV (sv);
2330
2331 for (y = 0; y < MAP_HEIGHT (map); y++)
2332 for (x = 0; x < MAP_WIDTH (map); x++)
2333 {
2334 sv = *av_fetch (obs, x + y * MAP_HEIGHT (map), 1);
2335
2336 if (!SvROK (sv))
2337 continue;
2338
2339 av = (AV *)SvRV (sv);
2340
2341 for (o = GET_MAP_OB (map, x, y); o; o = o->above)
2342 {
2343 sv = av_shift (av);
2344
2345 if (SvROK (sv))
2346 {
2347 sv_magic ((SV *)SvRV (sv), 0, PERL_MAGIC_ext, (char *)o, 0);
2348 SVptr_cache_set (o, sv);
2349 }
2350 }
2351 }
2352}
2353
2354 2336
2355MODULE = cf PACKAGE = cf::arch 2337MODULE = cf PACKAGE = cf::arch
2356 2338
2357archetype *first() 2339archetype *first()
2358 PROTOTYPE: 2340 PROTOTYPE:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines