Change new PIE modes to use flags instead of connectors.

Introduced in 82e00bf7747af4962a32b67e4215d40298bbf9b3:

  Roll to camera uses TYPE x1x instead of a "1 x 0" connector.

  Pitch to camera uses TYPE x2x instead of a "2 x 0" connector.

  Additive uses TYPE xx1/xx2 to dis/enable instead of a "x 1 0"/"x 2 0" connector.

Introduced in f3ba2378e54ab0557db4a20c876043f8be059906:

  Premultiplied uses TYPE xx4 instead of a "x 3 0" connector.

Refs #3024.
master
cybersphinx 2012-02-05 17:18:29 +01:00
parent 2fc761a304
commit 97a7c6a1da
23 changed files with 81 additions and 94 deletions

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 2
LEVEL 1
@ -11,8 +11,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
-7 0 0
LEVEL 2
POINTS 4
@ -23,6 +22,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
7 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 4
LEVEL 1
@ -11,8 +11,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
-5 -5 -6
LEVEL 2
POINTS 4
@ -23,8 +22,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
5 -5 -6
LEVEL 3
POINTS 4
@ -35,8 +33,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
-5 5 6
LEVEL 4
POINTS 4
@ -47,6 +44,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 207 72 207 55 210 55
200 3 3 1 0 207 72 210 55 210 72
CONNECTORS 2
1 1 0
CONNECTORS 1
5 5 6

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 192 69 192 54 203 54
200 3 3 1 0 192 69 203 54 203 69
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 192 69 192 54 203 54
200 3 3 1 0 192 69 203 54 203 69
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 74 134 1 134 1 127
200 3 3 1 0 74 134 1 127 74 127
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 28 137 -1 137 -1 150
200 3 3 1 0 28 137 -1 150 28 150
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 74 134 1 134 1 127
200 3 3 1 0 74 134 1 127 74 127
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 212
TEXTURE 0 page-23-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 227 194 202 194 202 181
200 3 3 1 0 227 194 202 181 227 181
CONNECTORS 2
1 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 212
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 19 159 0 159 0 152
200 3 3 1 0 19 159 0 152 19 152
CONNECTORS 2
1 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 222
TEXTURE 0 page-23-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 157 253 157 226 184 226
200 3 3 1 0 157 253 184 226 184 253
CONNECTORS 2
2 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 212
TEXTURE 0 page-23-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 227 194 202 194 202 181
200 3 3 1 0 227 194 202 181 227 181
CONNECTORS 2
1 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 212
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 59 159 40 159 40 152
200 3 3 1 0 59 159 40 152 59 152
CONNECTORS 2
1 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 212
TEXTURE 0 page-23-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 254 194 229 194 229 181
200 3 3 1 0 254 194 229 181 254 181
CONNECTORS 2
1 2 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 2
LEVEL 1
@ -11,8 +11,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
-9 0 0
LEVEL 2
POINTS 4
@ -23,6 +22,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
9 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 2
LEVEL 1
@ -11,8 +11,7 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
-9 0 0
LEVEL 2
POINTS 4
@ -23,6 +22,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 203 65 203 54 206 54
200 3 3 1 0 203 65 206 54 206 65
CONNECTORS 2
1 1 0
CONNECTORS 1
9 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-21-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 192 74 192 54 203 54
200 3 3 1 0 192 74 203 54 203 74
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -1,5 +1,5 @@
PIE 2
TYPE 200
TYPE 211
TEXTURE 0 page-18-fx.png 256 256
LEVELS 1
LEVEL 1
@ -11,6 +11,5 @@ POINTS 4
POLYGONS 2
200 3 3 2 1 28 137 -1 137 -1 150
200 3 3 1 0 28 137 -1 150 28 150
CONNECTORS 2
1 1 0
CONNECTORS 1
0 0 0

View File

@ -30,8 +30,15 @@
//*************************************************************************
// PIE model flags
#define iV_IMD_NOSTRETCH 0x00001000
#define iV_IMD_TCMASK 0x00010000
// premultiplied implies additive
#define iV_IMD_NO_ADDITIVE 0x00000001
#define iV_IMD_ADDITIVE 0x00000002
#define iV_IMD_PREMULTIPLIED 0x00000004
// pitch to camera implies roll to camera
#define iV_IMD_ROLL_TO_CAMERA 0x00000010
#define iV_IMD_PITCH_TO_CAMERA 0x00000020
#define iV_IMD_NOSTRETCH 0x00001000
#define iV_IMD_TCMASK 0x00010000
// polygon flags b0..b7: col, b24..b31: anim index

