mirror of
https://github.com/OpenDriver2/REDRIVER2.git
synced 2024-11-23 02:42:38 +01:00
- misc changes
This commit is contained in:
parent
2a96d1eb22
commit
0a31098290
@ -1229,14 +1229,14 @@ void DrawCarWheels(CAR_DATA *cp, MATRIX *RearMatrix, VECTOR *pos, int zclip)
|
|||||||
VertPtr[11].vz = -FW2z;
|
VertPtr[11].vz = -FW2z;
|
||||||
VertPtr[12].vz = -FW2z;
|
VertPtr[12].vz = -FW2z;
|
||||||
|
|
||||||
VertPtr[0x17].vz = 0;
|
VertPtr[23].vz = 0;
|
||||||
VertPtr[0x16].vz = 0;
|
VertPtr[22].vz = 0;
|
||||||
VertPtr[0x15].vy = 0;
|
VertPtr[21].vy = 0;
|
||||||
VertPtr[0x14].vy = 0;
|
VertPtr[20].vy = 0;
|
||||||
VertPtr[0x13].vy = 0;
|
VertPtr[19].vy = 0;
|
||||||
VertPtr[0x12].vy = 0;
|
VertPtr[18].vy = 0;
|
||||||
VertPtr[0x11].vz = 0;
|
VertPtr[17].vz = 0;
|
||||||
VertPtr[0x10].vz = 0;
|
VertPtr[16].vz = 0;
|
||||||
|
|
||||||
VertPtr[23].vy = wheelSize;
|
VertPtr[23].vy = wheelSize;
|
||||||
VertPtr[22].vy = wheelSize;
|
VertPtr[22].vy = wheelSize;
|
||||||
@ -1273,14 +1273,14 @@ void DrawCarWheels(CAR_DATA *cp, MATRIX *RearMatrix, VECTOR *pos, int zclip)
|
|||||||
VertPtr[11].vz = -BW2z;
|
VertPtr[11].vz = -BW2z;
|
||||||
VertPtr[12].vz = -BW2z;
|
VertPtr[12].vz = -BW2z;
|
||||||
|
|
||||||
VertPtr[0x17].vz = 0;
|
VertPtr[23].vz = 0;
|
||||||
VertPtr[0x16].vz = 0;
|
VertPtr[22].vz = 0;
|
||||||
VertPtr[0x15].vy = 0;
|
VertPtr[21].vy = 0;
|
||||||
VertPtr[0x14].vy = 0;
|
VertPtr[20].vy = 0;
|
||||||
VertPtr[0x13].vy = 0;
|
VertPtr[19].vy = 0;
|
||||||
VertPtr[0x12].vy = 0;
|
VertPtr[18].vy = 0;
|
||||||
VertPtr[0x11].vz = 0;
|
VertPtr[17].vz = 0;
|
||||||
VertPtr[0x10].vz = 0;
|
VertPtr[16].vz = 0;
|
||||||
|
|
||||||
VertPtr[23].vy = wheelSize;
|
VertPtr[23].vy = wheelSize;
|
||||||
VertPtr[22].vy = wheelSize;
|
VertPtr[22].vy = wheelSize;
|
||||||
@ -1294,7 +1294,7 @@ void DrawCarWheels(CAR_DATA *cp, MATRIX *RearMatrix, VECTOR *pos, int zclip)
|
|||||||
|
|
||||||
SteerMatrix.m[0][0] = rcossin_tbl[(cp->wheel_angle & 0xfff) * 2 + 1];
|
SteerMatrix.m[0][0] = rcossin_tbl[(cp->wheel_angle & 0xfff) * 2 + 1];
|
||||||
SteerMatrix.m[0][2] = rcossin_tbl[(cp->wheel_angle & 0xfff) * 2];
|
SteerMatrix.m[0][2] = rcossin_tbl[(cp->wheel_angle & 0xfff) * 2];
|
||||||
SteerMatrix.m[1][1] = 4096;
|
SteerMatrix.m[1][1] = ONE;
|
||||||
SteerMatrix.m[2][1] = 0;
|
SteerMatrix.m[2][1] = 0;
|
||||||
SteerMatrix.m[1][2] = 0;
|
SteerMatrix.m[1][2] = 0;
|
||||||
SteerMatrix.m[1][0] = 0;
|
SteerMatrix.m[1][0] = 0;
|
||||||
|
@ -33,28 +33,34 @@
|
|||||||
// TODO: put more meaning into those arrays
|
// TODO: put more meaning into those arrays
|
||||||
|
|
||||||
int ElTrainData[83] = {
|
int ElTrainData[83] = {
|
||||||
6, // train count (WRONG)
|
6, // train count
|
||||||
|
|
||||||
// train 1 (n 1)
|
// train 1 (n 1)
|
||||||
80, 130, 32768, 336284, -220364, 283420, PATH_NODE_STATION,
|
80, 130, 0x8000, // speed 1, 2, start direction
|
||||||
|
336284, -220364, 283420, PATH_NODE_STATION,
|
||||||
-204500, -158924, 247580, -123084, 188624, -158924, 73520, -138444, 17200, -124148, -39120, PATH_NODE_STATION,
|
-204500, -158924, 247580, -123084, 188624, -158924, 73520, -138444, 17200, -124148, -39120, PATH_NODE_STATION,
|
||||||
-109276, -82131, -80103, -17628, -203568, -124712, -39728, -265000, 129620, -386012, PATH_NODE_WRAP,
|
-109276, -82131, -80103, -17628, -203568, -124712, -39728, -265000, 129620, -386012, PATH_NODE_WRAP,
|
||||||
|
|
||||||
// train 2 (n 31)
|
// train 2 (n 31)
|
||||||
80, 130, 0, -158928, 189219, -123684, 246995, PATH_NODE_CYCLE,
|
80, 130, 0,
|
||||||
|
-158928, 189219, -123684, 246995, PATH_NODE_CYCLE,
|
||||||
|
|
||||||
// train 3 (n 39)
|
// train 3 (n 39)
|
||||||
0, 90, 32768, 188402, -425768, 354291, PATH_NODE_WRAP,
|
0, 90, 0x8000,
|
||||||
|
188402, -425768, 354291, PATH_NODE_WRAP,
|
||||||
|
|
||||||
// train 4 (n 46)
|
// train 4 (n 46)
|
||||||
0, 90, 32768, 354291, -425168, 188402, PATH_NODE_WRAP,
|
0, 90, 0x8000,
|
||||||
|
354291, -425168, 188402, PATH_NODE_WRAP,
|
||||||
|
|
||||||
// train 4 (n 53)
|
// train 5 (n 53)
|
||||||
60, 110, 0, -386012, 130215, -264404, -39132, -124688, 16619, -139048, 72943, -159520, 282863, PATH_NODE_STATION,
|
60, 110, 0,
|
||||||
|
-386012, 130215, -264404, -39132, -124688, 16619, -139048, 72943, -159520, 282863, PATH_NODE_STATION,
|
||||||
-204991, -220964, 336284, PATH_NODE_WRAP,
|
-204991, -220964, 336284, PATH_NODE_WRAP,
|
||||||
|
|
||||||
// train 5 (n 71)
|
// train 6 (n 71)
|
||||||
70, 120, 0, -82719, -39712, PATH_NODE_STATION,
|
70, 120, 0,
|
||||||
|
-82719, -39712, PATH_NODE_STATION,
|
||||||
-115487, -124120, -202968,-18216, -80683, PATH_NODE_CYCLE
|
-115487, -124120, -202968,-18216, -80683, PATH_NODE_CYCLE
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -79,15 +85,42 @@ int HavanaMiniData[4] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
int LiftingBridges[55] = {
|
int LiftingBridges[55] = {
|
||||||
8, -182784, -175616, -168448,
|
8, // bridge count
|
||||||
|
|
||||||
|
// 1
|
||||||
|
-182784, -175616, -168448,
|
||||||
7, -227328, -162304, -141824, -121344, -100864, -80384, -59904,
|
7, -227328, -162304, -141824, -121344, -100864, -80384, -59904,
|
||||||
256, -312832, -305664, -298496,
|
|
||||||
1, 324096, -311808, -304640, -297472,
|
0x100, // goose island start
|
||||||
1, 247296, -256512, -249344, -242176,
|
|
||||||
1, 247296, -262656, -255488, -248320,
|
// 2
|
||||||
1, 324096, 32768, 170496, 177664, 184832,
|
-312832, -305664, -298496,
|
||||||
1, -271360, -12800, -5632, 1536,
|
1, 324096,
|
||||||
5, -162304, -102912, -82432, -61952, -39936, -6656, 512, 7680,
|
|
||||||
|
// 3
|
||||||
|
-311808, -304640, -297472,
|
||||||
|
1, 247296,
|
||||||
|
|
||||||
|
// 4
|
||||||
|
-256512, -249344, -242176,
|
||||||
|
1, 247296,
|
||||||
|
|
||||||
|
// 5
|
||||||
|
-262656, -255488, -248320,
|
||||||
|
1, 324096,
|
||||||
|
|
||||||
|
0x8000, // goose island end
|
||||||
|
|
||||||
|
// 6
|
||||||
|
170496, 177664, 184832,
|
||||||
|
1, -271360,
|
||||||
|
|
||||||
|
// 7
|
||||||
|
-12800, -5632, 1536,
|
||||||
|
5, -162304, -102912, -82432, -61952, -39936,
|
||||||
|
|
||||||
|
// 8
|
||||||
|
-6656, 512, 7680,
|
||||||
3, 4137, 27648, 128000
|
3, 4137, 27648, 128000
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1157,16 +1190,17 @@ void SetUpEvents(int full)
|
|||||||
int timeOffset;
|
int timeOffset;
|
||||||
cameraEventsActive = 1;
|
cameraEventsActive = 1;
|
||||||
|
|
||||||
if (p[0] == 0x8000)
|
// goose island bridges start/end?
|
||||||
{
|
if (p[0] == 0x100)
|
||||||
direction = true;
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
else if (p[0] == 0x100)
|
|
||||||
{
|
{
|
||||||
firstMissionEvent = &event[cEvents];
|
firstMissionEvent = &event[cEvents];
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
else if (p[0] == 0x8000)
|
||||||
|
{
|
||||||
|
direction = true;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
evt = &event[cEvents];
|
evt = &event[cEvents];
|
||||||
|
|
||||||
@ -1195,7 +1229,7 @@ void SetUpEvents(int full)
|
|||||||
{
|
{
|
||||||
if (direction)
|
if (direction)
|
||||||
{
|
{
|
||||||
evt[i].flags = 1;
|
evt[i].flags = 0x1;
|
||||||
evt[i].position.vx = *p;
|
evt[i].position.vx = *p;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2313,7 +2347,7 @@ void StepPathEvent(EVENT* ev)
|
|||||||
centre.z = turn[1] - 2048;
|
centre.z = turn[1] - 2048;
|
||||||
|
|
||||||
if (ev->flags & 0x400)
|
if (ev->flags & 0x400)
|
||||||
speed = *ev->data;
|
speed = ev->data[0];
|
||||||
|
|
||||||
offset.x = (ev->position.vz - centre.z) * speed / 2048;
|
offset.x = (ev->position.vz - centre.z) * speed / 2048;
|
||||||
offset.z = (centre.x - ev->position.vx) * speed / 2048;
|
offset.z = (centre.x - ev->position.vx) * speed / 2048;
|
||||||
|
@ -51,7 +51,7 @@ MATRIX SS = { 0 };
|
|||||||
|
|
||||||
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
||||||
|
|
||||||
// [D]
|
// [D] [T]
|
||||||
void InitExObjects(void)
|
void InitExObjects(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -87,7 +87,7 @@ void InitExObjects(void)
|
|||||||
/* end block 3 */
|
/* end block 3 */
|
||||||
// End Line: 264
|
// End Line: 264
|
||||||
|
|
||||||
// [D]
|
// [D] [T]
|
||||||
void AddExplosion(VECTOR pos, int type)
|
void AddExplosion(VECTOR pos, int type)
|
||||||
{
|
{
|
||||||
EXOBJECT *newExplosion;
|
EXOBJECT *newExplosion;
|
||||||
@ -96,13 +96,10 @@ void AddExplosion(VECTOR pos, int type)
|
|||||||
i = 0;
|
i = 0;
|
||||||
newExplosion = explosion;
|
newExplosion = explosion;
|
||||||
|
|
||||||
while (newExplosion->time != -1)
|
while (newExplosion->time != -1 && i < MAX_EXPLOSION_OBJECTS)
|
||||||
{
|
{
|
||||||
i++;
|
|
||||||
newExplosion++;
|
newExplosion++;
|
||||||
|
i++;
|
||||||
if (i > 4)
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
newExplosion->time = 0;
|
newExplosion->time = 0;
|
||||||
@ -111,21 +108,21 @@ void AddExplosion(VECTOR pos, int type)
|
|||||||
|
|
||||||
if (type == LITTLE_BANG)
|
if (type == LITTLE_BANG)
|
||||||
{
|
{
|
||||||
newExplosion->speed = 0xc0;
|
newExplosion->speed = 192;
|
||||||
newExplosion->hscale = 0x400;
|
newExplosion->hscale = 1024;
|
||||||
newExplosion->rscale = 0x400;
|
newExplosion->rscale = 1024;
|
||||||
}
|
}
|
||||||
else if (type == BIG_BANG)
|
else if (type == BIG_BANG)
|
||||||
{
|
{
|
||||||
newExplosion->speed = 0x80;
|
newExplosion->speed = 128;
|
||||||
newExplosion->hscale = 0x1000;
|
newExplosion->hscale = 4096;
|
||||||
newExplosion->rscale = 0x1000;
|
newExplosion->rscale = 4096;
|
||||||
}
|
}
|
||||||
else if (type == HEY_MOMMA)
|
else if (type == HEY_MOMMA)
|
||||||
{
|
{
|
||||||
newExplosion->speed = 0x40;
|
newExplosion->speed = 64;
|
||||||
newExplosion->hscale = 0x4000;
|
newExplosion->hscale = 16384;
|
||||||
newExplosion->rscale = 0x4000;
|
newExplosion->rscale = 16384;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -175,7 +172,7 @@ void AddExplosion(VECTOR pos, int type)
|
|||||||
|
|
||||||
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
||||||
|
|
||||||
// [D]
|
// [D] [T]
|
||||||
void HandleExplosion(void)
|
void HandleExplosion(void)
|
||||||
{
|
{
|
||||||
CAR_DATA *cp;
|
CAR_DATA *cp;
|
||||||
@ -224,7 +221,7 @@ void HandleExplosion(void)
|
|||||||
|
|
||||||
exp++;
|
exp++;
|
||||||
i++;
|
i++;
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -274,7 +271,7 @@ void HandleExplosion(void)
|
|||||||
|
|
||||||
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
/* WARNING: Unknown calling convention yet parameter storage is locked */
|
||||||
|
|
||||||
// [D]
|
// [D] [T]
|
||||||
void DrawAllExplosions(void)
|
void DrawAllExplosions(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -285,7 +282,7 @@ void DrawAllExplosions(void)
|
|||||||
DrawExplosion(explosion[i].time, explosion[i].pos, explosion[i].hscale, explosion[i].rscale);
|
DrawExplosion(explosion[i].time, explosion[i].pos, explosion[i].hscale, explosion[i].rscale);
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -332,79 +329,80 @@ void initExplosion(void)
|
|||||||
{
|
{
|
||||||
short sVar1;
|
short sVar1;
|
||||||
short sVar2;
|
short sVar2;
|
||||||
uint uVar3;
|
int uVar3;
|
||||||
SVECTOR *pSVar4;
|
SVECTOR *vert;
|
||||||
uint uVar5;
|
int uVar5;
|
||||||
int iVar6;
|
int iVar6;
|
||||||
uint uVar7;
|
int uVar7;
|
||||||
int puVar8;
|
int puVar8;
|
||||||
uint uVar9;
|
int uVar9;
|
||||||
|
|
||||||
uVar7 = 128;
|
uVar7 = 128;
|
||||||
pSVar4 = globemesh;
|
vert = globemesh;
|
||||||
uVar9 = 0;
|
uVar9 = 0;
|
||||||
do {
|
do {
|
||||||
uVar3 = uVar7 & 0xfff;
|
uVar3 = uVar7 & 0xfff;
|
||||||
uVar7 = uVar7 + 0x200;
|
uVar7 = uVar7 + 0x200;
|
||||||
uVar5 = uVar9 + 2;
|
uVar5 = uVar9 + 2;
|
||||||
|
|
||||||
pSVar4->vy = 5;
|
vert[0].vy = 5;
|
||||||
pSVar4[1].vy = -0x109;
|
vert[1].vy = -265;
|
||||||
|
|
||||||
pSVar4->vx = FIXEDH(rcossin_tbl[(uVar9 & 0xf) * 0x200 + 1] * 0x200);
|
vert[0].vx = FIXEDH(rcossin_tbl[(uVar9 & 0xf) * 512 + 1] * 512);
|
||||||
pSVar4->vz = FIXEDH(rcossin_tbl[(uVar9 & 0xf) * 0x200] * 0x200);
|
vert[0].vz = FIXEDH(rcossin_tbl[(uVar9 & 0xf) * 512] * 512);
|
||||||
|
|
||||||
pSVar4[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 0x1ea);
|
vert[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 490);
|
||||||
pSVar4[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 0x1ea);
|
vert[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 490);
|
||||||
|
|
||||||
pSVar4 = pSVar4 + 2;
|
vert += 2;
|
||||||
uVar9 = uVar5;
|
uVar9 = uVar5;
|
||||||
} while (uVar5 < 0x12);
|
} while (uVar5 < 18);
|
||||||
|
|
||||||
|
vert = globemesh + 18;
|
||||||
|
|
||||||
uVar9 = 0x1300;
|
uVar9 = 0x1300;
|
||||||
pSVar4 = globemesh + 18;
|
|
||||||
puVar8 = 0x1280;
|
puVar8 = 0x1280;
|
||||||
iVar6 = 0x10;
|
iVar6 = 0x10;
|
||||||
do {
|
do {
|
||||||
uVar3 = uVar9 & 0xfff;
|
uVar3 = uVar9 & 0xfff;
|
||||||
uVar9 = uVar9 + 0x200;
|
uVar9 = uVar9 + 512;
|
||||||
uVar7 = (uint)puVar8 & 0xfff;
|
uVar7 = puVar8 & 0xfff;
|
||||||
puVar8 = puVar8 + 0x200;
|
puVar8 = puVar8 + 512;
|
||||||
iVar6 = iVar6 + -2;
|
iVar6 = iVar6 - 2;
|
||||||
|
|
||||||
pSVar4->vy = -0x109;
|
vert[0].vy = -265;
|
||||||
pSVar4[1].vy = -0x1f9;
|
vert[1].vy = -505;
|
||||||
|
|
||||||
pSVar4->vx = FIXEDH(rcossin_tbl[uVar7 * 2 + 1] * 0x1ea);
|
vert[0].vx = FIXEDH(rcossin_tbl[uVar7 * 2 + 1] * 490);
|
||||||
pSVar4->vz = FIXEDH(rcossin_tbl[uVar7 * 2] * 0x1ea);
|
vert[0].vz = FIXEDH(rcossin_tbl[uVar7 * 2] * 490);
|
||||||
|
|
||||||
pSVar4[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 0x14a);
|
vert[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 330);
|
||||||
pSVar4[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 0x14a);
|
vert[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 330);
|
||||||
|
|
||||||
pSVar4 = pSVar4 + 2;
|
vert += 2;
|
||||||
} while (-1 < iVar6);
|
} while (iVar6 > -1);
|
||||||
|
|
||||||
puVar8 = 9600;
|
puVar8 = 9600;
|
||||||
pSVar4 = globemesh + 36;
|
vert = globemesh + 36;
|
||||||
uVar9 = 0x2500;
|
uVar9 = 0x2500;
|
||||||
iVar6 = 0x10;
|
iVar6 = 0x10;
|
||||||
do {
|
do {
|
||||||
uVar3 = (uint)puVar8 & 0xfff;
|
uVar3 = (uint)puVar8 & 0xfff;
|
||||||
puVar8 = puVar8 + 0x200;
|
puVar8 = puVar8 + 512;
|
||||||
uVar7 = uVar9 & 0xfff;
|
uVar7 = uVar9 & 0xfff;
|
||||||
uVar9 = uVar9 + 0x200;
|
uVar9 = uVar9 + 512;
|
||||||
iVar6 = iVar6 + -2;
|
iVar6 = iVar6 - 2;
|
||||||
|
|
||||||
pSVar4->vy = -0x1f9;
|
vert[0].vy = -505;
|
||||||
pSVar4[1].vy = -0x269;
|
vert[1].vy = -617;
|
||||||
|
|
||||||
pSVar4->vx = FIXEDH(rcossin_tbl[uVar7 * 2 + 1] * 0x14a);
|
vert[0].vx = FIXEDH(rcossin_tbl[uVar7 * 2 + 1] * 330);
|
||||||
pSVar4->vz = FIXEDH(rcossin_tbl[uVar7 * 2] * 0x14a);
|
vert[0].vz = FIXEDH(rcossin_tbl[uVar7 * 2] * 330);
|
||||||
|
|
||||||
pSVar4[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 100);
|
vert[1].vx = FIXEDH(rcossin_tbl[uVar3 * 2 + 1] * 100);
|
||||||
pSVar4[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 100);
|
vert[1].vz = FIXEDH(rcossin_tbl[uVar3 * 2] * 100);
|
||||||
|
|
||||||
pSVar4 = pSVar4 + 2;
|
vert += 2;
|
||||||
} while (-1 < iVar6);
|
} while (-1 < iVar6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -531,12 +529,12 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
iVar9 = 1;
|
iVar9 = 1;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
iVar3 = (time * (0x37a0 - time) + 0x800 >> 0xc) + 0xc;
|
iVar3 = FIXEDH(time * (0x37a0 - time)) + 12;
|
||||||
|
|
||||||
i = CameraCnt * (0x40 - iVar12) & 0xfff;
|
i = CameraCnt * (64 - iVar12) & 0xfff;
|
||||||
SS.m[1][1] = (short)(iVar3 * hscale >> 0xc);
|
SS.m[1][1] = FIXED(iVar3 * hscale);
|
||||||
SS.m[0][0] = (short)((iVar3 * rscale >> 0xc) * (int)rcossin_tbl[i * 2 + 1] + 0x800 >> 0xc);
|
SS.m[0][0] = FIXEDH(FIXED(iVar3 * rscale) * rcossin_tbl[i * 2 + 1]);
|
||||||
SS.m[2][0] = (short)((iVar3 * rscale >> 0xc) * (int)rcossin_tbl[i * 2] + 0x800 >> 0xc);
|
SS.m[2][0] = FIXEDH(FIXED(iVar3 * rscale) * rcossin_tbl[i * 2]);
|
||||||
SS.m[0][2] = -SS.m[2][0];
|
SS.m[0][2] = -SS.m[2][0];
|
||||||
SS.m[2][2] = SS.m[0][0];
|
SS.m[2][2] = SS.m[0][0];
|
||||||
|
|
||||||
@ -556,13 +554,19 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
*(uint *)&poly[0].r0 = uVar6;
|
*(uint *)&poly[0].r0 = uVar6;
|
||||||
*(uint *)&poly[1].r0 = uVar6;
|
*(uint *)&poly[1].r0 = uVar6;
|
||||||
|
|
||||||
|
setPolyFT4(&poly[0]);
|
||||||
|
setSemiTrans(&poly[0], 1);
|
||||||
|
|
||||||
|
setPolyFT4(&poly[1]);
|
||||||
|
setSemiTrans(&poly[1], 1);
|
||||||
|
|
||||||
gte_stsxy3(&poly[0].x0, &poly[0].x1, &poly[0].x2);
|
gte_stsxy3(&poly[0].x0, &poly[0].x1, &poly[0].x2);
|
||||||
|
|
||||||
gte_stsxy2(&poly[1].x0);
|
gte_stsxy2(&poly[1].x0);
|
||||||
|
|
||||||
gte_stsz(&z);
|
gte_stsz(&z);
|
||||||
|
|
||||||
iVar3 = 32; // 4 verts step?
|
|
||||||
|
|
||||||
if (z > 32)
|
if (z > 32)
|
||||||
{
|
{
|
||||||
@ -596,6 +600,8 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
|
|
||||||
if ((i & 3) == 3)
|
if ((i & 3) == 3)
|
||||||
iVar3 = 48; // 6 verts step?
|
iVar3 = 48; // 6 verts step?
|
||||||
|
else
|
||||||
|
iVar3 = 32; // 4 verts step?
|
||||||
|
|
||||||
src = (SVECTOR *)((int)&src->vx + iVar3);
|
src = (SVECTOR *)((int)&src->vx + iVar3);
|
||||||
|
|
||||||
@ -612,11 +618,11 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
uVar6 = (((uVar6 + (iVar9 * iVar9 >> 10)) >> 1) << 8 | (uVar6 + (((255 - iVar9) * (iVar9 >> 2) + iVar9 * uVar6) >> 8)) >> 1) << 8 | uVar6 | 0x2e000000;
|
uVar6 = (((uVar6 + (iVar9 * iVar9 >> 10)) >> 1) << 8 | (uVar6 + (((255 - iVar9) * (iVar9 >> 2) + iVar9 * uVar6) >> 8)) >> 1) << 8 | uVar6 | 0x2e000000;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
iVar3 = (time * (0x3930 - time) + 0x800 >> 0xc) + 0xc;
|
iVar3 = FIXEDH(time * (14640 - time)) + 12;
|
||||||
i = CameraCnt * (iVar12 * -0x5a + 0x40) & 0xfff;
|
i = CameraCnt * (iVar12 * -90 + 64) & 0xfff;
|
||||||
SS.m[1][1] = (short)(iVar3 * hscale >> 0xc);
|
SS.m[1][1] = FIXED(iVar3 * hscale);
|
||||||
SS.m[0][0] = (short)((iVar3 * rscale >> 0xc) * (int)rcossin_tbl[i * 2 + 1] + 0x800 >> 0xc);
|
SS.m[0][0] = FIXEDH(FIXED(iVar3 * rscale) * rcossin_tbl[i * 2 + 1]);
|
||||||
SS.m[2][0] = (short)((iVar3 * rscale >> 0xc) * (int)rcossin_tbl[i * 2] + 0x800 >> 0xc);
|
SS.m[2][0] = FIXEDH(FIXED(iVar3 * rscale) * rcossin_tbl[i * 2]);
|
||||||
SS.m[0][2] = -SS.m[2][0];
|
SS.m[0][2] = -SS.m[2][0];
|
||||||
SS.m[2][2] = SS.m[0][0];
|
SS.m[2][2] = SS.m[0][0];
|
||||||
|
|
||||||
@ -635,7 +641,7 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
gte_rtpt();
|
gte_rtpt();
|
||||||
|
|
||||||
*(uint *)&poly[1].r0 = uVar6;
|
*(uint *)&poly[1].r0 = uVar6;
|
||||||
*(uint *)&poly->r0 = uVar6;
|
*(uint *)&poly[0].r0 = uVar6;
|
||||||
|
|
||||||
gte_stsxy3(&poly[0].x0, &poly[0].x1, &poly[0].x2);
|
gte_stsxy3(&poly[0].x0, &poly[0].x1, &poly[0].x2);
|
||||||
|
|
||||||
@ -648,10 +654,10 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
gte_ldv3(&src[3], &src[4], &src[5]);
|
gte_ldv3(&src[3], &src[4], &src[5]);
|
||||||
gte_rtpt();
|
gte_rtpt();
|
||||||
|
|
||||||
*(uint *)&poly->u0 = uVar8;
|
*(uint *)&poly[0].u0 = uVar8;
|
||||||
*(uint *)&poly->u1 = uVar7;
|
*(uint *)&poly[0].u1 = uVar7;
|
||||||
*(uint *)&poly->u2 = iVar11;
|
*(uint *)&poly[0].u2 = iVar11;
|
||||||
*(uint *)&poly->u3 = iVar10;
|
*(uint *)&poly[0].u3 = iVar10;
|
||||||
*(uint *)&poly[1].u0 = uVar8;
|
*(uint *)&poly[1].u0 = uVar8;
|
||||||
*(uint *)&poly[1].u1 = uVar7;
|
*(uint *)&poly[1].u1 = uVar7;
|
||||||
*(uint *)&poly[1].u2 = iVar11;
|
*(uint *)&poly[1].u2 = iVar11;
|
||||||
@ -673,10 +679,10 @@ void DrawExplosion(int time, VECTOR position, int hscale, int rscale)
|
|||||||
current->primptr += sizeof(POLY_FT4) * 2;
|
current->primptr += sizeof(POLY_FT4) * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
iVar9 = 0x20;
|
|
||||||
|
|
||||||
if (i & 3 == 3)
|
if (i & 3 == 3)
|
||||||
iVar9 = 0x30;
|
iVar9 = 0x30;
|
||||||
|
else
|
||||||
|
iVar9 = 0x20;
|
||||||
|
|
||||||
src = (SVECTOR *)((int)&src->vx + iVar9);
|
src = (SVECTOR *)((int)&src->vx + iVar9);
|
||||||
|
|
||||||
|
@ -3,10 +3,8 @@
|
|||||||
#include "PRES.H"
|
#include "PRES.H"
|
||||||
#include "MISSION.H"
|
#include "MISSION.H"
|
||||||
#include "OVERMAP.H"
|
#include "OVERMAP.H"
|
||||||
#include "PRES.H"
|
|
||||||
#include "CUTSCENE.H"
|
#include "CUTSCENE.H"
|
||||||
#include "GLAUNCH.H"
|
#include "GLAUNCH.H"
|
||||||
#include "MDRAW.H"
|
|
||||||
#include "OVERLAY.H"
|
#include "OVERLAY.H"
|
||||||
#include "REPLAYS.H"
|
#include "REPLAYS.H"
|
||||||
#include "PAUSE.H"
|
#include "PAUSE.H"
|
||||||
@ -600,6 +598,7 @@ void DrawWorldTarget(MS_TARGET *target)
|
|||||||
tv.vz = target->data[4];
|
tv.vz = target->data[4];
|
||||||
tv.vy = 10000;
|
tv.vy = 10000;
|
||||||
|
|
||||||
|
// Capture the Flag target properties
|
||||||
switch(target->data[1] & 0x30000)
|
switch(target->data[1] & 0x30000)
|
||||||
{
|
{
|
||||||
case 0x20000:
|
case 0x20000:
|
||||||
@ -743,6 +742,7 @@ void DrawMultiplayerTarget(MS_TARGET *target)
|
|||||||
tv.vz = target->data[4];
|
tv.vz = target->data[4];
|
||||||
tv.vy = 10000;
|
tv.vy = 10000;
|
||||||
|
|
||||||
|
// Capture the Flag target properties
|
||||||
switch(target->data[1] & 0x30000)
|
switch(target->data[1] & 0x30000)
|
||||||
{
|
{
|
||||||
case 0x10000:
|
case 0x10000:
|
||||||
|
@ -426,14 +426,10 @@ void DrawStopZone(VECTOR *pPosition)
|
|||||||
pPoly->g0 = 64;
|
pPoly->g0 = 64;
|
||||||
pPoly->b0 = 64;
|
pPoly->b0 = 64;
|
||||||
|
|
||||||
pPoly->u0 = light_texture.coords.u0;
|
*(ushort*)&pPoly->u0 = *(ushort*)&light_texture.coords.u0;
|
||||||
pPoly->v0 = light_texture.coords.v0;
|
*(ushort*)&pPoly->u1 = *(ushort*)&light_texture.coords.u1;
|
||||||
pPoly->u1 = light_texture.coords.u1;
|
*(ushort*)&pPoly->u2 = *(ushort*)&light_texture.coords.u2;
|
||||||
pPoly->v1 = light_texture.coords.v1;
|
*(ushort*)&pPoly->u3 = *(ushort*)&light_texture.coords.u3;
|
||||||
pPoly->u2 = light_texture.coords.u2;
|
|
||||||
pPoly->v2 = light_texture.coords.v2;
|
|
||||||
pPoly->u3 = light_texture.coords.u3;
|
|
||||||
pPoly->v3 = light_texture.coords.v3;
|
|
||||||
|
|
||||||
if (gTimeOfDay == 3)
|
if (gTimeOfDay == 3)
|
||||||
pPoly->tpage = light_texture.tpageid | 0x20;
|
pPoly->tpage = light_texture.tpageid | 0x20;
|
||||||
|
Loading…
Reference in New Issue
Block a user