ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/cfplus_build.ext
(Generate patch)

Comparing deliantra/maps/perl/cfplus_build.ext (file contents):
Revision 1.2 by elmex, Tue Dec 5 16:53:02 2006 UTC vs.
Revision 1.3 by root, Tue Dec 12 16:59:34 2006 UTC

57 } 57 }
58 58
59 if ($msg->{do_erase}) { 59 if ($msg->{do_erase}) {
60 if ($pl->ob->flag (cf::FLAG_WIZ)) { 60 if ($pl->ob->flag (cf::FLAG_WIZ)) {
61 my ($top) = reverse $pl->ob->map->at ($x, $y); 61 my ($top) = reverse $pl->ob->map->at ($x, $y);
62 if ($top) { $top->remove; $top->free } 62 $top->destroy if $top;
63
64 } else { 63 } else {
65 for my $ob ($pl->ob->map->at ($x, $y)) { 64 for my $ob ($pl->ob->map->at ($x, $y)) {
66 unless ($ob->type == cf::WALL || $ob->type == cf::FLOOR || $ob->flag (cf::FLAG_IS_FLOOR)) { 65 unless ($ob->type == cf::WALL || $ob->type == cf::FLOOR || $ob->flag (cf::FLAG_IS_FLOOR)) {
67 $ob->remove; 66 $ob->destroy;
68 $ob->free;
69 } 67 }
70 } 68 }
71 } 69 }
72 } 70 }
73 71
79 if ($arch->clone->subtype == cf::ST_MAT_FLOOR) { 77 if ($arch->clone->subtype == cf::ST_MAT_FLOOR) {
80 my $above_floor; 78 my $above_floor;
81 for my $ob ($pl->ob->map->at ($x, $y)) { 79 for my $ob ($pl->ob->map->at ($x, $y)) {
82 if ($ob->type == cf::WALL) { 80 if ($ob->type == cf::WALL) {
83 undef $above_floor if $above_floor == $ob; 81 undef $above_floor if $above_floor == $ob;
84 $ob->remove; 82 $ob->destroy;
85 $ob->free;
86 } elsif ($ob->type == cf::FLOOR || $ob->flag (cf::FLAG_IS_FLOOR)) { 83 } elsif ($ob->type == cf::FLOOR || $ob->flag (cf::FLAG_IS_FLOOR)) {
87 undef $above_floor if $above_floor == $ob; 84 undef $above_floor if $above_floor == $ob;
88 $above_floor = $ob->above; 85 $above_floor = $ob->above;
89 $ob->remove; 86 $ob->destroy;
90 $ob->free;
91 } 87 }
92 } 88 }
93 89
94 my $floor = cf::object::new $arch->clone->slaying; 90 my $floor = cf::object::new $arch->clone->slaying;
95 $floor->flag (cf::FLAG_IS_BUILDABLE, 1); 91 $floor->flag (cf::FLAG_IS_BUILDABLE, 1);
122 my $wall = cf::object::new $arch->clone->slaying; 118 my $wall = cf::object::new $arch->clone->slaying;
123 $wall->type (cf::WALL); 119 $wall->type (cf::WALL);
124 $wall->flag (cf::FLAG_IS_BUILDABLE, 1); 120 $wall->flag (cf::FLAG_IS_BUILDABLE, 1);
125 $wall->insert_ob_in_map_at ($pl->ob->map, undef, cf::INS_ABOVE_FLOOR_ONLY, $x, $y); 121 $wall->insert_ob_in_map_at ($pl->ob->map, undef, cf::INS_ABOVE_FLOOR_ONLY, $x, $y);
126 if ($prev_wall) { 122 if ($prev_wall) {
127 $prev_wall->remove; 123 $prev_wall->destroy;
128 $prev_wall->free;
129 $pl->ob->map->fix_walls ($pl->ob->x + $dx, $pl->ob->y + $dy); 124 $pl->ob->map->fix_walls ($pl->ob->x + $dx, $pl->ob->y + $dy);
130 } else { 125 } else {
131 $pl->ob->map->fix_walls_around ($pl->ob->x + $dx, $pl->ob->y + $dy); 126 $pl->ob->map->fix_walls_around ($pl->ob->x + $dx, $pl->ob->y + $dy);
132 } 127 }
133 128

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines