Esempio n. 1
0
        /// <summary>
        /// Initializes the edit mode menu, and sets the activate level metadata.
        /// </summary>
        /// <param name="levelMetadata"></param>
        public void BeginEdit(RuntimeLevel level)
        {
            if (Activate)
            {
                return;
            }

            activateLevel         = level;
            activateLevelMetadata = level.LevelMetadata;

            CreateMenu();
        }
Esempio n. 2
0
        private void StopEditing()
        {
            if (!Activate)
            {
                return;
            }

            CameraManager.Stop();

            activateLevel         = null;
            activateLevelMetadata = null;
        }
Esempio n. 3
0
		// Range: -1 Access: 0 Flags: ( 0, 4, 255 )
		public static void setup_map_transitions(  ) {
			ByTable SLS = null;
			dynamic D = null;
			int conf_set_len = 0;
			int k = 0;
			dynamic A = null;
			ByTable point_grid = null;
			ByTable grid = null;
			dynamic P = null;
			int? i = null;
			int? j = null;
			Point pnt = null;
			ByTable possible_points = null;
			ByTable used_points = null;
			dynamic A2 = null;
			ByTable x_pos_beginning = null;
			ByTable y_pos_beginning = null;
			ByTable x_pos_ending = null;
			ByTable y_pos_ending = null;
			ByTable x_pos_transition = null;
			ByTable y_pos_transition = null;
			int? zlevelnumber = null;
			int? side = null;
			Tile beginning = null;
			Tile ending = null;
			ByTable turfblock = null;
			double dirside = 0;
			int? zdestination = null;
			Tile_Space S = null;
			dynamic A3 = null;
			SLS = new ByTable();
			conf_set_len = GlobalVars.map_transition_config.len;
			k = 1;
			A = null;
			foreach (dynamic _a in GlobalVars.map_transition_config ) {
				A = _a;
				D = new SpaceLevel( GlobalVars.map_transition_config[A] );
				D.name = A;
				D.z_value = k;
				if ( Lang13.Double( D.linked ) < 2 ) {
					GlobalVars.z_levels_list["" + D.z_value] = D;
				} else {
					SLS.Add( D );
				}
				k++;
			};
			point_grid = null;
			point_grid = new ByTable( conf_set_len * 2 + 1, conf_set_len * 2 + 1 );
			grid = new ByTable();
			P = null;
			i = null;
			i = 1;
			while (( i ??0) <= conf_set_len * 2 + 1) {
				j = null;
				j = 1;
				while (( j ??0) <= conf_set_len * 2 + 1) {
					P = new Point( i, j, point_grid );
					point_grid[i][j] = P;
					grid.Add( P );
					j++;
				}
				i++;
			}
			pnt = null;
			foreach (dynamic _b in grid ) {
				if ( !( _b is Point ) ) {
					continue;
				}
				pnt = _b;
				pnt.set_neigbours( point_grid );
			};
			P = point_grid[conf_set_len + 1][conf_set_len + 1];
			possible_points = new ByTable();
			used_points = new ByTable();
			grid.Cut();
			while (SLS.len != 0) {
				D = Rand13.pick( SLS );
				SLS.Remove( D );
				D.xi = P.x;
				D.yi = P.y;
				P.spl = D;
				possible_points |= P.neigbours;
				used_points |= P;
				possible_points.Remove( used_points );
				((SpaceLevel)D).set_neigbours( used_points );
				P = Rand13.pick( possible_points );
				grid["" + D.z_value] = D;
			}
			A2 = null;
			foreach (dynamic _c in GlobalVars.z_levels_list ) {
				A2 = _c;
				grid[A2] = GlobalVars.z_levels_list[A2];
			};
			x_pos_beginning = new ByTable(new object [] { 1, 1, Game13.map_size_x - 7, 1 });
			y_pos_beginning = new ByTable(new object [] { Game13.map_size_y - 7, 1, 7, 7 });
			x_pos_ending = new ByTable(new object [] { Game13.map_size_x, Game13.map_size_x, Game13.map_size_x, 7 });
			y_pos_ending = new ByTable(new object [] { Game13.map_size_y, 7, Game13.map_size_y - 7, Game13.map_size_y - 7 });
			x_pos_transition = new ByTable(new object [] { 1, 1, 9, Game13.map_size_x - 7 - 2 });
			y_pos_transition = new ByTable(new object [] { 9, Game13.map_size_y - 7 - 2, 1, 1 });
			zlevelnumber = null;
			zlevelnumber = 1;
			while (( zlevelnumber ??0) <= grid.len) {
				D = grid["" + zlevelnumber];
				if ( !Lang13.Bool( D ) ) {
					Task13.crash( "" + zlevelnumber + " position has no space level datum." );
				}
				if ( !Lang13.Bool( D.neigbours.len ) ) {
					
				} else {
					side = null;
					side = 1;
					while (( side ??0) < 5) {
						beginning = Map13.get_tile_at( Lang13.Int( x_pos_beginning[side] ), Lang13.Int( y_pos_beginning[side] ), zlevelnumber ??0 );
						ending = Map13.get_tile_at( Lang13.Int( x_pos_ending[side] ), Lang13.Int( y_pos_ending[side] ), zlevelnumber ??0 );
						turfblock = Map13.fetch_in_block( beginning, ending );
						dirside = Math.Pow( 2, ( side ??0) - 1 );
						zdestination = zlevelnumber;
						if ( Lang13.Bool( D.neigbours["" + dirside] ) && D.neigbours["" + dirside] != D ) {
							D = D.neigbours["" + dirside];
							zdestination = Lang13.IntNullable( D.z_value );
						} else {
							dirside = Num13.rotate_dir( dirside, 180 );
							while (Lang13.Bool( D.neigbours["" + dirside] ) && D.neigbours["" + dirside] != D) {
								D = D.neigbours["" + dirside];
							}
							zdestination = Lang13.IntNullable( D.z_value );
						}
						D = grid["" + zlevelnumber];
						S = null;
						foreach (dynamic _d in turfblock ) {
							if ( !( _d is Tile_Space ) ) {
								continue;
							}
							S = _d;
							S.destination_x = ( x_pos_transition[side] == 1 ? ((dynamic)S).x : x_pos_transition[side] );
							S.destination_y = ( y_pos_transition[side] == 1 ? ((dynamic)S).y : y_pos_transition[side] );
							S.destination_z = zdestination;
						};
						side++;
					}
				}
				zlevelnumber++;
			}
			A3 = null;
			foreach (dynamic _e in grid ) {
				A3 = _e;
				GlobalVars.z_levels_list[A3] = grid[A3];
			};
			return;
		}
 internal RuntimeLevel(SpaceLevel levelMetadata)
 {
     LevelMetadata   = levelMetadata;
     GraphicsManager = new LevelGraphicsManager(this);
     PropManager     = new LevelPropManager(this);
 }