Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Xyzzу

What are some maps you've made that have been absolute nightmares to work on/build?

Recommended Posts

Perhaps the title is a bit extreme. 

Were there things you planned but had to scrap because of engine limitations? Maybe over-ambition got the best of you; things just didn't work the way you planned with the map format you worked in. Perhaps building the geometry for that one room just got too complicated for its own good and you needed to cut it entirely/start over? Or you had to remake a large area because your wad got corrupted or something. Boy, I know that stings. Or a script was not working right like it's supposed to so you had to basically bash your head against your desk for hours until finally a light bulb turned on, the gears started turning and you figured out what had you pulling your hair out all this time! A missing semicolon.

 

Just wanna know the various struggles you've had while making certain maps that nobody knew about but you is all! You can also talk about how you overcame those struggles or came up with a solution to your problems.

 

Here, I'll start. I remember when I worked on this map for Confinement 256.

Spoiler

Screenshot_Doom_20170610_222634.png.c7b0b072c7c1f8336c1b038e48f773f8.png

 

A massive frustrating amalgamation of sectors disappearing for no reason, tedious amounts of balancing and playtesting, countless Doom Builder crashes, and other unexplained mishaps out from nowhere. And to top it all off, it lagged like hell in the editor and still does on my newest and current laptop. In fact, I can't play it in GZDoom on this laptop, either!

 

In retrospect, I think the immense Florida heat I had to endure at the time rewired my mind to think this entire map was a good idea, heh. :P

Share this post


Link to post

I have two maps that were a nightmare to do , mainly because I had not enough experience in mapping and also because of lack of organisation.

 

Map 01 : Spyro Stellar's base (Funny title)

 

The first map was not for doom but for chex quest but whatever , it was a big map I have made when I was a beginner in doom mapping (2016).

 

1480276961-screenshot-chex-20161127-2059

 

This map suffers of numerous errors  ,unjoined sectors , the progression is totally obscure because of non-linearity and ammo/health are very unbalanced. However , I'm proud of this map but I was not enough skilled to make the work properly.

 

Map 02 : Gladiator (Tangerine Nightmare)

 

Screenshot_Doom_20170722_211744.jpg.a996395fc24cc284d5217d7c8452aa29.jpg

 

I gave up this level even if  I have done many things on it because the whole was totally unplayable and uninteresting. It was supposed to be a Dead-simple style map but I made Goetia instead which focused on exploration.  This map was a nightmare to do primarly because everything was oversized so I had to fill it with monsters... meh. I was also too ambitious because I canceled many planned areas , not because of lack of time but because of lack of ideas. I planned to make three different arenas where you must grab a key in each but I eventually used only one key because building this map started to get on my nerves.

 

Share this post


Link to post

- PRCP - map08

- An unfinished map for BTSX ep3

 

Before, I have the worst time to respect the vanilla limits... Now, It's a real pleasure to make maps in the vanilla format!

Share this post


Link to post

Umbra of Fate's length meant that testing it was absolute hell.  I had my tricks and shortcuts, which helped, but it was still tedious and annoying.  What I ended up doing was dividing it up into four sections, then playing through each one and averaging what I ended with.  Then I'd move the player start thing to the next section and call a script in the console to give me the previously averaged values.  It worked, but it was still a lot of work.

 

Also annoying was how I had to turn down GZDB's visual settings just to work on it without too much slowdown.  Yay for 12,022 sectors and 6975 things (mostly point lights).  I think I halved the view distance by the end.  The main PK3 was also over 100mb at one point before I culled unused textures, which meant that it took a long time to load and save (I keep everything on a networked drive, so there's some latency).

 

Also in UoF, I ran into an odd bug where if a section of the map (specifically the difficulty selection area) was too far away from the rest of the map, the switch textures wouldn't cycle.  That took me forever to figure out, and I only did after I changed the textures being used.

 

The area with the yellow skull key in UoF was also hell to build.  It's a partial port of my Quake level, Temple of Azathoth, specifically the gold key area, and getting all the 3D geometry to work without using portals (they aren't used once in UoF) was tiring.  None of them were perfectly lined up.  But, it's one of my most favorite areas in the map, so it was worth it.  Actually a few areas are either ported form my Quake map or otherwise use a lot of 3D floors, all of which got a bit tedious in one way or another.

 

Spoiler

gOsoGWX.png

 

Same place in Temple of Azathoth:

rFFMG7e.png

 

Speaking of the gold key area in Temple of Azathoth, I was trying to get a section to trigger using a boolean circuit built with the standard entities.  I know this is possible, but after two days of trying to get it to work and failing, I abandoned it and entirely changed that part of the map.

 

The first map of SoTNR has that hallway at the very beginning that silently teleports the player to give the illusion that the world somehow changed around them.  Getting all of those textures aligned exactly the same was HELL and I remember aligning them right up until a few days before release.

 

SoTNR map 2 was originally going to take place entirely underwater, as if the temple was at the bottom of the sea (think SOMA, but a temple instead of a base).  But I never could get the skybox to look correct, so I scrapped that idea.  This is one theme I still really want to do in a Doom/Quake map.  The 3d model that you see in the skybox and the seaweed sprites are the only bits that are leftover from this.

Share this post


Link to post
50 minutes ago, franckFRAG said:

- An unfinished map for BTSX ep3

Ooo, you're making a level for that WAD?

Share this post


Link to post

Switcheroom E1M2. Oh boy if it was frustrating to get the perfect project criteria on that map.

Edited by Walter confetti

Share this post


Link to post

Any speedmaps I've done so far. Engine limitations? Overhauling a giant setpiece? All of them can be resolved by figuring out right solutions, if there's enough time. But I just couldn't design everything I want to express within just a few hours. In fact, I found that participating a speedmapping session is a little bit stressful to me.

Share this post


Link to post

Map05 of D2 INO. Not that one that was total dissapointment. The other, RDC one.

 

Aaaand my map for DWMP... 15?16? Don't remember, but it utilized a lot of red marble and had strange wooden section with cybie waitin' you for PYA fun.

