… | |
… | |
282 | |
282 | |
283 | $res->{attachment} = $name; |
283 | $res->{attachment} = $name; |
284 | $res |
284 | $res |
285 | } |
285 | } |
286 | |
286 | |
287 | sub cf::object::attach { |
287 | *cf::object::attach = |
|
|
288 | *cf::player::attach = |
|
|
289 | *cf::map::attach = sub { |
288 | my ($obj, $name, %arg) = @_; |
290 | my ($obj, $name, %arg) = @_; |
289 | |
291 | |
290 | _attach_attachment $obj, $name, %arg; |
292 | _attach_attachment $obj, $name, %arg; |
291 | } |
293 | } |
292 | |
294 | |
293 | sub cf::player::attach { |
295 | # all those should be optimised |
294 | my ($obj, $name, %arg) = @_; |
|
|
295 | |
|
|
296 | _attach_attachment $obj, $name, %arg; |
|
|
297 | } |
|
|
298 | |
|
|
299 | sub cf::map::attach { |
|
|
300 | my ($obj, $name, %arg) = @_; |
|
|
301 | |
|
|
302 | _attach_attachment $obj, $name, %arg; |
|
|
303 | } |
|
|
304 | |
|
|
305 | sub cf::object::detach { |
296 | *cf::object::detach = |
|
|
297 | *cf::player::detach = |
|
|
298 | *cf::map::detach = sub { |
306 | my ($obj, $name) = @_; |
299 | my ($obj, $name) = @_; |
307 | die;#d# |
300 | |
308 | } |
301 | delete $obj->{_attachment}{$name}; |
309 | sub cf::player::detach { |
302 | reattach $obj; |
310 | my ($obj, $name) = @_; |
303 | }; |
311 | die;#d# |
|
|
312 | } |
|
|
313 | sub cf::map::detach { |
|
|
314 | my ($obj, $name) = @_; |
|
|
315 | die;#d# |
|
|
316 | } |
|
|
317 | |
304 | |
318 | sub attach_global { |
305 | sub attach_global { |
319 | _attach @CB_GLOBAL, KLASS_GLOBAL, @_ |
306 | _attach @CB_GLOBAL, KLASS_GLOBAL, @_ |
320 | } |
307 | } |
321 | |
308 | |