… | |
… | |
1659 | NV rndm (...) |
1659 | NV rndm (...) |
1660 | ALIAS: |
1660 | ALIAS: |
1661 | rmg_rndm = 1 |
1661 | rmg_rndm = 1 |
1662 | CODE: |
1662 | CODE: |
1663 | { |
1663 | { |
1664 | rand_gen &gen = ix ? rmg_rndm : rndm; |
1664 | rand_gen &gen = ix ? rmg_rndm : rndm; |
1665 | switch (items) |
1665 | switch (items) |
1666 | { |
1666 | { |
1667 | case 0: RETVAL = gen (); break; |
1667 | case 0: RETVAL = gen (); break; |
1668 | case 1: RETVAL = gen (SvUV (ST (0))); break; |
1668 | case 1: RETVAL = gen (SvUV (ST (0))); break; |
1669 | case 2: RETVAL = gen (SvIV (ST (0)), SvIV (ST (1))); break; |
1669 | case 2: RETVAL = gen (SvIV (ST (0)), SvIV (ST (1))); break; |
… | |
… | |
1793 | PUSHs (sv_2mortal (newSVpv ("objects" , 0))); PUSHs (sv_2mortal (newSVuv (objects.size () * sizeof (object)))); |
1793 | PUSHs (sv_2mortal (newSVpv ("objects" , 0))); PUSHs (sv_2mortal (newSVuv (objects.size () * sizeof (object)))); |
1794 | PUSHs (sv_2mortal (newSVpv ("sv_count" , 0))); PUSHs (sv_2mortal (newSVuv (PL_sv_count))); |
1794 | PUSHs (sv_2mortal (newSVpv ("sv_count" , 0))); PUSHs (sv_2mortal (newSVuv (PL_sv_count))); |
1795 | PUSHs (sv_2mortal (newSVpv ("sv_objcount", 0))); PUSHs (sv_2mortal (newSVuv (PL_sv_objcount))); |
1795 | PUSHs (sv_2mortal (newSVpv ("sv_objcount", 0))); PUSHs (sv_2mortal (newSVuv (PL_sv_objcount))); |
1796 | } |
1796 | } |
1797 | |
1797 | |
1798 | int find_animation (utf8_string text) |
|
|
1799 | PROTOTYPE: $ |
|
|
1800 | |
|
|
1801 | int random_roll (int min, int max, object *op, int goodbad); |
1798 | int random_roll (int min, int max, object *op, int goodbad); |
1802 | |
1799 | |
1803 | const_utf8_string cost_string_from_value(uint64 cost, int approx = 0) |
1800 | const_utf8_string cost_string_from_value(uint64 cost, int approx = 0) |
1804 | |
1801 | |
1805 | int exp_to_level (val64 exp) |
1802 | int exp_to_level (val64 exp) |
… | |
… | |
1890 | load_resource_file_ (octet_string filename) |
1887 | load_resource_file_ (octet_string filename) |
1891 | |
1888 | |
1892 | void |
1889 | void |
1893 | fix_weight () |
1890 | fix_weight () |
1894 | |
1891 | |
|
|
1892 | utf8_string |
|
|
1893 | expand_cfpod (int hintmode, int gender, const_utf8_string cfpod) |
|
|
1894 | PPCODE: |
|
|
1895 | XPUSHs (to_sv (player::expand_cfpod (hintmode, gender, cfpod))); |
|
|
1896 | |
1895 | MODULE = cf PACKAGE = cf::attachable |
1897 | MODULE = cf PACKAGE = cf::attachable |
1896 | |
1898 | |
1897 | int |
1899 | int |
1898 | valid (SV *obj) |
1900 | valid (SV *obj) |
1899 | CODE: |
1901 | CODE: |
… | |
… | |
2121 | int convert_item (object *item, object *converter) |
2123 | int convert_item (object *item, object *converter) |
2122 | |
2124 | |
2123 | void fix_generated_item (object *op, object *creator, int difficulty, int max_magic, int flags); |
2125 | void fix_generated_item (object *op, object *creator, int difficulty, int max_magic, int flags); |
2124 | |
2126 | |
2125 | MODULE = cf PACKAGE = cf::object PREFIX = cf_ |
2127 | MODULE = cf PACKAGE = cf::object PREFIX = cf_ |
2126 | |
|
|
2127 | # no clean way to get an object from an archetype - stupid idiotic |
|
|
2128 | # dumb kludgy misdesigned plug-in api slowly gets on my nerves. |
|
|
2129 | |
2128 | |
2130 | object *new (utf8_string archetype = 0) |
2129 | object *new (utf8_string archetype = 0) |
2131 | PROTOTYPE: ;$ |
2130 | PROTOTYPE: ;$ |
2132 | CODE: |
2131 | CODE: |
2133 | RETVAL = archetype |
2132 | RETVAL = archetype |
… | |
… | |
2600 | archetype *skillvec (U32 index) |
2599 | archetype *skillvec (U32 index) |
2601 | CODE: |
2600 | CODE: |
2602 | RETVAL = index < skillvec.size () ? (archetype *)(object *)skillvec [index] : 0; |
2601 | RETVAL = index < skillvec.size () ? (archetype *)(object *)skillvec [index] : 0; |
2603 | OUTPUT: RETVAL |
2602 | OUTPUT: RETVAL |
2604 | |
2603 | |
|
|
2604 | void |
|
|
2605 | find_by_type (int type) |
|
|
2606 | PPCODE: |
|
|
2607 | for_all_archetypes (arch) |
|
|
2608 | if (arch->type == type) |
|
|
2609 | XPUSHs (sv_2mortal (to_sv (arch))); |
|
|
2610 | |
2605 | INCLUDE: $PERL $srcdir/genacc archetype $srcdir/../include/object.h | |
2611 | INCLUDE: $PERL $srcdir/genacc archetype $srcdir/../include/object.h | |
2606 | |
2612 | |
2607 | MODULE = cf PACKAGE = cf::party |
2613 | MODULE = cf PACKAGE = cf::party |
2608 | |
2614 | |
2609 | partylist *first () |
2615 | partylist *first () |
… | |
… | |
2936 | XPUSHs (sv_2mortal (newSVpv_utf8 (self->get_str ()))); |
2942 | XPUSHs (sv_2mortal (newSVpv_utf8 (self->get_str ()))); |
2937 | |
2943 | |
2938 | self->skip (); |
2944 | self->skip (); |
2939 | } |
2945 | } |
2940 | |
2946 | |
|
|
2947 | MODULE = cf PACKAGE = cf::treasurelist |
|
|
2948 | |
|
|
2949 | # quick hack, because I didn't want to implement accessors for treasurelist. |
|
|
2950 | # this asks for even more autogen, actually. |
|
|
2951 | |
|
|
2952 | void |
|
|
2953 | expand (treasurelist *list) |
|
|
2954 | PPCODE: |
|
|
2955 | EXTEND (SP, 3); |
|
|
2956 | PUSHs (sv_2mortal (to_sv (list->name))); |
|
|
2957 | PUSHs (sv_2mortal (to_sv (list->total_chance))); |
|
|
2958 | AV *av = newAV (); |
|
|
2959 | PUSHs (sv_2mortal (newRV_noinc ((SV *)av))); |
|
|
2960 | for (treasure *item = list->items; item; item = item->next) |
|
|
2961 | { |
|
|
2962 | AV *iav = newAV (); |
|
|
2963 | av_push (av, newRV_noinc ((SV *)iav)); |
|
|
2964 | |
|
|
2965 | av_extend (iav, 7); |
|
|
2966 | av_push (iav, to_sv (item->item)); |
|
|
2967 | av_push (iav, to_sv (item->name)); |
|
|
2968 | av_push (iav, to_sv (item->change_arch.name)); |
|
|
2969 | av_push (iav, to_sv (item->change_arch.title)); |
|
|
2970 | av_push (iav, to_sv (item->change_arch.slaying)); |
|
|
2971 | av_push (iav, to_sv (item->chance)); |
|
|
2972 | av_push (iav, to_sv (item->nrof)); |
|
|
2973 | av_push (iav, to_sv (item->magic)); |
|
|
2974 | } |
|
|
2975 | |
2941 | MODULE = cf PACKAGE = cf::layout |
2976 | MODULE = cf PACKAGE = cf::layout |
2942 | |
2977 | |
2943 | INCLUDE: $PERL $srcdir/genacc layout $srcdir/../include/rmg.h | |
2978 | INCLUDE: $PERL $srcdir/genacc layout $srcdir/../include/rmg.h | |
2944 | |
2979 | |