Share this post


Link to post

Actually I think I'm pretty good at avoiding developer nightmares. I almost never go for large maps, complicated structures usually don't interest me, and I rarely work in the "clean looking" style since it feels very restrictive and requires a lot of attention to the unity of the visuals (like you change one thing and then you have to do the same in all other areas for the sake of consistency). This must be a big part of the reason why I managed to release so many levels.

Share this post


Link to post

My mapping style for sp/coop is usually a kinda dollar-store version of the Memfis approach, minimalist design and compact, interconnected layouts. Sometimes I go for something "big" (by my own standards anyway, tiny compared to the works of the true mapping geniuses out there) but whenever I do it takes me forever and I stagnate and run out of ideas as soon as the finish line is in sight. 2 maps come to mind right away:

 

MAP16.PNG

^This is map16 from Revenge of the 90's. It doesn't look like much on the automap, but it's a pretty large city map. I added rooms at various heights for all the buildings and painstakingly aligned them with all the window textures. I even went through the effort of building a theater in the map that had ~30 frame animated textures for each screen. My friend Sam even composed an awesome original piece for the music track.. A ton of effort went into this one.

 

 

MAP01.PNG

^This absurd beast is Shovelware Adventure! I designed it for the original vinesauce Doom mapping contest, not realizing just how many other submissions there was going to be. The intent here was to dazzle the player with a map which feels like a whole 'tiny episode' unto itself with a variety of locales and types of battles to get into. A few fun and wacky sprite swaps and behavioral changes were applied under the hood using dehacked, as even though it wasn't a requirement, I wanted to keep this 100% vanilla just to show what the engine is capable of.

 

My approach totally backfired for the sake of the contest, as the compact 2-4 minute maps with a funny joke/gimmick or a standout visual aspect were the ones that Joel liked the most (I think, much like me, he had no idea just how many damn maps were going to be submitted). Regardless I was very pleased with the silly yet oddly engaging ~30 minute romp this beast turned out to be and most people seemed to enjoy it. Still, it was a fucking bitch to pour so much effort into one lone map, in just a 7 day window no less. If people only ever play one map I made, I hope it'd be this one.

 

I've released quite a few wads that were heavy on the sprite edits and heavy on the dehacked work, and that stuff is always a time consuming bitch, but I just love the results.

Share this post


Link to post

This beast I still have yet to finish from my mod.

1mzk8e0.jpg

The primary reason this has been a nightmare to work on is I didn't plan this one out first. I've got all the other maps planned to at least some degree, but I had to wing it with this one, so I tried to build a large fortress with a lot of nonlinearity and natural areas that actually look natural and since I had no plan, I ran out of thoughts in October of last year. If I can finish this, the rest of the mod will come along, very slowly, but it'll be moving faster than it is.

 

The previous maps, despite being so complicated, were actually pretty easy to make. Probably the only exception would be these two structures in MAP00.

xv2wWlt.png

 

R5fxA09.png

In spite of the fact that I knew what I was doing, I ran out of tags I could use because I wasn't using UDMF yet.

MAP00 was a little rough toward the end because of that, when I finally had to move around stacked sectors and scripts to accommodate everything I wanted to add.

That said, the effort I put into it, I think was worth it.

Share this post


Link to post

4020833fbe1ae29cb131f0df6c86c3d2.png

That middle bit you see with a bazillion sectors? Yeah that's the playable area. It's 256x256 wide and all those dummy sectors on the right are the 3D floors.

This map was severely reduced compared to the intended end result because the engine couldn't handle the lag of all those tiny 3D sectors being 'in view'. I intended to make it about 4096 tall - an epic climb to the top of the tower; but there was little point in adding anything more - the map would only become an unplayable slideshow if I had continued.

 

It had several multi-tagged sectors:

6ef9bcebdb4a6e8a2bcedf718ada07ee.png

Which when you had more than one sector selected shows ??? ??? ??? ??? instead of numbers because of conflicts.

Having so many tiny sectors means things like switched got sliced into several sub-lines and had to have workarounds made for them. Such as: 

 

4e48b5dfb3ab198a0adb45b8563019b6.png

 

This map is playable here - 

 

 

 

Share this post


Link to post

I remember MAP11 from my WIP mapset. Initially it was another map slot, but I moved it and needed to assign new skies with sky transfer actions. Main problem there is outside most sectors already have their tags. So it was very annoying searching used tags on sky manually.

Not sure but maybe there is easier way in GZDB-bf to automatize sky transfers. If somebody knows, tell me.

Share this post


Link to post

This piece of shit lol

Probably the biggest map I'll ever make. Figuring the whole thing was a very tiring task, and then trying to make monsters to work well in those huge corridors? (it has 550 foes) Hopefully some experimental ideas will work well =x

 

dGdbSi1.png

 

It surprises me how some ideas flows well and I get things done without much time, but sometimes it's very hard to find that "flow"

Edited by Deadwing

Share this post


Link to post

Rush map12:

MAP12.PNG

 

Chronoblast:

MAP30.PNG

 

I have and urge to make huge maps without usage of prefabs and copypasting. And it takes forever to make one such map.

Edited by Archi

Share this post


Link to post
30 minutes ago, Archi said:

I have and urge to make huge maps without usage of prefabs and copypasting. And it takes forever to make one such map.

What is wrong with us? Why would we do this to ourselves?

Share this post


Link to post
Spoiler

 

nFGNU6U.png


 

ONmu0k3.png

This interception 2 map I am making. I had like gee I don't know 7 false starts and restarts. I am still not happy with parts of it but my strategy has been to go work on something else in the map when I get stuck somewhere. As you can see, I got stuck a lot on this map because the size - it ballooned. I am also notoriously inconsistent in what I produce. I can not follow a normal gradient like most all normal people do - If I do not spend a half a year with map blocks and fretting over what to make I make a teeny-weeny map or this monster. There is no in between.

 

I actually could add an exit and call it a day at this point - however, I want to try and create a final other area as you can see to the right. I have something seldom seen in doom mapping that I want to try out.

 

