… | |
… | |
770 | exit (EXIT_FAILURE); |
770 | exit (EXIT_FAILURE); |
771 | } |
771 | } |
772 | |
772 | |
773 | eval_pv ( |
773 | eval_pv ( |
774 | "#line 1 'cfperl init'\n" |
774 | "#line 1 'cfperl init'\n" |
775 | "use EV ();\n" |
775 | "use EV ();\n" // required by bootstrap |
776 | "use Coro ();\n" |
776 | "use Coro ();\n" // required by bootstrap |
777 | "cf->bootstrap;\n" |
777 | "cf->bootstrap;\n" // required for cf::datadir |
778 | "unshift @INC, cf::datadir ();\n" |
778 | "unshift @INC, cf::datadir ();\n" // required for 'require' :) |
779 | "require cf;\n", |
779 | "require cf;\n", |
780 | 0 |
780 | 0 |
781 | ); |
781 | ); |
782 | |
782 | |
783 | if (SvTRUE (ERRSV)) |
783 | if (SvTRUE (ERRSV)) |
… | |
… | |
1491 | const_iv (CS_QUERY_YESNO) const_iv (CS_QUERY_SINGLECHAR) const_iv (CS_QUERY_HIDEINPUT) |
1491 | const_iv (CS_QUERY_YESNO) const_iv (CS_QUERY_SINGLECHAR) const_iv (CS_QUERY_HIDEINPUT) |
1492 | |
1492 | |
1493 | const_iv (IO_HEADER) const_iv (IO_OBJECTS) const_iv (IO_UNIQUES) |
1493 | const_iv (IO_HEADER) const_iv (IO_OBJECTS) const_iv (IO_UNIQUES) |
1494 | }; |
1494 | }; |
1495 | |
1495 | |
1496 | for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ-- > const_iv; ) |
1496 | for (civ = const_iv + array_length (const_iv); civ-- > const_iv; ) |
1497 | newCONSTSUB (stash_cf, (char *)civ->name, newSViv (civ->iv)); |
1497 | newCONSTSUB (stash_cf, (char *)civ->name, newSViv (civ->iv)); |
1498 | |
1498 | |
1499 | static const struct { |
1499 | static const struct { |
1500 | const char *name; |
1500 | const char *name; |
1501 | int skip; |
1501 | int skip; |
… | |
… | |
1507 | # undef def |
1507 | # undef def |
1508 | }; |
1508 | }; |
1509 | |
1509 | |
1510 | AV *av = get_av ("cf::EVENT", 1); |
1510 | AV *av = get_av ("cf::EVENT", 1); |
1511 | |
1511 | |
1512 | for (eiv = event_iv + sizeof (event_iv) / sizeof (event_iv [0]); eiv-- > event_iv; ) |
1512 | for (eiv = event_iv + array_length (event_iv); eiv-- > event_iv; ) |
1513 | { |
1513 | { |
1514 | AV *event = newAV (); |
1514 | AV *event = newAV (); |
1515 | av_push (event, newSVpv ((char *)eiv->name + eiv->skip, 0)); |
1515 | av_push (event, newSVpv ((char *)eiv->name + eiv->skip, 0)); |
1516 | av_push (event, newSViv (eiv->klass)); |
1516 | av_push (event, newSViv (eiv->klass)); |
1517 | av_store (av, eiv->iv, newRV_noinc ((SV *)event)); |
1517 | av_store (av, eiv->iv, newRV_noinc ((SV *)event)); |
… | |
… | |
2086 | |
2086 | |
2087 | void pick_up (object *who, object *op) |
2087 | void pick_up (object *who, object *op) |
2088 | |
2088 | |
2089 | void update_object (object *op, int action) |
2089 | void update_object (object *op, int action) |
2090 | |
2090 | |
2091 | void change_exp (object *op, uint64 exp, utf8_string skill_name = 0, int flag = 0) |
2091 | void change_exp (object *op, uint64 exp, shstr_tmp skill_name = shstr_tmp (), int flag = 0) |
2092 | |
2092 | |
2093 | void player_lvl_adj (object *who, object *skill = 0) |
2093 | void player_lvl_adj (object *who, object *skill = 0) |
2094 | |
2094 | |
2095 | int kill_object (object *op, int dam = 0, object *hitter = 0, int type = AT_PHYSICAL) |
2095 | int kill_object (object *op, int dam = 0, object *hitter = 0, int type = AT_PHYSICAL) |
2096 | |
2096 | |