… | |
… | |
964 | } |
964 | } |
965 | |
965 | |
966 | SV * |
966 | SV * |
967 | cfperl_result (int idx) |
967 | cfperl_result (int idx) |
968 | { |
968 | { |
969 | AV *av = get_av ("cfperl::invoke_results", 0); |
969 | AV *av = get_av ("cf::INVOKE_RESULTS", 0); |
970 | if (!av) |
970 | if (!av) |
971 | return &PL_sv_undef; |
971 | return &PL_sv_undef; |
972 | |
972 | |
973 | SV **sv = av_fetch (av, idx, 0); |
973 | SV **sv = av_fetch (av, idx, 0); |
974 | if (!sv) |
974 | if (!sv) |
… | |
… | |
1021 | void |
1021 | void |
1022 | cfperl_send_msg (client *ns, int color, const char *type, const char *msg) |
1022 | cfperl_send_msg (client *ns, int color, const char *type, const char *msg) |
1023 | { |
1023 | { |
1024 | CALL_BEGIN (4); |
1024 | CALL_BEGIN (4); |
1025 | CALL_ARG (ns); |
1025 | CALL_ARG (ns); |
1026 | CALL_ARG (color); |
|
|
1027 | CALL_ARG (type); |
1026 | CALL_ARG (type); |
1028 | CALL_ARG_SV (newSVpv_utf8 (msg)); |
1027 | CALL_ARG_SV (newSVpv_utf8 (msg)); |
|
|
1028 | CALL_ARG (color); |
1029 | CALL_CALL ("cf::client::send_msg", G_VOID); |
1029 | CALL_CALL ("cf::client::send_msg", G_VOID); |
1030 | CALL_END; |
1030 | CALL_END; |
|
|
1031 | } |
|
|
1032 | |
|
|
1033 | int |
|
|
1034 | cfperl_can_merge (object *ob1, object *ob2) |
|
|
1035 | { |
|
|
1036 | int can; |
|
|
1037 | |
|
|
1038 | CALL_BEGIN (2); |
|
|
1039 | CALL_ARG (ob1); |
|
|
1040 | CALL_ARG (ob2); |
|
|
1041 | CALL_CALL ("cf::_can_merge", G_SCALAR); |
|
|
1042 | can = count && SvTRUE (TOPs); |
|
|
1043 | CALL_END; |
|
|
1044 | |
|
|
1045 | return can; |
1031 | } |
1046 | } |
1032 | |
1047 | |
1033 | maptile * |
1048 | maptile * |
1034 | maptile::find_sync (const char *path, maptile *origin) |
1049 | maptile::find_sync (const char *path, maptile *origin) |
1035 | { |
1050 | { |
… | |
… | |
1549 | |
1564 | |
1550 | for_all_objects (op) |
1565 | for_all_objects (op) |
1551 | op->reattach (); |
1566 | op->reattach (); |
1552 | } |
1567 | } |
1553 | |
1568 | |
1554 | void _post_tick () |
|
|
1555 | CODE: |
|
|
1556 | coroapi::next_cede = SvNV (sv_next_tick) - TICK * (1. - 1. / CEDES_PER_TICK); |
|
|
1557 | |
|
|
1558 | # support function for map-world.ext |
1569 | # support function for map-world.ext |
1559 | void _quantise (SV *data_sv, SV *plt_sv) |
1570 | void _quantise (SV *data_sv, SV *plt_sv) |
1560 | CODE: |
1571 | CODE: |
1561 | { |
1572 | { |
1562 | if (!SvROK (plt_sv) || SvTYPE (SvRV (plt_sv)) != SVt_PVAV) |
1573 | if (!SvROK (plt_sv) || SvTYPE (SvRV (plt_sv)) != SVt_PVAV) |
… | |
… | |
1594 | len -= 3; |
1605 | len -= 3; |
1595 | } |
1606 | } |
1596 | |
1607 | |
1597 | SvCUR_set (data_sv, dst - SvPVX (data_sv)); |
1608 | SvCUR_set (data_sv, dst - SvPVX (data_sv)); |
1598 | } |
1609 | } |
|
|
1610 | |
|
|
1611 | void _post_tick () |
|
|
1612 | CODE: |
|
|
1613 | coroapi::next_cede = SvNV (sv_next_tick) - TICK * (1. - 1. / CEDES_PER_TICK); |
|
|
1614 | |
|
|
1615 | NV till_cede () |
|
|
1616 | CODE: |
|
|
1617 | RETVAL = coroapi::next_cede - now (); |
|
|
1618 | OUTPUT: |
|
|
1619 | RETVAL |
|
|
1620 | |
|
|
1621 | NV till_tick () |
|
|
1622 | CODE: |
|
|
1623 | RETVAL = SvNV (sv_next_tick) - now (); |
|
|
1624 | OUTPUT: |
|
|
1625 | RETVAL |
1599 | |
1626 | |
1600 | NV floor (NV x) |
1627 | NV floor (NV x) |
1601 | |
1628 | |
1602 | NV ceil (NV x) |
1629 | NV ceil (NV x) |
1603 | |
1630 | |
… | |
… | |
2008 | void use_trigger (object *op); |
2035 | void use_trigger (object *op); |
2009 | |
2036 | |
2010 | void add_button_link (object *button, maptile *map, int connected); |
2037 | void add_button_link (object *button, maptile *map, int connected); |
2011 | |
2038 | |
2012 | void remove_button_link (object *op); |
2039 | void remove_button_link (object *op); |
|
|
2040 | |
|
|
2041 | void handle_apply_yield (object *op); |
2013 | |
2042 | |
2014 | |
2043 | |
2015 | MODULE = cf PACKAGE = cf::object PREFIX = cf_ |
2044 | MODULE = cf PACKAGE = cf::object PREFIX = cf_ |
2016 | |
2045 | |
2017 | object *cf_insert_ob_in_ob (object *ob, object *where) |
2046 | object *cf_insert_ob_in_ob (object *ob, object *where) |
… | |
… | |
2592 | char *buf = SvPVbyte (packet, len); |
2621 | char *buf = SvPVbyte (packet, len); |
2593 | |
2622 | |
2594 | THIS->send_packet (buf, len); |
2623 | THIS->send_packet (buf, len); |
2595 | } |
2624 | } |
2596 | |
2625 | |
|
|
2626 | faceidx |
|
|
2627 | client::find_face (utf8_string name, faceidx defidx = 0) |
|
|
2628 | CODE: |
|
|
2629 | RETVAL = face_find (name, defidx); |
|
|
2630 | THIS->send_face (RETVAL); |
|
|
2631 | THIS->flush_fx (); |
|
|
2632 | OUTPUT: |
|
|
2633 | RETVAL |
|
|
2634 | |
2597 | MODULE = cf PACKAGE = cf::face PREFIX = face_ |
2635 | MODULE = cf PACKAGE = cf::face PREFIX = face_ |
2598 | |
2636 | |
2599 | #INCLUDE: $PERL $srcdir/genacc faceset ../include/face.h | |
2637 | #INCLUDE: $PERL $srcdir/genacc faceset ../include/face.h | |
2600 | |
2638 | |
2601 | faceidx face_find (utf8_string name, faceidx defidx = 0) |
2639 | faceidx face_find (utf8_string name, faceidx defidx = 0) |