e1 - added a clearer picture.

Edited by NeedHealth

Share this post


Link to post

That blue linedef colour makes this look completely unreadable to me. Any chance you could show us with the automap preview mode?

Share this post


Link to post

My laptop is like 9 years old at this point, I don't think it could run gzdoombuilder lol. Here is how far prboom+ would allow me zoom out.

 

ONmu0k3.png

Share this post


Link to post

@Aquila Chrysaetos I mean the screenshot which has the modified colours - I cannot understand what I'm looking at as these colours really make it messy.

@NeedHealth perhaps an in-game automap screenshot then? :s Heh. No worries either way. If I squint I can make out what's what. Nevermind. Thanks! Looks pretty cool!

Share this post


Link to post

Just on the subject of map layout images: the ones I like best are the ones produced by SLADE3 - I've always thought they are intelligible and very pleasant to look at. Having said that, I don't think I've tested it on particularly large maps.

Share this post


Link to post

Good thread idea...

 

For me it would be my last map, Parechesis.   The opening area kept needing to be adjusted to avoid HOMs and other weird glitches.   I must have changed it 5 times before I gave up and walled off the vantage points where it would most likely occur.  Also the stupid amount of tags were kind of hard to keep track of and at one point I had lost/merged my tags together and had to go back to an earlier version to manually restore everything (tedious to say the least).  

 

 

Share this post


Link to post

I laughed that for those of us who worked on Confinement 256, we all instantly thought of that!

 

My contribution to that mapset was the final map of the community episode: The Shuffling Madness.

 

The entire automap looks like this:

 

Screenshot_Doom_20180522_081311.png.07f463efc818a54846029d81c3d07e9f.png

 

 

Doesn't look like much does it?

 

But I had the brilliant awful idea of "What would it be like if the room rearranged itself using portals?"

 

Turns out keeping track of how the level was being rearranged when nothing is visual in GZDB (because it's all done through ACS) was an absolute nightmare.  I learned more about linedef portals than I think anyone ever needs to (including discovering a game-breaking GZDoom bug, because I guess no-one had been an idiot enough to try something like this) and the final map took something like 60 hours to finish.

 

I'm proud of the result, but I was a lunatic for attempting it.

 

The final ACS ended up like this:

 

Spoiler

#include "zcommon.acs"

script 9 ENTER
{

    SetActorProperty(0, APROP_RenderStyle, STYLE_Translucent);
	SetActorProperty(0, APROP_Alpha, 0.0);

	ClearInventory();

FadeTo(0, 0, 0, 1.0, 0);
Delay(33);
SetFont("CONFONT");
HudMessage(s:"When the shuffling madness has you\n\nThere's only one way to break free...";
		HUDMSG_FADEINOUT, 1, CR_GOLD, 0.5, 0.4, 4.0, 1.0, 1.0);
Delay(35 * 5);
FadeTo(0, 0, 0, 0.0, 1.0);

Line_SetPortalTarget(61,0);
Line_SetPortalTarget(84,0);
Line_SetPortalTarget(88,0);

	delay(35);
	Floor_RaiseByValue(57,16,128);
	Radius_Quake(1,64,0,1,0);

	int sid = 1;  // sid is the sector ID

    while ( sid < 2 )
	{
	SpawnParticle(0x990000,1,70,8,Random (-120.0, 120.0),Random (-120.0, 120.0),95.0,0,0,1.,0.,0.,-0.4,1.0,0.0);
	delay(2);
	}
}

script 1 (void)
{
	Floor_LowerByValue(1,16,92);
	//Radius_Quake(9,35,0,1,0);
}

script 2 (void)
{
	Floor_LowerByValue(2,16,92);
}

script 3 (void)
{
	Floor_RaiseByValue(3,16,92);
	Floor_LowerByValue(4,16,92);
	Floor_RaiseByValue(2,16,92);
	Floor_LowerByValue(5,16,92);
	Floor_RaiseByValue(8,16,92);
	SetLineTexture(9, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(9,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	//SpawnSpotForced("LostSoul", 22, 0, 90);
	//Spawn("LostSoul",-6291456, 2097152, 0, 0, 128);
}

script 4 (void)
{
	Floor_RaiseByValue(10,16,92);
	Floor_LowerByValue(11,16,92);
	Floor_RaiseByValue(4,16,92);
	Floor_RaiseByValue(1,16,92);
	SetLineTexture(12, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	Floor_LowerByValue(13,16,92);
	Floor_LowerByValue(15,16,92);
	Line_SetPortalTarget(7,0);
	Floor_LowerByValue(3,16,92);
	Floor_LowerByValue(17,16,92);
	SetLineTexture(20, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
}

script 5 (void)
{
	Floor_RaiseByValue(3,16,92);
	Line_SetPortalTarget(18,16);
	Line_SetPortalTarget(16,18);
	Floor_LowerByValue(8,16,92);
	Line_SetPortalTarget(19,21);
	Floor_LowerByValue(10,16,92);
	Floor_RaiseByValue(13,16,92);
	SetLineTexture(9, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	//SpawnSpot("LostSoul", 23, 0, 180);
	//Spawn("LostSoul",-2097152, 6291456, 0, 0, 192);
	SetLineTexture(25, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(25,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
}

script 6 (void)
{
	Floor_RaiseByValue(24,32,92);
	Floor_RaiseByValue(17,128,92);
	Floor_LowerByValue(26,16,92);
	Line_SetPortalTarget(21,27);
	Floor_RaiseByValue(5,16,92);
	Floor_LowerByValue(28,16,92);
	Floor_RaiseByValue(11,16,92);
	Line_SetPortalTarget(16,31);
	Floor_LowerByValue(30,16,92);
	//SpawnSpotForced("LostSoul", 32, 0, 135);
}

script 7 (void)
{
	Line_SetPortalTarget(21,29);
}

script 8 (void)
{
	Line_SetPortalTarget(19,14);
	Floor_LowerByValue(17,16,92);
	Floor_LowerByValue(13,16,92);
	Floor_LowerByValue(11,16,92);
	Floor_RaiseByValue(33,16,92);
	Floor_RaiseByValue(34,16,92);
	Floor_LowerByValue(36,16,92);
	Floor_LowerByValue(37,16,92);
	Floor_RaiseByValue(15,64,92);
	Line_SetPortalTarget(14,40);
	Floor_RaiseByValue(38,16,92);
	Floor_LowerByValue(39,16,92);
	SetLineTexture(41, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(41,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	Floor_LowerByValue(42,16,92);
	Floor_RaiseByValue(43,16,92);
	Floor_LowerByValue(44,16,92);
	Floor_RaiseByValue(45,16,92);
	Floor_RaiseByValue(8,16,92);
	Line_SetPortalTarget(29,14);
	//SpawnSpotForced("LostSoul", 49, 0, 90);

		SetFont("CONFONT");
	HudMessage(s:"The insanity churns unending..."; HUDMSG_FADEINOUT, 2, CR_GOLD, 0.5, 0.4, 3.0, 0.1, 1.0);
	}

	script 10 (void)
{
	Floor_RaiseByValue(44,64,92);
	Floor_LowerByValue(33,16,92);
	Floor_RaiseByValue(11,16,92);
	Floor_RaiseByValue(28,16,92);
	Floor_LowerInstant(50,0,64);
	Floor_LowerInstant(5,0,75);
	Floor_LowerInstant(51,0,64);
	Floor_LowerInstant(15,0,75);
	Floor_LowerInstant(52,0,64);
	Ceiling_LowerInstant(5,0,64);
	Ceiling_LowerInstant(51,0,64);
	Ceiling_LowerInstant(15,0,64);
	Ceiling_LowerInstant(52,0,64);
	Line_SetPortalTarget(16,53);
	Floor_LowerByValue(54,16,92);
	Floor_RaiseByValue(55,16,92);
	Line_SetPortalTarget(14,56);
	Floor_LowerByValue(34,16,92);
	//SpawnSpotForced("LostSoul", 49, 0, 90);
	Floor_RaiseByValue(39,16,92);
	SetLineTexture(58, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(58,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);


}

	script 11 (void)
{
	//Line_SetPortalTarget(60,61);
	Line_SetPortalTarget(61,56);
	Line_SetPortalTarget(56,61);
	Floor_RaiseByValue(35,96,92);
	Floor_RaiseInstant(50,0,64);
	Ceiling_RaiseInstant(5,0,64);
	Ceiling_RaiseInstant(51,0,64);
	Ceiling_RaiseInstant(15,0,64);
	Ceiling_RaiseInstant(52,0,64);
	Floor_RaiseInstant(5,0,75.5);
	Floor_RaiseInstant(51,0,64);
	Floor_RaiseInstant(15,0,75.5);
	Floor_RaiseInstant(52,0,64);
	Floor_LowerByValue(59,16,92);
	SetLineTexture(48, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(9, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	Floor_RaiseByValue(5,64,92);
	Floor_LowerByValue(24,64,92);
	Floor_LowerByValue(4,64,92);
	//Floor_RaiseByValue(5,64,92);
	//Floor_RaiseByValue(15,64,92);
	Floor_RaiseByValue(17,64,92);
	Floor_RaiseByValue(26,64,92);
	Line_SetPortalTarget(6,0);
	Floor_RaiseByValue(13,64,92);
	Floor_LowerByValue(1,64,92);
	Floor_LowerByValue(2,64,92);
	Floor_RaiseByValue(33,64,92);
	Floor_LowerByValue(44,64,92);
	Floor_RaiseByValue(8,64,92);
	Floor_RaiseByValue(42,64,92);
	Floor_RaiseByValue(62,64,92);
	Floor_LowerByValue(63,64,92);
	Floor_LowerByValue(64,64,92);
	Floor_RaiseByValue(65,64,92);
	SetLineTexture(66, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(66,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	Floor_RaiseByValue(34,64,92);
	SetLineTexture(76, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	delay(15);

	FloorAndCeiling_LowerByValue(51,16,(12*1));
	FloorAndCeiling_LowerByValue(37,16,(12*2));
	FloorAndCeiling_LowerByValue(67,16,(12*3));
	FloorAndCeiling_LowerByValue(24,16,(12*4));
	FloorAndCeiling_LowerByValue(68,16,(12*5));
	FloorAndCeiling_LowerByValue(4,16,(12*6));
	FloorAndCeiling_LowerByValue(69,16,(12*7));
	FloorAndCeiling_LowerByValue(1,16,(12*8));
	FloorAndCeiling_LowerByValue(57,16,(12*9));
	FloorAndCeiling_LowerByValue(70,16,(12*9));
	FloorAndCeiling_LowerByValue(2,16,(12*10));
	FloorAndCeiling_LowerByValue(71,16,(12*11));
	FloorAndCeiling_LowerByValue(44,16,(12*11));
	FloorAndCeiling_LowerByValue(72,16,(12*11));
	FloorAndCeiling_RaiseByValue(63,16,(12*1));

	Ceiling_RaiseByValue(34,16,(12*1));
	Ceiling_RaiseByValue(62,16,(12*1));
	Ceiling_RaiseByValue(43,16,(12*3));
	Ceiling_RaiseByValue(75,16,(12*3));
	Ceiling_RaiseByValue(46,16,(12*4));
	Ceiling_RaiseByValue(28,16,(12*4));
	Ceiling_RaiseByValue(65,16,(12*4));

	FloorAndCeiling_RaiseByValue(73,16,(12*2));
	FloorAndCeiling_RaiseByValue(64,16,(12*3));

	FloorAndCeiling_RaiseByValue(74,16,(12*4));

	delay(15);

	Floor_RaiseByValue(34,16,(12*1));
	Floor_RaiseByValue(62,16,(12*1));

	Floor_RaiseByValue(43,16,(12*3));
	Floor_RaiseByValue(75,16,(12*3));

	Floor_RaiseByValue(46,16,(12*4));
	Floor_RaiseByValue(28,16,(12*4));
	Floor_RaiseByValue(65,16,(12*4));
}

script 12 (void)
{
	FloorAndCeiling_RaiseByValue(51,64,(12*1));
	FloorAndCeiling_RaiseByValue(37,64,(12*2));
	FloorAndCeiling_RaiseByValue(67,64,(12*3));
	FloorAndCeiling_RaiseByValue(24,64,(12*4));
	FloorAndCeiling_RaiseByValue(68,64,(12*5));
	FloorAndCeiling_RaiseByValue(4,64,(12*6));
	FloorAndCeiling_RaiseByValue(69,64,(12*7));
	FloorAndCeiling_RaiseByValue(1,64,(12*8));
	FloorAndCeiling_RaiseByValue(57,64,(12*9));
	FloorAndCeiling_RaiseByValue(70,64,(12*9));
	FloorAndCeiling_RaiseByValue(2,64,(12*10));
	FloorAndCeiling_RaiseByValue(71,64,(12*11));
	FloorAndCeiling_RaiseByValue(44,64,(12*11));
	FloorAndCeiling_RaiseByValue(72,64,(12*11));
	FloorAndCeiling_LowerByValue(63,64,(12*1));

	Floor_LowerByValue(34,64,(12*1));
	Floor_LowerByValue(62,64,(12*1));

	Floor_LowerByValue(43,64,(12*3));
	Floor_LowerByValue(75,64,(12*3));


	Floor_LowerByValue(28,64,(12*4));
	Floor_LowerByValue(65,64,(12*4));

	//SpawnSpotForced("LostSoul", 96, 0, 64);

	delay(5);

	Floor_LowerByValue(46,64,(12*4));

	Ceiling_LowerByValue(34,64,(12*1));
	Ceiling_LowerByValue(62,64,(12*1));
	Ceiling_LowerByValue(43,64,(12*3));
	Ceiling_LowerByValue(75,64,(12*3));
	Ceiling_LowerByValue(46,64,(12*4));
	Ceiling_LowerByValue(28,64,(12*4));
	Ceiling_LowerByValue(65,64,(12*4));

	FloorAndCeiling_LowerByValue(73,64,(12*2));
	FloorAndCeiling_LowerByValue(64,64,(12*3));
	FloorAndCeiling_LowerByValue(74,64,(12*4));

		delay(20);



	Floor_MoveToValue(75,32,4);
	Floor_MoveToValue(10,32,4);
	Floor_LowerByValue(43,16,92); // error
	Floor_MoveToValue(63,32,4);
	Floor_MoveToValue(62,32,4);
	Floor_MoveToValue(35,32,4);
	Floor_MoveToValue(59,32,4);
	Floor_MoveToValue(8,32,4);
	Floor_MoveToValue(35,32,4);
	Floor_MoveToValue(48,32,4);
	Floor_MoveToValue(54,32,4);
	Floor_MoveToValue(13,32,4);
	Floor_MoveToValue(45,32,4);
	Floor_MoveToValue(38,32,4);
	Floor_MoveToValue(77,32,4);

	Floor_MoveToValue(42,32,96);
	Floor_MoveToValue(39,32,96);
	Floor_MoveToValue(34,32,96);
	Floor_MoveToValue(36,32,96);
	Floor_RaiseByValue(44,16,92); //error

	Line_SetPortalTarget(61,0);
	Line_SetPortalTarget(21,31);
	Line_SetPortalTarget(31,21);
	Line_SetPortalTarget(53,14);
	Line_SetPortalTarget(14,53);
	Line_SetPortalTarget(18,78);

	SetLineTexture(48, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(58, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(79, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(79,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
}

script 13 (void)
{
	SetLineTexture(66, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(25, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(41, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	SetLineTexture(82, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	Line_SetPortalTarget(7,0);

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),96);
	Floor_MoveToValue(54,random (16,64),96);
	// bottom row far right not tagged yet

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),4);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),96);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),96);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),4);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),96);
	Floor_MoveToValue(64,random (16,64),4);
	Floor_MoveToValue(46,random (16,64),96);
	Floor_MoveToValue(47,random (16,64),4);

	//middle x-rolw
	Floor_MoveToValue(44,random (16,64),96);
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),4);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),4);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),4);
	Floor_MoveToValue(15,random (16,64),4);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),96);
	Floor_MoveToValue(11,random (16,64),4);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),96);

	//top y-row
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),96);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),4);

	//top x-row
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(31,21);
	Line_SetPortalTarget(21,31);
	Line_SetPortalTarget(19,31);
	Line_SetPortalTarget(16,81);
	Line_SetPortalTarget(81,16);

	//set new switch
		SetLineTexture(80, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(80,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(80, 80, 14); // sets the new switch action
	SetLineActivation(80,SPAC_Use); //sets the new switch activator

		SetFont("CONFONT");
	HudMessage(s:"The madness is eternal..."; HUDMSG_FADEINOUT, 2, CR_GOLD, 0.5, 0.4, 3.0, 0.1, 1.0);
}

script 14 (void)
{
	//kill old switch
	SetLineTexture(79, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,32,4);
	Floor_MoveToValue(36,random (16,64),4);
	Floor_MoveToValue(54,random (16,64),96);
	// bottom row far right not tagged yet

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),96);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),96);
	Floor_MoveToValue(55,random (16,64),4);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),96);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),4);
	Floor_MoveToValue(43,random (16,64),4);
	Floor_MoveToValue(64,random (16,64),96);
	Floor_MoveToValue(46,random (16,64),4);
	Floor_MoveToValue(47,random (16,64),4);

	//middle x-rolw
	Floor_MoveToValue(44,random (16,64),96);
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),4);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),96);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),4);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),4);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),96);

	//top y-row
	//Floor_MoveToValue(96)
	Floor_MoveToValue(1,random (16,64),96);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),4);

	//top x-row
	//Floor_MoveToValue(96)
	Floor_MoveToValue(13,random (16,64),4);
	Floor_MoveToValue(26,random (16,64),4);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(29,40);
	Line_SetPortalTarget(40,29);
	Line_SetPortalTarget(18,19);
	Line_SetPortalTarget(19,18);
	Line_SetPortalTarget(81,18);
	Line_SetPortalTarget(14,21);
	Line_SetPortalTarget(21,14);
	Line_SetPortalTarget(27,56);
	Line_SetPortalTarget(56,27);

	//set new switch
		SetLineTexture(83, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(83,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(83, 80, 15); // sets the new switch action
	SetLineActivation(83,SPAC_Use); //sets the new switch activator
}

script 15 (void)
{
	//kill old switch
	SetLineTexture(80, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),4);
	Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(96)  // bottom row far right not tagged yet

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),96);
	Floor_MoveToValue(35,random (16,64),96);
	Floor_MoveToValue(55,random (16,64),4);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),4);
	Floor_MoveToValue(65,random (16,64),4);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),96);
	Floor_MoveToValue(64,random (16,64),96);
	Floor_MoveToValue(46,random (16,64),96);
	Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),4);
	Floor_MoveToValue(30,random (16,64),4);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),96);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),4);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(14,0);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,0);
	Line_SetPortalTarget(19,0);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,0);
	Line_SetPortalTarget(29,56);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,29);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,0);
	Line_SetPortalTarget(18,0);
	Line_SetPortalTarget(21,29);

	// extra portals
	Line_SetPortalTarget(84,29);

	//set new switch
		SetLineTexture(85, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(85,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(85, 80, 16); // sets the new switch action
	SetLineActivation(85,SPAC_Use); //sets the new switch activator
}

script 16 (void)
{
	//kill old switch and extra portals
	SetLineTexture(83, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");
	Line_SetPortalTarget(84,0);

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),96);
	Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(96)  // bottom row far right not tagged yet

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),96);
	Floor_MoveToValue(35,random (16,64),4);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),4);
	Floor_MoveToValue(65,random (16,64),4);
	Floor_MoveToValue(59,random (16,64),96);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),96);
	Floor_MoveToValue(64,random (16,64),96);
	Floor_MoveToValue(46,random (16,64),96);
	Floor_MoveToValue(47,random (16,64),4);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),4);
	Floor_MoveToValue(30,random (16,64),4);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),4);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(14,0);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,0);
	Line_SetPortalTarget(19,0);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,21);
	Line_SetPortalTarget(29,56);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,0);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,0);
	Line_SetPortalTarget(18,0);
	Line_SetPortalTarget(21,81);

	// extra portals

	//set new switch
		SetLineTexture(58, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(58,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(58, 80, 17); // sets the new switch action
	SetLineActivation(58,SPAC_Use); //sets the new switch activator
}

script 17 (void)
{
	//kill old switch and extra portals
	SetLineTexture(85, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),96);
	Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(96)  // bottom row far right not tagged yet

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),4);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),96);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),96);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),4);
	Floor_MoveToValue(43,random (16,64),4);
	Floor_MoveToValue(64,random (16,64),4);
	Floor_MoveToValue(46,random (16,64),4);
	Floor_MoveToValue(47,random (16,64),4);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),96);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),4);
	Floor_MoveToValue(10,random (16,64),4);
	Floor_MoveToValue(5,random (16,64),4);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),96);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),96);
	Floor_MoveToValue(37,random (16,64),96);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),4);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(14,0);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,0);
	Line_SetPortalTarget(19,21);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,31);
	Line_SetPortalTarget(29,0);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,0);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,81);
	Line_SetPortalTarget(18,7);
	Line_SetPortalTarget(21,19);

	// extra portals
	Line_SetPortalTarget(7,18);

	//set new switch
		SetLineTexture(91, SIDE_FRONT, TEXTURE_MIDDLE, "SW2SKIN");
	Line_SetTextureOffset(91,0.0,11.0,SIDE_FRONT,TEXFLAG_MIDDLE);
	SetLineSpecial(91, 80, 18); // sets the new switch action
	SetLineActivation(91,SPAC_Use); //sets the new switch activator

	SetFont("CONFONT");
	HudMessage(s:"There's no way to escape..."; HUDMSG_FADEINOUT, 2, CR_GOLD, 0.5, 0.4, 3.0, 0.1, 1.0);
}

