Here we can share any oRoom shapes and use them in each others mods.
Please post any room shapes you'd like to share and take and use any you find here!
I think the best form to share them would be:
"0000000000"+
"0000000000"+
"0000000000"+
"0000000000"+
"0000000000"+
"0000000000"+
"0000000000"+
"0000000000"+
oRooms are the building block of the randomly generated levels in spelunky.
They mark the space for all the elements of the game to be created.
When the level is made the game randomly picks from several (like > 150 for all level types!) 'shapes' to make up each level from. Each level uses 16 oRoom shapes, in a 4 by 4 grid. These level 'shapes' tell the game where to place solid bricks, push blocks, players, trees (i think?), spikes, snakes (in the snake pit), start/finish and likely many more things. These shapes are keep track of in a series of numbers and letters. the number '0' is an empty space, the number '1' is a brick, '2' is a
random chance of a brick, '7' a chance of spikes... and many other letters and numbers. You can find an index of all the letters/numbers and their meaning at the bottoms of each scrRoomGen script.
All together they would look like this:
"110000000040L600000011P000000011L000000011L0000000110000000011000000001112222111"
I find that if you write them with breaks and align them, they are much easier to read:
"1100000000"+
"40L6000000"+
"11P0000000"+
"11L0000000"+
"11L0000000"+
"1100000000"+
"1100000000"+
"1112222111";
(Oh, MAN I hated that shape! Can anyone post a picture of it?)
You can find the code for the oRoom shapes in the scripts:
scripts folder / level generation /
scrRoomGen1 - 5, black market and yeti cave
Simply remove the blocks of code that say
"60000600000000000000000600000000000000000000000000000222220000111111001111111111"
and replace them with the ones you find here...
Orr....
Change the code that reads:
n = rand(1,10)
and change it to read one more:
n = rand(1,11)
Then add your shape new shape on the end, INSIDE THE BRACKET:
case 9:{...}
case 10: {.....}
case [b]11[/b]: { strTemp = "110000000040L600000011P000000011L000000011L0000000110000000011000000001112222111"; break; [b])[/b]
If you'd like (i'd like) you can make the code look like this and it'll work just the same but be easier to read:
case [b]11[/b]:
{
strTemp = "1100000000"+
"40L6000000"+
"11P0000000"+
"11L0000000"+
"11L0000000"+
"1100000000"+
"1100000000"+
"1112222111";
break;
[b])[/b]
OK, go ahead and take & leave.
And feel free to ask any questions about how this works if you don't understand!