… | |
… | |
1605 | const char *cost_string_from_value(uint64 cost, int approx = 0) |
1605 | const char *cost_string_from_value(uint64 cost, int approx = 0) |
1606 | |
1606 | |
1607 | int invoke (int event, ...) |
1607 | int invoke (int event, ...) |
1608 | CODE: |
1608 | CODE: |
1609 | if (KLASS_OF (event) != KLASS_GLOBAL) croak ("event class must be GLOBAL"); |
1609 | if (KLASS_OF (event) != KLASS_GLOBAL) croak ("event class must be GLOBAL"); |
1610 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); for (int i = 1; i < items; i++) av_push (av, ST (i)); |
1610 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
|
|
1611 | for (int i = 1; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
1611 | RETVAL = INVOKE_((event_type)event, ARG_AV (av)); |
1612 | RETVAL = INVOKE_((event_type)event, ARG_AV (av)); |
1612 | OUTPUT: RETVAL |
1613 | OUTPUT: RETVAL |
1613 | |
1614 | |
1614 | int |
1615 | int |
1615 | exp_to_level (val64 exp) |
1616 | exp_to_level (val64 exp) |
… | |
… | |
1653 | MODULE = cf PACKAGE = cf::object PREFIX = cf_object_ |
1654 | MODULE = cf PACKAGE = cf::object PREFIX = cf_object_ |
1654 | |
1655 | |
1655 | int invoke (object *op, int event, ...) |
1656 | int invoke (object *op, int event, ...) |
1656 | CODE: |
1657 | CODE: |
1657 | if (KLASS_OF (event) != KLASS_OBJECT) croak ("event class must be OBJECT"); |
1658 | if (KLASS_OF (event) != KLASS_OBJECT) croak ("event class must be OBJECT"); |
1658 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); for (int i = 2; i < items; i++) av_push (av, ST (i)); |
1659 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
|
|
1660 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
1659 | RETVAL = INVOKE_((event_type)event, ARG_OBJECT (op), ARG_AV (av)); |
1661 | RETVAL = INVOKE_((event_type)event, ARG_OBJECT (op), ARG_AV (av)); |
1660 | OUTPUT: RETVAL |
1662 | OUTPUT: RETVAL |
1661 | |
1663 | |
1662 | SV *registry (object *op) |
1664 | SV *registry (object *op) |
1663 | CODE: |
1665 | CODE: |
… | |
… | |
1953 | MODULE = cf PACKAGE = cf::player PREFIX = cf_player_ |
1955 | MODULE = cf PACKAGE = cf::player PREFIX = cf_player_ |
1954 | |
1956 | |
1955 | int invoke (player *pl, int event, ...) |
1957 | int invoke (player *pl, int event, ...) |
1956 | CODE: |
1958 | CODE: |
1957 | if (KLASS_OF (event) != KLASS_PLAYER) croak ("event class must be PLAYER"); |
1959 | if (KLASS_OF (event) != KLASS_PLAYER) croak ("event class must be PLAYER"); |
1958 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); for (int i = 2; i < items; i++) av_push (av, ST (i)); |
1960 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
|
|
1961 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
1959 | RETVAL = INVOKE_((event_type)event, ARG_PLAYER (pl), ARG_AV (av)); |
1962 | RETVAL = INVOKE_((event_type)event, ARG_PLAYER (pl), ARG_AV (av)); |
1960 | OUTPUT: RETVAL |
1963 | OUTPUT: RETVAL |
1961 | |
1964 | |
1962 | SV *registry (player *pl) |
1965 | SV *registry (player *pl) |
1963 | CODE: |
1966 | CODE: |
… | |
… | |
2093 | MODULE = cf PACKAGE = cf::map PREFIX = cf_map_ |
2096 | MODULE = cf PACKAGE = cf::map PREFIX = cf_map_ |
2094 | |
2097 | |
2095 | int invoke (mapstruct *map, int event, ...) |
2098 | int invoke (mapstruct *map, int event, ...) |
2096 | CODE: |
2099 | CODE: |
2097 | if (KLASS_OF (event) != KLASS_MAP) croak ("event class must be MAP"); |
2100 | if (KLASS_OF (event) != KLASS_MAP) croak ("event class must be MAP"); |
2098 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); for (int i = 2; i < items; i++) av_push (av, ST (i)); |
2101 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
|
|
2102 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
2099 | RETVAL = INVOKE_((event_type)event, ARG_MAP (map), ARG_AV (av)); |
2103 | RETVAL = INVOKE_((event_type)event, ARG_MAP (map), ARG_AV (av)); |
2100 | OUTPUT: |
2104 | OUTPUT: |
2101 | RETVAL |
2105 | RETVAL |
2102 | |
2106 | |
2103 | SV *registry (mapstruct *map) |
2107 | SV *registry (mapstruct *map) |