View File

@ -784,11 +784,12 @@ iIMDShape *iV_ProcessIMD( const char **ppFileData, const char *FileDataEnd )
ASSERT_OR_RETURN(NULL, texpage >= 0, "%s could not load tex page %s", pFileName, texfile);
// assign tex page to levels
// assign tex pages and flags to all levels
for (psShape = shape; psShape != NULL; psShape = psShape->next)
{
psShape->texpage = texpage;
psShape->normalpage = normalpage;
psShape->flags = imd_flags;
}
// check if model should use team colour mask
@ -805,7 +806,6 @@ iIMDShape *iV_ProcessIMD( const char **ppFileData, const char *FileDataEnd )
// Propagate settings through levels
for (psShape = shape; psShape != NULL; psShape = psShape->next)
{
psShape->flags |= iV_IMD_TCMASK;
psShape->tcmaskpage = texpage_mask;
}
}

View File

@ -1279,19 +1279,27 @@ void renderProjectile(PROJECTILE *psCurr)
bool premultiplied = false;
bool additive = psStats->weaponSubClass == WSC_ROCKET || psStats->weaponSubClass == WSC_MISSILE || psStats->weaponSubClass == WSC_SLOWROCKET || psStats->weaponSubClass == WSC_SLOWMISSILE;
if (pIMD->nconnectors >= 2)
if (pIMD->flags & iV_IMD_ROLL_TO_CAMERA)
{
switch (pIMD->connectors[0].x)
{
case 1: rollToCamera = true; break;
case 2: rollToCamera = true; pitchToCamera = true; break;
}
switch (pIMD->connectors[0].y)
{
case 1: additive = false; break;
case 2: additive = true; break;
case 3: additive = false; premultiplied = true; break;
}
rollToCamera = true;
}
if (pIMD->flags & iV_IMD_PITCH_TO_CAMERA)
{
rollToCamera = true;
pitchToCamera = true;
}
if (pIMD->flags & iV_IMD_NO_ADDITIVE)
{
additive = false;
}
if (pIMD->flags & iV_IMD_ADDITIVE)
{
additive = true;
}
if (pIMD->flags & iV_IMD_PREMULTIPLIED)
{
additive = false;
premultiplied = true;
}
/* Get bullet's x coord */
@ -1323,8 +1331,8 @@ void renderProjectile(PROJECTILE *psCurr)
if (pitchToCamera || rollToCamera)
{
// Centre on projectile (relevant for twin projectiles).
pie_TRANSLATE(pIMD->connectors[1].x, pIMD->connectors[1].y, pIMD->connectors[1].z);
camera -= Vector3i(pIMD->connectors[1].x, pIMD->connectors[1].y, pIMD->connectors[1].z);
pie_TRANSLATE(pIMD->connectors[0].x, pIMD->connectors[0].y, pIMD->connectors[0].z);
camera -= Vector3i(pIMD->connectors[0].x, pIMD->connectors[0].y, pIMD->connectors[0].z);
}
if (pitchToCamera)
@ -1344,8 +1352,8 @@ void renderProjectile(PROJECTILE *psCurr)
if (pitchToCamera || rollToCamera)
{
// Undo centre on projectile (relevant for twin projectiles).
pie_TRANSLATE(-pIMD->connectors[1].x, -pIMD->connectors[1].y, -pIMD->connectors[1].z);
camera -= Vector3i(-pIMD->connectors[1].x, -pIMD->connectors[1].y, -pIMD->connectors[1].z);
pie_TRANSLATE(-pIMD->connectors[0].x, -pIMD->connectors[0].y, -pIMD->connectors[0].z);
camera -= Vector3i(-pIMD->connectors[0].x, -pIMD->connectors[0].y, -pIMD->connectors[0].z);
}
if (premultiplied)

View File

@ -1746,12 +1746,9 @@ static void renderExplosionEffect(const EFFECT *psEffect)
}
bool premultiplied = false;
if (psEffect->imd->nconnectors >= 1)
if (psEffect->imd->flags & iV_IMD_PREMULTIPLIED)
{
switch (psEffect->imd->connectors[0].y)
{
case 3: premultiplied = true; break;
}
premultiplied = true;
}
if (premultiplied)