ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/cfperl.xs
(Generate patch)

Comparing deliantra/server/server/cfperl.xs (file contents):
Revision 1.345 by root, Sat Jan 16 13:41:37 2010 UTC vs.
Revision 1.351 by elmex, Mon Mar 22 18:16:39 2010 UTC

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
1082void 1082void
1083cfperl_send_msg (client *ns, int color, const char *type, const char *msg) 1083cfperl_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
1121player * 1121player *
1122player::find (const char *name) 1122player::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
1136maptile * 1136maptile *
1137find_style (const char *dirname, const char *stylename, int difficulty) 1137find_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
1153maptile * 1153maptile *
1154maptile::find_sync (const char *path, maptile *origin) 1154maptile::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
1169maptile * 1169maptile *
1170maptile::find_async (const char *path, maptile *origin, bool load) 1170maptile::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
1208void 1208void
1209object::player_goto (const char *path, int x, int y) 1209object::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
1223const char * 1223const_utf8_string
1224object::ref () const 1224object::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
1232object * 1232object *
1233object::deref (const char *ref) 1233object::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
1268bool 1268bool
1269is_match_expr (const char *expr) 1269is_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
1274bool 1274bool
1275match (const char *expr, object *ob, object *self, object *source, object *originator) 1275match (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
1295object * 1295object *
1296match_one (const char *expr, object *ob, object *self, object *source, object *originator) 1296match_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
1824void server_tick () 1824void 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
2144int mortals_size () 2146int mortals_size ()
2145 CODE: 2147 CODE:
2146 RETVAL = attachable::mortals.size (); 2148 RETVAL = attachable::mortals.size ();
2147 OUTPUT: RETVAL 2149 OUTPUT: RETVAL
2148 2150
2149const char *slot_use_name (U32 slot) 2151const_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
2315object *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
2313object *find_object (U32 tag) 2323object *find_object (U32 tag)
2324
2325object *find_object_uuid (UUID i)
2314 2326
2315# TODO: nuke 2327# TODO: nuke
2316object *insert_ob_in_map_at (object *ob, maptile *where, object_ornull *orig, int flag, int x, int y) 2328object *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
2383bool move_player (object *op, int dir) 2395bool move_player (object *op, int dir)
2384
2385void check_score (object *op)
2386 2396
2387void message (object *op, utf8_string txt, int flags = NDI_ORANGE | NDI_UNIQUE) 2397void 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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines