… | |
… | |
1078 | CALL_CALL ("ext::books::make_book", G_VOID); |
1078 | CALL_CALL ("ext::books::make_book", G_VOID); |
1079 | CALL_END; |
1079 | CALL_END; |
1080 | } |
1080 | } |
1081 | |
1081 | |
1082 | void |
1082 | void |
1083 | cfperl_send_msg (client *ns, int color, const char *type, const char *msg) |
1083 | cfperl_send_msg (client *ns, int color, const_utf8_string type, const_utf8_string msg) |
1084 | { |
1084 | { |
1085 | CALL_BEGIN (4); |
1085 | CALL_BEGIN (4); |
1086 | CALL_ARG (ns); |
1086 | CALL_ARG (ns); |
1087 | CALL_ARG (type); |
1087 | CALL_ARG (type); |
1088 | CALL_ARG_SV (newSVpv_utf8 (msg)); |
1088 | CALL_ARG_SV (newSVpv_utf8 (msg)); |
… | |
… | |
1117 | CALL_CALL ("cf::mapscript::activate", G_VOID); |
1117 | CALL_CALL ("cf::mapscript::activate", G_VOID); |
1118 | CALL_END; |
1118 | CALL_END; |
1119 | } |
1119 | } |
1120 | |
1120 | |
1121 | player * |
1121 | player * |
1122 | player::find (const char *name) |
1122 | player::find (const_utf8_string name) |
1123 | { |
1123 | { |
1124 | CALL_BEGIN (1); |
1124 | CALL_BEGIN (1); |
1125 | CALL_ARG (name); |
1125 | CALL_ARG (name); |
1126 | CALL_CALL ("cf::player::find", G_SCALAR); |
1126 | CALL_CALL ("cf::player::find", G_SCALAR); |
1127 | |
1127 | |
… | |
… | |
1132 | |
1132 | |
1133 | return retval; |
1133 | return retval; |
1134 | } |
1134 | } |
1135 | |
1135 | |
1136 | maptile * |
1136 | maptile * |
1137 | find_style (const char *dirname, const char *stylename, int difficulty) |
1137 | find_style (const_utf8_string dirname, const_utf8_string stylename, int difficulty) |
1138 | { |
1138 | { |
1139 | CALL_BEGIN (3); |
1139 | CALL_BEGIN (3); |
1140 | CALL_ARG (dirname); |
1140 | CALL_ARG (dirname); |
1141 | CALL_ARG (stylename); |
1141 | CALL_ARG (stylename); |
1142 | CALL_ARG (difficulty); |
1142 | CALL_ARG (difficulty); |
… | |
… | |
1149 | |
1149 | |
1150 | return retval; |
1150 | return retval; |
1151 | } |
1151 | } |
1152 | |
1152 | |
1153 | maptile * |
1153 | maptile * |
1154 | maptile::find_sync (const char *path, maptile *origin) |
1154 | maptile::find_sync (const_utf8_string path, maptile *origin) |
1155 | { |
1155 | { |
1156 | CALL_BEGIN (2); |
1156 | CALL_BEGIN (2); |
1157 | CALL_ARG (path); |
1157 | CALL_ARG (path); |
1158 | CALL_ARG (origin); |
1158 | CALL_ARG (origin); |
1159 | CALL_CALL ("cf::map::find_sync", G_SCALAR); |
1159 | CALL_CALL ("cf::map::find_sync", G_SCALAR); |
… | |
… | |
1165 | |
1165 | |
1166 | return retval; |
1166 | return retval; |
1167 | } |
1167 | } |
1168 | |
1168 | |
1169 | maptile * |
1169 | maptile * |
1170 | maptile::find_async (const char *path, maptile *origin, bool load) |
1170 | maptile::find_async (const_utf8_string path, maptile *origin, bool load) |
1171 | { |
1171 | { |
1172 | CALL_BEGIN (3); |
1172 | CALL_BEGIN (3); |
1173 | CALL_ARG (path); |
1173 | CALL_ARG (path); |
1174 | CALL_ARG (origin); |
1174 | CALL_ARG (origin); |
1175 | CALL_ARG (load); |
1175 | CALL_ARG (load); |
… | |
… | |
1204 | CALL_CALL ("cf::object::player::enter_exit", G_VOID); |
1204 | CALL_CALL ("cf::object::player::enter_exit", G_VOID); |
1205 | CALL_END; |
1205 | CALL_END; |
1206 | } |
1206 | } |
1207 | |
1207 | |
1208 | void |
1208 | void |
1209 | object::player_goto (const char *path, int x, int y) |
1209 | object::player_goto (const_utf8_string path, int x, int y) |
1210 | { |
1210 | { |
1211 | if (type != PLAYER) |
1211 | if (type != PLAYER) |
1212 | return; |
1212 | return; |
1213 | |
1213 | |
1214 | CALL_BEGIN (4); |
1214 | CALL_BEGIN (4); |
… | |
… | |
1218 | CALL_ARG (y); |
1218 | CALL_ARG (y); |
1219 | CALL_CALL ("cf::object::player::goto", G_VOID); |
1219 | CALL_CALL ("cf::object::player::goto", G_VOID); |
1220 | CALL_END; |
1220 | CALL_END; |
1221 | } |
1221 | } |
1222 | |
1222 | |
1223 | const char * |
1223 | const_utf8_string |
1224 | object::ref () const |
1224 | object::ref () const |
1225 | { |
1225 | { |
1226 | if (type == PLAYER) |
1226 | if (type == PLAYER) |
1227 | return format ("player/<1.%llx>/%s", (unsigned long long)uuid.seq, &name); |
1227 | return format ("player/<1.%llx>/%s", (unsigned long long)uuid.seq, &name); |
1228 | else |
1228 | else |
1229 | return 0; |
1229 | return 0; |
1230 | } |
1230 | } |
1231 | |
1231 | |
1232 | object * |
1232 | object * |
1233 | object::deref (const char *ref) |
1233 | object::deref (const_utf8_string ref) |
1234 | { |
1234 | { |
1235 | object *retval = 0; |
1235 | object *retval = 0; |
1236 | |
1236 | |
1237 | if (ref) |
1237 | if (ref) |
1238 | { |
1238 | { |
… | |
… | |
1264 | CALL_END; |
1264 | CALL_END; |
1265 | #endif |
1265 | #endif |
1266 | } |
1266 | } |
1267 | |
1267 | |
1268 | bool |
1268 | bool |
1269 | is_match_expr (const char *expr) |
1269 | is_match_expr (const_utf8_string expr) |
1270 | { |
1270 | { |
1271 | return !strncmp (expr, "match ", sizeof ("match ") - 1); |
1271 | return !strncmp (expr, "match ", sizeof ("match ") - 1); |
1272 | } |
1272 | } |
1273 | |
1273 | |
1274 | bool |
1274 | bool |
1275 | match (const char *expr, object *ob, object *self, object *source, object *originator) |
1275 | match (const_utf8_string expr, object *ob, object *self, object *source, object *originator) |
1276 | { |
1276 | { |
1277 | if (!strncmp (expr, "match ", sizeof ("match ") - 1)) |
1277 | if (!strncmp (expr, "match ", sizeof ("match ") - 1)) |
1278 | expr += sizeof ("match ") - 1; |
1278 | expr += sizeof ("match ") - 1; |
1279 | |
1279 | |
1280 | CALL_BEGIN (5); |
1280 | CALL_BEGIN (5); |
… | |
… | |
1291 | |
1291 | |
1292 | return matched; |
1292 | return matched; |
1293 | } |
1293 | } |
1294 | |
1294 | |
1295 | object * |
1295 | object * |
1296 | match_one (const char *expr, object *ob, object *self, object *source, object *originator) |
1296 | match_one (const_utf8_string expr, object *ob, object *self, object *source, object *originator) |
1297 | { |
1297 | { |
1298 | if (!strncmp (expr, "match ", sizeof ("match ") - 1)) |
1298 | if (!strncmp (expr, "match ", sizeof ("match ") - 1)) |
1299 | expr += sizeof ("match ") - 1; |
1299 | expr += sizeof ("match ") - 1; |
1300 | |
1300 | |
1301 | CALL_BEGIN (5); |
1301 | CALL_BEGIN (5); |
… | |
… | |
1520 | const_iv (NDI_NOCREATE) const_iv (NDI_CLEAR) const_iv (NDI_VERBATIM) |
1520 | const_iv (NDI_NOCREATE) const_iv (NDI_CLEAR) const_iv (NDI_VERBATIM) |
1521 | |
1521 | |
1522 | const_iv (UPD_LOCATION) const_iv (UPD_FLAGS) const_iv (UPD_WEIGHT) const_iv (UPD_FACE) |
1522 | const_iv (UPD_LOCATION) const_iv (UPD_FLAGS) const_iv (UPD_WEIGHT) const_iv (UPD_FACE) |
1523 | const_iv (UPD_NAME) const_iv (UPD_ANIM) const_iv (UPD_ANIMSPEED) const_iv (UPD_NROF) |
1523 | const_iv (UPD_NAME) const_iv (UPD_ANIM) const_iv (UPD_ANIMSPEED) const_iv (UPD_NROF) |
1524 | |
1524 | |
1525 | const_iv (UPD_SP_MANA) const_iv (UPD_SP_GRACE) const_iv (UPD_SP_DAMAGE) |
1525 | const_iv (UPD_SP_MANA) const_iv (UPD_SP_GRACE) const_iv (UPD_SP_LEVEL) |
1526 | |
1526 | |
1527 | const_iv (SP_RAISE_DEAD) |
1527 | const_iv (SP_RAISE_DEAD) |
1528 | const_iv (SP_RUNE) |
1528 | const_iv (SP_RUNE) |
1529 | const_iv (SP_MAKE_MARK) |
1529 | const_iv (SP_MAKE_MARK) |
1530 | const_iv (SP_BOLT) |
1530 | const_iv (SP_BOLT) |
… | |
… | |
1822 | } |
1822 | } |
1823 | |
1823 | |
1824 | void server_tick () |
1824 | void server_tick () |
1825 | CODE: |
1825 | CODE: |
1826 | { |
1826 | { |
|
|
1827 | ev_now_update (EV_DEFAULT); |
1827 | NOW = ev_now (EV_DEFAULT); |
1828 | NOW = ev_now (EV_DEFAULT); |
1828 | SvNV_set (sv_now, NOW); SvNOK_only (sv_now); |
1829 | SvNV_set (sv_now, NOW); SvNOK_only (sv_now); |
1829 | SvNV_set (sv_tick_start, NOW); SvNOK_only (sv_tick_start); |
1830 | SvNV_set (sv_tick_start, NOW); SvNOK_only (sv_tick_start); |
1830 | runtime = SvNVX (sv_runtime); |
1831 | runtime = SvNVX (sv_runtime); |
1831 | |
1832 | |
1832 | server_tick (); |
1833 | server_tick (); |
1833 | |
1834 | |
1834 | NOW = ev_time (); |
1835 | ev_now_update (EV_DEFAULT); |
|
|
1836 | NOW = ev_now (EV_DEFAULT); |
1835 | SvNV_set (sv_now, NOW); SvNOK_only (sv_now); |
1837 | SvNV_set (sv_now, NOW); SvNOK_only (sv_now); |
1836 | runtime += TICK; |
1838 | runtime += TICK; |
1837 | SvNV_set (sv_runtime, runtime); SvNOK_only (sv_runtime); |
1839 | SvNV_set (sv_runtime, runtime); SvNOK_only (sv_runtime); |
1838 | } |
1840 | } |
1839 | |
1841 | |
… | |
… | |
2144 | int mortals_size () |
2146 | int mortals_size () |
2145 | CODE: |
2147 | CODE: |
2146 | RETVAL = attachable::mortals.size (); |
2148 | RETVAL = attachable::mortals.size (); |
2147 | OUTPUT: RETVAL |
2149 | OUTPUT: RETVAL |
2148 | |
2150 | |
2149 | const char *slot_use_name (U32 slot) |
2151 | const_utf8_string slot_use_name (U32 slot) |
2150 | ALIAS: |
2152 | ALIAS: |
2151 | slot_nonuse_name = 1 |
2153 | slot_nonuse_name = 1 |
2152 | CODE: |
2154 | CODE: |
2153 | { |
2155 | { |
2154 | if (slot >= NUM_BODY_LOCATIONS) |
2156 | if (slot >= NUM_BODY_LOCATIONS) |
… | |
… | |
2308 | CODE: |
2310 | CODE: |
2309 | RETVAL = archetype ? get_archetype (archetype) : object::create (); |
2311 | RETVAL = archetype ? get_archetype (archetype) : object::create (); |
2310 | OUTPUT: |
2312 | OUTPUT: |
2311 | RETVAL |
2313 | RETVAL |
2312 | |
2314 | |
|
|
2315 | object *generate (utf8_string arch, object *creator) |
|
|
2316 | CODE: |
|
|
2317 | object *obj = get_archetype (arch); |
|
|
2318 | fix_generated_item (obj, creator, 0, 0, GT_MINIMAL); |
|
|
2319 | RETVAL = obj; |
|
|
2320 | OUTPUT: |
|
|
2321 | RETVAL |
|
|
2322 | |
2313 | object *find_object (U32 tag) |
2323 | object *find_object (U32 tag) |
|
|
2324 | |
|
|
2325 | object *find_object_uuid (UUID i) |
2314 | |
2326 | |
2315 | # TODO: nuke |
2327 | # TODO: nuke |
2316 | object *insert_ob_in_map_at (object *ob, maptile *where, object_ornull *orig, int flag, int x, int y) |
2328 | object *insert_ob_in_map_at (object *ob, maptile *where, object_ornull *orig, int flag, int x, int y) |
2317 | PROTOTYPE: $$$$$$ |
2329 | PROTOTYPE: $$$$$$ |
2318 | CODE: |
2330 | CODE: |
… | |
… | |
2379 | CODE: |
2391 | CODE: |
2380 | RETVAL = op->contr; |
2392 | RETVAL = op->contr; |
2381 | OUTPUT: RETVAL |
2393 | OUTPUT: RETVAL |
2382 | |
2394 | |
2383 | bool move_player (object *op, int dir) |
2395 | bool move_player (object *op, int dir) |
2384 | |
|
|
2385 | void check_score (object *op) |
|
|
2386 | |
2396 | |
2387 | void message (object *op, utf8_string txt, int flags = NDI_ORANGE | NDI_UNIQUE) |
2397 | void message (object *op, utf8_string txt, int flags = NDI_ORANGE | NDI_UNIQUE) |
2388 | CODE: |
2398 | CODE: |
2389 | new_draw_info (flags, 0, op, txt); |
2399 | new_draw_info (flags, 0, op, txt); |
2390 | |
2400 | |