script 18 (void)
{
	//kill old switch and extra portals
	SetLineTexture(58, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),4);
	Floor_MoveToValue(54,random (16,64),96);
	Floor_MoveToValue(92,random (16,64),4);

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),96);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),96);
	Floor_MoveToValue(63,random (16,64),4);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),96);
	Floor_MoveToValue(64,random (16,64),96);
	Floor_MoveToValue(46,random (16,64),96);
	Floor_MoveToValue(47,random (16,64),4);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),4);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),4);
	Floor_MoveToValue(33,random (16,64),4);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),96);
	Floor_MoveToValue(11,random (16,64),4);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),96);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(14,93);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,56);
	Line_SetPortalTarget(19,0);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,21);
	Line_SetPortalTarget(29,0);
	Line_SetPortalTarget(93,56);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,93);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,0);
	Line_SetPortalTarget(18,0);
	Line_SetPortalTarget(21,81);

	// extra portals

	//set new switch
	SetLineTexture(94, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(94,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(94, 80, 19); // sets the new switch action
	SetLineActivation(94,SPAC_Use); //sets the new switch activator
}

script 19 (void)
{
	//kill old switch and extra portals
	SetLineTexture(91, SIDE_FRONT, TEXTURE_MIDDLE, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),4);
	Floor_MoveToValue(54,random (16,64),96);
	Floor_MoveToValue(92,random (16,64),4);

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),96);
	Floor_MoveToValue(62,random (16,64),96);
	Floor_MoveToValue(35,random (16,64),4);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),96);
	Floor_MoveToValue(63,random (16,64),4);
	Floor_MoveToValue(65,random (16,64),4);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),4);
	Floor_MoveToValue(43,random (16,64),4);
	Floor_MoveToValue(64,random (16,64),4);
	Floor_MoveToValue(46,random (16,64),96);
	Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),4);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),96);
	Floor_MoveToValue(33,random (16,64),96);
	Floor_MoveToValue(10,random (16,64),96);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),4);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),96);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),4);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),4);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	//set portals
	Line_SetPortalTarget(14,19);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,0);
	Line_SetPortalTarget(19,93);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,0);
	Line_SetPortalTarget(29,0);
	Line_SetPortalTarget(93,19);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,19);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,0);
	Line_SetPortalTarget(18,19);
	Line_SetPortalTarget(21,0);

	// extra portals


	//set new switch
	SetLineTexture(95, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(95,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(95, 80, 20); // sets the new switch action
	SetLineActivation(95,SPAC_Use); //sets the new switch activator
}

script 20 (void)
{
	//kill old switch and extra portals
	SetLineTexture(94, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,random (16,64),96);
	Floor_MoveToValue(54,random (16,64),96);
	Floor_MoveToValue(92,random (16,64),96);

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),4);
	Floor_MoveToValue(64,random (16,64),96);
	Floor_MoveToValue(46,random (16,64),4);
	Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),96);
	Floor_MoveToValue(33,random (16,64),96);
	Floor_MoveToValue(10,random (16,64),4);
	Floor_MoveToValue(5,random (16,64),4);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),96);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,random (16,64),96);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,random (16,64),96);

	// extra portals
	Line_SetPortalTarget(7,0);

	//Set script for instant change script
	SetLineSpecial(86, 80, 21); // sets the new switch action
	SetLineActivation(86,SPAC_Cross); //sets the new switch activator
}

