bitshifts be gone

This commit is contained in:
Woops 2020-10-17 23:36:06 -05:00
parent 17e9ce886a
commit e42f9ca80e
50 changed files with 277 additions and 277 deletions

View file

@ -68,7 +68,7 @@ static void TriggerAhmetDeathEffect(ITEM_INFO* item)
// cant be FALSE here because else it will be local space not world
// because of that it cant be GetJointAbsPosition() !
meshCount = GetSpheres(item, CreatureSpheres, SPHERES_SPACE_WORLD, Matrix::Identity);
sphere = &CreatureSpheres[(Wibble >> 3) & 1];
sphere = &CreatureSpheres[(Wibble / 8) & 1];
for (int i = meshCount; i > 0; i--, sphere += 2)
TriggerFireFlame(sphere->x, sphere->y, sphere->z, -1, 1);
@ -369,9 +369,9 @@ bool RespawnAhmet(short itemNumber)
FlashFadeB = 0;
FlashFader = 32;
item->pos.xPos = (item->itemFlags[0] << 10) + 512;
item->pos.yPos = (item->itemFlags[1] << 8);
item->pos.zPos = (item->itemFlags[2] << 10) + 512;
item->pos.xPos = (item->itemFlags[0] * 1024) + 512;
item->pos.yPos = (item->itemFlags[1] * 256);
item->pos.zPos = (item->itemFlags[2] * 1024) + 512;
IsRoomOutside(item->pos.xPos, item->pos.yPos, item->pos.zPos);

View file

@ -1025,7 +1025,7 @@ void BaddyControl(short itemNum)
}
if (currentCreature->enemy->objectNumber == ID_SMALLMEDI_ITEM)
{
item->hitPoints += Objects[item->objectNumber].hitPoints >> 1;
item->hitPoints += Objects[item->objectNumber].hitPoints / 2;
}
else
{

View file

@ -162,7 +162,7 @@ void CrocodileControl(short itemNumber)
AlertAllGuards(itemNumber);
}
boneAngle = angle << 2;
boneAngle = angle * 4;
switch (item->currentAnimState)
{
case CROC_IDLE:

View file

@ -236,8 +236,8 @@ static void DemigodHammerAttack(int x, int y, int z, int something)
spark->gravity = -4 - (GetRandomControl() & 3);
spark->maxYvel = -4 - (GetRandomControl() & 3);
spark->dSize = ((GetRandomControl() & 0x3F) + 64);
spark->sSize = spark->dSize >> 3;
spark->size = spark->dSize >> 3;
spark->sSize = spark->dSize / 8;
spark->size = spark->dSize / 8;
angle += deltaAngle;
}
@ -349,9 +349,9 @@ void DemigodControl(short itemNumber)
dz = abs(dz);
if (dx <= dz)
laraInfo.xAngle = phd_atan(dz + (dx >> 1), dy);
laraInfo.xAngle = phd_atan(dz + (dx / 2), dy);
else
laraInfo.xAngle = phd_atan(dx + (dz >> 1), dy);
laraInfo.xAngle = phd_atan(dx + (dz / 2), dy);
}
GetCreatureMood(item, &info, VIOLENT);
@ -361,17 +361,17 @@ void DemigodControl(short itemNumber)
if (laraInfo.ahead)
{
joint0 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint1 = -laraInfo.xAngle;
joint2 = laraInfo.angle >> 1;
joint3 = laraInfo.angle >> 1;
joint2 = laraInfo.angle / 2;
joint3 = laraInfo.angle / 2;
}
else if (info.ahead)
{
joint0 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = -info.xAngle;
joint2 = info.angle >> 1;
joint3 = info.angle >> 1;
joint2 = info.angle / 2;
joint3 = info.angle / 2;
}
switch (item->currentAnimState)

View file

@ -397,6 +397,6 @@ void EnemyJeepControl(short itemNumber)
item->gravityStatus = false;
}
SoundEffect(SFX_TR4_JEEP_MOVE, &item->pos, (item->itemFlags[0] << 10) + 16777220);
SoundEffect(SFX_TR4_JEEP_MOVE, &item->pos, (item->itemFlags[0] * 1024) + 16777220);
}
}

View file

@ -63,7 +63,7 @@ void GuideControl(short itemNumber)
GrenadeLauncherSpecialEffect1(pos.x, pos.y - 40, pos.z, -1, 7);
short random = GetRandomControl();
TriggerDynamicLight(pos.x, pos.y, pos.z, 15, 255 - ((random >> 4) & 0x1F), 192 - ((random >> 6) & 0x1F), random & 0x3F);
TriggerDynamicLight(pos.x, pos.y, pos.z, 15, 255 - ((random / 16) & 0x1F), 192 - ((random / 64) & 0x1F), random & 0x3F);
if (item->animNumber == obj->animIndex + 61)
{
@ -72,8 +72,8 @@ void GuideControl(short itemNumber)
{
GrenadeLauncherSpecialEffect1(
(random & 0x3F) + pos.x - 32,
((random >> 3) & 0x3F) + pos.y - 128,
pos.z + ((random >> 6) & 0x3F) - 32,
((random / 8) & 0x3F) + pos.y - 128,
pos.z + ((random / 64) & 0x3F) - 32,
-1,
1);
}
@ -109,9 +109,9 @@ void GuideControl(short itemNumber)
short rot2 = 0;
if (dx <= dz)
laraInfo.xAngle = phd_atan(dz + (dx >> 1), dy);
laraInfo.xAngle = phd_atan(dz + (dx / 2), dy);
else
laraInfo.xAngle = phd_atan(dx + (dz >> 1), dy);
laraInfo.xAngle = phd_atan(dx + (dz / 2), dy);
ITEM_INFO* foundEnemy = NULL;
@ -183,19 +183,19 @@ void GuideControl(short itemNumber)
creature->LOT.isJumping = false;
creature->flags = 0;
creature->maximumTurn = 0;
joint2 = info.angle >> 1;
joint2 = info.angle / 2;
if (laraInfo.ahead)
{
joint0 = laraInfo.angle >> 1;
joint1 = laraInfo.xAngle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint1 = laraInfo.xAngle / 2;
joint2 = laraInfo.angle / 2;
}
else if (info.ahead)
{
joint0 = info.angle >> 1;
joint1 = info.xAngle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = info.xAngle / 2;
joint2 = info.angle / 2;
}
/*if (Objects[ID_WRAITH1].loaded & 0x10000)
@ -457,8 +457,8 @@ void GuideControl(short itemNumber)
{
GrenadeLauncherSpecialEffect1(
(random & 0x3F) + pos1.x - 64,
((random >> 5) & 0x3F) + pos1.y - 96,
((random >> 10) & 0x3F) + pos1.z - 64,
((random / 32) & 0x3F) + pos1.y - 96,
((random / 1024) & 0x3F) + pos1.z - 64,
-1,
7);
@ -467,8 +467,8 @@ void GuideControl(short itemNumber)
pos1.y - 64,
pos1.z - 32,
10,
192 - ((random >> 4) & 0x1F),
128 - ((random >> 6) & 0x1F),
192 - ((random / 16) & 0x1F),
128 - ((random / 64) & 0x1F),
random & 0x1F);
item->itemFlags[1] = 2;
@ -477,24 +477,24 @@ void GuideControl(short itemNumber)
else
{
TriggerMetalSparks(pos1.x, pos1.y, pos1.z, -1, -1, 0, 1);
TriggerDynamicLight(pos1.x, pos1.y, pos1.z, 10, random & 0x1F, 96 - ((random >> 6) & 0x1F), 128 - ((random >> 4) & 0x1F));
TriggerDynamicLight(pos1.x, pos1.y, pos1.z, 10, random & 0x1F, 96 - ((random / 64) & 0x1F), 128 - ((random / 16) & 0x1F));
}
}
else
{
TriggerDynamicLight(pos1.x - 32, pos1.y - 64, pos1.z - 32, 10, 192 - ((random >> 4) & 0x1F), 128 - ((random >> 6) & 0x1F), random & 0x1F);
TriggerDynamicLight(pos1.x - 32, pos1.y - 64, pos1.z - 32, 10, 192 - ((random / 16) & 0x1F), 128 - ((random / 64) & 0x1F), random & 0x1F);
GrenadeLauncherSpecialEffect1(
(random & 0x3F) + pos1.x - 64,
((random >> 5) & 0x3F) + pos1.y - 96,
((random >> 10) & 0x3F) + pos1.z - 64,
((random / 32) & 0x3F) + pos1.y - 96,
((random / 1024) & 0x3F) + pos1.z - 64,
-1,
7);
}
}
else
{
TriggerDynamicLight(pos1.x, pos1.y, pos1.z, 10, random & 0x1F, 96 - ((random >> 6) & 0x1F), 128 - ((random >> 4) & 0x1F));
TriggerDynamicLight(pos1.x, pos1.y, pos1.z, 10, random & 0x1F, 96 - ((random / 64) & 0x1F), 128 - ((random / 16) & 0x1F));
TriggerMetalSparks(pos1.x, pos1.y, pos1.z, -1, -1, 0, 1);
}
@ -513,9 +513,9 @@ void GuideControl(short itemNumber)
case 31:
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint1 = info.xAngle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle / 2;
}
creature->maximumTurn = 0;

View file

@ -364,8 +364,8 @@ void HarpyControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint1 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = info.angle / 2;
joint0 = info.xAngle;
}

View file

@ -30,7 +30,7 @@ static void HorsemanSparks(PHD_VECTOR* pos, int param1, int num)
spark->sB = (r & 0xF) + 16;
spark->sR = 0;
spark->dG = 96;
spark->dB = ((r >> 4) & 0x1F) + 48;
spark->dB = ((r / 16) & 0x1F) + 48;
spark->dR = 0;
spark->colFadeSpeed = 2;
spark->fadeToBlack = 4;
@ -43,7 +43,7 @@ static void HorsemanSparks(PHD_VECTOR* pos, int param1, int num)
spark->friction = 34;
spark->yVel = (r & 0xFFF) - 2048;
spark->flags = SP_NONE;
spark->gravity = (r >> 7) & 0x1F;
spark->gravity = (r / 128) & 0x1F;
spark->maxYvel = 0;
spark->zVel = phd_cos((r & 0x7FF) + param1 - 1024) * 4096;
spark->xVel = -phd_sin((r & 0x7FF) + param1 - 1024) * 4096;
@ -63,7 +63,7 @@ static void HorsemanSparks(PHD_VECTOR* pos, int param1, int num)
spark->dR = 0;
spark->colFadeSpeed = 2;
spark->fadeToBlack = 4;
spark->dB = ((r >> 4) & 0x1F) + 48;
spark->dB = ((r / 16) & 0x1F) + 48;
spark->life = 9;
spark->sLife = 9;
spark->transType = COLADD;
@ -71,8 +71,8 @@ static void HorsemanSparks(PHD_VECTOR* pos, int param1, int num)
spark->y = pos->y;
spark->z = pos->z;
spark->yVel = (r & 0xFFF) - 2048;
spark->gravity = (r >> 7) & 0x1F;
spark->rotAng = r >> 3;
spark->gravity = (r / 128) & 0x1F;
spark->rotAng = r / 8;
if (r & 1)
{
spark->rotAdd = -16 - (r & 0xF);
@ -83,7 +83,7 @@ static void HorsemanSparks(PHD_VECTOR* pos, int param1, int num)
}
spark->scalar = 3;
spark->friction = 34;
spark->sSize = spark->size = ((r >> 5) & 7) + 4;
spark->sSize = spark->size = ((r / 32) & 7) + 4;
spark->dSize = spark->sSize / 2;
spark->flags = 26;
spark->maxYvel = 0;

View file

@ -85,8 +85,8 @@ void KnightTemplarControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}

View file

@ -146,8 +146,8 @@ void MummyControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}

View file

@ -72,11 +72,11 @@ void TriggerMutantRocketEffects(short fxNumber, short xVel, short yVel, short zV
color = (GetRandomControl() & 0x3F) - 128;
sptr->sB = 0;
sptr->sR = color;
sptr->sG = color >> 1;
sptr->sG = color / 2;
color = (GetRandomControl() & 0x3F) - 128;
sptr->dB = 0;
sptr->dR = color;
sptr->dG = color >> 1;
sptr->dG = color / 2;
sptr->fadeToBlack = 8;
sptr->colFadeSpeed = (GetRandomControl() & 3) + 8;
sptr->transType = COLADD;
@ -107,7 +107,7 @@ void TriggerMutantRocketEffects(short fxNumber, short xVel, short yVel, short zV
size = (GetRandomControl() & 0xF) + 128;
sptr->size = size;
sptr->sSize = size;
sptr->dSize = size >> 2;
sptr->dSize = size / 4;
}
static void ShootFireball(PHD_3DPOS* src, MissileRotationType rotation, short roomNumber, int timer)

View file

@ -70,7 +70,7 @@ static void SentryGunThrowFire(ITEM_INFO* item)
}
spark->scalar = 3;
spark->dSize = v * ((GetRandomControl() & 7) + 60) >> 8;
spark->dSize = (v * ((GetRandomControl() & 7) + 60)) / 256;
spark->sSize = spark->dSize / 8;
spark->size = spark->dSize / 8;
}
@ -146,7 +146,7 @@ void SentryGunControl(short itemNum)
{
// Throw fire
SentryGunThrowFire(item);
c = phd_sin((GlobalCounter & 0x1F) << 11) * 4096;
c = phd_sin((GlobalCounter & 0x1F) * 2048) * 4096;
}
else
{

View file

@ -31,8 +31,8 @@ static void WakeUpSkeleton(ITEM_INFO* item)
fx->pos.zPos = (byte)GetRandomControl() + item->pos.zPos - 128;
fx->roomNumber = item->roomNumber;
fx->pos.yRot = 2 * GetRandomControl();
fx->speed = GetRandomControl() >> 11;
fx->fallspeed = -(GetRandomControl() >> 10);
fx->speed = GetRandomControl() / 2048;
fx->fallspeed = -(GetRandomControl() / 1024);
fx->frameNumber = Objects[103].meshIndex;
fx->objectNumber = ID_BODY_PART;
fx->shade = 0x4210;

View file

@ -48,7 +48,7 @@ void SphinxControl(short itemNumber)
{
MESH_INFO* mesh = &room->mesh[i];
if (mesh->z >> 10 == z >> 10 && mesh->x >> 10 == x >> 10 && mesh->staticNumber >= 50)
if (((mesh->z / 1024) == (z / 1024)) && ((mesh->x / 1024) == (x / 1024)) && mesh->staticNumber >= 50)
{
ShatterObject(NULL, mesh, -64, item->roomNumber, 0);
SoundEffect(SFX_TR4_HIT_ROCK, &item->pos, 0);

View file

@ -252,9 +252,9 @@ void VonCroyControl(short itemNumber)
short rot2 = 0;
if (dx <= dz)
laraInfo.xAngle = phd_atan(dz + (dx >> 1), dy);
laraInfo.xAngle = phd_atan(dz + (dx / 2), dy);
else
laraInfo.xAngle = phd_atan(dx + (dz >> 1), dy);
laraInfo.xAngle = phd_atan(dx + (dz / 2), dy);
}
if (abs(laraInfo.angle) < 6144 && laraInfo.distance < SQUARE(1024))
@ -663,8 +663,8 @@ void VonCroyControl(short itemNumber)
case STATE_VON_CROY_KNIFE_ATTACK_HIGH:
if (info.ahead)
{
joint2 = info.angle >> 1;
joint1 = info.xAngle >> 1;
joint2 = info.angle / 2;
joint1 = info.xAngle / 2;
joint0 = joint2;
}
@ -733,8 +733,8 @@ void VonCroyControl(short itemNumber)
case STATE_VON_CROY_KNIFE_ATTACK_LOW:
if (info.ahead)
{
joint2 = info.angle >> 1;
joint1 = info.xAngle >> 1;
joint2 = info.angle / 2;
joint1 = info.xAngle / 2;
joint0 = joint2;
}
@ -785,13 +785,13 @@ void VonCroyControl(short itemNumber)
case 32:
if (info.ahead)
{
joint2 = info.angle >> 1;
joint2 = info.angle / 2;
joint1 = info.xAngle;
joint0 = joint2;
}
creature->maximumTurn = 0;
ClampRotation(&item->pos, info.angle >> 1, ANGLE(6));
ClampRotation(&item->pos, info.angle / 2, ANGLE(6));
if (item->animNumber == Objects[item->objectNumber].animIndex + 47)
{

View file

@ -89,8 +89,8 @@ void WildBoarControl(short itemNumber)
if (info.ahead)
{
joint1 = info.angle >> 1;
joint3 = info.angle >> 1;
joint1 = info.angle / 2;
joint3 = info.angle / 2;
}
switch (item->currentAnimState)
@ -103,7 +103,7 @@ void WildBoarControl(short itemNumber)
}
else if (GetRandomControl() & 0x7F)
{
joint1 = AIGuard(creature) >> 1;
joint1 = AIGuard(creature) / 2;
joint3 = joint1;
}
else

View file

@ -64,7 +64,7 @@ void WraithControl(short itemNumber)
y = target->pos.yPos;
z = target->pos.zPos - item->pos.zPos;
distance = SQUARE(x) + SQUARE(z);
dy = abs((distance >> 13) - 512);
dy = abs((distance / 8192) - 512);
}
else
{
@ -74,7 +74,7 @@ void WraithControl(short itemNumber)
z = room->z + room->xSize * 1024 / 2 - item->pos.zPos;
distance = SQUARE(x) + SQUARE(z);
dy = abs((distance >> 13) - 768);
dy = abs((distance / 8192) - 768);
y = room->y + ((room->minfloor - room->maxceiling) / 2);
}
@ -327,13 +327,13 @@ void WraithControl(short itemNumber)
int j = 0;
for (int i = WRAITH_COUNT - 1; i > 0; i--)
{
creature[i - 1].xPos += (creature[i - 1].xRot >> 4);
creature[i - 1].yPos += (creature[i - 1].yRot >> 4);
creature[i - 1].zPos += (creature[i - 1].zRot >> 4);
creature[i - 1].xPos += (creature[i - 1].xRot / 16);
creature[i - 1].yPos += (creature[i - 1].yRot / 16);
creature[i - 1].zPos += (creature[i - 1].zRot / 16);
creature[i - 1].xRot -= (creature[i - 1].xRot >> 4);
creature[i - 1].yRot -= (creature[i - 1].yRot >> 4);
creature[i - 1].zRot -= (creature[i - 1].zRot >> 4);
creature[i - 1].xRot -= (creature[i - 1].xRot / 16);
creature[i - 1].yRot -= (creature[i - 1].yRot / 16);
creature[i - 1].zRot -= (creature[i - 1].zRot / 16);
creature[i].xPos = creature[i - 1].xPos;
creature[i].yPos = creature[i - 1].yPos;
@ -552,7 +552,7 @@ void WraithWallsEffect(int x, int y, int z, short yrot, short objNumber)
short size = (GetRandomControl() & 0x1F) + 48;
spark->sSize = size;
spark->size = size;
spark->dSize = size >> 2;
spark->dSize = size / 4;
}
}

View file

@ -40,8 +40,8 @@ void ElementPuzzleControl(short itemNumber)
on = 1;
if (on <= 255)
{
r = r * on >> 8;
g = g * on >> 8;
r = (r * on) / 256;
g = (g * on) / 256;
}
}
else

View file

@ -38,7 +38,7 @@ void BladeCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll)
DoBloodSplat((GetRandomControl() & 0x3F) + l->pos.xPos - 32,
l->pos.yPos - (GetRandomControl() & 0x1FF) - 256,
(GetRandomControl() & 0x3F) + l->pos.zPos - 32,
(GetRandomControl() & 3) + (item->itemFlags[3] >> 5) + 2,
(GetRandomControl() & 3) + (item->itemFlags[3] / 32) + 2,
2 * GetRandomControl(),
l->roomNumber);
}

View file

@ -15,9 +15,9 @@ void InitialiseSlicerDicer(short itemNum)
item->pos.xPos += dx;
item->pos.zPos += dz;
item->itemFlags[0] = item->pos.xPos >> 8;
item->itemFlags[1] = (item->pos.yPos - 4608) >> 8;
item->itemFlags[2] = item->pos.zPos >> 8;
item->itemFlags[0] = item->pos.xPos / 256;
item->itemFlags[1] = (item->pos.yPos - 4608) / 256;
item->itemFlags[2] = item->pos.zPos / 256;
item->itemFlags[3] = 50;
}
@ -30,9 +30,9 @@ void SlicerDicerControl(short itemNum)
int factor = 4608 * phd_cos(item->triggerFlags) * phd_cos(item->pos.yRot);
item->pos.xPos = (item->itemFlags[0] << 8) + factor;
item->pos.yPos = (item->itemFlags[1] << 8) - 4608 * phd_sin(item->triggerFlags);
item->pos.zPos = (item->itemFlags[2] << 8) + factor;
item->pos.xPos = (item->itemFlags[0] * 256) + factor;
item->pos.yPos = (item->itemFlags[1] * 256) - 4608 * phd_sin(item->triggerFlags);
item->pos.zPos = (item->itemFlags[2] * 256) + factor;
item->triggerFlags += 170;

View file

@ -92,9 +92,9 @@ void StargateCollision(short itemNum, ITEM_INFO* l, COLL_INFO* c)
}
}
result >>= 1;
result /= 2;
j++;
flags >>= 1;
flags /= 2;
} while (result);
}

View file

@ -182,10 +182,10 @@ void UpdateBats()
if (bat->counter > 90)
{
short speed = bat->speed << 7;
short speed = bat->speed * 128;
short xAngle = abs(angles[1] - bat->pos.xRot) >> 3;
short yAngle = abs(angles[0] - bat->pos.yRot) >> 3;
short xAngle = abs(angles[1] - bat->pos.xRot) / 8;
short yAngle = abs(angles[0] - bat->pos.yRot) / 8;
if (xAngle < -speed)
xAngle = -speed;

View file

@ -179,7 +179,7 @@ void UpdateRats()
rat->pos.yRot += 512;
else
rat->pos.yRot -= 512;
rat->speed = 48 - (abs(angle) >> 10);
rat->speed = 48 - (abs(angle) / 1024);
}
else
{

View file

@ -38,7 +38,7 @@ void InitialiseSmokeEmitter(short itemNumber)
}
else if (item->triggerFlags & 8)
{
item->itemFlags[0] = item->triggerFlags >> 4;
item->itemFlags[0] = item->triggerFlags / 16;
if (item->pos.yRot > 0)
{
@ -59,7 +59,7 @@ void InitialiseSmokeEmitter(short itemNumber)
item->pos.xPos -= 256;
}
if ((signed short)(item->triggerFlags >> 4) <= 0)
if ((signed short)(item->triggerFlags / 16) <= 0)
{
item->itemFlags[2] = 4096;
item->triggerFlags |= 4;

View file

@ -175,7 +175,7 @@ void UpdateSpiders()
spider->pos.yRot += 512;
else
spider->pos.yRot -= 512;
spider->speed = 48 - (abs(angle) >> 10);
spider->speed = 48 - (abs(angle) / 1024);
}
else
{

View file

@ -43,8 +43,8 @@ static void TriggerAutoGunSmoke(PHD_VECTOR* pos, char shade)
spark->gravity = -4 - (GetRandomControl() & 3);
spark->mirror = 0;
spark->dSize = (GetRandomControl() & 0xF) + 24;
spark->sSize = spark->dSize >> 2;
spark->size = spark->dSize >> 2;
spark->sSize = spark->dSize / 4;
spark->size = spark->dSize / 4;
}
void AutoGunsControl(short itemNumber)
@ -166,7 +166,7 @@ void AutoGunsControl(short itemNumber)
}
if (item->itemFlags[2])
TriggerAutoGunSmoke((PHD_VECTOR*)&pos1, item->itemFlags[2] >> 4);
TriggerAutoGunSmoke((PHD_VECTOR*)&pos1, item->itemFlags[2] / 16);
}
else
{

View file

@ -100,9 +100,9 @@ void ControlChef(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint0 = info.angle / 2;
//joint1 = info.xAngle;
joint2 = info.angle >> 1;
joint2 = info.angle / 2;
}
creature->maximumTurn = 0;

View file

@ -65,13 +65,13 @@ static void TriggerHitmanSparks(int x, int y, int z, short xv, short yv, short z
spark->scalar = 1;
spark->flags = SP_SCALE;
spark->x = (rand() & 7) + x - 3;
spark->y = ((rand() >> 3) & 7) + y - 3;
spark->z = ((rand() >> 6) & 7) + z - 3;
spark->xVel = (byte)(rand() >> 2) + xv - 128;
spark->yVel = (byte)(rand() >> 4) + yv - 128;
spark->zVel = (byte)(rand() >> 6) + zv - 128;
spark->sSize = spark->size= ((rand() >> 9) & 3) + 4;
spark->dSize = ((rand() >> 12) & 1) + 1;
spark->y = ((rand() / 8) & 7) + y - 3;
spark->z = ((rand() / 64) & 7) + z - 3;
spark->xVel = (byte)(rand() / 4) + xv - 128;
spark->yVel = (byte)(rand() / 16) + yv - 128;
spark->zVel = (byte)(rand() / 64) + zv - 128;
spark->sSize = spark->size= ((rand() / 512) & 3) + 4;
spark->dSize = ((rand() / 4096) & 1) + 1;
spark->maxYvel = 0;
spark->gravity = 0;
}
@ -278,7 +278,7 @@ void HitmanControl(short itemNumber)
if (info.ahead && item->aiBits != GUARD)
{
joint0 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = info.xAngle;
}
@ -467,8 +467,8 @@ void HitmanControl(short itemNumber)
break;
case STATE_HITMAN_AIM:
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
creature->flags = 0;
creature->maximumTurn = 0;
@ -496,8 +496,8 @@ void HitmanControl(short itemNumber)
break;
case STATE_HITMAN_FIRE:
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
if (info.ahead)
joint1 = info.xAngle;

View file

@ -84,7 +84,7 @@ void Tr5DogControl(short itemNumber)
CreatureMood(item, &info, VIOLENT);
if (!creature->mood)
creature->maximumTurn >>= 1;
creature->maximumTurn /= 2;
angle = CreatureTurn(item, creature->maximumTurn);
joint0 = 4 * angle;

View file

@ -63,8 +63,8 @@ void InvisibleGhostControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}

View file

@ -101,8 +101,8 @@ void ControlGladiator(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}

View file

@ -368,7 +368,7 @@ void GuardControl(short itemNum)
{
if (!(item->aiBits & FOLLOW))
{
joint0 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = info.xAngle;
}
}
@ -458,8 +458,8 @@ void GuardControl(short itemNum)
break;
case STATE_GUARD_FIRE_SINGLE:
case STATE_GUARD_FIRE_FAST:
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
if (abs(info.angle) >= ANGLE(2))
@ -502,8 +502,8 @@ void GuardControl(short itemNum)
break;
case STATE_GUARD_AIM:
creature->flags = 0;
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
if (abs(info.angle) >= ANGLE(2))
@ -935,8 +935,8 @@ void SniperControl(short itemNumber)
angle = CreatureTurn(item, creature->maximumTurn);
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}
creature->maximumTurn = 0;
@ -1107,7 +1107,7 @@ void Mafia2Control(short itemNum)
creature->maximumTurn = 0;
if (info.ahead && !(item->aiBits & GUARD))
{
joint0 = info.angle >> 1;
joint0 = info.angle / 2;
joint1 = info.xAngle;
}
if (item->aiBits & GUARD)
@ -1191,8 +1191,8 @@ void Mafia2Control(short itemNum)
}
break;
case STATE_MAFIA2_FIRE:
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
creature->maximumTurn = 0;
@ -1209,14 +1209,14 @@ void Mafia2Control(short itemNum)
}
if (!creature->flags)
{
ShotLara(item, &info, &ArmedBaddy2Gun, laraInfo.angle >> 1, 35);
ShotLara(item, &info, &ArmedBaddy2Gun, laraInfo.angle / 2, 35);
creature->flags = 1;
item->firedWeapon = 2;
}
break;
case STATE_MAFIA2_AIM:
joint0 = laraInfo.angle >> 1;
joint2 = laraInfo.angle >> 1;
joint0 = laraInfo.angle / 2;
joint2 = laraInfo.angle / 2;
creature->flags = 0;
creature->maximumTurn = 0;
if (info.ahead)

View file

@ -33,24 +33,24 @@ void ControlGunShip(short itemNumber)
if (!item->itemFlags[0] && !item->itemFlags[1] && !item->itemFlags[2])
{
item->itemFlags[0] = pos.x >> 4;
item->itemFlags[1] = pos.y >> 4;
item->itemFlags[2] = pos.z >> 4;
item->itemFlags[0] = pos.x / 16;
item->itemFlags[1] = pos.y / 16;
item->itemFlags[2] = pos.z / 16;
}
pos.x = (pos.x + 80 * item->itemFlags[0]) / 6;
pos.y = (pos.y + 80 * item->itemFlags[1]) / 6;
pos.z = (pos.z + 80 * item->itemFlags[2]) / 6;
item->itemFlags[0] = pos.x >> 4;
item->itemFlags[1] = pos.y >> 4;
item->itemFlags[2] = pos.z >> 4;
item->itemFlags[0] = pos.x / 16;
item->itemFlags[1] = pos.y / 16;
item->itemFlags[2] = pos.z / 16;
if (item->triggerFlags == 1)
item->pos.zPos += (pos.z - item->pos.zPos) >> 5;
item->pos.zPos += (pos.z - item->pos.zPos) / 32;
else
item->pos.xPos += (pos.x - item->pos.xPos) >> 5;
item->pos.yPos += (pos.y - item->pos.yPos - 256) >> 5;
item->pos.xPos += (pos.x - item->pos.xPos) / 32;
item->pos.yPos += (pos.y - item->pos.yPos - 256) / 32;
GAME_VECTOR start;
start.x = GetRandomControl() + item->pos.xPos - 128;
@ -157,7 +157,7 @@ void ControlGunShip(short itemNumber)
SPARKS* spark = &Sparks[GetFreeSpark()];
spark->on = 1;
spark->sR = spark->dR = (GetRandomControl() & 0x7F) + -128;
spark->sG = (spark->dR >> 1) + (GetRandomControl() & 0x7F);
spark->sG = (spark->dR / 2) + (GetRandomControl() & 0x7F);
if (spark->sG > spark->sR)
spark->sG = spark->sR;
spark->sB = 0;

View file

@ -72,10 +72,10 @@ void TriggerHydraMissileSparks(PHD_VECTOR* pos, short xv, short yv, short zv)
spark->on = true;
spark->sB = 0;
spark->sR = (GetRandomControl() & 0x3F) - 96;
spark->sG = spark->sR >> 1;
spark->sG = spark->sR / 2;
spark->dB = 0;
spark->dR = (GetRandomControl() & 0x3F) - 96;
spark->dG = spark->dR >> 1;
spark->dG = spark->dR / 2;
spark->fadeToBlack = 8;
spark->colFadeSpeed = (GetRandomControl() & 3) + 8;
spark->transType = COLADD;
@ -115,11 +115,11 @@ static void TriggerHydraSparks(short itemNumber, int frame)
spark->dB = 0;
if (frame < 16)
{
spark->sR = frame * spark->sR >> 4;
spark->dR = frame * spark->dR >> 4;
spark->sR = frame * spark->sR / 16;
spark->dR = frame * spark->dR / 16;
}
spark->sG = spark->sR >> 1;
spark->dG = spark->dR >> 1;
spark->sG = spark->sR / 2;
spark->dG = spark->dR / 2;
spark->fadeToBlack = 4;
spark->colFadeSpeed = (GetRandomControl() & 3) + 8;
spark->transType = COLADD;
@ -141,7 +141,7 @@ static void TriggerHydraSparks(short itemNumber, int frame)
spark->gravity = -8 - (GetRandomControl() & 7);
spark->scalar = 0;
spark->dSize = 4;
spark->sSize = spark->size = frame * ((GetRandomControl() & 0xF) + 16) >> 4;
spark->sSize = spark->size = (frame * ((GetRandomControl() & 0xF) + 16)) / 16;
}
void HydraControl(short itemNumber)
@ -203,8 +203,8 @@ void HydraControl(short itemNumber)
if (item->currentAnimState != 12)
{
joint1 = info.angle >> 1;
joint3 = info.angle >> 1;
joint1 = info.angle / 2;
joint3 = info.angle / 2;
joint2 = -info.xAngle;
}
@ -316,7 +316,7 @@ void HydraControl(short itemNumber)
if (!(GlobalCounter & 3))
{
frame = ((g_Level.Anims[item->animNumber].frameBase - item->frameNumber) >> 3) + 1;
frame = ((g_Level.Anims[item->animNumber].frameBase - item->frameNumber) / 8) + 1;
if (frame > 16)
frame = 16;
TriggerHydraSparks(itemNumber, frame);

View file

@ -78,8 +78,8 @@ static void ImpThrowStones(ITEM_INFO* item)
if (distance < 8)
distance = 8;
angles[0] += GetRandomControl() % (distance >> 2) - (distance >> 3);
angles[1] += GetRandomControl() % (distance >> 1) - (distance >> 2);
angles[0] += GetRandomControl() % (distance / 4) - (distance / 8);
angles[1] += GetRandomControl() % (distance / 2) - (distance / 4);
short fxNum = CreateNewEffect(item->roomNumber);
if (fxNum != NO_ITEM)
@ -89,7 +89,7 @@ static void ImpThrowStones(ITEM_INFO* item)
fx->pos.yPos = pos1.y;
fx->pos.zPos = pos1.z;
fx->roomNumber = item->roomNumber;
fx->pos.xRot = angles[1] + distance >> 1;
fx->pos.xRot = (angles[1] + distance) / 2;
fx->pos.yRot = angles[0];
fx->pos.zRot = 0;
fx->speed = 4 * sqrt(distance);
@ -166,10 +166,10 @@ void ImpControl(short itemNumber)
CreatureMood(item, &info, VIOLENT);
angle = CreatureTurn(item, creature->maximumTurn);
joint1 = info.angle >> 1;
joint0 = info.xAngle >> 1;
joint3 = info.angle >> 1;
joint2 = info.xAngle >> 1;
joint1 = info.angle / 2;
joint0 = info.xAngle / 2;
joint3 = info.angle / 2;
joint2 = info.xAngle / 2;
if (Wibble & 0x10)
item->swapMeshFlags = 1024;

View file

@ -88,8 +88,8 @@ void LagoonWitchControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}

View file

@ -159,8 +159,8 @@ void LarsonControl(short itemNumber)
switch (item->currentAnimState)
{
case STATE_TR5_LARSON_STOP:
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
@ -278,8 +278,8 @@ void LarsonControl(short itemNumber)
break;
case STATE_TR5_LARSON_AIM:
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
creature->maximumTurn = 0;
@ -302,8 +302,8 @@ void LarsonControl(short itemNumber)
break;
case STATE_TR5_LARSON_IDLE:
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
@ -322,8 +322,8 @@ void LarsonControl(short itemNumber)
break;
case STATE_TR5_LARSON_ATTACK:
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
if (info.ahead)
joint1 = info.xAngle;
creature->maximumTurn = 0;

View file

@ -65,7 +65,7 @@ static void TriggerLaserHeadSparks(PHD_VECTOR* pos, int count, byte r, byte g, b
spark->x = pos->x;
spark->y = pos->y;
spark->z = pos->z;
spark->gravity = (GetRandomControl() >> 7) & 0x1F;
spark->gravity = (GetRandomControl() / 128) & 0x1F;
spark->yVel = ((GetRandomControl() & 0xFFF) - 2048) << unk;
spark->xVel = ((GetRandomControl() & 0xFFF) - 2048) << unk;
spark->zVel = ((GetRandomControl() & 0xFFF) - 2048) << unk;
@ -84,8 +84,8 @@ static void LaserHeadCharge(ITEM_INFO* item)
if (item->itemFlags[3] <= 32)
{
g = item->itemFlags[3] * g >> 5;
b = item->itemFlags[3] * b >> 5;
g = (item->itemFlags[3] * g) / 32;
b = (item->itemFlags[3] * b) / 32;
}
else
{
@ -331,7 +331,7 @@ void LaserHeadControl(short itemNumber)
if (item->itemFlags[3] <= 0 || condition)
{
short xRot = (GetRandomControl() >> 2) - 4096;
short xRot = (GetRandomControl() / 4) - 4096;
short yRot;
if (condition)
yRot = item->pos.yRot + (GetRandomControl() & 0x3FFF) + ANGLE(135);
@ -458,7 +458,7 @@ void LaserHeadControl(short itemNumber)
&& arc
&& arc->life < 16)
{
g = b = arc->life * g >> 4;
g = b = (arc->life * g) / 16;
}
for (int i = 0, j = 0; i < 5; i += 4, j++)
@ -546,9 +546,9 @@ void LaserHeadControl(short itemNumber)
dest.z = src.z + dl * (dest.z - src.z) / 8192;
}
int dx = (dest.x - src.x) >> 5;
int dy = (dest.y - src.y) >> 5;
int dz = (dest.z - src.z) >> 5;
int dx = (dest.x - src.x) / 32;
int dy = (dest.y - src.y) / 32;
int dz = (dest.z - src.z) / 32;
int adx = currentArc->pos4.x - src.z;
int ady = currentArc->pos4.y - src.y;

View file

@ -141,12 +141,12 @@ static void TriggerRomanStatueScreamingSparks(int x, int y, int z, short xv, sho
if (flags)
{
spark->dG = (GetRandomControl() & 0x3F) - 64;
spark->dB = spark->dG >> 1;
spark->dB = spark->dG / 2;
}
else
{
spark->dB = (GetRandomControl() & 0x3F) - 64;
spark->dG = spark->dB >> 1;
spark->dG = spark->dB / 2;
}
spark->colFadeSpeed = 4;
spark->fadeToBlack = 4;
@ -176,11 +176,11 @@ static void TriggerRomanStatueAttackEffect1(short itemNum, int factor)
spark->dR = 0;
if (factor < 16)
{
spark->sB = factor * spark->sB >> 4;
spark->dB = factor * spark->dB >> 4;
spark->sB = (factor * spark->sB) / 16;
spark->dB = (factor * spark->dB) / 16;
}
spark->sG = spark->sB >> 1;
spark->dG = spark->dB >> 1;
spark->sG = spark->sB / 2;
spark->dG = spark->dB / 2;
spark->fadeToBlack = 4;
spark->colFadeSpeed = (GetRandomControl() & 3) + 8;
spark->transType = COLADD;
@ -202,7 +202,7 @@ static void TriggerRomanStatueAttackEffect1(short itemNum, int factor)
spark->gravity = -8 - (GetRandomControl() & 7);
spark->scalar = 2;
spark->dSize = 4;
spark->sSize = spark->size = factor * ((GetRandomControl() & 0x1F) + 64) >> 4;
spark->sSize = (spark->size = factor * ((GetRandomControl() & 0x1F) + 64)) / 16;
}
static void RomanStatueAttack(PHD_3DPOS* pos, short roomNumber, short count)
@ -235,10 +235,10 @@ void TriggerRomanStatueMissileSparks(PHD_VECTOR* pos, char fxObj)
spark->on = 1;
spark->sR = 0;
spark->sG = (GetRandomControl() & 0x3F) - 96;
spark->sB = spark->sG >> 1;
spark->sB = spark->sG / 2;
spark->dR = 0;
spark->dG = (GetRandomControl() & 0x3F) - 96;
spark->dB = spark->dG >> 1;
spark->dB = spark->dG / 2;
spark->fadeToBlack = 8;
spark->colFadeSpeed = (GetRandomControl() & 3) + 8;
spark->transType = COLADD;
@ -344,8 +344,8 @@ void RomanStatueControl(short itemNumber)
if (info.ahead)
{
joint0 = info.angle >> 1;
joint2 = info.angle >> 1;
joint0 = info.angle / 2;
joint2 = info.angle / 2;
joint1 = info.xAngle;
}
@ -449,9 +449,9 @@ void RomanStatueControl(short itemNumber)
pos2.z = 490;
GetJointAbsPosition(item, &pos2, 14);
pos.x = (pos1.x + pos2.x) >> 1;
pos.y = (pos1.y + pos2.y) >> 1;
pos.z = (pos1.z + pos2.z) >> 1;
pos.x = (pos1.x + pos2.x) / 2;
pos.y = (pos1.y + pos2.y) / 2;
pos.z = (pos1.z + pos2.z) / 2;
deltaFrame = item->frameNumber - g_Level.Anims[item->animNumber].frameBase;
@ -468,12 +468,12 @@ void RomanStatueControl(short itemNumber)
deltaFrame2 = 4 * (62 - deltaFrame);
}
color = deltaFrame2 * ((GetRandomControl() & 0x3F) + 128) >> 4;
color = (deltaFrame2 * ((GetRandomControl() & 0x3F) + 128)) / 16;
if (item->triggerFlags)
TriggerDynamicLight(pos.x, pos.y, pos.z, 16, 0, color, color >> 1);
TriggerDynamicLight(pos.x, pos.y, pos.z, 16, 0, color, color / 2);
else
TriggerDynamicLight(pos.x, pos.y, pos.z, 16, 0, color >> 1, color);
TriggerDynamicLight(pos.x, pos.y, pos.z, 16, 0, color / 2, color);
for (int i = 0; i < 2; i++)
{
@ -529,9 +529,9 @@ void RomanStatueControl(short itemNumber)
arc->pos4.z = pos2.z;
if (item->triggerFlags)
TriggerLightningGlow(pos1.x, pos1.y, pos1.z, 16, 0, color, color >> 1);
TriggerLightningGlow(pos1.x, pos1.y, pos1.z, 16, 0, color, color / 2);
else
TriggerLightningGlow(pos1.x, pos1.y, pos1.z, 16, 0, color >> 1, color);
TriggerLightningGlow(pos1.x, pos1.y, pos1.z, 16, 0, color / 2, color);
continue;
}
@ -553,7 +553,7 @@ void RomanStatueControl(short itemNumber)
48,
5);*/
TriggerLightningGlow(pos.x, pos.y, pos.z, 16, 0, color, color >> 1);
TriggerLightningGlow(pos.x, pos.y, pos.z, 16, 0, color, color / 2);
unk = 1;
continue;
}
@ -567,7 +567,7 @@ void RomanStatueControl(short itemNumber)
48,
5);*/
TriggerLightningGlow(pos.x, pos.y, pos.z, 16, 0, color >> 1, color);
TriggerLightningGlow(pos.x, pos.y, pos.z, 16, 0, color / 2, color);
unk = 1;
}
@ -752,8 +752,8 @@ void RomanStatueControl(short itemNumber)
if (RomanStatueData.counter)
{
RomanStatueData.counter--;
color = RomanStatueData.counter * ((GetRandomControl() & 0x3F) + 128) >> 4;
TriggerDynamicLight(RomanStatueData.pos.x, RomanStatueData.pos.y, RomanStatueData.pos.z, 16, 0, color, color >> 1);
color = (RomanStatueData.counter * ((GetRandomControl() & 0x3F) + 128)) / 16;
TriggerDynamicLight(RomanStatueData.pos.x, RomanStatueData.pos.y, RomanStatueData.pos.z, 16, 0, color, color / 2);
}
deltaFrame = item->frameNumber - g_Level.Anims[item->animNumber].frameBase;
@ -789,7 +789,7 @@ void RomanStatueControl(short itemNumber)
attackPos.yPos,
attackPos.zPos,
0,
(((GetRandomControl() & 0x3F) + 128) >> 1),
(((GetRandomControl() & 0x3F) + 128) / 2),
(((GetRandomControl() & 0x3F) + 128)),
64);
@ -821,9 +821,9 @@ void RomanStatueControl(short itemNumber)
for (i = 0; i < 4; i++)
{
r = deltaFrame * ((GetRandomControl() & 0x3F) + 128) >> 5;
g = deltaFrame * ((GetRandomControl() & 0x3F) + 128) >> 4;
b = deltaFrame * ((GetRandomControl() & 0x3F) + 128) >> 5;
r = (deltaFrame * ((GetRandomControl() & 0x3F) + 128)) / 32;
g = (deltaFrame * ((GetRandomControl() & 0x3F) + 128)) / 16;
b = (deltaFrame * ((GetRandomControl() & 0x3F) + 128)) / 32;
if (i == 0)
{
@ -833,8 +833,8 @@ void RomanStatueControl(short itemNumber)
pos2.z,
8,
0,
deltaFrame * ((GetRandomControl() & 0x3F) + 128) >> 5,
deltaFrame * ((GetRandomControl() & 0x3F) + 128) >> 6);
(deltaFrame * ((GetRandomControl() & 0x3F) + 128)) / 32,
(deltaFrame * ((GetRandomControl() & 0x3F) + 128)) / 64);
}
arc = RomanStatueData.energyArcs[i];
@ -861,7 +861,7 @@ void RomanStatueControl(short itemNumber)
if (deltaFrame == 24)
{
TriggerEnergyArc(&pos1, &pos2, 0, ((GetRandomControl() & 0x3F) + 128),
(((GetRandomControl() & 0x3F) + 128) >> 1), 256, 32, 32, ENERGY_ARC_NO_RANDOMIZE,
(((GetRandomControl() & 0x3F) + 128) / 2), 256, 32, 32, ENERGY_ARC_NO_RANDOMIZE,
ENERGY_ARC_STRAIGHT_LINE);
}
}

