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.129 by root, Sun Jan 7 21:54:59 2007 UTC vs.
Revision 1.132 by root, Mon Jan 8 20:59:15 2007 UTC

104attachable::~attachable () 104attachable::~attachable ()
105{ 105{
106 assert (!(flags & F_BORROWED)); 106 assert (!(flags & F_BORROWED));
107} 107}
108 108
109int
110attachable::refcnt_cnt () const
111{
112 return refcnt + (self ? SvREFCNT (self) : 0);
113}
114
115void
109void attachable::optimise () 116attachable::optimise ()
110{ 117{
111 if (self 118 if (self
112 && SvREFCNT (self) == 1 119 && SvREFCNT (self) == 1
113 && !HvTOTALKEYS (self)) 120 && !HvTOTALKEYS (self))
114 { 121 {
130 if (self) 137 if (self)
131 { 138 {
132 if (refcnt + SvREFCNT (self) > 0) 139 if (refcnt + SvREFCNT (self) > 0)
133 return; 140 return;
134 141
135 assert (flags & F_BORROWED); 142 if (flags & F_BORROWED)
136 143 {
137 flags &= ~F_BORROWED; 144 flags &= ~F_BORROWED;
138 refcnt_inc (); 145 refcnt_inc ();
139 SvREFCNT_dec (self); 146 SvREFCNT_dec (self);
140 self = 0; 147 }
148
149 if (self)
150 if (refcnt + SvREFCNT (self) > 0)
151 return;
141 } 152 }
142 153
143 if (refcnt > 0) 154 if (refcnt > 0)
144 return; 155 return;
145 156
165 176
166 flags |= F_DESTROYED; 177 flags |= F_DESTROYED;
167 do_destroy (); 178 do_destroy ();
168} 179}
169 180
181void
170void attachable::check_mortals () 182attachable::check_mortals ()
171{ 183{
172 for (int i = 0; i < mortals.size (); ) 184 for (int i = 0; i < mortals.size (); )
173 { 185 {
174 attachable *obj = mortals [i]; 186 attachable *obj = mortals [i];
175 187
2046list () 2058list ()
2047 PPCODE: 2059 PPCODE:
2048 for_all_players (pl) 2060 for_all_players (pl)
2049 XPUSHs (sv_2mortal (to_sv (pl))); 2061 XPUSHs (sv_2mortal (to_sv (pl)));
2050 2062
2051bool
2052peaceful (player *pl, bool new_setting = 0)
2053 PROTOTYPE: $;$
2054 CODE:
2055 RETVAL = pl->peaceful;
2056 if (items > 1)
2057 pl->peaceful = new_setting;
2058 OUTPUT:
2059 RETVAL
2060
2061living *
2062orig_stats (player *pl)
2063 CODE:
2064 RETVAL = &pl->orig_stats;
2065 OUTPUT: RETVAL
2066
2067living *
2068last_stats (player *pl)
2069 CODE:
2070 RETVAL = &pl->last_stats;
2071 OUTPUT: RETVAL
2072
2073 2063
2074MODULE = cf PACKAGE = cf::map PREFIX = cf_map_ 2064MODULE = cf PACKAGE = cf::map PREFIX = cf_map_
2075 2065
2076int invoke (maptile *map, int event, ...) 2066int invoke (maptile *map, int event, ...)
2077 CODE: 2067 CODE:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines