… | |
… | |
1939 | void |
1939 | void |
1940 | inv (object *obj) |
1940 | inv (object *obj) |
1941 | PROTOTYPE: $ |
1941 | PROTOTYPE: $ |
1942 | PPCODE: |
1942 | PPCODE: |
1943 | { |
1943 | { |
1944 | object *o; |
|
|
1945 | for (o = obj->inv; o; o = o->below) |
1944 | for (object *o = obj->inv; o; o = o->below) |
1946 | XPUSHs (sv_2mortal (to_sv (o))); |
1945 | XPUSHs (sv_2mortal (to_sv (o))); |
1947 | } |
1946 | } |
1948 | |
1947 | |
1949 | void |
1948 | void |
1950 | set_animation (object *op, int idx) |
1949 | set_animation (object *op, int idx) |
… | |
… | |
2150 | CODE: |
2149 | CODE: |
2151 | RETVAL = query_base_name (op, plural); |
2150 | RETVAL = query_base_name (op, plural); |
2152 | OUTPUT: RETVAL |
2151 | OUTPUT: RETVAL |
2153 | |
2152 | |
2154 | object *decrease_ob_nr (object *op, unsigned long i) |
2153 | object *decrease_ob_nr (object *op, unsigned long i) |
|
|
2154 | |
|
|
2155 | # return the tail of an object, excluding itself |
|
|
2156 | void |
|
|
2157 | tail (object *op) |
|
|
2158 | PPCODE: |
|
|
2159 | while ((op = op->more)) |
|
|
2160 | XPUSHs (sv_2mortal (to_sv (op))); |
2155 | |
2161 | |
2156 | MODULE = cf PACKAGE = cf::object::player PREFIX = cf_player_ |
2162 | MODULE = cf PACKAGE = cf::object::player PREFIX = cf_player_ |
2157 | |
2163 | |
2158 | player *player (object *op) |
2164 | player *player (object *op) |
2159 | CODE: |
2165 | CODE: |
… | |
… | |
2260 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
2266 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
2261 | RETVAL = map->invoke ((event_type)event, ARG_AV (av), DT_END); |
2267 | RETVAL = map->invoke ((event_type)event, ARG_AV (av), DT_END); |
2262 | OUTPUT: RETVAL |
2268 | OUTPUT: RETVAL |
2263 | |
2269 | |
2264 | SV *registry (maptile *map) |
2270 | SV *registry (maptile *map) |
|
|
2271 | |
|
|
2272 | void |
|
|
2273 | find_tagged_objects (maptile *map, utf8_string tag = 0) |
|
|
2274 | PPCODE: |
|
|
2275 | { |
|
|
2276 | if (!map->spaces) |
|
|
2277 | XSRETURN_EMPTY; |
|
|
2278 | |
|
|
2279 | if (tag) |
|
|
2280 | { |
|
|
2281 | shstr_cmp tag_ (tag); |
|
|
2282 | |
|
|
2283 | for (mapspace *ms = map->spaces + map->size (); ms-- > map->spaces; ) |
|
|
2284 | for (object *op = ms->bot; op; op = op->above) |
|
|
2285 | if (op->tag == tag_) |
|
|
2286 | XPUSHs (sv_2mortal (to_sv (op))); |
|
|
2287 | } |
|
|
2288 | else |
|
|
2289 | { |
|
|
2290 | for (mapspace *ms = map->spaces + map->size (); ms-- > map->spaces; ) |
|
|
2291 | for (object *op = ms->bot; op; op = op->above) |
|
|
2292 | if (op->tag) |
|
|
2293 | XPUSHs (sv_2mortal (to_sv (op))); |
|
|
2294 | } |
|
|
2295 | } |
2265 | |
2296 | |
2266 | INCLUDE: $PERL $srcdir/genacc maptile ../include/map.h | |
2297 | INCLUDE: $PERL $srcdir/genacc maptile ../include/map.h | |
2267 | |
2298 | |
2268 | void |
2299 | void |
2269 | maptile::instantiate () |
2300 | maptile::instantiate () |
… | |
… | |
2874 | sv_to (sv, self); |
2905 | sv_to (sv, self); |
2875 | delete self; |
2906 | delete self; |
2876 | |
2907 | |
2877 | void |
2908 | void |
2878 | extract_tags (object_thawer *self) |
2909 | extract_tags (object_thawer *self) |
2879 | CODE: |
2910 | PPCODE: |
2880 | while (self->kw != KW_EOF) |
2911 | while (self->kw != KW_EOF) |
2881 | { |
2912 | { |
|
|
2913 | PUTBACK; |
2882 | coroapi::cede_to_tick_every (5000); |
2914 | coroapi::cede_to_tick_every (5000); |
|
|
2915 | SPAGAIN; |
2883 | |
2916 | |
2884 | if (self->kw == KW_tag) |
2917 | if (self->kw == KW_tag) |
2885 | XPUSHs (sv_2mortal (to_sv (self->get_str ()))); |
2918 | XPUSHs (sv_2mortal (newSVpv_utf8 (self->get_str ()))); |
2886 | |
2919 | |
2887 | self->skip (); |
2920 | self->skip (); |
2888 | } |
2921 | } |
2889 | |
2922 | |