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.281 by root, Tue Apr 22 07:01:47 2008 UTC vs.
Revision 1.288 by root, Tue May 6 18:47:32 2008 UTC

977{ 977{
978 CALL_BEGIN (1); 978 CALL_BEGIN (1);
979 CALL_ARG (name); 979 CALL_ARG (name);
980 CALL_CALL ("cf::player::find", G_SCALAR); 980 CALL_CALL ("cf::player::find", G_SCALAR);
981 981
982 player *retval; 982 player *retval = 0;
983
984 if (count)
985 sv_to (POPs, retval); 983 if (count) sv_to (POPs, retval);
986 else 984
987 retval = 0; 985 CALL_END;
986
987 return retval;
988}
989
990maptile *
991find_style (const char *dirname, const char *stylename, int difficulty)
992{
993 CALL_BEGIN (3);
994 CALL_ARG (dirname);
995 CALL_ARG (stylename);
996 CALL_ARG (difficulty);
997 CALL_CALL ("ext::map_random::find_style", G_SCALAR);
998
999 maptile *retval = 0;
1000 if (count) sv_to (POPs, retval);
988 1001
989 CALL_END; 1002 CALL_END;
990 1003
991 return retval; 1004 return retval;
992} 1005}
997 CALL_BEGIN (2); 1010 CALL_BEGIN (2);
998 CALL_ARG (path); 1011 CALL_ARG (path);
999 CALL_ARG (origin); 1012 CALL_ARG (origin);
1000 CALL_CALL ("cf::map::find_sync", G_SCALAR); 1013 CALL_CALL ("cf::map::find_sync", G_SCALAR);
1001 1014
1002 maptile *retval; 1015 maptile *retval = 0;
1003
1004 if (count)
1005 sv_to (POPs, retval); 1016 if (count) sv_to (POPs, retval);
1006 else
1007 retval = 0;
1008 1017
1009 CALL_END; 1018 CALL_END;
1010 1019
1011 return retval; 1020 return retval;
1012} 1021}
1018 CALL_ARG (path); 1027 CALL_ARG (path);
1019 CALL_ARG (origin); 1028 CALL_ARG (origin);
1020 CALL_ARG (load); 1029 CALL_ARG (load);
1021 CALL_CALL ("cf::map::find_async", G_SCALAR); 1030 CALL_CALL ("cf::map::find_async", G_SCALAR);
1022 1031
1023 maptile *retval; 1032 maptile *retval = 0;
1024
1025 if (count)
1026 sv_to (POPs, retval); 1033 if (count) sv_to (POPs, retval);
1027 else
1028 retval = 0;
1029 1034
1030 CALL_END; 1035 CALL_END;
1031 1036
1032 return retval; 1037 return retval;
1033} 1038}
1058 1063
1059 CALL_BEGIN (2); 1064 CALL_BEGIN (2);
1060 CALL_ARG (this); 1065 CALL_ARG (this);
1061 CALL_ARG (exit); 1066 CALL_ARG (exit);
1062 CALL_CALL ("cf::object::player::enter_exit", G_VOID); 1067 CALL_CALL ("cf::object::player::enter_exit", G_VOID);
1068 CALL_END;
1069}
1070
1071void
1072object::player_goto (const char *path, int x, int y)
1073{
1074 if (type != PLAYER)
1075 return;
1076
1077 CALL_BEGIN (4);
1078 CALL_ARG (this);
1079 CALL_ARG (path);
1080 CALL_ARG (x);
1081 CALL_ARG (y);
1082 CALL_CALL ("cf::object::player::goto", G_VOID);
1063 CALL_END; 1083 CALL_END;
1064} 1084}
1065 1085
1066const char * 1086const char *
1067object::ref () const 1087object::ref () const
1573NV floor (NV x) 1593NV floor (NV x)
1574 1594
1575NV ceil (NV x) 1595NV ceil (NV x)
1576 1596
1577NV rndm (...) 1597NV rndm (...)
1598 ALIAS:
1599 rmg_rndm = 1
1578 CODE: 1600 CODE:
1601{
1602 rand_gen &gen = ix ? rmg_rndm : rndm;
1579 switch (items) 1603 switch (items)
1580 { 1604 {
1581 case 0: RETVAL = rndm (); break; 1605 case 0: RETVAL = gen (); break;
1582 case 1: RETVAL = rndm (SvUV (ST (0))); break; 1606 case 1: RETVAL = gen (SvUV (ST (0))); break;
1583 case 2: RETVAL = rndm (SvIV (ST (0)), SvIV (ST (1))); break; 1607 case 2: RETVAL = gen (SvIV (ST (0)), SvIV (ST (1))); break;
1584 default: croak ("cf::rndm requires none, one or two parameters."); break; 1608 default: croak ("cf::rndm requires none, one or two parameters."); break;
1585 } 1609 }
1610}
1586 OUTPUT: 1611 OUTPUT:
1587 RETVAL 1612 RETVAL
1588 1613
1589NV clamp (NV value, NV min_value, NV max_value) 1614NV clamp (NV value, NV min_value, NV max_value)
1590 CODE: 1615 CODE:
1693 PUSHs (sv_2mortal (newSVpv ("keepcost", 0))); PUSHs (sv_2mortal (newSViv (mai.keepcost))); 1718 PUSHs (sv_2mortal (newSVpv ("keepcost", 0))); PUSHs (sv_2mortal (newSViv (mai.keepcost)));
1694#endif 1719#endif
1695 EXTEND (SP, 2*2); 1720 EXTEND (SP, 2*2);
1696 PUSHs (sv_2mortal (newSVpv ("slice_alloc", 0))); PUSHs (sv_2mortal (newSVuv (slice_alloc))); 1721 PUSHs (sv_2mortal (newSVpv ("slice_alloc", 0))); PUSHs (sv_2mortal (newSVuv (slice_alloc)));
1697 PUSHs (sv_2mortal (newSVpv ("shstr_alloc", 0))); PUSHs (sv_2mortal (newSVuv (shstr_alloc))); 1722 PUSHs (sv_2mortal (newSVpv ("shstr_alloc", 0))); PUSHs (sv_2mortal (newSVuv (shstr_alloc)));
1723 PUSHs (sv_2mortal (newSVpv ("objects" , 0))); PUSHs (sv_2mortal (newSVuv (objects.size () * sizeof (object))));
1698} 1724}
1699 1725
1700int find_animation (utf8_string text) 1726int find_animation (utf8_string text)
1701 PROTOTYPE: $ 1727 PROTOTYPE: $
1702 1728
1786 PUSHs (sv_2mortal (to_sv (archetype::find (coins [i])))); 1812 PUSHs (sv_2mortal (to_sv (archetype::find (coins [i]))));
1787 1813
1788bool 1814bool
1789load_resource_file_ (octet_string filename) 1815load_resource_file_ (octet_string filename)
1790 1816
1817void
1818fix_weight ()
1819
1791MODULE = cf PACKAGE = cf::attachable 1820MODULE = cf PACKAGE = cf::attachable
1792 1821
1793int 1822int
1794valid (SV *obj) 1823valid (SV *obj)
1795 CODE: 1824 CODE:
1858object *actives (U32 index) 1887object *actives (U32 index)
1859 CODE: 1888 CODE:
1860 RETVAL = index < actives.size () ? actives [index] : 0; 1889 RETVAL = index < actives.size () ? actives [index] : 0;
1861 OUTPUT: RETVAL 1890 OUTPUT: RETVAL
1862 1891
1892int mortals_size ()
1893 CODE:
1894 RETVAL = attachable::mortals.size ();
1895 OUTPUT: RETVAL
1896
1863const char *slot_use_name (U32 slot) 1897const char *slot_use_name (U32 slot)
1864 ALIAS: 1898 ALIAS:
1865 slot_nonuse_name = 1 1899 slot_nonuse_name = 1
1866 CODE: 1900 CODE:
1867{ 1901{
1945void apply_below (object *op) 1979void apply_below (object *op)
1946 CODE: 1980 CODE:
1947 player_apply_below (op); 1981 player_apply_below (op);
1948 1982
1949int cast_heal (object *op, object *caster, object *spell, int dir = 0) 1983int cast_heal (object *op, object *caster, object *spell, int dir = 0)
1950
1951#//TODO
1952object *clone_ (object *op, int recursive = 0)
1953 CODE:
1954 if (recursive)
1955 RETVAL = object_create_clone (op);
1956 else
1957 {
1958 RETVAL = object::create ();
1959 op->copy_to (RETVAL);
1960 }
1961 OUTPUT: RETVAL
1962 1984
1963int pay_item (object *op, object *buyer) 1985int pay_item (object *op, object *buyer)
1964 CODE: 1986 CODE:
1965 RETVAL = pay_for_item (op, buyer); 1987 RETVAL = pay_for_item (op, buyer);
1966 OUTPUT: RETVAL 1988 OUTPUT: RETVAL
2044 CODE: 2066 CODE:
2045{ 2067{
2046 RETVAL = insert_ob_in_map_at (ob, where, orig, flag, x, y); 2068 RETVAL = insert_ob_in_map_at (ob, where, orig, flag, x, y);
2047} 2069}
2048 2070
2049const_utf8_string get_ob_key_value (object *op, utf8_string key) 2071shstr
2072object::kv_get (shstr key)
2050 2073
2051bool set_ob_key_value (object *op, utf8_string key, utf8_string value = 0, int add_key = 1) 2074void
2075object::kv_del (shstr key)
2076
2077void
2078object::kv_set (shstr key, shstr value)
2052 2079
2053object *get_nearest_player (object *ob) 2080object *get_nearest_player (object *ob)
2054 ALIAS: nearest_player = 0 2081 ALIAS: nearest_player = 0
2055 PREINIT: 2082 PREINIT:
2056 extern object *get_nearest_player (object *); 2083 extern object *get_nearest_player (object *);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines