Bug #807

MOD_SLIME is never used

Added by Spyhawk over 4 years ago. Updated over 4 years ago.

Status:New% Done:

20%

Priority:NormalSpent time:-
Assignee:-
Category:Mod generic
Target version:2.78
OS: Arch:

Description

There is an obituary death message in the code for MOD_SLIME events ("died by toxic material"), but this MOD is actually never initialized anywhere in the code (unlike MOD_LAVA, see g_active.c).

I tried various stuff on the "Toxicity facility 3.1" map, but I always get the generic "was killed" when poisoned.
Investigate and fix accordingly.

ETL_Tests.pk3 (13.9 KB) Mateos, 10.02.2015 21:22

ETL_Tests.pk3 (11.9 KB) Mateos, 11.02.2015 20:20


Related issues

Related to ET: Legacy Development - Bug #798: Some weapons/MODs show skull instead of their own gun/cus... Fixed 24.01.2015

Associated revisions

Revision eea2de58
Added by IR4T4 over 4 years ago

game: don’t check ent→watertype & CONTENTS_LAVA twice refs #807

Revision e9f7d4a0
Added by IR4T4 over 4 years ago

renderer: print a warning when unknown shader surface parms are scripted
refs #807

Revision f649625a
Added by IR4T4 over 4 years ago

mod: let slag code work as intended refs #807

Revision ac7734f9
Added by IR4T4 over 4 years ago

mod: slag damage refs #807

History

#1 Updated by Spyhawk over 4 years ago

  • Related to Bug #798: Some weapons/MODs show skull instead of their own gun/custom icons added

#2 Updated by IR4T4 over 4 years ago

There is a note in the code '// modified since slime is no longer deadly’ and compared to ioq3 we don’t do the G_Damage in case of ent→watertype & CONTENTS_SLIME.

Add damage back for slime (P_WorldEffects):

   
    // check for sizzle damage (move to pmove?)
    if (ent->waterlevel x%x%x%x% (ent->watertype x%x% (CONTENTS_LAVA|CONTENTS_SLIME)))
    {
        if (ent->health > 0 x%x%x%x% ent->pain_debounce_time <= level.time)
        {
            if (ent->watertype x%x% CONTENTS_LAVA)
            {
                G_Damage(ent, NULL, NULL, NULL, NULL, 30 * ent->waterlevel, 0, MOD_LAVA);
            }

            if (ent->watertype x%x% CONTENTS_SLIME)
            {
                G_Damage(ent, NULL, NULL, NULL, NULL, 10 * ent->waterlevel, 0, MOD_SLIME);
            }
        }
    }

We should try that. If this is a bad change of gameplay we can remove MOD_SLIME.

#3 Updated by IR4T4 over 4 years ago

  • % Done changed from 0 to 20

#4 Updated by IR4T4 over 4 years ago

Worth to mention:
- keyword of infoParms 'slime’ isn’t used - use "slag" instead.
- MASK_OPAQUE doesn’t contain CONTENTS_SLIME

I do assume 'slag’ is used for ice surfaces and we can probably remove MOD_SLIME.

#5 Updated by IR4T4 over 4 years ago

  • Target version changed from 2.78 to 2.74

#6 Updated by Spyhawk over 4 years ago

'slag’ seems to be used by another kind of water (similar but with more friction).

Also, MOD_LAVA doesn’t seem to do any damage without map script (according to some mapper). We should have a look too.

#7 Updated by IR4T4 over 4 years ago

I did some research:

- LAVA should damage when surfaceparm 'lava’ is set and ent→waterlevel is not 0 - see g_active.c 146

- SLIME & SLAG: in fact surfaceparm 'slime’ isn’t implemented in ET keyword 'slag’ replaces this. But this isn’t documented in any shader manual I’ve found in the net. I think mapping tools and mappers don’t know about this .... I have no Radiant installed ... can anybody have a look if surfaceparm 'slag’ is offered in ET mapping?

http://q3map2.everyonelookbusy.net/shader_manual/contents.htm

#8 Updated by Mateos over 4 years ago

The most recent and still maintained Q3Map2 Shader Manual is this one:
http://robotrenegade.com/q3map2/docs/shader_manual/contents.html

It doesn’t have this shader instruction listed.

ET doesn’t output a warning when a non-existing shader instruction is used, only when you badly use one existing (From experience)

#9 Updated by Mateos over 4 years ago

Here’s a test map to mess with.

#10 Updated by Mateos over 4 years ago

New version: easier access to the swimming pool, you can swim inside, added a trace map so you can use mortar/arty on the surface, and a map script for 1 second respawn time and no time limit.

#11 Updated by IR4T4 over 4 years ago

Slag code works as intended now. It enables kind of mud movement for players under/in water.

Run attached map to see never used/working vanilla feature.

So back to MOD_SLIME. We should remove it.

#12 Updated by Spyhawk over 4 years ago

Weird, the debug message (that you forgot to remove) shows that some frame don’t happen in SLIME:

SLIME
 !SLIME
 SLIME
 SLIME
 !SLIME
 SLIME
 SLIME
 SLIME
 !SLIM

So back to MOD_SLIME. We should remove it.

Alternatively, we could also use it as a variation of MOD_WATER .

#13 Updated by IR4T4 over 4 years ago

Client frame != server frame, We can add MOD any time.

#14 Updated by Mateos over 4 years ago

IR4T4 wrote:

Slag code works as intended now. It enables kind of mud movement for players under/in water.

Run attached map to see never used/working vanilla feature.

So back to MOD_SLIME. We should remove it.

Have you attached to it a custom sound, like walking in mud (more realistic one than HL² )?

#15 Updated by IR4T4 over 4 years ago

We don’t have any fitting sounds in pak0 but it’s easy to add them.

#16 Updated by IR4T4 over 4 years ago

It’s a variation of water!


- add some good sounds
- adjust MOD_SLIME when player dies in mud
- change HINT_WATER and related icons

#17 Updated by IR4T4 over 4 years ago

  • Target version changed from 2.74 to 2.78

#18 Updated by Mateos over 4 years ago

Slag reference in Q3Map2:
https://github.com/TTimo/GtkRadiant/blob/master/tools/quake3/q3map2/game_wolfet.h#L110

Also lava right below; First time I see donotenter too...

/* materials */ part is also quite interesting

Compared with RtCW header, it’s inherited... Copy/Pasted/(Poorly) Adapted >.>

Note: That header will need a cleanup... ai, monster etc. should be removed. I think I’ll manage that.

Note 2: monster... Could these "slick" events be used for the greater good of ETL? :3

Also available in: Atom PDF