[1.1.4]3d floor's ceiling doesn't alway raise fully

Bugs that have been resolved.

Moderator: Graf Zahl

Locked
User avatar
chopkinsca
Posts: 183
Joined: Thu Dec 29, 2005 8:09

[1.1.4]3d floor's ceiling doesn't alway raise fully

Post by chopkinsca »

This may be a bit hard to show, but in my project, Phocas Island 2, there is a cave that gets flooded with water. When I first released the project, the water alway rose to the proper height. Now that I'm redoing parts of the project, I find that the water doesn't always rise fully.

Now how to demonstrate the problem, which is tricky. First off, the mapset is here.
Start a new game, then on map03, warp to coords: x: 16500, Y -4123. You probably need to give yourself a weapon, and godmode. A bit further in the cave there are a ring of pillars with cracks on them, Hit each one until they break. The ceiling towards the back will fall down, gradually most of the chamber with the pillars will have been fallen down. The water is also raising. Right where you warped to, the water should raise high enough to reach the ledge above, but it usually doesn't.

Sorry for making it so difficult to see the problem (not even sure if it is broken 100% of the time). I tried to isolate it, but the bug went away. Maybe if you really need it, I'll try isolating it again.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Post by Graf Zahl »

Can you please point me to the script code and the sector numbers involved? Judging from your description I can't find it in an editor.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Post by Enjay »

I think it's this one:

Code: Select all

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//underground pillars
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
script 31 (int pillar) {	
	if (pillars[pillar - 1] <= 4){
		activatorsound("crackrock", 127);
		pillars[pillar - 1]++;
	}
	
	
	if (pillars[pillar - 1] >= pillarhittarget[pillar - 1] && pillardone[pillar - 1] != 1) {
		pillardone[pillar- 1] = 1;
		Radius_Quake(1, 64, 0, 10, 69);
		delay(10);
		SetLineTexture((21 + pillar), side_front, TEXTURE_MIDDLE, "");
		floor_lowerbyvalue(pillartids[pillar - 1], 128, 32);
		ceiling_raisebyvalue(pillartids[pillar - 1], 128, 56);
		
		pillars[pillar - 1] = 6;
	}
	
	for(int x = 0; x <=5; x++) {
		if(pillars[x] != 6) { terminate; }
	}
	
	if(underwaterquake == 1) { terminate; }
	underwaterquake = 1;
	delay(15);
	radius_quake(8, 312, 0, 25, 69);
	Ceiling_LowerAndCrush(85, 128, 1000);
	floor_lowerbyvalue(105, 256, 300);
	SetHudSize(512, 384, 0);
	hudmessage(s: "Uh oh... better run" 
		; 0 | HUDMSG_LOG, 2, cr_green, messagex, messagey, 3.0);
	
	ceiling_raisebyvalue(101, 4, 200); //raise water
	//floor_raisebyvalue(102, 4, 200);
	
	delay(35 * 4);
	ceiling_lowerandcrush(86, 128, 1000);
	delay(35 * 3);
	ceiling_lowerandcrush(87, 128, 1000);
	ceiling_lowerandcrush(103, 128, 1000);
	delay(35 * 1);
	ceiling_lowerandcrush(88, 128, 1000);
	ceiling_lowerandcrush(104, 128, 1000);
	
	//open up cross-cave
	floor_lowerbyvalue(117, 8, 80);
	ceiling_raisebyvalue(117, 8, 80);
	floor_lowerbyvalue(118, 8, 40);
	ceiling_raisebyvalue(118, 8, 40);
	
	
	for(int m = 89; m <= 100; m++) {
		floor_lowerbyvalue(m, 32, random(64, 155));
	}
	
	thing_deactivate(77);
	floor_lowerbyvalue(3, 64, 88);
	Floor_LowerByValue(46, 64, 88);
	delay(15);
	thing_deactivate(70);
	changemcount(2);
	ceiling_lowerbyvalue(164, 128, 114);
		
}
However, I keep getting crushed by the pillars, so I'm not quite sure which sector is the "ledge above".

BTW, as soon as you warp to the map, you seem to get taken to map20 automatically. However, typing

map map03
warp 16500 -4123

without closing the console takes you to the appropriate place.
User avatar
chopkinsca
Posts: 183
Joined: Thu Dec 29, 2005 8:09

Post by chopkinsca »

Enjay wrote:I think it's this one:
Yep, sector 101 (with the "raise water" comment").
Enjay wrote: However, I keep getting crushed by the pillars, so I'm not quite sure which sector is the "ledge above".
when you warp to the coordinates, if you check your map you can see there is a ledge with more cave above you.




Edit: I found out what was casuing the problem, but not sure why. go through map20 to get to map03 then warp to the coordinates. (or if you want to start straight on map03, change the script on line 161 from "if(gamemode == 1)" to "if(gamemode == 0)". This spawns a cacodemon that has too much health to kill. For some reason, if this cacodemon is present when the caves start to fall and flood, the water doesn't raise fully, but if you remove the cacodemon via a script right before the water raises, it raises fully. I found a fix so I suppose this doesn't matter, but it might be a bug so who know.s

edit: isolated the problem and created a example .wad which is attached
Attachments
waterrise.zip
(1.48 KiB) Downloaded 82 times
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Post by Enjay »

Well it's definitely something to do with the Caco being alive. Although he can't be killed by conventional means "kill monsters" does it and as soon as he is dead, the water starts to rise. Whether it's actually a bug or not I guess Graf would be the one to confirm one way or the other.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Post by Graf Zahl »

fixed. Something seems to have changed when I added the 3DMIDTEX feature.
Locked

Return to “Closed Bugs”