More control over what stuff get Encore mapping applied to it, with sensible defaults so you don't have to do much to your map to get it to be supported!

* Objects!
	* Gone is the arcane, difficult-to-remember list of random flags. Say hello to MF_DONTENCOREMAP!
	* Alternatively, if the object has a skincolour applied to it, it isn't encoremapped either. (Useful for ghosts, for example.)
* Sectors!
	* The autodetecting of sneaker and spring panels is now much more intelligent, and only avoids remapping the plane(s) the effect is availible upon.
	* Sector special group 2 no. 15 is now "Invert Encore Remap". It inverts the above detection.
* Linedefs!
	* The "Transfer Line" linedef flag can now also be used to deny Encore remappings on linedef textures.
	* Right now it applies to every pixel drawn specifically belonging to that linedef, but if people decide it needs changing, we CAN make it apply to midtextures only (like linedef types 900-910).
This commit is contained in:
toaster 2018-08-10 19:31:30 +01:00
parent 542b758206
commit 500b71c0b3
7 changed files with 124 additions and 114 deletions

View file

@ -7367,6 +7367,7 @@ static const char *const MOBJFLAG_LIST[] = {
"NOCLIPTHING",
"GRENADEBOUNCE",
"RUNSPAWNFUNC",
"DONTENCOREMAP",
NULL
};

View file

@ -3028,7 +3028,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -3055,7 +3055,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -3082,7 +3082,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -3109,7 +3109,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
MT_THOK, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE, // flags
MF_SOLID|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
(statenum_t)MT_THOK // raisestate
},
@ -5135,7 +5135,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5162,7 +5162,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5189,7 +5189,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5216,7 +5216,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP, // flags
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5243,7 +5243,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5270,7 +5270,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5297,7 +5297,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
4, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5324,7 +5324,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD2
@ -5350,7 +5350,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD3
@ -5376,7 +5376,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD4
@ -5402,7 +5402,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD5
@ -5428,7 +5428,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD6
@ -5454,7 +5454,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_EMERALD7
@ -5480,7 +5480,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5507,7 +5507,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
4, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_NOGRAVITY, // flags
MF_SPECIAL|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5561,7 +5561,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SPECIAL, // flags
MF_SLIDEME|MF_SPECIAL|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5615,7 +5615,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
20*FRACUNIT, // mass
0, // damage
sfx_None, // activesound
MF_SOLID, // flags
MF_SOLID|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5642,7 +5642,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
14*FRACUNIT, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_BLUESPRING2 // raisestate
},
@ -5669,7 +5669,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
26*FRACUNIT, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_YELLOWSPRING2 // raisestate
},
@ -5696,7 +5696,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
40*FRACUNIT, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_REDSPRING2 // raisestate
},
@ -5723,7 +5723,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
26*FRACUNIT, // mass
26*FRACUNIT, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_YDIAG2 // raisestate
},
@ -5750,7 +5750,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
40*FRACUNIT, // mass
40*FRACUNIT, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_RDIAG2 // raisestate
},
@ -5804,7 +5804,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
MF_NOCLIP|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -5912,7 +5912,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
4, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_SCENERY|MF_NOCLIPHEIGHT, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_SCENERY|MF_NOCLIPHEIGHT, // flags
S_NULL // raisestate
},
@ -8022,7 +8022,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL|MF_NOCLIPHEIGHT, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -8049,7 +8049,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SPECIAL|MF_NOCLIPHEIGHT, // flags
MF_NOGRAVITY|MF_SPECIAL|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -8076,7 +8076,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_mswing, // activesound
MF_PAIN|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_PAIN|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -8103,7 +8103,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_mswing, // activesound
MF_PAIN|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_PAIN|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -10482,7 +10482,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -10509,7 +10509,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -10753,7 +10753,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -10942,7 +10942,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
4, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIP, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14277,7 +14277,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
6*FRACUNIT, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_GRAYSPRING2 // raisestate
},
@ -14331,7 +14331,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
14*FRACUNIT, // mass
14*FRACUNIT, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
MF_SOLID|MF_SPRING|MF_DONTENCOREMAP, // flags
S_BDIAG2 // raisestate
},
@ -14358,7 +14358,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_RANDOMITEMPOP, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14385,7 +14385,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
MT_EXPLODE, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP, // flags
MF_NOCLIP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14412,7 +14412,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_SLIDEME, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_SLIDEME|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14439,7 +14439,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14466,7 +14466,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14493,7 +14493,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14520,7 +14520,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14547,7 +14547,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_FLOAT|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_FLOAT|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14574,7 +14574,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14601,7 +14601,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_fake, // activesound
MF_BOUNCE|MF_SHOOTABLE, // flags
MF_BOUNCE|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14628,7 +14628,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_peel, // activesound
MF_BOUNCE|MF_SHOOTABLE, // flags
MF_BOUNCE|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14655,7 +14655,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14682,7 +14682,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_s3k96, // activesound
MF_SHOOTABLE|MF_BOUNCE, // flags
MF_SHOOTABLE|MF_BOUNCE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14709,7 +14709,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14736,7 +14736,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_s3kc0s, // activesound
MF_SHOOTABLE, // flags
MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14763,7 +14763,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_s3kc0s, // activesound
MF_SHOOTABLE, // flags
MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14790,7 +14790,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14817,7 +14817,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_s3k5c, // activesound
MF_BOUNCE|MF_SHOOTABLE, // flags
MF_BOUNCE|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14844,7 +14844,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14871,7 +14871,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_NOGRAVITY, // flags
MF_SOLID|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14925,7 +14925,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14952,7 +14952,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_BOUNCE|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_BOUNCE|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14979,7 +14979,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_BOUNCE|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_BOUNCE|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15006,7 +15006,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_BOUNCE, // flags
MF_SHOOTABLE|MF_BOUNCE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15033,7 +15033,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING, // flags
MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15060,7 +15060,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15087,7 +15087,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_BOUNCE|MF_FLOAT|MF_NOCLIPTHING|MF_MISSILE|MF_SHOOTABLE, // flags
MF_BOUNCE|MF_FLOAT|MF_NOCLIPTHING|MF_MISSILE|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15114,7 +15114,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15141,7 +15141,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15168,7 +15168,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_bomb, // activesound
MF_BOUNCE|MF_SHOOTABLE, // flags
MF_BOUNCE|MF_SHOOTABLE|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15195,7 +15195,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15222,7 +15222,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15249,7 +15249,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15357,7 +15357,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15384,7 +15384,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15411,7 +15411,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15438,7 +15438,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15465,7 +15465,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15492,7 +15492,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15519,7 +15519,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15546,7 +15546,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -15573,7 +15573,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
1000, // mass
0, // damage
sfx_None, // activesound
2, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16626,7 +16626,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_SCENERY|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags
MF_NOGRAVITY|MF_SCENERY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16653,7 +16653,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16680,7 +16680,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_clash, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY|MF_RUNSPAWNFUNC|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16707,7 +16707,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16734,7 +16734,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16761,7 +16761,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16788,7 +16788,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16815,7 +16815,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16842,7 +16842,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_NOCLIPHEIGHT|MF_NOGRAVITY, // flags
MF_SPECIAL|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -16869,7 +16869,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOTHINK|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags
MF_NOTHINK|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},

View file

@ -160,7 +160,9 @@ typedef enum
MF_GRENADEBOUNCE = 1<<28,
// Run the action thinker on spawn.
MF_RUNSPAWNFUNC = 1<<29,
// free: 1<<30 and 1<<31
// Don't remap in Encore mode.
MF_DONTENCOREMAP = 1<<30,
// free: 1<<31
} mobjflag_t;
typedef enum

View file

@ -3745,6 +3745,8 @@ void P_ProcessSpecialSector(player_t *player, sector_t *sector, sector_t *rovers
break;
case 12: // Lua sector special
break;
case 15: // Invert Encore Remap
break;
}
DoneSection2:

View file

@ -37,14 +37,21 @@ drawseg_t *ds_p = NULL;
// indicates doors closed wrt automap bugfix:
INT32 doorclosed;
static boolean R_NoEncore(sector_t *sector)
static boolean R_NoEncore(sector_t *sector, boolean ceiling)
{
boolean invertencore = (GETSECSPECIAL(sector->special, 2) != 15);
#if 0 // perfect implementation
INT32 val = GETSECSPECIAL(sector->special, 3);
if (val == 1 || val == 3)
return true;
if (GETSECSPECIAL(sector->special, 4) == 6)
return true;
return false;
if (val != 1 && val != 3 // spring panel
#else // optimised, see #define GETSECSPECIAL(i,j) ((i >> ((j-1)*4))&15)
if ((!(sector->special & (1<<8)) || (sector->special & ((4|8)<<8))) // spring panel
#endif
&& GETSECSPECIAL(sector->special, 4) != 6) // sneaker panel
return !invertencore;
if (ceiling)
return ((boolean)(sector->flags & SF_FLIPSPECIAL_CEILING) == invertencore);
return ((boolean)(sector->flags & SF_FLIPSPECIAL_FLOOR) == invertencore);
}
//
@ -945,7 +952,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, frontsector->f_slope
#endif
, R_NoEncore(frontsector));
, R_NoEncore(frontsector, false));
}
else
floorplane = NULL;
@ -967,7 +974,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, frontsector->c_slope
#endif
, R_NoEncore(frontsector));
, R_NoEncore(frontsector, true));
}
else
ceilingplane = NULL;
@ -1028,7 +1035,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, *rover->b_slope
#endif
, R_NoEncore(rover->master->frontsector));
, R_NoEncore(rover->master->frontsector, true));
#ifdef ESLOPE
ffloor[numffloors].slope = *rover->b_slope;
@ -1074,7 +1081,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, *rover->t_slope
#endif
, R_NoEncore(rover->master->frontsector));
, R_NoEncore(rover->master->frontsector, false));
#ifdef ESLOPE
ffloor[numffloors].slope = *rover->t_slope;
@ -1143,7 +1150,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, NULL // will ffloors be slopable eventually?
#endif
, R_NoEncore(polysec));
, R_NoEncore(polysec, false));
ffloor[numffloors].height = polysec->floorheight;
ffloor[numffloors].polyobj = po;
@ -1189,7 +1196,7 @@ static void R_Subsector(size_t num, UINT8 viewnumber)
#ifdef ESLOPE
, NULL // will ffloors be slopable eventually?
#endif
, R_NoEncore(polysec));
, R_NoEncore(polysec, true));
ffloor[numffloors].polyobj = po;
ffloor[numffloors].height = polysec->ceilingheight;