View file

@ -26,8 +26,8 @@ static void TriggerSubmarineSparks(short itemNumber)
spark->colFadeSpeed = 2;
spark->dG = (GetRandomControl() & 0x1F) - 32;
spark->life = 2;
spark->dR = spark->dG >> 1;
spark->dB = spark->dG >> 1;
spark->dR = spark->dG / 2;
spark->dB = spark->dG / 2;
spark->sLife = 2;
spark->transType = COLADD;
spark->fadeToBlack = 0;
@ -212,7 +212,7 @@ void SubmarineControl(short itemNumber)
laraInfo.ahead = true;
}
int tilt = item->itemFlags[0] + (angle >> 1);
int tilt = item->itemFlags[0] + (angle / 2);
if (tilt > 2048)
{
@ -372,8 +372,8 @@ void SubmarineControl(short itemNumber)
if (distance < 16384)
{
distance = 16384 - distance;
byte color = (GetRandomControl() & 0xF) + (distance >> 7) + 64;
TriggerDynamicLight(pos2.x, pos2.y, pos2.z, (GetRandomControl() & 1) + (distance >> 11) + 12, color >> 1, color, color >> 1);
byte color = (GetRandomControl() & 0xF) + (distance / 128) + 64;
TriggerDynamicLight(pos2.x, pos2.y, pos2.z, (GetRandomControl() & 1) + (distance / 2048) + 12, color / 2, color, color / 2);
}
}
@ -411,8 +411,8 @@ void ChaffFlareControl(short itemNumber)
if (g_Level.Rooms[item->roomNumber].flags & ENV_FLAG_WATER)
{
item->fallspeed += (5 - item->fallspeed) >> 1;
item->speed += (5 - item->speed) >> 1;
item->fallspeed += (5 - item->fallspeed) / 2;
item->speed += (5 - item->speed) / 2;
}
else
{
@ -499,9 +499,9 @@ void TorpedoControl(short itemNumber)
pos.x = chaffItem->pos.xPos;
pos.y = chaffItem->pos.yPos;
pos.z = chaffItem->pos.zPos;
item->currentAnimState = pos.x >> 2;
item->goalAnimState = pos.y >> 2;
item->requiredAnimState = pos.z >> 2;
item->currentAnimState = pos.x / 4;
item->goalAnimState = pos.y / 4;
item->requiredAnimState = pos.z / 4;
}
else
{
@ -536,8 +536,8 @@ void TorpedoControl(short itemNumber)
if (abs(drx) > 0x8000)
drx = -drx;
drx >>= 3;
dry >>= 3;
drx /= 8;
dry /= 8;
if (drx <= 512)
{

View file

@ -26,9 +26,9 @@ void PulseLightControl(short itemNumber)
item->pos.yPos,
item->pos.zPos,
24,
pulse * 8 * (item->triggerFlags & 0x1F) >> 9,
pulse * ((item->triggerFlags >> 2) & 0xF8) >> 9,
pulse * ((item->triggerFlags >> 7) & 0xF8) >> 9);
(pulse * 8 * (item->triggerFlags & 0x1F)) / 512,
(pulse * ((item->triggerFlags / 4) & 0xF8)) / 512,
(pulse * ((item->triggerFlags / 128) & 0xF8)) / 512);
}
}
@ -57,15 +57,15 @@ void StrobeLightControl(short itemNumber)
item->pos.yRot += ANGLE(16.0f);
byte r = 8 * (item->triggerFlags & 0x1F);
byte g = (item->triggerFlags >> 2) & 0xF8;
byte b = (item->triggerFlags >> 7) & 0xF8;
byte g = (item->triggerFlags / 4) & 0xF8;
byte b = (item->triggerFlags / 128) & 0xF8;
TriggerAlertLight(
item->pos.xPos,
item->pos.yPos - 512,
item->pos.zPos,
r, g, b,
((item->pos.yRot + 22528) >> 4) & 0xFFF,
((item->pos.yRot + 22528) / 16) & 0xFFF,
item->roomNumber,
12);
@ -90,8 +90,8 @@ void ColorLightControl(short itemNumber)
item->pos.zPos,
24,
8 * (item->triggerFlags & 0x1F),
(item->triggerFlags >> 2) & 0xF8,
(item->triggerFlags >> 7) & 0xF8);
(item->triggerFlags / 4) & 0xF8,
(item->triggerFlags / 128) & 0xF8);
}
}
@ -177,9 +177,9 @@ void ElectricalLightControl(short itemNumber)
item->pos.yPos,
item->pos.zPos,
24,
intensity * 8 * (item->triggerFlags & 0x1F) >> 8,
intensity * ((item->triggerFlags >> 2) & 0xF8) >> 8,
intensity * ((item->triggerFlags >> 7) & 0xF8) >> 8);
(intensity * 8 * (item->triggerFlags & 0x1F)) / 256,
(intensity * ((item->triggerFlags / 4) & 0xF8)) / 256,
(intensity * ((item->triggerFlags / 128) & 0xF8)) / 256);
}
void BlinkingLightControl(short itemNumber)
@ -208,8 +208,8 @@ void BlinkingLightControl(short itemNumber)
pos.z,
16,
8 * (item->triggerFlags & 0x1F),
(item->triggerFlags >> 2) & 0xF8,
(item->triggerFlags >> 7) & 0xF8);
(item->triggerFlags / 4) & 0xF8,
(item->triggerFlags / 128) & 0xF8);
item->meshBits = 2;

View file

@ -48,7 +48,7 @@ void ControlBodyPart(short fxNumber)
{
fx->pos.yPos = ceiling;
fx->fallspeed = -fx->fallspeed;
fx->speed -= (fx->speed >> 3);
fx->speed -= (fx->speed / 8);
}
int height = GetFloorHeight(floor, fx->pos.xPos, fx->pos.yPos, fx->pos.zPos);
@ -76,7 +76,7 @@ void ControlBodyPart(short fxNumber)
if (fx->fallspeed <= 32)
fx->fallspeed = 0;
else
fx->fallspeed = -fx->fallspeed >> 2;
fx->fallspeed = -fx->fallspeed / 4;
}
else
{
@ -85,7 +85,7 @@ void ControlBodyPart(short fxNumber)
fx->pos.zPos = z;
}
fx->speed -= (fx->speed >> 2);
fx->speed -= (fx->speed / 4);
if (abs(fx->speed) < 4)
fx->speed = 0;
fx->pos.yPos = y;

View file

@ -23,7 +23,7 @@ void InitialiseHighObject1(short itemNumber)
{
if (currentItem->objectNumber == ID_PUZZLE_ITEM4_COMBO2)
{
item->itemFlags[3] |= (i << 8);
item->itemFlags[3] |= (i * 256);
currentItem->pos.yPos = item->pos.yPos - 512;
continue;
}
@ -39,7 +39,7 @@ void InitialiseHighObject1(short itemNumber)
{
if (currentItem->objectNumber == ID_PUZZLE_ITEM4_COMBO2)
{
item->itemFlags[3] |= (i << 8);
item->itemFlags[3] |= (i * 256);
currentItem->pos.yPos = item->pos.yPos - 512;
continue;
}
@ -102,18 +102,18 @@ void ControlHighObject1(short itemNumber)
if (item->itemFlags[1] <= 512)
flags = 31;
else
flags = (768 - item->itemFlags[1]) >> 3;
flags = (768 - item->itemFlags[1]) / 8;
}
else
{
flags = item->itemFlags[1] >> 3;
flags = item->itemFlags[1] / 8;
}
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags << 8) | 8);
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags * 256) | 8);
item->pos.yPos += 8;
ITEM_INFO* targetItem = &g_Level.Items[(item->itemFlags[3] >> 8) & 0xFF];
ITEM_INFO* targetItem = &g_Level.Items[(item->itemFlags[3] / 256) & 0xFF];
targetItem->flags |= 0x20u;
targetItem->pos.yPos = item->pos.yPos - 560;
}
@ -142,7 +142,7 @@ void ControlHighObject1(short itemNumber)
item->itemFlags[0] = 5;
item->itemFlags[1] = 0;
}
else if (item->itemFlags[0] == 5 && !item->itemFlags[1] && g_Level.Items[(item->itemFlags[3] >> 8) & 0xFF].flags < 0)
else if (item->itemFlags[0] == 5 && !item->itemFlags[1] && g_Level.Items[(item->itemFlags[3] / 256) & 0xFF].flags < 0)
{
DoFlipMap(3);
FlipMap[3] ^= 0x3E00u;
@ -201,12 +201,12 @@ void ControlHighObject1(short itemNumber)
flags = item->itemFlags[1];
}
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags << 8) | 8);
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags * 256) | 8);
item->itemFlags[1] += 16;
item->pos.yPos -= 16;
short targetItemNumber = (item->itemFlags[3] >> 8) & 0xFF;
short targetItemNumber = (item->itemFlags[3] / 256) & 0xFF;
ITEM_INFO* targetItem = &g_Level.Items[targetItemNumber];
targetItem->flags |= 0x20;
targetItem->pos.yPos = item->pos.yPos - 560;

View file

@ -64,12 +64,12 @@ void MissileControl(short itemNumber)
int dy = angles[0] - fx->pos.yRot;
if (abs(dy) > 0x8000)
dy = -dy;
dy >>= 3;
dy /= 8;
int dx = angles[1] - fx->pos.xRot;
if (abs(dx) > 0x8000)
dx = -dx;
dx >>= 3;
dx /= 8;
if (dy <= dh)
{

View file

@ -39,9 +39,9 @@ void RollingBallControl(short itemNumber)
return;
item->fallspeed += GRAVITY;
item->pos.xPos += item->itemFlags[0] >> 5;
item->pos.xPos += item->itemFlags[0] / 32;
item->pos.yPos += item->fallspeed;
item->pos.zPos += item->itemFlags[1] >> 5;
item->pos.zPos += item->itemFlags[1] / 32;
short roomNumber = item->roomNumber;
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
@ -58,7 +58,7 @@ void RollingBallControl(short itemNumber)
SQUARE(Camera.pos.z - item->pos.zPos));
if (distance < 16384)
Camera.bounce = -((16384 - distance) * abs(item->fallspeed) >> 14);
Camera.bounce = -(((16384 - distance) * abs(item->fallspeed)) / 16384);
}
if (item->pos.yPos - dh < 512)
@ -69,11 +69,11 @@ void RollingBallControl(short itemNumber)
if (abs(item->speed) <= 512 || GetRandomControl() & 0x1F)
item->fallspeed = 0;
else
item->fallspeed = -(short)(GetRandomControl() % (item->speed >> 3));
item->fallspeed = -(short)(GetRandomControl() % (item->speed / 8));
}
else
{
item->fallspeed = -(short)(item->fallspeed >> 2);
item->fallspeed = -(short)(item->fallspeed / 4);
}
}
@ -126,7 +126,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[1] = -item->itemFlags[1] >> 1;
item->itemFlags[1] = -item->itemFlags[1] / 2;
item->pos.zPos = (item->pos.zPos & -512) + 512;
}
}
@ -136,7 +136,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[1] += (y1a - dh) >> 1;
item->itemFlags[1] += (y1a - dh) / 2;
}
}
@ -153,7 +153,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[1] = -item->itemFlags[1] >> 1;
item->itemFlags[1] = -item->itemFlags[1] / 2;
item->pos.zPos = (item->pos.zPos & -512) + 512;
}
}
@ -163,7 +163,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[1] -= (y2a - dh) >> 1;
item->itemFlags[1] -= (y2a - dh) / 2;
}
}
@ -172,7 +172,7 @@ void RollingBallControl(short itemNumber)
if (abs(item->itemFlags[1]) <= 64)
item->itemFlags[1] = 0;
else
item->itemFlags[1] = item->itemFlags[1] - (item->itemFlags[1] >> 6);
item->itemFlags[1] = item->itemFlags[1] - (item->itemFlags[1] / 64);
}
int counterX = 0;
@ -190,7 +190,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[0] = -item->itemFlags[0] >> 1;
item->itemFlags[0] = -item->itemFlags[0] / 2;
item->pos.xPos = (item->pos.xPos & -512) + 512;
}
}
@ -200,7 +200,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[0] -= (y4a - dh) >> 1;
item->itemFlags[0] -= (y4a - dh) / 2;
}
}
@ -217,7 +217,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[0] = -item->itemFlags[0] >> 1;
item->itemFlags[0] = -item->itemFlags[0] / 2;
item->pos.xPos = (item->pos.xPos & -512) + 512;
}
}
@ -227,7 +227,7 @@ void RollingBallControl(short itemNumber)
}
else
{
item->itemFlags[0] += (y3a - dh) >> 1;
item->itemFlags[0] += (y3a - dh) / 2;
}
}
@ -236,7 +236,7 @@ void RollingBallControl(short itemNumber)
if (abs(item->itemFlags[0]) <= 64)
item->itemFlags[0] = 0;
else
item->itemFlags[0] = item->itemFlags[0] - (item->itemFlags[0] >> 6);
item->itemFlags[0] = item->itemFlags[0] - (item->itemFlags[0] / 64);
}
}
@ -287,7 +287,7 @@ void RollingBallControl(short itemNumber)
}
}
item->pos.xRot -= (abs(item->itemFlags[0]) + abs(item->itemFlags[1])) >> 1;
item->pos.xRot -= (abs(item->itemFlags[0]) + abs(item->itemFlags[1])) / 2;
roomNumber = item->roomNumber;
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);

View file

@ -24,7 +24,7 @@ void SmashObject(short itemNumber)
{
ITEM_INFO* item = &g_Level.Items[itemNumber];
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
int sector = ((item->pos.zPos - r->z) >> 10) + r->xSize * ((item->pos.xPos - r->x) >> 10);
int sector = ((item->pos.zPos - r->z) / 1024) + r->xSize * ((item->pos.xPos - r->x) / 1024);
BOX_INFO* box = &g_Level.Boxes[r->floor[sector].box];
if (box->flags & 0x8000)
@ -46,5 +46,5 @@ void SmashObject(short itemNumber)
void SmashObjectControl(short itemNumber)
{
SmashObject(itemNumber << 16);
SmashObject(itemNumber * 65536);
}

View file

@ -111,7 +111,7 @@ void RaisingCogControl(short itemNumber)
flags = item->itemFlags[2];
}
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags << 8) | 8);
SoundEffect(SFX_BLK_PLAT_RAISE_LOW, &item->pos, (flags * 256) | 8);
item->itemFlags[2] += 2;
item->pos.yPos -= 2;

View file

@ -90,7 +90,7 @@ void ControlDeathSlide(short itemNumber)
item->pos.zPos += item->fallspeed * c;
item->pos.xPos += item->fallspeed * s;
item->pos.yPos += item->fallspeed >> 2;
item->pos.yPos += item->fallspeed / 4;
short roomNumber = item->roomNumber;
GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
@ -118,7 +118,7 @@ void ControlDeathSlide(short itemNumber)
AnimateLara(LaraItem);
LaraItem->gravityStatus = true;
LaraItem->speed = item->fallspeed;
LaraItem->fallspeed = item->fallspeed >> 2;
LaraItem->fallspeed = item->fallspeed / 4;
}
// TODO: sounds

View file

@ -108,7 +108,7 @@ void ControlTeethSpikes(short itemNumber)
if (TriggerActive(item))
{
item->itemFlags[1] -= item->itemFlags[0];
item->itemFlags[0] += (item->itemFlags[0] >> 3) + 32;
item->itemFlags[0] += (item->itemFlags[0] / 8) + 32;
if (item->itemFlags[1] < 0)
{
@ -131,7 +131,7 @@ void ControlTeethSpikes(short itemNumber)
}
else if (!item->timer)
{
item->itemFlags[0] += (item->itemFlags[0] >> 3) + 32;
item->itemFlags[0] += (item->itemFlags[0] / 8) + 32;
if (item->itemFlags[1] > 0)
{
@ -247,7 +247,7 @@ void ControlTeethSpikes(short itemNumber)
}
else
{
item->itemFlags[0] = -item->itemFlags[0] >> 1;
item->itemFlags[0] = -item->itemFlags[0] / 2;
}
}
}

View file

@ -54,10 +54,10 @@ static void VentilatorEffect(BOUNDING_BOX* bounds, int intensity, short rot, int
spark->sR = 0;
spark->sG = 0;
spark->sB = 0;
spark->dR = spark->dG = 48 * speed >> 7;
spark->dR = spark->dG = (48 * speed) / 128;
spark->colFadeSpeed = 4;
spark->fadeToBlack = 8;
spark->dB = speed * ((GetRandomControl() & 8) + 48) >> 7;
spark->dB = (speed * ((GetRandomControl() & 8) + 48)) / 128;
spark->transType = COLADD;
spark->life = spark->sLife = (GetRandomControl() & 3) + 20;
@ -114,9 +114,9 @@ static void VentilatorEffect(BOUNDING_BOX* bounds, int intensity, short rot, int
}
spark->friction = 85;
spark->xVel = speed * spark->xVel >> 7;
spark->yVel = speed * spark->yVel >> 7;
spark->zVel = speed * spark->zVel >> 7;
spark->xVel = (speed * spark->xVel) / 128;
spark->yVel = (speed * spark->yVel) / 128;
spark->zVel = (speed * spark->zVel) / 128;
spark->maxYvel = 0;
spark->gravity = 0;
spark->flags = SP_NONE;