Duke4.net Forums: Icestation Colossus - map broken - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Icestation Colossus - map broken

User is offline   LeoD 

  • Duke4.net topic/3513

#1

In recent and much less recent versions of EDuke32, colossus.map no longer works correctly. Touchplates and other items show up as visible sprites and do not take effect:
Attached Image: colossus-touchplate.jpg
Compatible EDuke32 snapshots are 20070901 and 20090313 for example. Synthesis snapshots r1517 and later don't work.

chicken, could you please have a look into this and provide a patched version (or an EDuke32 bug report)?
0

User is offline   Helixhorned 

  • EDuke32 Developer

#2

Extracting a part of the map and running it under vanilla Duke3D in DOSBox shows that the same behavior is exhibited there. This is further confimed by investigating the source codes. The problem is that the touchplate is wall-aligned (and has a non-zero hitag). This makes A_Spawn() change it to a STAT_FALLER, circumventing the touchplate's intended setup code.
0

User is offline   Danukem 

  • Duke Plus Developer

#3

View PostHelixhorned, on 31 October 2015 - 07:10 AM, said:

Extracting a part of the map and running it under vanilla Duke3D in DOSBox shows that the same behavior is exhibited there. This is further confimed by investigating the source codes. The problem is that the touchplate is wall-aligned (and has a non-zero hitag). This makes A_Spawn() change it to a STAT_FALLER, circumventing the touchplate's intended setup code.


So, DOS Duke exhibited the behavior, but then EDuke32 corrected it (the map was released in 2008 and worked fine until recently). Now the behavior has returned. I have seen other reports of maps being broken by this cstat issue. Is there a good reason not to process effect sprites if they are wall or floor aligned? This strikes me as a very serious problem -- there are probably many maps effected, and the only reason we aren't hearing more about it is that there aren't very many people playing them at a given time, nor will they necessarily go to the trouble of posting on a forum.

For those interested, here is a simple fix using CON code. You can insert the following code at the end of GAME.CON (or anywhere outside of actor and event code). I am already using this code in the latest release of my Attrition mod, because I was getting complaints about maps being broken.

onevent EVENT_LOADACTOR
ifvarl sprite[THISACTOR].picnum 11
    cstat 0
endevent

1

User is offline   chicken 

  • Fashionable Modeler

#4

I have this sitting on my hd for quite some time now but never bothered to rerelease it. All the necessary changes regarding sector effector sprites etc. should be in now though.
Can you guys playtest this for me and see if there is still anything that isn't working?

Spoiler

Attached File(s)



This post has been edited by chicken: 09 November 2015 - 10:38 AM

3

User is offline   Helixhorned 

  • EDuke32 Developer

#5

View PostLeoD, on 31 October 2015 - 05:29 AM, said:

In recent and much less recent versions of EDuke32, colossus.map no longer works correctly. Touchplates and other items show up as visible sprites and do not take effect:Attachment colossus-touchplate.jpgCompatible EDuke32 snapshots are 20070901 and 20090313 for example. Synthesis snapshots r1517 and later don't work.


View PostTrooper Dan, on 09 November 2015 - 12:23 AM, said:

So, DOS Duke exhibited the behavior, but then EDuke32 corrected it (the map was released in 2008 and worked fine until recently).


If the change from non-face-alinged effectors functioning (in contrast to DOS Duke) to becoming breakable sprites (as it is now) is a more recent one than r1517, could someone determine a revision?
0

User is offline   Mark 

#6

Holy Cow. Chicken is a mapper too. :)

It was difficult. I got killed a few times along the way. Too many tanks and Fat Commanders for my playing skills. There was a place I got trapped towards the beginning. There is a light pole near a cliff wall. It looked like plenty of room to squeeze through to escape a tank. I got stuck and killed. Later on there is a building with a blocking sprite roof. The liztroopers from underneath were able to jump up thru the ceiling and onto the roof. Also inside one of the buildings an enemy clipped thru a fence. I was able to activate a switch behind a locked door. So even with the small glitches I've seen so far it is still quite a good,but tough map. I was playing with HRP and Polymer. I had slowdowns to under 20FPS in some places. I'm pretty sure if I disabled either one of those features it would have run much better as you mentioned in your text. But as far as any SE glitches, I didn't spot any yet.