script 21 (void)
{
	//kill old switch and extra portals
	SetLineTexture(95, SIDE_FRONT, TEXTURE_BOTTOM, "SFLR6_4");

	//bottom x-row
	//Floor_MoveToValue(39,random (16,64),96);
	//Floor_MoveToValue(36,random (16,64),96);
	//Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(92,random (16,64),96);

	//bottom y-row
	//Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	//Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	//Floor_MoveToValue(45,random (16,64),96);
	Floor_RaiseInstant(43,0,12);
	Floor_LowerInstant(64,0,12);
	Floor_MoveToValue(46,random (16,64),4);
	//Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	//Floor_MoveToValue(8,random (16,64),96);
	Floor_LowerInstant(33,0,12);
	Floor_RaiseInstant(10,0,12);
	Floor_MoveToValue(5,random (16,64),4);
	//Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),96);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	//Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	//Floor_MoveToValue(13,random (16,64),96);
	//Floor_MoveToValue(26,random (16,64),96);
	//Floor_MoveToValue(77,random (16,64),96);

		//Set script for instant change script
	SetLineSpecial(87, 80, 22); // sets the new switch action
	SetLineActivation(87,SPAC_Cross); //sets the new switch activator
}

script 22 (void)
{
	//bottom x-row
	//Floor_MoveToValue(39,random (16,64),96);
	//Floor_MoveToValue(36,random (16,64),96);
	//Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(92,random (16,64),96);

	//bottom y-row
	//Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	//Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	//Floor_MoveToValue(45,random (16,64),96);
	//Floor_RaiseInstant(43,0,12);
	//Floor_LowerInstant(64,0,12);
	Floor_MoveToValue(46,random (16,64),4);
	//Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	//Floor_MoveToValue(8,random (16,64),96);
	Floor_RaiseInstant(33,0,12);
	Floor_LowerInstant(10,0,12);
	Floor_MoveToValue(5,random (16,64),4);
	//Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),96);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),4);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),4);
	//Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	//Floor_MoveToValue(13,random (16,64),96);
	//Floor_MoveToValue(26,random (16,64),96);
	//Floor_MoveToValue(77,random (16,64),96);

		//Set script for instant change script
	SetLineSpecial(86, 80, 23); // sets the new switch action
	SetLineActivation(86,SPAC_Cross); //sets the new switch activator
}

