… | |
… | |
331 | |
331 | |
332 | $self->{load_path} = $save; |
332 | $self->{load_path} = $save; |
333 | $self->{last_save} = $cf::RUNTIME; |
333 | $self->{last_save} = $cf::RUNTIME; |
334 | } |
334 | } |
335 | |
335 | |
|
|
336 | sub cf::map::swap_out { |
|
|
337 | my ($self) = @_; |
|
|
338 | |
|
|
339 | $self->save; |
|
|
340 | $self->clear; |
|
|
341 | $self->in_memory (cf::MAP_SWAPPED); |
|
|
342 | } |
|
|
343 | |
336 | sub cf::map::should_reset { |
344 | sub cf::map::should_reset { |
337 | my ($map) = @_; |
345 | my ($map) = @_; |
338 | |
346 | |
339 | # TODO: safety, remove and allow resettable per-player maps |
347 | # TODO: safety, remove and allow resettable per-player maps |
340 | return if $map->{path}{user_rel};#d# |
348 | return if $map->{path}{user_rel};#d# |
… | |
… | |
356 | |
364 | |
357 | $self->clear; |
365 | $self->clear; |
358 | $self->in_memory (cf::MAP_SWAPPED); |
366 | $self->in_memory (cf::MAP_SWAPPED); |
359 | $self->{load_path} = $self->{path}->load_path; |
367 | $self->{load_path} = $self->{path}->load_path; |
360 | utf8::encode $self->{load_path}; |
368 | utf8::encode $self->{load_path}; |
361 | } |
|
|
362 | |
|
|
363 | sub cf::map::swap_out { |
|
|
364 | my ($self) = @_; |
|
|
365 | |
|
|
366 | $self->save; |
|
|
367 | $self->clear; |
|
|
368 | $self->in_memory (cf::MAP_SWAPPED); |
|
|
369 | } |
369 | } |
370 | |
370 | |
371 | sub cf::object::player::enter_exit { |
371 | sub cf::object::player::enter_exit { |
372 | my ($ob, $exit) = @_; |
372 | my ($ob, $exit) = @_; |
373 | |
373 | |