Beispiel #1
0
	MapRenderer.setMap = function loadMap( mapname )
	{
		// TODO: stop the map loading, and start to load the new map.
		if (this.loading) {
			return;
		}

		// Support for instance map
		// Is it always 3 digits ?
		mapname = mapname
			.replace(/^(\d{3})(\d@)/, '$2') // 0061@tower   -> 1@tower
			.replace(/^\d{3}#/, '');        // 003#prontera -> prontera

		// Clean objects
		SoundManager.stop();
		Renderer.stop();
		UIManager.removeComponents();
		Cursor.setType(Cursor.ACTION.DEFAULT);

		// Don't reload a map when it's just a local teleportation
		if (this.currentMap !== mapname) {
			this.loading = true;
			BGM.stop();
			this.currentMap = mapname;

			// Parse the filename (ugly RO)
			var filename = mapname.replace(/\.gat$/i, '.rsw');

			Background.setLoading(function() {
				// Hooking Thread
				Thread.hook('MAP_PROGRESS', onProgressUpdate.bind(MapRenderer) );
				Thread.hook('MAP_WORLD',    onWorldComplete.bind(MapRenderer) );
				Thread.hook('MAP_GROUND',   onGroundComplete.bind(MapRenderer) );
				Thread.hook('MAP_ALTITUDE', onAltitudeComplete.bind(MapRenderer) );
				Thread.hook('MAP_MODELS',   onModelsComplete.bind(MapRenderer) );

				// Start Loading
				MapRenderer.free();
				Renderer.remove();
				Thread.send('LOAD_MAP', filename, onMapComplete.bind(MapRenderer) );
			});

			return;
		}

		var gl = Renderer.getContext();
		EntityManager.free();
		Damage.free( gl );
		EffectManager.free( gl );

		// Basic TP
		Background.remove(function(){
			MapRenderer.onLoad();
			Sky.setUpCloudData();

			Renderer.render( MapRenderer.onRender );
		});
	};
Beispiel #2
0
	MapRenderer.setMap = function LoadMap( mapname )
	{
		// TODO: stop the map loading, and start to load the new map.
		if (this.loading) {
			return;
		}

		// Clean objects
		SoundManager.stop();
		Renderer.stop();
		UIManager.removeComponents();

		// Don't reload a map when it's just a local teleportation
		if( this.currentMap !== mapname ) {
			this.loading = true;
			BGM.stop();
			this.currentMap = mapname;

			// Parse the filename (ugly RO)
			var filename = mapname.replace(/\.gat$/i, '.rsw');
			if( filename in DB.mapalias ) {
				filename = DB.mapalias[filename];
			}

			Background.setLoading(function() {
				// Hooking Thread
				Thread.hook('MAP_PROGRESS', OnProgressUpdate.bind(MapRenderer) );
				Thread.hook('MAP_WORLD',    OnWorldComplete.bind(MapRenderer) );
				Thread.hook('MAP_GROUND',   OnGroundComplete.bind(MapRenderer) );
				Thread.hook('MAP_ALTITUDE', OnAltitudeComplete.bind(MapRenderer) );
				Thread.hook('MAP_MODELS',   OnModelsComplete.bind(MapRenderer) );

				// Start Loading
				MapRenderer.free();
				Renderer.remove();
				Thread.send('LOAD_MAP', filename, OnMapComplete.bind(MapRenderer) );
			});

			return;
		}

		var gl = Renderer.getContext();
		EntityManager.free();
		Damage.free( gl );

		// Basic TP
		Background.remove(function(){
			MapRenderer.onLoad();
			Sky.setUpCloudData();

			Renderer.render( MapRenderer.onRender );
		});
	};