Skip to content

Commit 8b1424e

Browse files
committed
Merge remote-tracking branch 'moly/fix_issue_185' into dev
Fixed conflicts: org/flixel/FlxTilemap.as
2 parents df5dfc6 + 7674854 commit 8b1424e

File tree

1 file changed

+44
-27
lines changed

1 file changed

+44
-27
lines changed

org/flixel/FlxTilemap.as

Lines changed: 44 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -125,65 +125,76 @@ package org.flixel
125125
public function FlxTilemap()
126126
{
127127
super();
128-
auto = OFF;
129-
widthInTiles = 0;
130-
heightInTiles = 0;
131-
totalTiles = 0;
132128
_buffers = new Array();
133129
_flashPoint = new Point();
134-
_flashRect = null;
135-
_data = null;
136-
_tileWidth = 0;
137-
_tileHeight = 0;
138-
_rects = null;
139-
_tiles = null;
140-
_tileObjects = null;
141130
immovable = true;
142131
moves = false;
132+
143133
cameras = null;
144134
_debugTileNotSolid = null;
145135
_debugTilePartial = null;
146136
_debugTileSolid = null;
147137
_debugRect = null;
138+
139+
active = false;
140+
visible = false;
141+
148142
_lastVisualDebug = FlxG.visualDebug;
149-
_startingIndex = 0;
150143
}
151144

152145
/**
153146
* Clean up memory.
154147
*/
155148
override public function destroy():void
156149
{
150+
clearTilemap();
151+
_tileObjects = null;
152+
_buffers = null;
157153
_flashPoint = null;
158154
_flashRect = null;
159155
_tiles = null;
156+
_data = null;
157+
_rects = null;
158+
_debugTileNotSolid = null;
159+
_debugTilePartial = null;
160+
_debugTileSolid = null;
161+
_debugRect = null;
162+
163+
super.destroy();
164+
}
165+
166+
/**
167+
* An internal function for clearing all the variables used by the tilemap.
168+
*/
169+
protected function clearTilemap():void
170+
{
171+
widthInTiles = 0;
172+
heightInTiles = 0;
173+
totalTiles = 0;
174+
_data = null;
175+
_tileWidth = 0;
176+
_tileHeight = 0;
177+
_rects = null;
178+
_tiles = null;
160179

161-
if (_tileObjects != null)
180+
var i:uint;
181+
var l:uint;
182+
if(_tileObjects != null)
162183
{
163-
var i:uint = 0;
164-
var l:uint = _tileObjects.length;
184+
i = 0;
185+
l = _tileObjects.length;
165186
while(i < l)
166187
(_tileObjects[i++] as FlxTile).destroy();
167188
_tileObjects = null;
168189
}
169-
170-
if (_buffers != null)
190+
if(_buffers != null)
171191
{
172192
i = 0;
173193
l = _buffers.length;
174194
while(i < l)
175195
(_buffers[i++] as FlxTilemapBuffer).destroy();
176196
_buffers = null;
177197
}
178-
179-
_data = null;
180-
_rects = null;
181-
_debugTileNotSolid = null;
182-
_debugTilePartial = null;
183-
_debugTileSolid = null;
184-
_debugRect = null;
185-
186-
super.destroy();
187198
}
188199

189200
/**
@@ -202,12 +213,15 @@ package org.flixel
202213
*/
203214
public function loadMap(MapData:String, TileGraphic:Class, TileWidth:uint=0, TileHeight:uint=0, AutoTile:uint=OFF, StartingIndex:uint=0, DrawIndex:uint=1, CollideIndex:uint=1):FlxTilemap
204215
{
216+
clearTilemap();
217+
205218
auto = AutoTile;
206219
_startingIndex = StartingIndex;
207220

208221
//Figure out the map dimensions based on the data string
209222
var columns:Array;
210223
var rows:Array = MapData.split("\n");
224+
widthInTiles = 0;
211225
heightInTiles = rows.length;
212226
_data = new Array();
213227
var row:uint = 0;
@@ -272,7 +286,10 @@ package org.flixel
272286
i = 0;
273287
while(i < totalTiles)
274288
updateTile(i++);
275-
289+
290+
active = true;
291+
visible = true;
292+
276293
return this;
277294
}
278295

0 commit comments

Comments
 (0)