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.414 by root, Tue Oct 30 17:07:50 2012 UTC vs.
Revision 1.418 by root, Sun Nov 11 01:27:44 2012 UTC

1579 1579
1580void init_dynamic () 1580void init_dynamic ()
1581 1581
1582void load_settings () 1582void load_settings ()
1583 1583
1584void reload_exp_table () 1584void _reload_exp_table ()
1585 1585
1586void reload_materials () 1586void _reload_materials ()
1587 1587
1588void init_uuid () 1588void init_uuid ()
1589 CODE: 1589 CODE:
1590 UUID::init (); 1590 UUID::init ();
1591 1591
1800 1800
1801int exp_to_level (val64 exp) 1801int exp_to_level (val64 exp)
1802 1802
1803val64 level_to_min_exp (int level) 1803val64 level_to_min_exp (int level)
1804 1804
1805const_utf8_string
1806spellpathnames (int idx)
1807 CODE:
1808 RETVAL = spellpathnames [idx];
1809 OUTPUT: RETVAL
1810
1805SV * 1811SV *
1806attacktype_name (int atnr) 1812attacktype_name (int atnr)
1807 CODE: 1813 CODE:
1808 RETVAL = IN_RANGE_EXC (atnr, 0, NROFATTACKS) 1814 RETVAL = IN_RANGE_EXC (atnr, 0, NROFATTACKS)
1809 ? newSVpv (attacktype_name [atnr], 0) 1815 ? newSVpv (attacktype_name [atnr], 0)
2580archetype *archetypes (U32 index) 2586archetype *archetypes (U32 index)
2581 CODE: 2587 CODE:
2582 RETVAL = index < archetypes.size () ? archetypes [index] : 0; 2588 RETVAL = index < archetypes.size () ? archetypes [index] : 0;
2583 OUTPUT: RETVAL 2589 OUTPUT: RETVAL
2584 2590
2591int skillvec_size ()
2592 CODE:
2593 RETVAL = skillvec.size ();
2594 OUTPUT: RETVAL
2595
2596archetype *skillvec (U32 index)
2597 CODE:
2598 RETVAL = index < skillvec.size () ? (archetype *)(object *)skillvec [index] : 0;
2599 OUTPUT: RETVAL
2600
2585INCLUDE: $PERL $srcdir/genacc archetype $srcdir/../include/object.h | 2601INCLUDE: $PERL $srcdir/genacc archetype $srcdir/../include/object.h |
2586 2602
2587MODULE = cf PACKAGE = cf::party 2603MODULE = cf PACKAGE = cf::party
2588 2604
2589partylist *first () 2605partylist *first ()
2761 faceinfo *f = face_info (idx); assert (f); 2777 faceinfo *f = face_info (idx); assert (f);
2762 facedata *d = f->face + faceset; 2778 facedata *d = f->face + faceset;
2763 sv_to (data, d->data); 2779 sv_to (data, d->data);
2764 STRLEN clen; 2780 STRLEN clen;
2765 char *cdata = SvPVbyte (chksum, clen); 2781 char *cdata = SvPVbyte (chksum, clen);
2766 clen = min (CHKSUM_MAXLEN, clen);
2767 2782
2783 assert (("cf::face::set_data called with too long checksum", clen <= CHKSUM_MAXLEN));
2768 assert (("cf::face::set_data must be called with a non-empty checksum", clen)); 2784 assert (("cf::face::set_data must be called with a non-empty checksum", clen));
2769 2785
2770 if (clen != d->chksum_len || memcmp (d->chksum, cdata, clen)) 2786 if (clen != d->chksum_len || memcmp (d->chksum, cdata, clen))
2771 { 2787 {
2772 d->chksum_len = clen; 2788 d->chksum_len = clen;
2773 memcpy (d->chksum, cdata, clen); 2789 memcpy (d->chksum, cdata, clen);
2774 2790
2775 // invalidate existing client face info 2791 // invalidate existing client face info
2776 for_all_clients (ns) 2792 for_all_clients (ns)
2777 if (ns->faceset == faceset) 2793 ns->invalidate_face (idx);
2778 {
2779 ns->faces_sent [idx] = false;
2780 ns->force_newmap = true;
2781 }
2782 } 2794 }
2783} 2795}
2784 2796
2785int get_data_size (faceidx idx, int faceset = 0) 2797int get_data_size (faceidx idx, int faceset = 0)
2786 CODE: 2798 CODE:
2796 faceinfo *f = face_info (idx); assert (f); 2808 faceinfo *f = face_info (idx); assert (f);
2797 SvREFCNT_dec (f->meta_hv); 2809 SvREFCNT_dec (f->meta_hv);
2798 f->meta_hv = SvOK (sv) ? (HV *)SvREFCNT_inc (SvRV (sv)) : 0; 2810 f->meta_hv = SvOK (sv) ? (HV *)SvREFCNT_inc (SvRV (sv)) : 0;
2799} 2811}
2800 2812
2813SV *mangle_chksum (SV *chksum)
2814 CODE:
2815 STRLEN len;
2816 char *data = SvPVbyte (chksum, len);
2817 RETVAL = newSVpvn (data, min (len, CHKSUM_MAXLEN));
2818 OUTPUT:
2819 RETVAL
2820
2801SV *get_chksum (faceidx idx, int faceset = 0) 2821SV *get_chksum (faceidx idx, int faceset = 0)
2802 CODE: 2822 CODE:
2803 facedata *d = face_data (idx, faceset); 2823 facedata *d = face_data (idx, faceset);
2804 if (!d) XSRETURN_UNDEF; 2824 if (!d) XSRETURN_UNDEF;
2805 RETVAL = newSVpvn ((char *)d->chksum, d->chksum_len); 2825 RETVAL = newSVpvn ((char *)d->chksum, d->chksum_len);
2809int get_type (faceidx idx) 2829int get_type (faceidx idx)
2810 CODE: 2830 CODE:
2811 faceinfo *f = face_info (idx); 2831 faceinfo *f = face_info (idx);
2812 if (!f) XSRETURN_UNDEF; 2832 if (!f) XSRETURN_UNDEF;
2813 RETVAL = f->type; 2833 RETVAL = f->type;
2834 OUTPUT:
2835 RETVAL
2836
2837SV *get_name (faceidx idx)
2838 CODE:
2839 faceinfo *f = face_info (idx);
2840 if (!f) XSRETURN_UNDEF;
2841 RETVAL = to_sv (f->name);
2814 OUTPUT: 2842 OUTPUT:
2815 RETVAL 2843 RETVAL
2816 2844
2817SV *get_data (faceidx idx, int faceset = 0) 2845SV *get_data (faceidx idx, int faceset = 0)
2818 CODE: 2846 CODE:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines