/// <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(); }
private void StopEditing() { if (!Activate) { return; } CameraManager.Stop(); activateLevel = null; activateLevelMetadata = null; }
// 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); }