This post has been edited by Mark.: 09 November 2015 - 12:05 PM

1

User is offline   Danukem 

  • Duke Plus Developer

#7

View PostHelixhorned, on 09 November 2015 - 11:53 AM, said:

If the change from non-face-alinged effectors functioning (in contrast to DOS Duke) to becoming breakable sprites (as it is now) is a more recent one than r1517, could someone determine a revision?


I don't know, but, why would anyone want to make SECTOREFFECTOR etc. into a breakable sprite? Couldn't you just exclude tile numbers 0-9 from the breakable sprite feature?
0

User is offline   chicken 

  • Fashionable Modeler

#8

View PostMark., on 09 November 2015 - 12:01 PM, said:

Holy Cow. Chicken is a mapper too. :)

It was difficult. I got killed a few times along the way. Too many tanks and Fat Commanders for my playing skills. There was a place I got trapped towards the beginning. There is a light pole near a cliff wall. It looked like plenty of room to squeeze through to escape a tank. I got stuck and killed. Later on there is a building with a blocking sprite roof. The liztroopers from underneath were able to jump up thru the ceiling and onto the roof. Also inside one of the buildings an enemy clipped thru a fence. I was able to activate a switch behind a locked door. So even with the small glitches I've seen so far it is still quite a good,but tough map. I was playing with HRP and Polymer. I had slowdowns to under 20FPS in some places. I'm pretty sure if I disabled either one of those features it would have run much better as you mentioned in your text. But as far as any SE glitches, I didn't spot any yet.


That was my appearance on the Duke-scene. Damn, 2008 ...
I hadn't mapped for Duke before and it shows. The outside area is way too large and too difficult but i'll leave all that as it is. Call it "vintage" Posted Image
Just the obvious glitches will be taken care of.

Could you post screenshots of the issues you mentioned in our secret little Decay-Thread temporarily?
Then i'll fix the pole, the enemy clipping through the fence, the switch behind the locked door and i'll try to keep the liztroopers in place.

This post has been edited by chicken: 09 November 2015 - 01:20 PM

0

User is offline   Mike Norvak 

  • Music Producer

#9

View PostTrooper Dan, on 09 November 2015 - 01:17 PM, said:

I don't know, but, why would anyone want to make SECTOREFFECTOR etc. into a breakable sprite? Couldn't you just exclude tile numbers 0-9 from the breakable sprite feature?


If you actually break an SE it stops working right? I'd have an use for that.
0

User is offline   LeoD 

  • Duke4.net topic/3513

#10

View PostTrooper Dan, on 09 November 2015 - 12:23 AM, said:

here is a simple fix using CON code.
IIRC one of the maps that come with DukePlus has a similar issue. I'll check if this code fixes that, too.

View Postchicken, on 09 November 2015 - 10:37 AM, said:

I have this sitting on my hd for quite some time now but never bothered to rerelease it. All the necessary changes regarding sector effector sprites etc. should be in now though.
Can you guys playtest this for me and see if there is still anything that isn't working?
Thanks!

View PostHelixhorned, on 09 November 2015 - 11:53 AM, said:

If the change from non-face-alinged effectors functioning (in contrast to DOS Duke) to becoming breakable sprites (as it is now) is a more recent one than r1517, could someone determine a revision?
r1349 breaks Colossus.

View PostMark., on 09 November 2015 - 12:01 PM, said:

Too many tanks and Fat Commanders for my playing skills. [...] I was playing with HRP and Polymer. I had slowdowns to under 20FPS in some places. I'm pretty sure if I disabled either one of those features it would have run much better as you mentioned in your text.
Polymer is the main issue here IMO - tanks shoot lots of glowing projectiles, the resulting frame rate drop makes it even harder to deal with them, especially when they show up in groups.

View Postchicken, on 09 November 2015 - 01:18 PM, said:

That was my appearance on the Duke-scene. Damn, 2008 ...
I hadn't mapped for Duke before and it shows. The outside area is way too large and too difficult but i'll leave all that as it is. Call it "vintage" Posted Image
I like it that way. A remarkable release.

View Postchicken, on 09 November 2015 - 01:18 PM, said:

Could you post screenshots of the issues you mentioned in our secret little Decay-Thread temporarily?
Why not here? Others may have remarks to contribute as well.
0

User is offline   Danukem 

  • Duke Plus Developer

#11

View PostMike Norvak, on 09 November 2015 - 02:44 PM, said:

If you actually break an SE it stops working right? I'd have an use for that.


If the sprite is breakable then it wouldn't have worked as an effector in the first place. But if you want an SE to stop working, there are other ways of doing it.
0

User is offline   chicken 

  • Fashionable Modeler

#12

View PostLeoD, on 09 November 2015 - 07:53 PM, said:

Why not here? Others may have remarks to contribute as well.


Good point, ok bring it on!
0

User is offline   LeoD 

  • Duke4.net topic/3513

#13

View PostLeoD, on 09 November 2015 - 07:53 PM, said:

IIRC one of the maps that come with DukePlus has a similar issue. I'll check if this code fixes that, too.
Nope. Further investigation pending...

View Postchicken, on 10 November 2015 - 02:08 AM, said:

Good point, ok bring it on!
The yellow-key-door should better slide to the other side:
Attached Image: colossus-2010-09-17-a.jpg Attached Image: colossus-2010-09-17-b.jpg Attached Image: colossus-2010-09-17-c.jpg
0

User is offline   Helixhorned 

  • EDuke32 Developer

#14

View PostLeoD, on 09 November 2015 - 07:53 PM, said:

r1349 breaks Colossus.

Ah well, that provides the missing piece to the puzzle. That revision has the following change in prelevel():
             case SECTOREFFECTOR__STATIC:
(...)
             case RESPAWN__STATIC:
-                sprite[i].cstat = 0;
+                sprite[i].cstat &= ~(1|256);

Since the check in A_Spawn is for cstat having bits 32 or 16 set, the change in EDuke32 behavior follows. DOS Duke doesn't tweak the effector sprites in any way here, which explains why non-face-aligned effectors fail there.

How did you find out, by the way? Did you succeed in compiling those dinosaurs and were not afraid of actually running them?

View PostTrooper Dan, on 09 November 2015 - 01:17 PM, said:

I don't know, but, why would anyone want to make SECTOREFFECTOR etc. into a breakable sprite?

Of course probably nobody would use any effector as a decorative breakable sprite, but the reason I was so conservative here is one of compatibility: someone making a map in EDuke32 and set wall/floor-alignment bits on an effector might assume it to work the same in DOS Duke. Not that I personally care too much about this, but I think some mappers around here would. The ideal solution IMO is to issue a warning somewhere since we're in an unfortunate state: either behavior leads to some kind of compatibility issue. So:

r5420 said:

Mapster32: add var 'corruptcheck_game_duke3d' and enable by default.

r5422 said:

premap.c: on prelevel(), clear bits 16 and 32 of effector sprites.

1

User is offline   LeoD 

  • Duke4.net topic/3513

#15

View PostHelixhorned, on 14 November 2015 - 09:23 AM, said:

How did you find out, by the way? Did you succeed in compiling those dinosaurs
No big deal since I've been used to do this bisect-compile shit for years now. And I've made a script to automate some stuff. I just tend to forget to downgrade the compiler to an appropriate version. The oldest buildable version is r16 btw. It doesn't work, however. (Maybe it would on WinXP.)

View PostHelixhorned, on 14 November 2015 - 09:23 AM, said:

and were not afraid of actually running them?
Turning off the sound is all what's really necessary. :)

[EDIT:]Btw., could you please take a look at this issue which hasn't been fixed yet?

This post has been edited by LeoD: 14 November 2015 - 11:29 AM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#16

View PostLeoD, on 14 November 2015 - 11:25 AM, said:

No big deal since I've been used to do this bisect-compile shit for years now. And I've made a script to automate some stuff. I just tend to forget to downgrade the compiler to an appropriate version. The oldest buildable version is r16 btw.

Wow!

Quote

Btw., could you please take a look at this issue which hasn't been fixed yet?

Yup, done.
1

User is offline   LeoD 

  • Duke4.net topic/3513

#17

View PostHelixhorned, on 14 November 2015 - 11:57 AM, said:

Yup, done.
Thanks. Building on Raspbian gives some warnings you might want to fix:
make RELEASE=0 LTO=0 NOASM=1 RENDERTYPE=SDL SDL_TARGET=1 USE_OPENGL=1 POLYMER=0 LINKED_GTK=1

Spoiler

Spoiler

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options