From f30ae8839ea259d178ca3bb65f65ae36a3cdefe2 Mon Sep 17 00:00:00 2001 From: Sezz Date: Sat, 20 Nov 2021 13:18:59 +1100 Subject: [PATCH] Refactor lara_flare.cpp --- TR5Main/Game/Lara/lara_fire.cpp | 12 +- TR5Main/Game/Lara/lara_flare.cpp | 272 ++++++++++---------- TR5Main/Game/Lara/lara_flare.h | 18 +- TR5Main/Game/pickup/pickup.cpp | 2 +- TR5Main/Objects/TR2/Vehicles/snowmobile.cpp | 2 +- TR5Main/Objects/TR3/Vehicles/biggun.cpp | 4 +- TR5Main/Objects/TR3/Vehicles/kayak.cpp | 2 +- TR5Main/Objects/TR3/Vehicles/minecart.cpp | 2 +- TR5Main/Objects/TR3/Vehicles/quad.cpp | 2 +- TR5Main/Objects/TR3/Vehicles/upv.cpp | 2 +- TR5Main/Objects/TR4/Vehicles/jeep.cpp | 2 +- TR5Main/Objects/TR4/Vehicles/motorbike.cpp | 2 +- 12 files changed, 166 insertions(+), 156 deletions(-) diff --git a/TR5Main/Game/Lara/lara_fire.cpp b/TR5Main/Game/Lara/lara_fire.cpp index 1f40836d3..e8b0d1b53 100644 --- a/TR5Main/Game/Lara/lara_fire.cpp +++ b/TR5Main/Game/Lara/lara_fire.cpp @@ -403,7 +403,7 @@ void LaraGun() if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + undraw_flare_meshes(LaraItem); Lara.flareControlLeft = false; Lara.flareAge = 0; } @@ -577,8 +577,8 @@ void LaraGun() Lara.flareControlLeft = false; } - DoFlareInHand(Lara.flareAge); - set_flare_arm(Lara.leftArm.frameNumber); + DoFlareInHand(LaraItem, Lara.flareAge); + set_flare_arm(LaraItem, Lara.leftArm.frameNumber); } break; @@ -588,8 +588,8 @@ void LaraGun() if (Lara.meshPtrs[LM_LHAND] == Objects[ID_LARA_FLARE_ANIM].meshIndex + LM_LHAND) { Lara.flareControlLeft = (Lara.Vehicle != NO_ITEM || CheckForHoldingState(LaraItem->currentAnimState)); - DoFlareInHand(Lara.flareAge); - set_flare_arm(Lara.leftArm.frameNumber); + DoFlareInHand(LaraItem, Lara.flareAge); + set_flare_arm(LaraItem, Lara.leftArm.frameNumber); } } break; @@ -642,7 +642,7 @@ void InitialiseNewWeapon() Lara.rightArm.frameBase = Objects[ID_LARA_FLARE_ANIM].frameBase; Lara.leftArm.frameBase = Objects[ID_LARA_FLARE_ANIM].frameBase; if (Lara.gunStatus != LG_NO_ARMS) - draw_flare_meshes(); + draw_flare_meshes(LaraItem); break; default: diff --git a/TR5Main/Game/Lara/lara_flare.cpp b/TR5Main/Game/Lara/lara_flare.cpp index 421d67390..e37e718d8 100644 --- a/TR5Main/Game/Lara/lara_flare.cpp +++ b/TR5Main/Game/Lara/lara_flare.cpp @@ -21,54 +21,54 @@ using namespace TEN::Math::Random; void FlareControl(short itemNumber) { - ITEM_INFO* item = &g_Level.Items[itemNumber]; + ITEM_INFO* flare = &g_Level.Items[itemNumber]; - if (TestLaraSwamp(item)) + if (TestLaraSwamp(flare)) { KillItem(itemNumber); return; } - if (item->fallspeed) + if (flare->fallspeed) { - item->pos.xRot += ANGLE(3.0f); - item->pos.zRot += ANGLE(5.0f); + flare->pos.xRot += ANGLE(3.0f); + flare->pos.zRot += ANGLE(5.0f); } else { - item->pos.xRot = 0; - item->pos.zRot = 0; + flare->pos.xRot = 0; + flare->pos.zRot = 0; } - auto oldX = item->pos.xPos; - auto oldY = item->pos.yPos; - auto oldZ = item->pos.zPos; + auto oldX = flare->pos.xPos; + auto oldY = flare->pos.yPos; + auto oldZ = flare->pos.zPos; - int xv = item->speed * phd_sin(item->pos.yRot); - int zv = item->speed * phd_cos(item->pos.yRot); + int xv = flare->speed * phd_sin(flare->pos.yRot); + int zv = flare->speed * phd_cos(flare->pos.yRot); - item->pos.xPos += xv; - item->pos.zPos += zv; + flare->pos.xPos += xv; + flare->pos.zPos += zv; - if (TestLaraWater(item) || TestLaraSwamp(item)) // TODO: Generic water/swamp test function. + if (TestLaraWater(flare) || TestLaraSwamp(flare)) // TODO: Generic water/swamp test function. { - item->fallspeed += (5 - item->fallspeed) / 2; - item->speed += (5 - item->speed) / 2; + flare->fallspeed += (5 - flare->fallspeed) / 2; + flare->speed += (5 - flare->speed) / 2; } else - item->fallspeed += 6; + flare->fallspeed += 6; - item->pos.yPos += item->fallspeed; + flare->pos.yPos += flare->fallspeed; - DoProjectileDynamics(itemNumber, oldX, oldY, oldZ, xv, item->fallspeed, zv); + DoProjectileDynamics(itemNumber, oldX, oldY, oldZ, xv, flare->fallspeed, zv); - short& age = item->data; + short& age = flare->data; age &= 0x7FFF; if (age >= FLARE_AGE) { - if (!item->fallspeed && !item->speed) + if (!flare->fallspeed && !flare->speed) { KillItem(itemNumber); @@ -78,96 +78,104 @@ void FlareControl(short itemNumber) else age++; - if (DoFlareLight((PHD_VECTOR*)&item->pos, age)) + if (DoFlareLight((PHD_VECTOR*)&flare->pos, age)) { - TriggerChaffEffects(item,age); + TriggerChaffEffects(flare,age); /* Hardcoded code */ age |= 0x8000; } } -void ready_flare() +void ready_flare(ITEM_INFO* lara) { - Lara.gunStatus = LG_NO_ARMS; - Lara.leftArm.zRot = 0; - Lara.leftArm.yRot = 0; - Lara.leftArm.xRot = 0; - Lara.rightArm.zRot = 0; - Lara.rightArm.yRot = 0; - Lara.rightArm.xRot = 0; - Lara.rightArm.lock = false; - Lara.leftArm.lock = false; - Lara.target = NULL; + LaraInfo*& info = lara->data; + + info->gunStatus = LG_NO_ARMS; + info->leftArm.zRot = 0; + info->leftArm.yRot = 0; + info->leftArm.xRot = 0; + info->rightArm.zRot = 0; + info->rightArm.yRot = 0; + info->rightArm.xRot = 0; + info->rightArm.lock = false; + info->leftArm.lock = false; + info->target = NULL; } -void undraw_flare_meshes() +void undraw_flare_meshes(ITEM_INFO* lara) { - Lara.meshPtrs[LM_LHAND] = Objects[ID_LARA_SKIN].meshIndex + LM_LHAND; + LaraInfo*& info = lara->data; + + info->meshPtrs[LM_LHAND] = Objects[ID_LARA_SKIN].meshIndex + LM_LHAND; } -void draw_flare_meshes() +void draw_flare_meshes(ITEM_INFO * lara) { - Lara.meshPtrs[LM_LHAND] = Objects[ID_LARA_FLARE_ANIM].meshIndex + LM_LHAND; + LaraInfo*& info = lara->data; + + info->meshPtrs[LM_LHAND] = Objects[ID_LARA_FLARE_ANIM].meshIndex + LM_LHAND; } -void undraw_flare(ITEM_INFO* item) +void undraw_flare(ITEM_INFO* lara) { - Lara.flareControlLeft = true; + LaraInfo*& info = lara->data; - short frame1 = Lara.flareFrame; - short frame2 = Lara.leftArm.frameNumber; + info->flareControlLeft = true; - if (item->goalAnimState == LS_STOP - && Lara.Vehicle == NO_ITEM) + short frame1 = info->flareFrame; + short frame2 = info->leftArm.frameNumber; + + if (lara->goalAnimState == LS_STOP + && info->Vehicle == NO_ITEM) { - if (item->animNumber == LA_STAND_IDLE) + if (lara->animNumber == LA_STAND_IDLE) { - item->animNumber = LA_DISCARD_FLARE; - frame1 = frame2 + g_Level.Anims[item->animNumber].frameBase; - Lara.flareFrame = frame1; - item->frameNumber = frame1; + lara->animNumber = LA_DISCARD_FLARE; + frame1 = frame2 + g_Level.Anims[lara->animNumber].frameBase; + info->flareFrame = frame1; + lara->frameNumber = frame1; } - if (item->animNumber == LA_DISCARD_FLARE) + if (lara->animNumber == LA_DISCARD_FLARE) { - Lara.flareControlLeft = false; + info->flareControlLeft = false; - if (frame1 >= g_Level.Anims[item->animNumber].frameBase + 31) + if (frame1 >= g_Level.Anims[lara->animNumber].frameBase + 31) { - Lara.requestGunType = Lara.lastGunType; - Lara.gunType = Lara.lastGunType; - Lara.gunStatus = LG_NO_ARMS; + info->requestGunType = info->lastGunType; + info->gunType = info->lastGunType; + info->gunStatus = LG_NO_ARMS; InitialiseNewWeapon(); - Lara.target = NULL; - Lara.rightArm.lock = false; - Lara.leftArm.lock = false; - SetAnimation(item, LA_STAND_SOLID); - Lara.flareFrame = g_Level.Anims[item->animNumber].frameBase; + info->target = NULL; + info->rightArm.lock = false; + info->leftArm.lock = false; + SetAnimation(lara, LA_STAND_SOLID); + info->flareFrame = g_Level.Anims[lara->animNumber].frameBase; return; } - Lara.flareFrame++; + info->flareFrame++; } } - else if (item->animNumber == LA_DISCARD_FLARE) + else if (lara->animNumber == LA_DISCARD_FLARE) { - item->animNumber = LA_STAND_SOLID; - item->frameNumber = g_Level.Anims[item->animNumber].frameBase; + lara->animNumber = LA_STAND_SOLID; + lara->frameNumber = g_Level.Anims[lara->animNumber].frameBase; } if (frame2 >= 33 && frame2 < 72) { frame2 = 2; - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } else if (!frame2) { frame2 = 1; - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } else if (frame2 >= 72 && frame2 < 95) { @@ -176,7 +184,7 @@ void undraw_flare(ITEM_INFO* item) if (frame2 == 94) { frame2 = 1; - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } } else if (frame2 >= 1 && frame2 < 33) @@ -185,27 +193,27 @@ void undraw_flare(ITEM_INFO* item) if (frame2 == 21) { - CreateFlare(item, ID_FLARE_ITEM, 1); - undraw_flare_meshes(); - Lara.flareAge = 0; + CreateFlare(lara, ID_FLARE_ITEM, 1); + undraw_flare_meshes(lara); + info->flareAge = 0; } else if (frame2 == 33) { frame2 = 0; - Lara.requestGunType = Lara.lastGunType; - Lara.gunType = Lara.lastGunType; - Lara.gunStatus = LG_NO_ARMS; + info->requestGunType = info->lastGunType; + info->gunType = info->lastGunType; + info->gunStatus = LG_NO_ARMS; InitialiseNewWeapon(); - Lara.flareControlLeft = false; - Lara.target = NULL; - Lara.rightArm.lock = false; - Lara.leftArm.lock = false; - Lara.flareFrame = 0; + info->flareControlLeft = false; + info->target = NULL; + info->rightArm.lock = false; + info->leftArm.lock = false; + info->flareFrame = 0; } else if (frame2 < 21) - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } else if (frame2 >= 95 && frame2 < 110) { @@ -214,62 +222,64 @@ void undraw_flare(ITEM_INFO* item) if (frame2 == 110) { frame2 = 1; - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } } - Lara.leftArm.frameNumber = frame2; - set_flare_arm(Lara.leftArm.frameNumber); + info->leftArm.frameNumber = frame2; + set_flare_arm(lara, info->leftArm.frameNumber); } -void draw_flare(ITEM_INFO* item) +void draw_flare(ITEM_INFO* lara) { + LaraInfo*& info = lara->data; short frame; - if (item->currentAnimState == LS_PICKUP_FLARE || - item->currentAnimState == LS_PICKUP) + if (lara->currentAnimState == LS_PICKUP_FLARE || + lara->currentAnimState == LS_PICKUP) { - DoFlareInHand(Lara.flareAge); - Lara.flareControlLeft = false; - Lara.leftArm.frameNumber = 93; - set_flare_arm(93); + DoFlareInHand(lara, info->flareAge); + info->flareControlLeft = false; + info->leftArm.frameNumber = 93; + set_flare_arm(lara, 93); } else { - frame = Lara.leftArm.frameNumber + 1; - Lara.flareControlLeft = true; + frame = info->leftArm.frameNumber + 1; + info->flareControlLeft = true; if (frame < 33 || frame > 94) frame = 33; else if (frame == 46) - draw_flare_meshes(); + draw_flare_meshes(lara); else if (frame >= 72 && frame <= 93) { if (frame == 72) { - SoundEffect(SFX_TR4_OBJ_GEM_SMASH, &item->pos, TestLaraWater(item)); - Lara.flareAge = 1; + SoundEffect(SFX_TR4_OBJ_GEM_SMASH, &lara->pos, TestLaraWater(lara)); + info->flareAge = 1; } - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } else { if (frame == 94) { - ready_flare(); + ready_flare(LaraItem); frame = 0; - DoFlareInHand(Lara.flareAge); + DoFlareInHand(lara, info->flareAge); } } - Lara.leftArm.frameNumber = frame; - set_flare_arm(frame); + info->leftArm.frameNumber = frame; + set_flare_arm(lara, frame); } } -void set_flare_arm(int frame) +void set_flare_arm(ITEM_INFO* lara, int frame) { + LaraInfo*& info = lara->data; short anim = Objects[ID_LARA_FLARE_ANIM].animIndex; if (frame >= 95) @@ -281,19 +291,21 @@ void set_flare_arm(int frame) else if (frame >= 1) anim += 1; - Lara.leftArm.animNumber = anim; - Lara.leftArm.frameBase = g_Level.Anims[anim].framePtr; + info->leftArm.animNumber = anim; + info->leftArm.frameBase = g_Level.Anims[anim].framePtr; } -void CreateFlare(ITEM_INFO* l, GAME_OBJECT_ID objectNum, int thrown) +void CreateFlare(ITEM_INFO* lara, GAME_OBJECT_ID objectNum, int thrown) { + LaraInfo*& info = lara->data; short itemNum = CreateItem(); + if (itemNum != NO_ITEM) { bool flag = false; ITEM_INFO* item = &g_Level.Items[itemNum]; item->objectNumber = objectNum; - item->roomNumber = l->roomNumber; + item->roomNumber = lara->roomNumber; PHD_VECTOR pos; pos.x = -16; @@ -306,25 +318,25 @@ void CreateFlare(ITEM_INFO* l, GAME_OBJECT_ID objectNum, int thrown) item->pos.yPos = pos.y; item->pos.zPos = pos.z; - auto probe = GetCollisionResult(pos.x, pos.y, pos.z, l->roomNumber); + auto probe = GetCollisionResult(pos.x, pos.y, pos.z, lara->roomNumber); auto floorHeight = probe.Position.Floor; auto collided = GetCollidedObjects(item, 0, 1, CollidedItems, CollidedMeshes, true); if (collided || floorHeight < pos.y) { flag = true; - item->pos.yRot = l->pos.yRot + ANGLE(180.0f); - item->pos.xPos = l->pos.xPos + 320 * phd_sin(item->pos.yRot); - item->pos.zPos = l->pos.zPos + 320 * phd_cos(item->pos.yRot); - item->roomNumber = l->roomNumber; + item->pos.yRot = lara->pos.yRot + ANGLE(180.0f); + item->pos.xPos = lara->pos.xPos + 320 * phd_sin(item->pos.yRot); + item->pos.zPos = lara->pos.zPos + 320 * phd_cos(item->pos.yRot); + item->roomNumber = lara->roomNumber; } else { if (thrown) - item->pos.yRot = l->pos.yRot; + item->pos.yRot = lara->pos.yRot; else - item->pos.yRot = l->pos.yRot - ANGLE(45.0f); - item->roomNumber = l->roomNumber; + item->pos.yRot = lara->pos.yRot - ANGLE(45.0f); + item->roomNumber = lara->roomNumber; } InitialiseItem(itemNum); @@ -335,13 +347,13 @@ void CreateFlare(ITEM_INFO* l, GAME_OBJECT_ID objectNum, int thrown) if (thrown) { - item->speed = l->speed + 50; - item->fallspeed = l->fallspeed - 50; + item->speed = lara->speed + 50; + item->fallspeed = lara->fallspeed - 50; } else { - item->speed = l->speed + 10; - item->fallspeed = l->fallspeed + 50; + item->speed = lara->speed + 10; + item->fallspeed = lara->fallspeed + 50; } if (flag) @@ -351,13 +363,13 @@ void CreateFlare(ITEM_INFO* l, GAME_OBJECT_ID objectNum, int thrown) { item->data = (short)0; short& age = item->data; - if (DoFlareLight((PHD_VECTOR*)&item->pos, Lara.flareAge)) - age = (Lara.flareAge | 0x8000); + if (DoFlareLight((PHD_VECTOR*)&item->pos, info->flareAge)) + age = (info->flareAge | 0x8000); else - age = (Lara.flareAge & 0x7FFF); + age = (info->flareAge & 0x7FFF); } else - item->itemFlags[3] = Lara.litTorch; + item->itemFlags[3] = info->litTorch; AddActiveItem(itemNum); item->status = ITEM_ACTIVE; @@ -369,12 +381,10 @@ void DrawFlareInAir(ITEM_INFO* item) TENLog("DrawFlareInAir() not implemented!", LogLevel::Warning); } -void DoFlareInHand(int flare_age) +void DoFlareInHand(ITEM_INFO* lara, int flare_age) { - PHD_VECTOR pos; - pos.x = 11; - pos.y = 32; - pos.z = 41; + LaraInfo*& info = lara->data; + PHD_VECTOR pos = { 11, 32, 41 }; GetLaraJointPosition(&pos, LM_LHAND); if (DoFlareLight(&pos, flare_age)) @@ -382,13 +392,13 @@ void DoFlareInHand(int flare_age) /* Hardcoded code */ - if (Lara.flareAge >= FLARE_AGE) + if (info->flareAge >= FLARE_AGE) { - if (Lara.gunStatus == LG_NO_ARMS) - Lara.gunStatus = LG_UNDRAW_GUNS; + if (info->gunStatus == LG_NO_ARMS) + info->gunStatus = LG_UNDRAW_GUNS; } - else if (Lara.flareAge != 0) - Lara.flareAge++; + else if (info->flareAge != 0) + info->flareAge++; } int DoFlareLight(PHD_VECTOR* pos, int age) diff --git a/TR5Main/Game/Lara/lara_flare.h b/TR5Main/Game/Lara/lara_flare.h index 774a8a173..55fbb878a 100644 --- a/TR5Main/Game/Lara/lara_flare.h +++ b/TR5Main/Game/Lara/lara_flare.h @@ -5,16 +5,16 @@ struct COLL_INFO; struct PHD_VECTOR; enum GAME_OBJECT_ID : short; -constexpr auto FLARE_AGE = 30 * 30; //30 seconds * 30 frames +constexpr auto FLARE_AGE = 30 * 30; // 30 seconds * 30 frames void FlareControl(short item_number); -void ready_flare(); -void undraw_flare_meshes(); -void draw_flare_meshes(); -void undraw_flare(ITEM_INFO* item); -void draw_flare(ITEM_INFO* item); -void set_flare_arm(int frame); -void CreateFlare(ITEM_INFO* l, GAME_OBJECT_ID object, int thrown); +void ready_flare(ITEM_INFO* lara); +void undraw_flare_meshes(ITEM_INFO* lara); +void draw_flare_meshes(ITEM_INFO* lara); +void undraw_flare(ITEM_INFO* lara); +void draw_flare(ITEM_INFO* lara); +void set_flare_arm(ITEM_INFO* lara, int frame); +void CreateFlare(ITEM_INFO* lara, GAME_OBJECT_ID object, int thrown); void DrawFlareInAir(ITEM_INFO* item); -void DoFlareInHand(int flare_age); +void DoFlareInHand(ITEM_INFO* lara, int flare_age); int DoFlareLight(PHD_VECTOR* pos, int flare_age); diff --git a/TR5Main/Game/pickup/pickup.cpp b/TR5Main/Game/pickup/pickup.cpp index 77ec29d50..90686bd01 100644 --- a/TR5Main/Game/pickup/pickup.cpp +++ b/TR5Main/Game/pickup/pickup.cpp @@ -176,7 +176,7 @@ void DoPickup() InitialiseNewWeapon(); Lara.gunStatus = LG_SPECIAL; Lara.flareAge = (int)(item->data) & 0x7FFF; - draw_flare_meshes(); + draw_flare_meshes(LaraItem); KillItem(pickupitem); item->pos.xRot = oldXrot; diff --git a/TR5Main/Objects/TR2/Vehicles/snowmobile.cpp b/TR5Main/Objects/TR2/Vehicles/snowmobile.cpp index db64ccfb6..181bcca77 100644 --- a/TR5Main/Objects/TR2/Vehicles/snowmobile.cpp +++ b/TR5Main/Objects/TR2/Vehicles/snowmobile.cpp @@ -665,7 +665,7 @@ void SkidooCollision(short itemNum, ITEM_INFO* lara, COLL_INFO* coll) if (laraInfo->gunType == WEAPON_FLARE) { CreateFlare(lara, ID_FLARE_ITEM, false); - undraw_flare_meshes(); + undraw_flare_meshes(lara); laraInfo->flareControlLeft = 0; laraInfo->requestGunType = WEAPON_NONE; laraInfo->gunStatus = LG_NO_ARMS; diff --git a/TR5Main/Objects/TR3/Vehicles/biggun.cpp b/TR5Main/Objects/TR3/Vehicles/biggun.cpp index 203722a08..e8180d64d 100644 --- a/TR5Main/Objects/TR3/Vehicles/biggun.cpp +++ b/TR5Main/Objects/TR3/Vehicles/biggun.cpp @@ -141,8 +141,8 @@ void BigGunCollision(short itemNum, ITEM_INFO* lara, COLL_INFO* coll) if (laraInfo->gunType == WEAPON_FLARE) { - CreateFlare(LaraItem, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + CreateFlare(lara, ID_FLARE_ITEM, 0); + undraw_flare_meshes(lara); laraInfo->flareControlLeft = false; laraInfo->requestGunType = WEAPON_NONE; diff --git a/TR5Main/Objects/TR3/Vehicles/kayak.cpp b/TR5Main/Objects/TR3/Vehicles/kayak.cpp index 90900ef8c..7f4d5a281 100644 --- a/TR5Main/Objects/TR3/Vehicles/kayak.cpp +++ b/TR5Main/Objects/TR3/Vehicles/kayak.cpp @@ -1206,7 +1206,7 @@ void KayakCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll) if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + undraw_flare_meshes(l); Lara.flareControlLeft = 0; Lara.requestGunType = Lara.gunType = WEAPON_NONE; } diff --git a/TR5Main/Objects/TR3/Vehicles/minecart.cpp b/TR5Main/Objects/TR3/Vehicles/minecart.cpp index 0fad813ed..47007e4f6 100644 --- a/TR5Main/Objects/TR3/Vehicles/minecart.cpp +++ b/TR5Main/Objects/TR3/Vehicles/minecart.cpp @@ -787,7 +787,7 @@ void MineCartCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll) if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, FALSE); - undraw_flare_meshes(); + undraw_flare_meshes(l); Lara.flareControlLeft = false; Lara.requestGunType = Lara.gunType = WEAPON_NONE; } diff --git a/TR5Main/Objects/TR3/Vehicles/quad.cpp b/TR5Main/Objects/TR3/Vehicles/quad.cpp index c6fb866f2..eed5f0059 100644 --- a/TR5Main/Objects/TR3/Vehicles/quad.cpp +++ b/TR5Main/Objects/TR3/Vehicles/quad.cpp @@ -1182,7 +1182,7 @@ void QuadBikeCollision(short itemNumber, ITEM_INFO* lara, COLL_INFO* coll) if (laraInfo->gunType == WEAPON_FLARE) { CreateFlare(lara, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + undraw_flare_meshes(lara); laraInfo->flareControlLeft = 0; laraInfo->requestGunType = laraInfo->gunType = WEAPON_NONE; } diff --git a/TR5Main/Objects/TR3/Vehicles/upv.cpp b/TR5Main/Objects/TR3/Vehicles/upv.cpp index f1fc3126d..4a8c29868 100644 --- a/TR5Main/Objects/TR3/Vehicles/upv.cpp +++ b/TR5Main/Objects/TR3/Vehicles/upv.cpp @@ -872,7 +872,7 @@ void SubCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll) if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + undraw_flare_meshes(l); Lara.flareControlLeft = false; Lara.requestGunType = Lara.gunType = WEAPON_NONE; } diff --git a/TR5Main/Objects/TR4/Vehicles/jeep.cpp b/TR5Main/Objects/TR4/Vehicles/jeep.cpp index 6eb4b7fad..ee43242cc 100644 --- a/TR5Main/Objects/TR4/Vehicles/jeep.cpp +++ b/TR5Main/Objects/TR4/Vehicles/jeep.cpp @@ -1499,7 +1499,7 @@ void JeepCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll) if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, 0); - undraw_flare_meshes(); + undraw_flare_meshes(l); Lara.flareControlLeft = 0; Lara.requestGunType = WEAPON_NONE; Lara.gunType = WEAPON_NONE; diff --git a/TR5Main/Objects/TR4/Vehicles/motorbike.cpp b/TR5Main/Objects/TR4/Vehicles/motorbike.cpp index e791a6add..9b06ed5f3 100644 --- a/TR5Main/Objects/TR4/Vehicles/motorbike.cpp +++ b/TR5Main/Objects/TR4/Vehicles/motorbike.cpp @@ -357,7 +357,7 @@ void MotorbikeCollision(short itemNumber, ITEM_INFO* laraitem, COLL_INFO* coll) if (Lara.gunType == WEAPON_FLARE) { CreateFlare(LaraItem, ID_FLARE_ITEM, FALSE); - undraw_flare_meshes(); + undraw_flare_meshes(laraitem); Lara.flareControlLeft = false; Lara.gunType = WEAPON_NONE; Lara.requestGunType = WEAPON_NONE;