script 23 (void)
{
	//bottom x-row
	//Floor_MoveToValue(39,random (16,64),96);
	//Floor_MoveToValue(36,random (16,64),96);
	//Floor_MoveToValue(54,random (16,64),96);
	//Floor_MoveToValue(92,random (16,64),96);

	//bottom y-row
	//Floor_MoveToValue(38,random (16,64),96);
	Floor_MoveToValue(34,random (16,64),4);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),4);
	//Floor_MoveToValue(55,random (16,64),96);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),96);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	//Floor_MoveToValue(45,random (16,64),96);
	Floor_LowerInstant(43,0,12);
	Floor_RaiseInstant(64,0,12);
	Floor_MoveToValue(46,random (16,64),4);
	//Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,random (16,64),4);
	Floor_MoveToValue(28,random (16,64),96);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	//Floor_MoveToValue(8,random (16,64),96);
	//Floor_RaiseInstant(33,0,12);
	Floor_RaiseInstant(10,0,12);
	Floor_RaiseInstant(5,0,12);
	//Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_LowerInstant(11,0,12);
	Floor_MoveToValue(3,random (16,64),96);
	Floor_RaiseInstant(37,0,12);


	//top y-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_RaiseInstant(1,0,12);
	Floor_RaiseInstant(4,0,12);
	Floor_RaiseInstant(24,0,12);
	//Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_LowerInstant(13,0,12);
	//Floor_MoveToValue(26,random (16,64),96);
	//Floor_MoveToValue(77,random (16,64),96);

	// extra portals
	Line_SetPortalTarget(14,88);
	Line_SetPortalTarget(88,14);

	//set new switch
	SetLineTexture(89, SIDE_FRONT, TEXTURE_BOTTOM, "SW2SKIN");
	Line_SetTextureOffset(89,0.0,11.0,SIDE_FRONT,TEXFLAG_BOTTOM);
	SetLineSpecial(89, 80, 24); // sets the new switch action
	SetLineActivation(89,SPAC_Use); //sets the new switch activator

	delay(5);
	Floor_LowerInstant(37,0,12);
}

