[Fixed] Possible Hexen/HUB bugs

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Post Reply
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Possible Hexen/HUB bugs

Post by HotWax »

Okay, I'm definately not the expert on Hexen, but I'm pretty sure this is not the way things are supposed to be.

I played through the first hub and at the end spotted some wings out of reach. After a quick look around (I know, it didn't even require going to 3 different maps to hit 7 different switches, I was truly amazed!) I found the way to get to it, nabbed it, and remembering that Hexen wings are infinite, turned it on. Of course then I realized that they might only last until the next map change and that I had probably just wasted them, but that's not the point.

I was pleased to find out that I could take them with me into all the levels within the hub, so cool beans there. And then, after thoroughly exploring to make sure I hadn't missed anything, I went to the next hub... and still had the wings.

Okay, now I'm pretty sure that getting ONE wings artifact should not mean you get wings the rest of the game. So.... what gives?

The second (probably related) bug: In Heretic whenever you go to a new level, all your artifacts are reduced in quantity to 1, and if you had wings, they're taken from you. There was a discussion about this a long time ago, and Randy said this is normal behavior. I *think* he also mentioned that it occurs in Hexen too, but only when you go from one hub to another. Well... after leaving the first hub, I still had 25 (!!) flasks, so that apparently isn't working either.

All using 2.0.52.

[edit]Just tested with Heretic and the items ARE being removed between levels like they are supposed to. So, either this problem is related to Hexen only, or it's working as intended...[/edit]
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49067
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Hexen doesn't take any artifact away, except the Wings. That part is ok. The only problem here is that the Wings remain when you change the hub.

Here's the code from original Hexen, that takes the artifacts away:

Code: Select all

		if(P_GetMapCluster(gamemap) != P_GetMapCluster(LeaveMap))
		{ // Entering new cluster
			// Strip all keys
			player->keys = 0;

			// Strip flight artifact
			for(i = 0; i < 25; i++)
			{
				player->powers[pw_flight] = 0;
				P_PlayerUseArtifact(player, arti_fly);
			}
			player->powers[pw_flight] = 0;
		}
It only takes the keys and the Wings but leaves the rest.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Thanks for clearing that up.

It definately seems like the issue would be with the code segment above. Maybe it's not getting executed for some reason?

I've attached a save file below that has the player near the end of The Seven Portals (MAP02) right before the portal to the next hub (MAP13, "Shadow Wood") and with a Wings artifact in the inventory.

If you:

A) Don't use the artifact, just walk into the portal, you'll still have the wings after you arrive at MAP13. The above code should strip all unused wings artifacts from the inventory... or..

B) Use the artifact, then walk (or fly :)) into the portal. You'll still be able to fly once you reach MAP13.

Both behaviors would seem to be incorrect.

Here are the appropriate snips of the MAPINFO lump from my copy of HEXEN.WAD, just to prove it's not something wrong with my copy:

Code: Select all

map 2 "SEVEN PORTALS"
warptrans 2
next 3
cluster 1
sky1 SKY4 0
sky2 SKY4 0
cdtrack 2

map 13 "SHADOW WOOD"
warptrans 7
next 8
cluster 2
sky1 SKYWALL 0
sky2 SKY1 80
doublesky
cdtrack 8
Note the different cluster numbers.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Update: Definately the above code. Try using "give all" and then go through the portal. You keep your keys (!!!) into the next hub as well.

/me upgrades bug from "Game Affecting" to "Game Breaking"
User avatar
Nanami
Posts: 1066
Joined: Tue Jul 15, 2003 5:13 pm
Location: That little island pritch created.
Contact:

Post by Nanami »

Recently Randy made it so you keep key items in coop because if you got a puzzle item and died, you'd lose it. I wonder if this was accidentally adjusted due to that fix.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Nanami wrote:Recently Randy made it so you keep key items in coop because if you got a puzzle item and died, you'd lose it. I wonder if this was accidentally adjusted due to that fix.
It's a possibility, but if it IS related to the above code, I don't see why that code would have anything to do with respawning. (It seems to check if the new level and the level you're leaving are in the same hub, something that should only have to happen when you change to a new level?) Of course the actual ZDoom source might not deal with things in the same way, so you could be on to something after all.

/me waits for Randy.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49067
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Strange bug. I can't find any obvious reason in the code but it's definitely there. It happens on my system, too.
User avatar
randi
Site Admin
Posts: 7746
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Post by randi »

Fixed. The game thought both levels were on the same hub, because Hexen's MAPINFO doesn't use clusterdef to define clusters. So even though the maps are defined as being in different clusters, the game treated them as if they were both part of the "default" cluster.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

randy wrote:Fixed. The game thought both levels were on the same hub, because Hexen's MAPINFO doesn't use clusterdef to define clusters. So even though the maps are defined as being in different clusters, the game treated them as if they were both part of the "default" cluster.
Yay. I helped. I guess there really is a first time for everything. :shock:
Post Reply

Return to “Closed Bugs [GZDoom]”