View file

@ -202,7 +202,7 @@ static void R_DrawWallSplats(void)
if (pindex >= MAXLIGHTSCALE)
pindex = MAXLIGHTSCALE - 1;
dc_colormap = walllights[pindex];
if (encoremap)
if (encoremap && !(seg->linedef->flags & ML_TFERLINE))
dc_colormap += (256*32);
if (frontsector->extra_colormap)
@ -598,7 +598,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2)
if (height <= windowtop)
{
dc_colormap = rlight->rcolormap;
if (encoremap)
if (encoremap && !(ldef->flags & ML_TFERLINE))
dc_colormap += (256*32);
continue;
}
@ -619,7 +619,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2)
colfunc_2s(col);
windowtop = windowbottom + 1;
dc_colormap = rlight->rcolormap;
if (encoremap)
if (encoremap && !(ldef->flags & ML_TFERLINE))
dc_colormap += (256*32);
}
windowbottom = realbot;
@ -637,7 +637,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2)
pindex = MAXLIGHTSCALE - 1;
dc_colormap = walllights[pindex];
if (encoremap)
if (encoremap && !(ldef->flags & ML_TFERLINE))
dc_colormap += (256*32);
if (frontsector->extra_colormap)
@ -1220,7 +1220,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
if (lighteffect)
{
dc_colormap = rlight->rcolormap;
if (encoremap)
if (encoremap && !(curline->linedef->flags & ML_TFERLINE))
dc_colormap += (256*32);
}
if (solid && windowtop < bheight)
@ -1250,7 +1250,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
if (lighteffect)
{
dc_colormap = rlight->rcolormap;
if (encoremap)
if (encoremap && !(curline->linedef->flags & ML_TFERLINE))
dc_colormap += (256*32);
}
}
@ -1269,7 +1269,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
pindex = MAXLIGHTSCALE - 1;
dc_colormap = walllights[pindex];
if (encoremap)
if (encoremap && !(curline->linedef->flags & ML_TFERLINE))
dc_colormap += (256*32);
if (frontsector->extra_colormap)
dc_colormap = frontsector->extra_colormap->colormap + (dc_colormap - colormaps);
@ -1501,7 +1501,7 @@ static void R_RenderSegLoop (void)
pindex = MAXLIGHTSCALE-1;
dc_colormap = walllights[pindex];
if (encoremap)
if (encoremap && !(curline->linedef->flags & ML_TFERLINE))
dc_colormap += (256*32);
dc_x = rw_x;
dc_iscale = 0xffffffffu / (unsigned)rw_scale;

View file

@ -873,9 +873,7 @@ static void R_DrawVisSprite(vissprite_t *vis)
if (!dc_colormap)
dc_colormap = colormaps;
if (encoremap && !vis->mobj->color
&& (vis->mobj->flags & (MF_SCENERY|MF_NOTHINK))
&& !(vis->mobj->flags & ~(MF_SCENERY|MF_NOTHINK|MF_NOCLIP|MF_NOBLOCKMAP|MF_NOGRAVITY)))
if (encoremap && !vis->mobj->color && !(vis->mobj->flags & MF_DONTENCOREMAP))
dc_colormap += (256*32);
dc_texturemid = vis->texturemid;