script 24 (void)
{
	Autosave();

	SetFont("CONFONT");
	HudMessage(s:"But there is a way to break free..."; HUDMSG_FADEINOUT, 2, CR_GOLD, 0.5, 0.4, 3.0, 0.5, 1.0);

	delay(35);
	Radius_Quake(1,60,0,1,0);

	//bottom x-row
	Floor_MoveToValue(39,random (16,64),96);
	Floor_MoveToValue(36,64,4);
	Floor_MoveToValue(54,random (16,64),96);
	Floor_MoveToValue(92,random (16,64),96);

	//bottom y-row
	Floor_MoveToValue(38,random (16,64),4);
	Floor_MoveToValue(34,random (16,64),96);
	Floor_MoveToValue(62,random (16,64),4);
	Floor_MoveToValue(35,random (16,64),96);
	Floor_MoveToValue(55,random (16,64),4);

	//second to bottom x-row
	Floor_MoveToValue(42,random (16,64),4);
	Floor_MoveToValue(63,random (16,64),96);
	Floor_MoveToValue(65,random (16,64),4);
	Floor_MoveToValue(59,random (16,64),4);

	//second to bottom y-row
	Floor_MoveToValue(45,random (16,64),96);
	Floor_MoveToValue(43,random (16,64),4);
	Floor_MoveToValue(64,100,4);
	Floor_MoveToValue(46,random (16,64),4);
	Floor_MoveToValue(47,random (16,64),96);

	//middle x-row
	//Floor_MoveToValue(44,random (16,64),96); //Always up, portal inside
	Floor_MoveToValue(75,100,4);
	Floor_MoveToValue(28,100,4);
	Floor_MoveToValue(30,random (16,64),96);

	//second to top y-row
	Floor_MoveToValue(8,random (16,64),96);
	Floor_MoveToValue(33,random (16,64),96);
	Floor_MoveToValue(10,100,4);
	Floor_MoveToValue(5,random (16,64),96);
	Floor_MoveToValue(15,random (16,64),96);

	//second to top x-row
	Floor_MoveToValue(2,random (16,64),4);
	Floor_MoveToValue(11,random (16,64),96);
	Floor_MoveToValue(3,random (16,64),4);
	Floor_MoveToValue(37,random (16,64),4);

	//top y-rowl
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(1,random (16,64),96);
	Floor_MoveToValue(4,random (16,64),4);
	Floor_MoveToValue(24,random (16,64),96);
	Floor_MoveToValue(17,random (16,64),96);

	//top x-row
	//Floor_MoveToValue(96)  //No moving floor
	Floor_MoveToValue(13,64,4);
	Floor_MoveToValue(26,random (16,64),96);
	Floor_MoveToValue(77,12,4);

	//set portals
	Line_SetPortalTarget(14,56);
	Line_SetPortalTarget(27,0);
	Line_SetPortalTarget(78,56);
	Line_SetPortalTarget(19,0);
	//Line_SetPortalTarget(16,0);  Can't change portal
	Line_SetPortalTarget(81,0);
	Line_SetPortalTarget(29,31);
	//Line_SetPortalTarget(53,0);  Can't change portal
	Line_SetPortalTarget(56,14);
	Line_SetPortalTarget(40,0);
	Line_SetPortalTarget(31,29);
	Line_SetPortalTarget(18,0);
	Line_SetPortalTarget(21,0);

	// extra portals
	Line_SetPortalTarget(88,0);

	//middle sector lights
	Light_Glow(90,160,120,(35*5));
	Light_Glow(50,160,120,(35*5));
	Light_Glow(73,160,120,(35*5));
	Light_Glow(74,160,120,(35*5));

	Light_Glow(10,196,120,(35*5));
	Light_Glow(28,196,120,(35*5));
	Light_Glow(64,196,120,(35*5));
	Light_Glow(75,196,120,(35*5));

	//spawn rocket launcher
	SpawnSpotForced ("RocketLauncher", 22, 200, 0);
	//SpawnSpotForced ("TeleportFog", 22, 0, 0);

	//set RL respawn command
	SetLineSpecial(97, 80, 25); // sets the new switch action
	SetLineActivation(97,SPAC_Cross); //sets the new switch activator

	//Face texture
	ChangeFloor(90, "SP_FACE1");
	ChangeFloor(50, "SP_FACE1");
	ChangeFloor(73, "SP_FACE1");
	ChangeFloor(74, "SP_FACE1");
	ChangeFloor(32, "SP_FACE1");
	ChangeFloor(49, "SP_FACE1");
	ChangeFloor(23, "SP_FACE1");
	ChangeFloor(96, "SP_FACE1");
	ChangeFloor(72, "SP_FACE1");
	ChangeFloor(71, "SP_FACE1");
	ChangeFloor(69, "SP_FACE1");
	ChangeFloor(68, "SP_FACE1");

	Scroll_Floor(90,8,-8,0);
	Scroll_Floor(50,-8,-8,0);
	Scroll_Floor(73,8,8,0);
	Scroll_Floor(74,-8,8,0);

	Scroll_Floor(32,-8,0,0);
	Scroll_Floor(49,-8,8,0);
	Scroll_Floor(23,0,8,0);
	Scroll_Floor(96,8,8,0);
	Scroll_Floor(72,8,0,0);
	Scroll_Floor(71,8,0,0);
	Scroll_Floor(69,0,-8,0);
	Scroll_Floor(68,0,-8,0);
}

script 25 (void)
{

	if(!IsTIDUsed(200))
	{
	//Thing_Remove(200);
	SpawnSpotForced ("RocketLauncher", 22, 200, 0);
	//SpawnSpotForced ("TeleportFog", 22, 0, 0);
	}
	//else;
	//{
	//delay(1);
	//}
}

script 26 DEATH
{
	FadeTo(255, 0, 0, 1.0, 3.0);
	delay(35 * 4);
	Exit_Normal(0);
}

 

 

 

Share this post


Link to post
3 minutes ago, Bauul said:

The final ACS ended up like this:

*Code*

We should frame that and put it up in the Louvre, that's beautiful.

Respect to you, sir, for managing to complete that monstrosity exactly the way you intended, or at least in line with the idea.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×