Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// @description Load level
- var lvl = string(global.CurrentLevel); // current level number
- if (string_length(global.CurrentLevel) < 3)
- {
- var zeros_to_add = 3 - string_length(global.CurrentLevel);
- for (var i = 0; i < zeros_to_add; i++)
- {
- lvl = string_insert("0",lvl,1);
- }
- }
- /*
- How the fuck this works?
- We stringify our global.CurrentLevel var
- Then we calculate how many zeros we need to add so it'll be a 3-number string
- And use string_insert to insert an amount of zeros we need
- */
- var file = file_text_open_read("levels/World1/level"+lvl+".txt");
- var num = 0;
- while (!file_text_eof(file))
- {
- line[num] = file_text_read_string(file);
- show_debug_message(line[num]);
- num++;
- file_text_readln(file);
- }
- file_text_close(file);
- LevelPlayerSteps = 0;
- NextSymbol = 1;
- LevelIndex = real(scrReadFirstString(NextSymbol,line[0]));
- show_debug_message("Level Index: " + string(LevelIndex));
- LevelName = scrReadFirstString(NextSymbol,line[0]);
- LevelTwoStars = real(scrReadFirstString(NextSymbol,line[0]));
- LevelThreeStars = real(scrReadFirstString(NextSymbol,line[0]));
- LevelCanThreeStars = true;
- LevelCanTwoStars = false;
- for (var a = 1; a < array_length_1d(line); a++)
- {
- levelarr[a-1] = line[a];
- //levelarr[a-1] = scrCharToTile(line[a]);
- }
- line = 0; //free original array
- ds_grid_for_tiles = ds_grid_create(string_length(levelarr[0]),array_length_1d(levelarr));
- _LEVELX = (960 - (ds_grid_width(ds_grid_for_tiles)*30)) / 2;
- _LEVELY = 100;
- show_debug_message(string(_LEVELX));
- for (var i = 0; i < ds_grid_width(ds_grid_for_tiles); i++)
- {
- for (var j = 0; j < ds_grid_height(ds_grid_for_tiles); j++)
- {
- if (is_undefined(ds_grid_get(ds_grid_for_tiles,i,j))) break;
- ds_grid_for_tiles[# i, j] = string_copy(levelarr[i],j+1,1);
- ds_grid_for_tiles[# i, j] = scrCharToTile(ds_grid_for_tiles[# i, j]);
- }
- }
- global.FloorTileCount = 0;
- global.PaintedTileCount = 0;
- global.LevelComplete = false;
- lvlcomplete_selected = 1;
- global.LevelPaused = false;
- for (var i = 0; i < ds_grid_width(ds_grid_for_tiles); i++)
- {
- for (var j = 0; j < ds_grid_height(ds_grid_for_tiles); j++)
- {
- var cur_val = ds_grid_for_tiles[# i,j];
- show_debug_message(string(i) + " : " + string(j));
- var _x = _LEVELX+(i*30);
- var _y = _LEVELY+(j*30);
- switch (cur_val)
- {
- case TILES.WALL_TILE:
- instance_create_layer(_x,_y,layer,oWall); break;
- case TILES.START_TILE:
- instance_create_layer(_x,_y,"Player",oBall);
- instance_create_layer(_x,_y,layer,oFloor);
- break;
- case TILES.FLOOR_TILE:
- instance_create_layer(_x,_y,layer,oFloor); break;
- default: instance_create_layer(_x,_y,layer,oFloor); break;
- }
- }
- }
- ds_grid_destroy(ds_grid_for_tiles);
- ds_grid_for_tiles = -1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement