Duke4.net Forums: EDuke32 2.0 and Polymer! - Duke4.net Forums

Jump to content

  • 213 Pages +
  • « First
  • 170
  • 171
  • 172
  • 173
  • 174
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

EDuke32 2.0 and Polymer!  "talk about the wonders of EDuke32 and the new renderer"

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#5131

Since the previous/next weapons code has been changed, is there any intent to make both default Duke 3D small status bar and Eduke's custom HUD selectable with + or -?

It shouldn't break any existing mod, since .screen_size would remain the same and what would change is .althud (the menu option being removed).

This post has been edited by Fox: 27 January 2015 - 07:53 PM

1

User is offline   DavoX 

  • Honored Donor

#5132

Any reason why the newest snapshot of mapster32 whenever I use ALT it plays an annoying sound? it's irritating since I use that for hitags, lotags, well mostly everything!
1

User is offline   Jblade 

#5133

Would there be a possibility of adding a member to userdef or something that lets me know if the player has music disabled? I've coded a dynamic sound system using sounds and I want to disable it if the player has music disabled automatically (you could make it read-only if you don't want people to be able to force music on or something)
0

User is offline   Hendricks266 

  • Weaponized Autism

  #5134

View PostDavoX, on 30 January 2015 - 05:12 PM, said:

Any reason why the newest snapshot of mapster32 whenever I use ALT it plays an annoying sound? it's irritating since I use that for hitags, lotags, well mostly everything!

It's the OS playing the sound, right? It's probably an SDL2 issue. I'll see if there's anything I can do.

View PostJblade, on 02 February 2015 - 01:45 AM, said:

Would there be a possibility of adding a member to userdef or something that lets me know if the player has music disabled? I've coded a dynamic sound system using sounds and I want to disable it if the player has music disabled automatically (you could make it read-only if you don't want people to be able to force music on or something)

Sure, that will be no trouble.
2

User is offline   Jblade 

#5135

Cool - much appreciated. Just another quick question/query - can you guys code voxels so they're disabled if it's a flat sprite? I'm not sure if setting SPREXT_NOTMD to 1 will disable a voxel as well as a model, but if you have a voxel switch and it's used as a flat sprite it still appears as an upgrade voxel (of course if it can be done in con that's not a problem)
0

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#5136

View PostJblade, on 04 February 2015 - 01:34 PM, said:

I'm not sure if setting SPREXT_NOTMD to 1 will disable a voxel as well as a model,

It should be.
0

User is offline   Micky C 

  • Honored Donor

#5137

In mapster scripting, how do you detect if a member has a certain cstat applied if it's a bitfield (for conditional clauses)?
0

User is offline   Hendricks266 

  • Weaponized Autism

  #5138

ifand
0

User is offline   Helixhorned 

  • EDuke32 Developer

#5139

View PostFox, on 15 November 2013 - 01:55 PM, said:

From actors.c:
        if (dasectnum < 0 ||
                ((actor[spritenum].actorstayput >= 0 && actor[spritenum].actorstayput != dasectnum) ||
                 (spr->picnum == BOSS2 && spr->pal == 0 && sector[dasectnum].lotag != ST_3) ||
                 ((spr->picnum == BOSS1 || spr->picnum == BOSS2) && sector[dasectnum].lotag == ST_1_ABOVE_WATER)
//                 || (sector[dasectnum].lotag == ST_1_ABOVE_WATER && (spr->picnum == LIZMAN || (spr->picnum == LIZTROOP && spr->zvel == 0)))
                )

What's the reason for that line being commented out? That's what is causing the issue with Troopers and Enforcers walking in water sectors.

That was not the reason for enforcers wrongly walking on water. First, note that the condition effectively checks whether an actor should stay put in its sector in the second line; the following ones are just special cases (Cycloid Emperor not leaving arena, other bosses not walking into water sectors). This has nothing to do with "dipping" into water or not. The line was commented out because otherwise, lizmen and z-stationary liztroops are prevented from leaving an ST1 sector by A_MoveSpriteClipdist().

The reason for the enforcers -- and maybe other actors -- wrongly walking on water was that there was that the z position of a sprite was updated in at least two locations, and in an inconsistent manner. First, in MV_Fall(), there is a check for whether an actor should dip into water: this is only the case if
  • it's allowed to do that (more on that below),
  • has jumptoplayer_only (bit 512) movflag clear, and
  • currently has a zero vertical velocity.

Second, there was z updating in VM_Move(), but without handling the dipping special case.

The recent revisions check whether an actor may dip into water in VM_Move(), too, fixing the above-mentioned issue. While this is yet another departure from original behavior, having things consistent seems to outweigh this concern. I have also added a new spriteflag, SFLAG_NOWATERDIP, doing what it sounds like.

I'd be curious to hear whether it fixes any (or preferably, all) real problems.
1

User is offline   Helixhorned 

  • EDuke32 Developer

#5140

View PostJblade, on 17 January 2015 - 01:22 AM, said:

I tracked down the L5 corruption error to the event analyzesprites in my M32 script file, here's what it looks like:
onevent EVENT_ANALYZESPRITES
(...)
    for i drawnsprites
    {
        set j tsprite[i].owner
        switch sprite[j].picnum
        case 1404 // FAKE PLAYER
		ife sprite[j].extra 0 set tsprite[j].picnum 5245 // James          // Helix: NOTE THIS LINE
(...)
        endswitch
    }
endevent


You want to write
tsprite[i]
,
not
tsprite[j]
.

I haven't been able to reproduce the L5 corruption, though, which would clearly be a Mapster32 bug.
1

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#5141

Line 252, rotatespritea: invalid coordinates: -21430272, 3145728

What are the limits?
0

User is offline   Micky C 

  • Honored Donor

#5142

View PostMicky C, on 05 February 2015 - 02:32 AM, said:

In mapster scripting, how do you detect if a member has a certain cstat applied if it's a bitfield (for conditional clauses)?



View PostHendricks266, on 05 February 2015 - 06:03 AM, said:

ifand


Example? What I'm trying to do is change the visibility of sectors under a sky.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #5143

I want to test if the current sprite is wall aligned.

ifand .cstat 16 <do whatever>


I want to test if sector #k has a parallax sky.

ifand sector[k].ceilingstat 1 <do whatever>

1

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#5144

Was .wantweaponfire disabled as a means of prevent the player from switching the weapon before reloading? It feels a bit weird to not have that feature when switching weapons. I assume it could be done without disabling .wantweaponfire by changing when P_CheckWeapon is called.

I took a look at the source. If I understand it, the issue would be solved by replacing this:
            if (PWEAPON(snum, p->curr_weapon, Flags) & WEAPON_CHECKATRELOAD)
            {
                if (PWEAPON(snum, p->curr_weapon, WorksLike) == TRIPBOMB_WEAPON)
                {
                    if ((*kb) >= PWEAPON(snum, p->curr_weapon, TotalTime))
                    {
                        (*kb) = 0;
                        P_CheckWeapon(p);
                        p->weapon_pos = WEAPON_POS_LOWER;
                    }
                }
                else if (*kb >= PWEAPON(snum, p->curr_weapon, Reload))
                    P_CheckWeapon(p);
            }
            else if (PWEAPON(snum, p->curr_weapon, WorksLike)!=KNEE_WEAPON && *kb >= PWEAPON(snum, p->curr_weapon, FireDelay))
                P_CheckWeapon(p);

With this:
            if (PWEAPON(snum, p->curr_weapon, Flags) & WEAPON_CHECKATRELOAD && PWEAPON(snum, p->curr_weapon, WorksLike) == TRIPBOMB_WEAPON)
            {
                if ((*kb) >= PWEAPON(snum, p->curr_weapon, TotalTime))
                {
                    (*kb) = 0;
                    P_CheckWeapon(p);
                    p->weapon_pos = WEAPON_POS_LOWER;
                }
            }
            else if (PWEAPON(snum, p->curr_weapon, Flags) & WEAPON_RELOAD_TIMING && *kb >= PWEAPON(snum, p->curr_weapon, Reload))
                P_CheckWeapon(p);
            else if (PWEAPON(snum, p->curr_weapon, WorksLike)!=KNEE_WEAPON && *kb >= PWEAPON(snum, p->curr_weapon, FireDelay))
                P_CheckWeapon(p);


This post has been edited by Fox: 06 February 2015 - 11:18 PM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#5145

View PostFox, on 10 January 2015 - 09:22 AM, said:

View PostHelixhorned, on 10 January 2015 - 08:57 AM, said:

[1]Quiz: which of the following commands can be removed without decreasing functionality: sound, soundonce, globalsound?

I assume ifsound does the exact same check as soundonce.

Correct, but incomplete. The other command that's technically redundant is globalsound. Contrary to what its name suggests, it doesn't start playing a special kind of sound, but rather a normal 3D sound from the position of the current player's sprite, provided that the current player is the one whose scene is currently displayed on the screen, or there's a coop game in progress:

        case CON_GLOBALSOUND:
// (checking omitted...)
// (#ifdef SPLITSCREEN_MOD_HACKS omitted...)
            if (vm.g_p == screenpeek || (GametypeFlags[ud.coop]&GAMETYPE_COOPSOUND))
                A_PlaySound(*insptr, g_player[screenpeek].ps->i);

1

User is offline   Helixhorned 

  • EDuke32 Developer

#5146

View PostFox, on 16 January 2015 - 10:36 AM, said:

Is it possible to set THISACTOR for "globalsounds" in EVENT_SOUND?

The globalsound command does not act differently depending on the current actor. (It does depending on current player, as explained in my preceding post.)

Maybe it would be helpful to phrase your request as what feature you're trying to achieve directly, not how. See XY problem.
0

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#5147

The how is the feature. It would be more usefull if THISACTOR returned the actor which called the sound, rather than the one that is playing the sound, since the second one is a hack of the game.

Practical example:
onevent EVENT_SOUND
  ifvare RETURN BOS1_RECOG
    ifactor BOSS1
      ifspritepal 0
        setvar RETURN BOS1_SPEECH
endevent

This is not possible because BOS1_RECOG is a "globalsound". Since the primary purpose of EVENT_SOUND is to manipulate hard-coded sounds, this would make sense in my opinion.

This post has been edited by Fox: 07 February 2015 - 11:06 AM

0

User is offline   Hendricks266 

  • Weaponized Autism

  #5148

Some of the original considerations for EVENT_SOUND included a sound struct that allowed you to modify owner, flags, position, etc.
1

User is offline   Hendricks266 

  • Weaponized Autism

  #5149

View PostFox, on 25 January 2015 - 05:23 AM, said:

Now a minor remaining problem with previous/next weapon keys. When you have no pipebomb ammo left, but there is still a pipebomb in the ground, you still can switch to the pipebomb trigger by pressing 6, but not with next/previous weapon.

Fixed.

View PostJblade, on 02 February 2015 - 01:45 AM, said:

Would there be a possibility of adding a member to userdef or something that lets me know if the player has music disabled? I've coded a dynamic sound system using sounds and I want to disable it if the player has music disabled automatically (you could make it read-only if you don't want people to be able to force music on or something)

I've added a "musictoggle" member of the userdef structure.

View PostJblade, on 04 February 2015 - 01:34 PM, said:

I'm not sure if setting SPREXT_NOTMD to 1 will disable a voxel as well as a model, but if you have a voxel switch and it's used as a flat sprite it still appears as an upgrade voxel (of course if it can be done in con that's not a problem)

It looks like this is already set up in the source. Have you tested it and found it to not work?
1

User is offline   Jblade 

#5150

Sorry, I got kind of side tracked and didn't actually test it. I do think it should probably be forced at least that voxels set to flat switch back to 2D rendering as a lot of usermaps utilize switches and people using voxel packs will see some funky errors (like the start of Red4 for instance which has a bunch of floor aligned dipswitches) but of course I understand that hard-coding stuff is seen as a last resort if it can be done with con, it's not a problem for me to do it that way regardless.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #5151

We already have special handling to stretch voxels horizontally when they are wall-aligned, so they could be used for switches like in SW.
0

User is offline   Jblade 

#5152

Sorry I should of clarified a bit more, I meant horizontally flat on the floor (as a floor aligned sprite)

EDIT: also just a thing, thanks for making this change - the translucent background covered up the menu display code I did which caused ugly clashes with colours which is now fixed in the latest snapshot:

Quote

Move EVENT_DISPLAYMENU to after the black translucent background is drawn when in-game.


This post has been edited by Jblade: 08 February 2015 - 11:23 AM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#5153

View PostJblade, on 04 February 2015 - 01:34 PM, said:

Just another quick question/query - can you guys code voxels so they're disabled if it's a flat sprite? I'm not sure if setting SPREXT_NOTMD to 1 will disable a voxel as well as a model, but if you have a voxel switch and it's used as a flat sprite it still appears as an upgrade voxel (of course if it can be done in con that's not a problem)

Yeah, SPREXT_NOTMD will disable rendering a sprite as a voxel. Unfortunately it can only be set from maphacks or from CON. Is the following good enough for you?

gamevar tmp 0 0

onevent EVENT_SPAWN
    getactor[THISACTOR].cstat tmp
    andvar tmp 48

    ifvare tmp 32  // if it's floor-aligned
    {
        getactor[THISACTOR].mdflags tmp
        orvar tmp 1  // SPREXT_NOTMD
        setactor[THISACTOR].mdflags tmp
    }
endevent


Otherwise, I agree that it would be better for floor-aligned voxels to "just work", but I'm not sure about rendering them as non-voxels by default then.
1

User is offline   Helixhorned 

  • EDuke32 Developer

#5154

View PostFox, on 07 February 2015 - 10:58 AM, said:

The how is the feature. It would be more usefull if THISACTOR returned the actor which called the sound, rather than the one that is playing the sound, since the second one is a hack of the game.

Agreed, that would be preferred.

Quote

Practical example:
onevent EVENT_SOUND
  ifvare RETURN BOS1_RECOG
    ifactor BOSS1
      ifspritepal 0
        setvar RETURN BOS1_SPEECH
endevent

This is not possible because BOS1_RECOG is a "globalsound". Since the primary purpose of EVENT_SOUND is to manipulate hard-coded sounds, this would make sense in my opinion.

In this particular case, I think a workaround would do fine. With a vanilla setup, BOS1_RECOG is only ever played when recognizing that boss, so the "ifactor BOSS1" check is redundant. Then, you could just search for a non-sleeping BOSS1 sprite in the map and assume that that one has just awoken. The assumption here is that no pal-0 boss is active at the same time as a colored one.
1

User is offline   LeoD 

  • Duke4.net topic/3513

#5155

View PostJblade, on 04 February 2015 - 01:34 PM, said:

I'm not sure if setting SPREXT_NOTMD to 1 will disable a voxel as well as a model, but if you have a voxel switch and it's used as a flat sprite it still appears as an upgrade voxel (of course if it can be done in con that's not a problem)

View PostHendricks266, on 08 February 2015 - 12:01 AM, said:

It looks like this is already set up in the source. Have you tested it and found it to not work?

View PostJblade, on 08 February 2015 - 09:25 AM, said:

Sorry, I got kind of side tracked and didn't actually test it.
Tested - it works:
Attached Image: red4-voxel-wall.jpg Attached Image: red4-voxel-floor.jpg

View PostJblade, on 08 February 2015 - 09:25 AM, said:

I do think it should probably be forced at least that voxels set to flat switch back to 2D rendering as a lot of usermaps utilize switches and people using voxel packs will see some funky errors (like the start of Red4 for instance which has a bunch of floor aligned dipswitches) but of course I understand that hard-coding stuff is seen as a last resort if it can be done with con, it's not a problem for me to do it that way regardless.
For existing usermaps this can easily be fixed by maphacks. The notmd directive works on voxels just as well. When using EDuke32 r4884 or later it would be best to just add the HRP's maphack hierarchy to the voxel pack, too.

View PostHelixhorned, on 08 February 2015 - 11:46 AM, said:

Otherwise, I agree that it would be better for floor-aligned voxels to "just work", but I'm not sure about rendering them as non-voxels by default then.
I'd strongly oppose against rendering floor-aligned models as textures by default, at least. Red4 is just an example why even flloor-aligned voxels probably don't need to be 'flattened' by default if you take a look at how the switch HRP model is rendered:
Attached Image: red4-model-wall.jpg Attached Image: red4-model-floor.jpg
1

User is offline   Jblade 

#5156

Cheers, by CON is fine as I'd prefer it to be automatic (and it's for a TC anyways) thank for the help :lol:
0

User is offline   Jason S. 

#5157

A little while back, I posted about the framerate problems with Polymer and, while I still do believe there is an engine solution to this, given how much faster other games run under similar weight, I neglected to mention that turning the real time shadows off completely, which still leaves the spotlights and projective textures, more than doubled the frame rate to something more consistently playable, even with other lights still present.

What I was referring to earlier was with any shadows present and i'm mentioning this now because it seems to pinpoint one of the biggest catalysts for the frame rate issues for future reference, just incase it isn't as widely known. I know i'm repeating myself here, but the above information I think is an integral reminder that, while an engine issue might be existent, right now there would be decently large fps gain if a light/shadow removal or fade off point was established like in common games today.

This post has been edited by Jason S.: 10 February 2015 - 11:48 AM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#5158

View PostLeoD, on 09 February 2015 - 04:52 AM, said:

I'd strongly oppose against rendering floor-aligned models as textures by default, at least. Red4 is just an example why even flloor-aligned voxels probably don't need to be 'flattened' by default if you take a look at how the switch HRP model is rendered:
Attachment red4-model-wall.jpg Attachment red4-model-floor.jpg

I was suggesting to render floor-aligned voxels as voxels, but lying flat on the ground. Hence "just work". Drawing them completely flat by default would not be very friendly IMO. In the screenshot, do you object to the small but noticeable gap between the dipswitch model and the surrounding wall-aligned sprites? That's a bug of the model, it doesn't align perfectly.

On a related note: in r4952, I introduced a serious bug at exit when models were used. Please don't use revisions r4952--r4979 and update to r4980 instead. Sorry!
0

User is offline   Hendricks266 

  • Weaponized Autism

  #5159

View PostHelixhorned, on 10 February 2015 - 12:13 PM, said:

I was suggesting to render floor-aligned voxels as voxels, but lying flat on the ground. Hence "just work".

I am in favor of this as well. In fact, this may be an opportunity to implement pitch and roll for voxels. In Polymost this would be as simple as applying the transformation to the generated model, but for Classic I believe it could work as transforming the vectors along which the squares are drawn.

Sidenote: With voxmodel now a separate file, and with VoidSW on the horizon, I really need to get voxels working in Polymer. :lol:

Sidenote: Have we established a defined order of application of angoff, pitch, roll, and md[xyz]off?
0

User is offline   Jblade 

#5160

Quote

In fact, this may be an opportunity to implement pitch and roll for voxels

Damn, that would be absolutely fantastic if you could - there's quite a few things that would really benefit from this in the TC. I had always just assumed it would be too expensive to perform or something so didn't ask.

Also just saw the new ability to add custom ANM cutscenes anywhere - I imagine Zaxtor will get a ton of use out of this :lol:

On a different note, we get sporadic crashes with rotscrnang after a while of gameplay - it seems to be some kind of conflict with horiz but it's fairly random (but normally after a specific amount of time) I'm going to try and narrow down when it occurs to give more information (although I'm pretty tight on time at the minute)

EDIT: after looking at it in a bit more detail, I think rotscrnang doesn't like using 1024 (which is 180 upside down) since there's a graphical glich in the center of the screen when this value is used. It's not a problem to work around it on my part but it might be worth looking into anyways.

This post has been edited by Jblade: 11 February 2015 - 02:47 AM

1

Share this topic:


  • 213 Pages +
  • « First
  • 170
  • 171
  • 172
  • 173
  • 174
  • Last »
  • 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