diff --git a/TR5Main/Game/lara.cpp b/TR5Main/Game/lara.cpp index 519dfed05..382928958 100644 --- a/TR5Main/Game/lara.cpp +++ b/TR5Main/Game/lara.cpp @@ -52,7 +52,7 @@ LaraInfo Lara; ITEM_INFO* LaraItem; byte LaraNodeUnderwater[NUM_LARA_MESHES]; bool EnableCrouchRoll, EnableFeetHang, EnableMonkeyVault, EnableMonkeyRoll, EnableCrawlFlex1click, EnableCrawlFlex2click, EnableCrawlFlex3click; -bool EnableCrawlFlex1clickE, EnableCrawlFlex2clickE, EnableCrawlFlex1clickup, EnableCrawlFlex1clickdown; +bool EnableCrawlFlex1clickE, EnableCrawlFlex2clickE, EnableCrawlFlex3clickE, EnableCrawlFlex1clickup, EnableCrawlFlex1clickdown; function lara_control_routines[NUM_LARA_STATES + 1] = { lara_as_walk, @@ -382,30 +382,30 @@ void LaraAboveWater(ITEM_INFO* item, COLL_INFO* coll) { switch (Items[Lara.Vehicle].objectNumber) { - case ID_QUAD: - if (QuadBikeControl()) - return; - break; + case ID_QUAD: + if (QuadBikeControl()) + return; + break; - case ID_JEEP: - if (JeepControl()) - return; - break; + case ID_JEEP: + if (JeepControl()) + return; + break; - case ID_MOTORBIKE: - if (MotorbikeControl()) - return; - break; + case ID_MOTORBIKE: + if (MotorbikeControl()) + return; + break; - case ID_KAYAK: - if (KayakControl()) - return; - break; + case ID_KAYAK: + if (KayakControl()) + return; + break; - case ID_SNOWMOBILE: - if (SkidooControl()) - return; - break; + case ID_SNOWMOBILE: + if (SkidooControl()) + return; + break; //case ID_SPEEDBOAT: // if (BoatControl()) @@ -427,8 +427,8 @@ void LaraAboveWater(ITEM_INFO* item, COLL_INFO* coll) // return; // break; - default: - break; + default: + break; } } @@ -436,14 +436,14 @@ void LaraAboveWater(ITEM_INFO* item, COLL_INFO* coll) lara_control_routines[item->currentAnimState](item, coll); if (item->pos.zRot >= -ANGLE(1.0f) && item->pos.zRot <= ANGLE(1.0f)) - item->pos.zRot = 0; + item->pos.zRot = 0; else if (item->pos.zRot < -ANGLE(1.0f)) item->pos.zRot += ANGLE(1.0f); else item->pos.zRot -= ANGLE(1.0f); if (Lara.turnRate >= -ANGLE(2.0f) && Lara.turnRate <= ANGLE(2.0f)) - Lara.turnRate = 0; + Lara.turnRate = 0; else if (Lara.turnRate < -ANGLE(2.0f)) Lara.turnRate += ANGLE(2.0f); else @@ -463,7 +463,7 @@ void LaraAboveWater(ITEM_INFO* item, COLL_INFO* coll) lara_collision_routines[item->currentAnimState](item, coll); } - UpdateLaraRoom(item, -LARA_HITE/2); + UpdateLaraRoom(item, -LARA_HITE / 2); //if (Lara.gunType == WEAPON_CROSSBOW && !LaserSight) // TrInput &= ~IN_ACTION; @@ -559,14 +559,14 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) } if (TrInput & IN_DUCK - && Lara.waterStatus != LW_WADE - && item->currentAnimState == STATE_LARA_STOP - && (Lara.gunStatus == LG_NO_ARMS - || Lara.gunType == WEAPON_NONE - || Lara.gunType == WEAPON_PISTOLS - || Lara.gunType == WEAPON_REVOLVER - || Lara.gunType == WEAPON_UZI - || Lara.gunType == WEAPON_FLARE)) + && Lara.waterStatus != LW_WADE + && item->currentAnimState == STATE_LARA_STOP + && (Lara.gunStatus == LG_NO_ARMS + || Lara.gunType == WEAPON_NONE + || Lara.gunType == WEAPON_PISTOLS + || Lara.gunType == WEAPON_REVOLVER + || Lara.gunType == WEAPON_UZI + || Lara.gunType == WEAPON_FLARE)) { item->goalAnimState = STATE_LARA_CROUCH_IDLE; return; @@ -580,7 +580,7 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) if (TrInput & IN_FORWARD) fheight = LaraFloorFront(item, item->pos.yRot, LARA_RAD + 4); else if (TrInput & IN_BACK) - rheight = LaraFloorFront(item, item->pos.yRot - ANGLE(180), LARA_RAD + 4); // TR3: item->pos.yRot + ANGLE(180) ? + rheight = LaraFloorFront(item, item->pos.yRot - ANGLE(180.0f), LARA_RAD + 4); // TR3: item->pos.yRot + ANGLE(180) ? if (Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP) { @@ -595,8 +595,8 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) { short height, ceiling; - height = LaraFloorFront(item, item->pos.yRot - ANGLE(90), LARA_RAD + 48); - ceiling = LaraCeilingFront(item, item->pos.yRot - ANGLE(90), LARA_RAD + 48, LARA_HITE); + height = LaraFloorFront(item, item->pos.yRot - ANGLE(90.0f), LARA_RAD + 48); + ceiling = LaraCeilingFront(item, item->pos.yRot - ANGLE(90.0f), LARA_RAD + 48, LARA_HITE); if ((height < 128 && height > -128) && HeightType != BIG_SLOPE && ceiling <= 0) item->goalAnimState = STATE_LARA_WALK_LEFT; @@ -605,8 +605,8 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) { short height, ceiling; - height = LaraFloorFront(item, item->pos.yRot + ANGLE(90), LARA_RAD + 48); - ceiling = LaraCeilingFront(item, item->pos.yRot + ANGLE(90), LARA_RAD + 48, LARA_HITE); + height = LaraFloorFront(item, item->pos.yRot + ANGLE(90.0f), LARA_RAD + 48); + ceiling = LaraCeilingFront(item, item->pos.yRot + ANGLE(90.0f), LARA_RAD + 48, LARA_HITE); if ((height < 128 && height > -128) && HeightType != BIG_SLOPE && ceiling <= 0) item->goalAnimState = STATE_LARA_WALK_RIGHT; @@ -646,7 +646,7 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) wade = true; } } - + if (!wade) { Lara.moveAngle = item->pos.yRot; @@ -665,7 +665,7 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) } else if (TrInput & IN_BACK) { - if ((rheight < (STEPUP_HEIGHT-1)) && (rheight > -(STEPUP_HEIGHT-1))) + if ((rheight < (STEPUP_HEIGHT - 1)) && (rheight > -(STEPUP_HEIGHT - 1))) lara_as_back(item, coll); } } @@ -679,8 +679,8 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) { short height, ceiling; - height = LaraFloorFront(item, item->pos.yRot, LARA_RAD+4); - ceiling = LaraCeilingFront(item, item->pos.yRot, LARA_RAD+4, LARA_HITE); + height = LaraFloorFront(item, item->pos.yRot, LARA_RAD + 4); + ceiling = LaraCeilingFront(item, item->pos.yRot, LARA_RAD + 4, LARA_HITE); if ((HeightType == BIG_SLOPE || HeightType == DIAGONAL) && (height < 0 || ceiling > 0)) { @@ -718,10 +718,10 @@ void lara_as_stop(ITEM_INFO* item, COLL_INFO* coll) { if (TrInput & IN_WALK) { - if ((rheight < (STEPUP_HEIGHT-1)) && (rheight > -(STEPUP_HEIGHT-1)) && HeightType != BIG_SLOPE) + if ((rheight < (STEPUP_HEIGHT - 1)) && (rheight > -(STEPUP_HEIGHT - 1)) && HeightType != BIG_SLOPE) lara_as_back(item, coll); } - else if (rheight > -(STEPUP_HEIGHT-1)) + else if (rheight > -(STEPUP_HEIGHT - 1)) { item->goalAnimState = STATE_LARA_RUN_BACK; } @@ -766,7 +766,7 @@ void lara_as_pbleapoff(ITEM_INFO* item, COLL_INFO* coll)//1D244, 1D3D8 (F) } } -void lara_as_parallelbars(ITEM_INFO* item, COLL_INFO* coll) +void lara_as_parallelbars(ITEM_INFO* item, COLL_INFO* coll) { if (!(TrInput & IN_ACTION)) { @@ -774,7 +774,7 @@ void lara_as_parallelbars(ITEM_INFO* item, COLL_INFO* coll) } } -void lara_as_trfall(ITEM_INFO* item, COLL_INFO* coll) +void lara_as_trfall(ITEM_INFO* item, COLL_INFO* coll) { if (item->animNumber == ANIMATION_LARA_TIGHTROPE_FALL_LEFT || item->animNumber == ANIMATION_LARA_TIGHTROPE_FALL_RIGHT) { @@ -886,7 +886,7 @@ void lara_as_trwalk(ITEM_INFO* item, COLL_INFO* coll) } } -void lara_as_trpose(ITEM_INFO* item, COLL_INFO* coll) +void lara_as_trpose(ITEM_INFO* item, COLL_INFO* coll) { if (TrInput & IN_LOOK) LookUpDown(); @@ -921,7 +921,7 @@ void lara_as_trpose(ITEM_INFO* item, COLL_INFO* coll) } } -void GetTighRopeFallOff(int regularity) +void GetTighRopeFallOff(int regularity) { if (LaraItem->hitPoints <= 0 || LaraItem->hitStatus) { @@ -935,74 +935,74 @@ void GetTighRopeFallOff(int regularity) Lara.tightRopeFall = 2 - ((GetRandomControl() & 0xF) != 0); } -void LookLeftRight() +void LookLeftRight() { Camera.type = LOOK_CAMERA; if (TrInput & IN_LEFT) { TrInput &= ~IN_LEFT; - if (Lara.headYrot > -ANGLE(44)) + if (Lara.headYrot > -ANGLE(44.0f)) { if (BinocularRange) - Lara.headYrot += ANGLE(2) * (BinocularRange - 1792) / 1536; + Lara.headYrot += ANGLE(2.0f) * (BinocularRange - 1792) / 1536; else - Lara.headYrot -= ANGLE(2); + Lara.headYrot -= ANGLE(2.0f); } } else if (TrInput & IN_RIGHT) { TrInput &= ~IN_RIGHT; - if (Lara.headYrot < ANGLE(44)) + if (Lara.headYrot < ANGLE(44.0f)) { if (BinocularRange) - Lara.headYrot += ANGLE(2) * (1792 - BinocularRange) / 1536; + Lara.headYrot += ANGLE(2.0f) * (1792 - BinocularRange) / 1536; else - Lara.headYrot += ANGLE(2); + Lara.headYrot += ANGLE(2.0f); } } if (Lara.gunStatus != LG_HANDS_BUSY && !Lara.leftArm.lock && !Lara.rightArm.lock) Lara.torsoYrot = Lara.headYrot; } -void LookUpDown() +void LookUpDown() { Camera.type = LOOK_CAMERA; if (TrInput & IN_FORWARD) { TrInput &= ~IN_FORWARD; - if (Lara.headXrot > -ANGLE(35)) + if (Lara.headXrot > -ANGLE(35.0f)) { if (BinocularRange) - Lara.headXrot += ANGLE(2) * (BinocularRange - 1792) / 3072; + Lara.headXrot += ANGLE(2.0f) * (BinocularRange - 1792) / 3072; else - Lara.headXrot -= ANGLE(2); + Lara.headXrot -= ANGLE(2.0f); } } else if (TrInput & IN_BACK) { TrInput &= ~IN_BACK; - if (Lara.headXrot < ANGLE(30)) + if (Lara.headXrot < ANGLE(30.0f)) { if (BinocularRange) - Lara.headXrot += ANGLE(2) * (1792 - BinocularRange) / 3072; + Lara.headXrot += ANGLE(2.0f) * (1792 - BinocularRange) / 3072; else - Lara.headXrot += ANGLE(2); + Lara.headXrot += ANGLE(2.0f); } } if (Lara.gunStatus != LG_HANDS_BUSY && !Lara.leftArm.lock && !Lara.rightArm.lock) Lara.torsoXrot = Lara.headXrot; } -void ResetLook() +void ResetLook() { if (Camera.type != 2) { - if (Lara.headXrot <= -ANGLE(2) || Lara.headXrot >= ANGLE(2)) + if (Lara.headXrot <= -ANGLE(2.0f) || Lara.headXrot >= ANGLE(2.0f)) Lara.headXrot = Lara.headXrot / -8 + Lara.headXrot; else Lara.headXrot = 0; - if (Lara.headYrot <= -ANGLE(2) || Lara.headYrot >= ANGLE(2)) + if (Lara.headYrot <= -ANGLE(2.0f) || Lara.headYrot >= ANGLE(2.0f)) Lara.headYrot = Lara.headYrot / -8 + Lara.headYrot; else Lara.headYrot = 0; @@ -1022,7 +1022,7 @@ void ResetLook() } } -void lara_col_jumper(ITEM_INFO* item, COLL_INFO* coll) +void lara_col_jumper(ITEM_INFO* item, COLL_INFO* coll) { coll->badPos = NO_BAD_POS; coll->badNeg = -STEPUP_HEIGHT; @@ -1057,7 +1057,7 @@ void lara_default_col(ITEM_INFO* item, COLL_INFO* coll)//1C80C(<), 1C940(<) (F) GetLaraCollisionInfo(item, coll); } -void lara_col_wade(ITEM_INFO* item, COLL_INFO* coll) +void lara_col_wade(ITEM_INFO* item, COLL_INFO* coll) { Lara.moveAngle = item->pos.yRot; @@ -1079,7 +1079,7 @@ void lara_col_wade(ITEM_INFO* item, COLL_INFO* coll) { item->pos.zRot = 0; - if ((coll->frontType == WALL || coll->frontType == SPLIT_TRI) && coll->frontFloor < -((STEP_SIZE*5)/2) && !(Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP)) + if ((coll->frontType == WALL || coll->frontType == SPLIT_TRI) && coll->frontFloor < -((STEP_SIZE * 5) / 2) && !(Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP)) { item->currentAnimState = STATE_LARA_SPLAT; @@ -1101,7 +1101,7 @@ void lara_col_wade(ITEM_INFO* item, COLL_INFO* coll) LaraCollideStop(item, coll); } - if (coll->midFloor >= -STEPUP_HEIGHT && coll->midFloor < -STEP_SIZE/2 && !(Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP)) + if (coll->midFloor >= -STEPUP_HEIGHT && coll->midFloor < -STEP_SIZE / 2 && !(Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP)) { if (item->frameNumber >= 3 && item->frameNumber <= 14) { @@ -1178,7 +1178,7 @@ void lara_col_swandive(ITEM_INFO* item, COLL_INFO* coll)//1C4A0(<), 1C5D4(<) (F) void lara_col_roll2(ITEM_INFO* item, COLL_INFO* coll)//1C384, 1C4B8 (F) { Camera.laraNode = 0; - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); coll->badPos = NO_BAD_POS; coll->badNeg = -STEPUP_HEIGHT; @@ -1238,7 +1238,7 @@ void lara_col_roll(ITEM_INFO* item, COLL_INFO* coll)//1C2B0, 1C3E4 (F) { item->goalAnimState = STATE_LARA_RUN_FORWARD; } - + ShiftItem(item, coll); if (coll->midFloor != NO_HEIGHT) @@ -1247,13 +1247,13 @@ void lara_col_roll(ITEM_INFO* item, COLL_INFO* coll)//1C2B0, 1C3E4 (F) void lara_col_slideback(ITEM_INFO* item, COLL_INFO* coll)//1C284(<), 1C3B8(<) (F) { - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); lara_slide_slope(item, coll); } void lara_col_fallback(ITEM_INFO* item, COLL_INFO* coll)//1C1B4(<), 1C2E8(<) (F) { - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); coll->badPos = NO_BAD_POS; coll->badNeg = -STEPUP_HEIGHT; @@ -1279,19 +1279,19 @@ void lara_col_fallback(ITEM_INFO* item, COLL_INFO* coll)//1C1B4(<), 1C2E8(<) (F) void lara_col_leftjump(ITEM_INFO* item, COLL_INFO* coll)//1C188(<), 1C2BC(<) (F) { - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); lara_col_jumper(item, coll); } void lara_col_rightjump(ITEM_INFO* item, COLL_INFO* coll)//1C15C(<), 1C290(<) (F) { - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); lara_col_jumper(item, coll); } void lara_col_backjump(ITEM_INFO* item, COLL_INFO* coll)//1C130(<), 1C264(<) (F) { - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); lara_col_jumper(item, coll); } @@ -1309,9 +1309,9 @@ void lara_col_stepleft(ITEM_INFO* item, COLL_INFO* coll)//1C0E8(<), 1C21C(<) (F) void lara_col_stepright(ITEM_INFO* item, COLL_INFO* coll)//1BFB0, 1C0E4 (F) { if (item->currentAnimState == STATE_LARA_WALK_RIGHT) - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); else - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); item->gravityStatus = false; item->fallspeed = 0; @@ -1343,7 +1343,7 @@ void lara_col_back(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { item->gravityStatus = false; item->fallspeed = 0; - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); if (Lara.waterStatus == LW_WADE) coll->badPos = NO_BAD_POS; @@ -1555,7 +1555,7 @@ void lara_col_fastback(ITEM_INFO* item, COLL_INFO* coll)//1B89C, 1B9D0 (F) item->fallspeed = 0; item->gravityStatus = false; - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); coll->slopesAreWalls = 0; coll->slopesArePits = true; @@ -1770,7 +1770,7 @@ void lara_col_walk(ITEM_INFO* item, COLL_INFO* coll)//1B3E8, 1B51C (F) void lara_as_pulley(ITEM_INFO* item, COLL_INFO* coll)//1B288, 1B3BC (F) { - ITEM_INFO* p = (ITEM_INFO*) Lara.generalPtr; + ITEM_INFO* p = (ITEM_INFO*)Lara.generalPtr; Lara.look = false; @@ -1825,7 +1825,7 @@ void lara_col_turnswitch(ITEM_INFO* item, COLL_INFO* coll)//1B1B4(<), 1B2E8(<) ( { if (item->animNumber == ANIMATION_LARA_ROUND_HANDLE_PUSH_LEFT_CONTINUE) { - item->pos.yRot -= ANGLE(90); + item->pos.yRot -= ANGLE(90.0f); item->animNumber = ANIMATION_LARA_ROUND_HANDLE_PUSH_LEFT_END; item->frameNumber = Anims[item->animNumber].frameBase; @@ -1833,7 +1833,7 @@ void lara_col_turnswitch(ITEM_INFO* item, COLL_INFO* coll)//1B1B4(<), 1B2E8(<) ( if (item->animNumber == ANIMATION_LARA_ROUND_HANDLE_PUSH_RIGHT_CONTINUE) { - item->pos.yRot += ANGLE(90); + item->pos.yRot += ANGLE(90.0f); item->animNumber = ANIMATION_LARA_ROUND_HANDLE_PUSH_RIGHT_END; item->frameNumber = Anims[item->animNumber].frameBase; @@ -1865,7 +1865,7 @@ void lara_as_deathslide(ITEM_INFO* item, COLL_INFO* coll)//1B038, 1B16C (F) { short roomNumber = item->roomNumber; - Camera.targetAngle = ANGLE(70); + Camera.targetAngle = ANGLE(70.0f); GetFloorHeight(GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber), item->pos.xPos, item->pos.yPos, item->pos.zPos); @@ -1894,7 +1894,7 @@ void lara_as_wade(ITEM_INFO* item, COLL_INFO* coll)//1AF10, 1B044 (F) return; } - Camera.targetElevation = -ANGLE(22); + Camera.targetElevation = -ANGLE(22.0f); if (Rooms[item->roomNumber].flags & ENV_FLAG_SWAMP) { @@ -1994,8 +1994,8 @@ void lara_as_swandive(ITEM_INFO* item, COLL_INFO* coll)//1AE08(<), 1AF3C(<) (F) void lara_as_special(ITEM_INFO* item, COLL_INFO* coll)//1ADDC(<), 1AF10(<) (F) { Camera.flags = CF_FOLLOW_CENTER; - Camera.targetAngle = ANGLE(170); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = ANGLE(170.0f); + Camera.targetElevation = -ANGLE(25.0f); } void lara_as_usepuzzle(ITEM_INFO* item, COLL_INFO* coll)//1AD18(<), 1AE4C(<) (F) @@ -2005,8 +2005,8 @@ void lara_as_usepuzzle(ITEM_INFO* item, COLL_INFO* coll)//1AD18(<), 1AE4C(<) (F) coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = -ANGLE(80); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = -ANGLE(80.0f); + Camera.targetElevation = -ANGLE(25.0f); Camera.targetDistance = SECTOR(1); if (item->frameNumber == Anims[item->animNumber].frameEnd) @@ -2025,7 +2025,7 @@ void lara_as_usekey(ITEM_INFO* item, COLL_INFO* coll)//1ACBC(<), 1ADF0(<) (F) Lara.look = false; coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = -ANGLE(80); + Camera.targetAngle = -ANGLE(80.0f); Camera.targetElevation = -4550; Camera.targetDistance = SECTOR(1); } @@ -2035,8 +2035,8 @@ void lara_as_switchoff(ITEM_INFO* item, COLL_INFO* coll)//1AC54(<), 1AD88(<) (F) Lara.look = false; coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = ANGLE(80); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = ANGLE(80.0f); + Camera.targetElevation = -ANGLE(25.0f); Camera.targetDistance = SECTOR(1); Camera.speed = 6; } @@ -2046,8 +2046,8 @@ void lara_as_switchon(ITEM_INFO* item, COLL_INFO* coll)//1ABEC(<), 1AD20(<) (F) Lara.look = false; coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = ANGLE(80); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = ANGLE(80.0f); + Camera.targetElevation = -ANGLE(25.0f); Camera.targetDistance = SECTOR(1); Camera.speed = 6; } @@ -2057,8 +2057,8 @@ void lara_as_pickupflare(ITEM_INFO* item, COLL_INFO* coll)//1AB5C(<), 1AC90(<) ( Lara.look = false; coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = ANGLE(130); - Camera.targetElevation = -ANGLE(15); + Camera.targetAngle = ANGLE(130.0f); + Camera.targetElevation = -ANGLE(15.0f); Camera.targetDistance = SECTOR(1); if (item->frameNumber == Anims[item->animNumber].frameEnd - 1) Lara.gunStatus = LG_NO_ARMS; @@ -2069,8 +2069,8 @@ void lara_as_pickup(ITEM_INFO* item, COLL_INFO* coll)//1AB00(<), 1AC34(<) (F) Lara.look = false; coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = -ANGLE(130); - Camera.targetElevation = -ANGLE(15); + Camera.targetAngle = -ANGLE(130.0f); + Camera.targetElevation = -ANGLE(15.0f); Camera.targetDistance = SECTOR(1); } @@ -2078,7 +2078,7 @@ void lara_as_ppready(ITEM_INFO* item, COLL_INFO* coll)//1AABC(<), 1ABF0(<) (F) { coll->enableBaddiePush = false; coll->enableSpaz = false; - Camera.targetAngle = ANGLE(75); + Camera.targetAngle = ANGLE(75.0f); if (!(TrInput & IN_ACTION)) item->goalAnimState = STATE_LARA_STOP; } @@ -2089,8 +2089,8 @@ void lara_as_pullblock(ITEM_INFO* item, COLL_INFO* coll)//1AA60(<), 1AB94(<) (F) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.flags = CF_FOLLOW_CENTER; - Camera.targetAngle = ANGLE(35); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = ANGLE(35.0f); + Camera.targetElevation = -ANGLE(25.0f); } void lara_as_pushblock(ITEM_INFO* item, COLL_INFO* coll)//1AA04(<), 1AB38(<) (F) @@ -2099,8 +2099,8 @@ void lara_as_pushblock(ITEM_INFO* item, COLL_INFO* coll)//1AA04(<), 1AB38(<) (F) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.flags = CF_FOLLOW_CENTER; - Camera.targetAngle = ANGLE(90); - Camera.targetElevation = -ANGLE(25); + Camera.targetAngle = ANGLE(90.0f); + Camera.targetElevation = -ANGLE(25.0f); } void lara_as_slideback(ITEM_INFO* item, COLL_INFO* coll)//1A9E0(<), 1AB14(<) (F) @@ -2141,7 +2141,7 @@ void lara_as_rightjump(ITEM_INFO* item, COLL_INFO* coll)//1A8C4(<), 1A9F8(<) (F) void lara_as_backjump(ITEM_INFO* item, COLL_INFO* coll)//1A854(<), 1A988(<) (F) { - Camera.targetAngle = ANGLE(135); + Camera.targetAngle = ANGLE(135.0f); if (item->fallspeed <= LARA_FREEFALL_SPEED) { if (item->goalAnimState == STATE_LARA_RUN_FORWARD) @@ -2161,7 +2161,7 @@ void lara_as_backjump(ITEM_INFO* item, COLL_INFO* coll)//1A854(<), 1A988(<) (F) void lara_as_slide(ITEM_INFO* item, COLL_INFO* coll)//1A824(<), 1A958(<) (F) { - Camera.targetElevation = -ANGLE(45); // FIXED + Camera.targetElevation = -ANGLE(45.0f); // FIXED if ((TrInput & IN_JUMP) && !(TrInput & IN_BACK)) item->goalAnimState = STATE_LARA_JUMP_FORWARD; } @@ -2218,14 +2218,14 @@ void lara_as_stepright(ITEM_INFO* item, COLL_INFO* coll)//1A67C(<), 1A7B0(<) (F) if (TrInput & IN_LEFT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(4)) - Lara.turnRate = -ANGLE(4); + if (Lara.turnRate < -ANGLE(4.0f)) + Lara.turnRate = -ANGLE(4.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(4)) - Lara.turnRate = ANGLE(4); + if (Lara.turnRate > ANGLE(4.0f)) + Lara.turnRate = ANGLE(4.0f); } } } @@ -2283,19 +2283,19 @@ void lara_as_back(ITEM_INFO* item, COLL_INFO* coll)//1A4F0(<), 1A624(<) (F) if (TrInput & IN_LEFT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(4)) - Lara.turnRate = -ANGLE(4); + if (Lara.turnRate < -ANGLE(4.0f)) + Lara.turnRate = -ANGLE(4.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(4)) - Lara.turnRate = ANGLE(4); + if (Lara.turnRate > ANGLE(4.0f)) + Lara.turnRate = ANGLE(4.0f); } } } -void lara_as_compress(ITEM_INFO* item, COLL_INFO* coll) +void lara_as_compress(ITEM_INFO* item, COLL_INFO* coll) { if (Lara.waterStatus != LW_WADE) { @@ -2304,20 +2304,20 @@ void lara_as_compress(ITEM_INFO* item, COLL_INFO* coll) item->goalAnimState = STATE_LARA_JUMP_FORWARD; Lara.moveAngle = item->pos.yRot; } - else if (TrInput & IN_LEFT && LaraFloorFront(item, item->pos.yRot - ANGLE(90), 256) >= -384) + else if (TrInput & IN_LEFT && LaraFloorFront(item, item->pos.yRot - ANGLE(90.0f), 256) >= -384) { item->goalAnimState = STATE_LARA_JUMP_RIGHT; - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); } - else if (TrInput & IN_RIGHT && LaraFloorFront(item, item->pos.yRot + ANGLE(90), 256) >= -384) + else if (TrInput & IN_RIGHT && LaraFloorFront(item, item->pos.yRot + ANGLE(90.0f), 256) >= -384) { item->goalAnimState = STATE_LARA_JUMP_LEFT; - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); } - else if (TrInput & IN_BACK && LaraFloorFront(item, item->pos.yRot - ANGLE(180), 256) >= -384) + else if (TrInput & IN_BACK && LaraFloorFront(item, item->pos.yRot - ANGLE(180.0f), 256) >= -384) { item->goalAnimState = STATE_LARA_JUMP_BACK; - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); } } @@ -2333,8 +2333,8 @@ void lara_as_splat(ITEM_INFO* item, COLL_INFO* coll)//1A340(<), 1A474(<) (F) void lara_as_intcornerr(ITEM_INFO* item, COLL_INFO* coll)//1A2EC(<), 1A420(<) (F) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnim(item, coll, ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnim(item, coll, ANGLE(90.0f), item->animNumber == ANIMATION_LARA_HANG_AROUND_RIGHT_INNER_END || item->animNumber == ANIMATION_LARA_LADDER_AROUND_RIGHT_INNER_END); } @@ -2342,8 +2342,8 @@ void lara_as_intcornerr(ITEM_INFO* item, COLL_INFO* coll)//1A2EC(<), 1A420(<) (F void lara_as_intcornerl(ITEM_INFO* item, COLL_INFO* coll)//1A298(<), 1A3CC(<) (F) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnim(item, coll, -ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnim(item, coll, -ANGLE(90.0f), item->animNumber == ANIMATION_LARA_HANG_AROUND_LEFT_INNER_END || item->animNumber == ANIMATION_LARA_LADDER_AROUND_LEFT_INNER_END); } @@ -2351,8 +2351,8 @@ void lara_as_intcornerl(ITEM_INFO* item, COLL_INFO* coll)//1A298(<), 1A3CC(<) (F void lara_as_extcornerr(ITEM_INFO* item, COLL_INFO* coll)//1A244(<), 1A378(<) (F) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnim(item, coll, -ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnim(item, coll, -ANGLE(90.0f), item->animNumber == ANIMATION_LARA_HANG_AROUND_RIGHT_OUTER_END || item->animNumber == ANIMATION_LARA_LADDER_AROUND_RIGHT_OUTER_END); } @@ -2360,8 +2360,8 @@ void lara_as_extcornerr(ITEM_INFO* item, COLL_INFO* coll)//1A244(<), 1A378(<) (F void lara_as_extcornerl(ITEM_INFO* item, COLL_INFO* coll)//1A1F0(<), 1A324(<) (F) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnim(item, coll, ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnim(item, coll, ANGLE(90.0f), item->animNumber == ANIMATION_LARA_HANG_AROUND_LEFT_OUTER_END || item->animNumber == ANIMATION_LARA_LADDER_AROUND_LEFT_OUTER_END); } @@ -2413,10 +2413,10 @@ void SetCornerAnim(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip)//1A0 void lara_col_hangright(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); coll->radius = 102; /* @ORIGINAL_BUG: this value (instead of LARA_RAD) can make Lara glitch if coll->frontType is DIAGONAL or SPLIT_TRI */ LaraHangTest(item, coll); - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); } void lara_as_hangright(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) @@ -2424,17 +2424,17 @@ void lara_as_hangright(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); if (!(TrInput & (IN_RIGHT | IN_RSTEP))) item->goalAnimState = STATE_LARA_HANG; } void lara_col_hangleft(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); coll->radius = 102; /* @ORIGINAL_BUG: this value (instead of LARA_RAD) can make Lara glitch if coll->frontType is DIAGONAL or SPLIT_TRI */ LaraHangTest(item, coll); - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); } void lara_as_hangleft(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) @@ -2442,7 +2442,7 @@ void lara_as_hangleft(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); if (!(TrInput & (IN_LEFT | IN_LSTEP))) item->goalAnimState = STATE_LARA_HANG; } @@ -2453,13 +2453,12 @@ void lara_col_hang(ITEM_INFO* item, COLL_INFO* coll)//19AC8, 19BFC (F) item->gravityStatus = false; if (item->animNumber == ANIMATION_LARA_HANG_IDLE && item->frameNumber == Anims[item->animNumber].frameBase + 21) - //&& !coll->midSplitFloor) // !coll->midSplitFloor temporarily disables shimmy on diagonal ledge, until it is fully resolved { int flag; if (TrInput & IN_LEFT || TrInput & IN_LSTEP) { - if (CanLaraHangSideways(item, coll, -ANGLE(90))) + if (CanLaraHangSideways(item, coll, -ANGLE(90.0f))) { item->goalAnimState = STATE_LARA_SHIMMY_LEFT; @@ -2480,7 +2479,7 @@ void lara_col_hang(ITEM_INFO* item, COLL_INFO* coll)//19AC8, 19BFC (F) if (TrInput & IN_RIGHT || TrInput & IN_RSTEP) { - if (CanLaraHangSideways(item, coll, ANGLE(90))) + if (CanLaraHangSideways(item, coll, ANGLE(90.0f))) { item->goalAnimState = STATE_LARA_SHIMMY_RIGHT; @@ -2575,7 +2574,7 @@ void lara_col_hang(ITEM_INFO* item, COLL_INFO* coll)//19AC8, 19BFC (F) if (TrInput & IN_BACK && Lara.climbStatus && - coll->midFloor > 344 && + coll->midFloor > 344 && item->animNumber == ANIMATION_LARA_HANG_IDLE) { if (item->frameNumber == Anims[item->animNumber].frameBase + 21) @@ -2613,7 +2612,7 @@ void lara_as_hang(ITEM_INFO* item, COLL_INFO* coll)//19A28, 19B5C (F) coll->enableSpaz = false; Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); } int CanLaraHangSideways(ITEM_INFO* item, COLL_INFO* coll, short angle)//19930, 19A64 (F) @@ -2625,24 +2624,24 @@ int CanLaraHangSideways(ITEM_INFO* item, COLL_INFO* coll, short angle)//19930, 1 int res; Lara.moveAngle = angle + item->pos.yRot; - short ang = (unsigned short) (Lara.moveAngle + ANGLE(45)) >> W2V_SHIFT; + short ang = (unsigned short)(Lara.moveAngle + ANGLE(45.0f)) >> W2V_SHIFT; - switch (ang) - { - case 0: - z += 16; - break; - case 1: - x += 16; - break; - case 2: - z -= 16; - break; - case 3: - x -= 16; - break; - } + switch (ang) + { + case 0: + z += 16; + break; + case 1: + x += 16; + break; + case 2: + z -= 16; + break; + case 3: + x -= 16; + break; + } item->pos.xPos = x; item->pos.zPos = z; @@ -2680,7 +2679,7 @@ void lara_as_death(ITEM_INFO* item, COLL_INFO* coll)//19830(<), 19964(<) (F) { BinocularRange = 0; LaserSight = 0; - AlterFOV(ANGLE(80)); + AlterFOV(ANGLE(80.0f)); LaraItem->meshBits = -1; Lara.busy = false; } @@ -2698,10 +2697,10 @@ void lara_as_turn_l(ITEM_INFO* item, COLL_INFO* coll)//1972C(<), 19860(<) (F) if (Lara.gunStatus != LG_READY || Lara.waterStatus == LW_WADE) { - if (Lara.turnRate < -ANGLE(4)) + if (Lara.turnRate < -ANGLE(4.0f)) { if (TrInput & IN_WALK) - Lara.turnRate = -ANGLE(4); + Lara.turnRate = -ANGLE(4.0f); else item->goalAnimState = STATE_LARA_TURN_FAST; } @@ -2746,10 +2745,10 @@ void lara_as_turn_r(ITEM_INFO* item, COLL_INFO* coll)//19628(<), 1975C(<) (F) if (Lara.gunStatus != LG_READY || Lara.waterStatus == LW_WADE) { - if (Lara.turnRate > ANGLE(4)) + if (Lara.turnRate > ANGLE(4.0f)) { if (TrInput & IN_WALK) - Lara.turnRate = ANGLE(4); + Lara.turnRate = ANGLE(4.0f); else item->goalAnimState = STATE_LARA_TURN_FAST; } @@ -2787,14 +2786,14 @@ void lara_as_fastback(ITEM_INFO* item, COLL_INFO* coll)//1959C(<), 196D0(<) (F) if (TrInput & IN_LEFT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(6)) - Lara.turnRate = -ANGLE(6); + if (Lara.turnRate < -ANGLE(6.0f)) + Lara.turnRate = -ANGLE(6.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(6)) - Lara.turnRate = ANGLE(6); + if (Lara.turnRate > ANGLE(6.0f)) + Lara.turnRate = ANGLE(6.0f); } } @@ -2823,12 +2822,12 @@ void lara_as_run(ITEM_INFO* item, COLL_INFO* coll)//192EC, 19420 (F) if (TrInput & IN_DUCK && Lara.waterStatus != LW_WADE && - (Lara.gunStatus == LG_NO_ARMS || - Lara.gunType == WEAPON_NONE || - Lara.gunType == WEAPON_PISTOLS || - Lara.gunType == WEAPON_REVOLVER || - Lara.gunType == WEAPON_UZI || - Lara.gunType == WEAPON_FLARE)) + (Lara.gunStatus == LG_NO_ARMS || + Lara.gunType == WEAPON_NONE || + Lara.gunType == WEAPON_PISTOLS || + Lara.gunType == WEAPON_REVOLVER || + Lara.gunType == WEAPON_UZI || + Lara.gunType == WEAPON_FLARE)) { item->goalAnimState = STATE_LARA_CROUCH_IDLE; return; @@ -2906,14 +2905,14 @@ void lara_as_walk(ITEM_INFO* item, COLL_INFO* coll)//191B8(<), 192EC(<) (F) if (TrInput & IN_LEFT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(4)) - Lara.turnRate = -ANGLE(4); + if (Lara.turnRate < -ANGLE(4.0f)) + Lara.turnRate = -ANGLE(4.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(4)) - Lara.turnRate = ANGLE(4); + if (Lara.turnRate > ANGLE(4.0f)) + Lara.turnRate = ANGLE(4.0f); } if (TrInput & IN_FORWARD) @@ -3102,7 +3101,7 @@ void lara_col_reach(ITEM_INFO* item, COLL_INFO* coll)//18D0C, 18E40 (F) void lara_as_reach(ITEM_INFO* item, COLL_INFO* coll)//18CE0(<), 18E14(<) (F) { - Camera.targetAngle = ANGLE(85); + Camera.targetAngle = ANGLE(85.0f); if (item->fallspeed > LARA_FREEFALL_SPEED) item->goalAnimState = STATE_LARA_FREEFALL; } @@ -3110,7 +3109,7 @@ void lara_as_reach(ITEM_INFO* item, COLL_INFO* coll)//18CE0(<), 18E14(<) (F) void lara_col_forwardjump(ITEM_INFO* item, COLL_INFO* coll)//18B88, 18CBC (F) { if (item->speed < 0) - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); else Lara.moveAngle = item->pos.yRot; @@ -3183,15 +3182,15 @@ void lara_as_forwardjump(ITEM_INFO* item, COLL_INFO* coll)//18A34, 18B68 (F) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(3)) - Lara.turnRate = -ANGLE(3); + if (Lara.turnRate < -ANGLE(3.0f)) + Lara.turnRate = -ANGLE(3.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(3)) - Lara.turnRate = ANGLE(3); + if (Lara.turnRate > ANGLE(3.0f)) + Lara.turnRate = ANGLE(3.0f); } } @@ -3209,7 +3208,7 @@ void lara_col_upjump(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) coll->badNeg = -STEPUP_HEIGHT; coll->badCeiling = BAD_JUMP_CEILING; coll->hitCeiling = false; - coll->facing = item->speed < 0 ? Lara.moveAngle + ANGLE(180) : Lara.moveAngle; + coll->facing = item->speed < 0 ? Lara.moveAngle + ANGLE(180.0f) : Lara.moveAngle; GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, 870); @@ -3295,15 +3294,13 @@ void lara_col_upjump(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) } } - bounds = (ANIM_FRAME*) GetBoundsAccurate(item); + bounds = (ANIM_FRAME*)GetBoundsAccurate(item); if (edgeCatch <= 0) item->pos.yPos = edge - bounds->MinY + 4; else item->pos.yPos += coll->frontFloor - bounds->MinY; - item->pos.yRot = angle; - if (coll->midSplitFloor) { Vector2 v = GetDiagonalIntersect(item->pos.xPos, item->pos.zPos, coll->midSplitFloor, LARA_RAD, item->pos.yRot); @@ -3316,6 +3313,7 @@ void lara_col_upjump(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->pos.xPos = v.x; item->pos.zPos = v.y; } + item->pos.yRot = angle; item->gravityStatus = false; item->speed = 0; @@ -3426,7 +3424,7 @@ void lara_as_climbrope(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) } else { - Camera.targetAngle = ANGLE(30); + Camera.targetAngle = ANGLE(30.0f); if (Anims[item->animNumber].frameEnd == item->frameNumber) { @@ -3457,19 +3455,19 @@ void lara_col_ropefwd(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) vel = 0; ApplyVelocityToRope(Lara.ropeSegment - 2, - item->pos.yRot + (Lara.ropeDirection ? ANGLE(0) : ANGLE(180)), + item->pos.yRot + (Lara.ropeDirection ? ANGLE(0.0f) : ANGLE(180.0f)), vel >> 5); } if (Lara.ropeFrame > Lara.ropeDFrame) { - Lara.ropeFrame -= (unsigned short) Lara.ropeFrameRate; + Lara.ropeFrame -= (unsigned short)Lara.ropeFrameRate; if (Lara.ropeFrame < Lara.ropeDFrame) Lara.ropeFrame = Lara.ropeDFrame; } else if (Lara.ropeFrame < Lara.ropeDFrame) { - Lara.ropeFrame += (unsigned short) Lara.ropeFrameRate; + Lara.ropeFrame += (unsigned short)Lara.ropeFrameRate; if (Lara.ropeFrame > Lara.ropeDFrame) Lara.ropeFrame = Lara.ropeDFrame; } @@ -3589,7 +3587,7 @@ void UpdateRopeSwing(ITEM_INFO* item) // (F) (D) { Lara.ropeMaxXForward = 9000; } - + if (Lara.ropeMaxXBackward > 9000) { Lara.ropeMaxXBackward = 9000; @@ -3606,13 +3604,13 @@ void UpdateRopeSwing(ITEM_INFO* item) // (F) (D) if (frame > Lara.ropeDFrame) { Lara.ropeDFrame = frame; - RopeSwing = 1; + RopeSwing = 1; } else { RopeSwing = 0; } - + SoundEffect(SFX_LARA_ROPE_CREAK, &item->pos, 0); } else if (Lara.ropeLastX < 0 && Lara.ropeFrame == Lara.ropeDFrame) @@ -3651,7 +3649,7 @@ void UpdateRopeSwing(ITEM_INFO* item) // (F) (D) else if (Lara.ropeLastX > 0 && Lara.ropeFrame == Lara.ropeDFrame) { RopeSwing = 0; - + Lara.ropeDFrame = Anims[ANIMATION_LARA_ROPE_SWING_FORWARD_SEMIHARD].frameBase - 15 * Lara.ropeMaxXForward / 18000 + 17 << 8; Lara.ropeFrameRate = 15 * Lara.ropeMaxXForward / 9000 + 1; } @@ -3790,7 +3788,7 @@ void lara_col_poledown(ITEM_INFO* item, COLL_INFO* coll)//171A0, 172D4 (F) // CHECK SoundEffect(SFX_LARA_ROPEDOWN_LOOP, &item->pos, 0); - item->itemFlags[2] = CLAMP(item->itemFlags[2], 0, ANGLE(90)); + item->itemFlags[2] = CLAMP(item->itemFlags[2], 0, ANGLE(90.0f)); item->pos.yPos += item->itemFlags[2] >> 8; } @@ -3926,11 +3924,11 @@ void lara_as_hangturnr(ITEM_INFO* item, COLL_INFO* coll)//16D64(<), 16E98(<) (F) item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; return; } - + Camera.targetElevation = 1820; Lara.torsoYrot = 0; Lara.torsoXrot = 0; - item->pos.yRot += ANGLE(1.5); + item->pos.yRot += ANGLE(1.5f); if (!(TrInput & IN_RIGHT)) item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; @@ -3970,7 +3968,7 @@ void lara_as_hangturnl(ITEM_INFO* item, COLL_INFO* coll)//16C40(<), 16D74(<) (F) Camera.targetElevation = 1820; Lara.torsoYrot = 0; Lara.torsoXrot = 0; - item->pos.yRot -= ANGLE(1.5); + item->pos.yRot -= ANGLE(1.5f); if (!(TrInput & IN_LEFT)) item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; @@ -4015,12 +4013,12 @@ void lara_as_monkeyr(ITEM_INFO* item, COLL_INFO* coll)//16B24(<), 16C58(<) (F) if (TrInput & IN_RSTEP) { item->goalAnimState = STATE_LARA_MONKEYSWING_RIGHT; - Camera.targetElevation = ANGLE(10); + Camera.targetElevation = ANGLE(10.0f); } else { item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; - Camera.targetElevation = ANGLE(10); + Camera.targetElevation = ANGLE(10.0f); } } @@ -4064,12 +4062,12 @@ void lara_as_monkeyl(ITEM_INFO* item, COLL_INFO* coll)//16A0C(<), 16B40(<) (F) if (TrInput & IN_LSTEP) { item->goalAnimState = STATE_LARA_MONKEYSWING_LEFT; - Camera.targetElevation = ANGLE(10); + Camera.targetElevation = ANGLE(10.0f); } else { item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; - Camera.targetElevation = ANGLE(10); + Camera.targetElevation = ANGLE(10.0f); } } @@ -4106,16 +4104,16 @@ void lara_col_monkeyswing(ITEM_INFO* item, COLL_INFO* coll)//16828, 1695C (F) if (abs(coll->midCeiling - coll->rightCeiling2) > 50) { ShiftItem(item, coll); - item->pos.yRot -= ANGLE(5); + item->pos.yRot -= ANGLE(5.0f); } } else { ShiftItem(item, coll); - item->pos.yRot += ANGLE(5); + item->pos.yRot += ANGLE(5.0f); } - Camera.targetElevation = ANGLE(10); + Camera.targetElevation = ANGLE(10.0f); MonkeySwingSnap(item, coll); } } @@ -4151,15 +4149,15 @@ void lara_as_monkeyswing(ITEM_INFO* item, COLL_INFO* coll)//1670C, 16840 (F) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(3)) - Lara.turnRate = -ANGLE(3); + if (Lara.turnRate < -ANGLE(3.0f)) + Lara.turnRate = -ANGLE(3.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(3)) - Lara.turnRate = ANGLE(3); + if (Lara.turnRate > ANGLE(3.0f)) + Lara.turnRate = ANGLE(3.0f); } } @@ -4207,12 +4205,12 @@ void lara_col_hang2(ITEM_INFO* item, COLL_INFO* coll)//163DC, 16510 (F) item->goalAnimState = STATE_LARA_MONKEYSWING_TURN_RIGHT; } else if ((TrInput & IN_ROLL) && EnableMonkeyRoll == true) - { - item->currentAnimState = STATE_LARA_MONKEYSWING_TURNAROUND; - item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; - item->animNumber = ANIMATION_LARA_MONKEY_TURN_AROUND; - item->frameNumber = Anims[ANIMATION_LARA_MONKEY_TURN_AROUND].frameBase; - } + { + item->currentAnimState = STATE_LARA_MONKEYSWING_TURNAROUND; + item->goalAnimState = STATE_LARA_MONKEYSWING_IDLE; + item->animNumber = ANIMATION_LARA_MONKEY_TURN_AROUND; + item->frameNumber = Anims[ANIMATION_LARA_MONKEY_TURN_AROUND].frameBase; + } MonkeySwingSnap(item, coll); } @@ -4292,7 +4290,7 @@ void lara_as_hang2(ITEM_INFO* item, COLL_INFO* coll)//1630C(<), 16440(<) (F) MonkeySwingFall(item); Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); } if (TrInput & IN_LOOK) @@ -4306,13 +4304,13 @@ short TestMonkeyRight(ITEM_INFO* item, COLL_INFO* coll)//161EC(<), 16320(<) (F) coll->badPos = NO_BAD_POS; coll->badNeg = -STEPUP_HEIGHT; coll->badCeiling = 0; - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); coll->slopesAreWalls = 0; coll->facing = Lara.moveAngle; coll->radius = 100; GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, 600); - + if (abs(coll->midCeiling - coll->frontCeiling) > 50) return 0; @@ -4342,19 +4340,19 @@ short TestMonkeyLeft(ITEM_INFO* item, COLL_INFO* coll)//160CC(<), 16200(<) (F) coll->badPos = NO_BAD_POS; coll->badNeg = NO_HEIGHT; coll->badCeiling = 0; - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); coll->slopesAreWalls = 0; coll->facing = Lara.moveAngle; coll->radius = 100; GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, 600); - + if (abs(coll->midCeiling - coll->frontCeiling) > 50) return 0; - + if (!coll->collType) return 1; - + oct = GetDirOctant(item->pos.yRot); if (oct) { @@ -4374,7 +4372,7 @@ short TestMonkeyLeft(ITEM_INFO* item, COLL_INFO* coll)//160CC(<), 16200(<) (F) short GetDirOctant(int rot)//160B4(<), 161E8(<) (F) { - return abs(rot) >= ANGLE(45) && abs(rot) <= ANGLE(135); + return abs(rot) >= ANGLE(45) && abs(rot) <= ANGLE(135.0f); } void MonkeySwingSnap(ITEM_INFO* item, COLL_INFO* coll)//1605C(<), 16190(<) (F) @@ -4402,7 +4400,7 @@ void MonkeySwingFall(ITEM_INFO* item)//16004(<), 16138(<) (F) void lara_col_dashdive(ITEM_INFO* item, COLL_INFO* coll)//15E5C, 15F90 (F) { if (item->speed < 0) - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); else Lara.moveAngle = item->pos.yRot; @@ -4546,22 +4544,22 @@ void lara_as_dash(ITEM_INFO* item, COLL_INFO* coll)//15A28, 15B5C (F) if (TrInput & IN_LEFT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(4)) - Lara.turnRate = -ANGLE(4); + if (Lara.turnRate < -ANGLE(4.0f)) + Lara.turnRate = -ANGLE(4.0f); - item->pos.zRot -= ANGLE(1.5); - if (item->pos.zRot < -ANGLE(16)) - item->pos.zRot = -ANGLE(16); + item->pos.zRot -= ANGLE(1.5f); + if (item->pos.zRot < -ANGLE(16.0f)) + item->pos.zRot = -ANGLE(16.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(4)) - Lara.turnRate = ANGLE(4); + if (Lara.turnRate > ANGLE(4.0f)) + Lara.turnRate = ANGLE(4.0f); - item->pos.zRot += ANGLE(1.5); - if (item->pos.zRot > ANGLE(16)) - item->pos.zRot = ANGLE(16); + item->pos.zRot += ANGLE(1.5f); + if (item->pos.zRot > ANGLE(16.0f)) + item->pos.zRot = ANGLE(16.0f); } if (!(TrInput & IN_JUMP) || item->gravityStatus) @@ -4587,7 +4585,7 @@ void lara_as_dash(ITEM_INFO* item, COLL_INFO* coll)//15A28, 15B5C (F) void lara_col_crawl2hang(ITEM_INFO* item, COLL_INFO* coll)//15770, 158A4 (F) { Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); coll->enableSpaz = false; coll->enableBaddiePush = false; @@ -4616,21 +4614,21 @@ void lara_col_crawl2hang(ITEM_INFO* item, COLL_INFO* coll)//15770, 158A4 (F) { short angle = item->pos.yRot; - if (abs(angle) > ANGLE(35)) + if (abs(angle) > ANGLE(35.0f)) { if (angle >= 10014 && angle <= 22754) { - angle = ANGLE(90); + angle = ANGLE(90.0f); } else { if (abs(angle) >= 26397) { - angle = -ANGLE(180); + angle = -ANGLE(180.0f); } else if (angle >= -22754 && angle <= -10014) { - angle = -ANGLE(90); + angle = -ANGLE(90.0f); } } } @@ -4681,11 +4679,32 @@ void lara_col_crawl2hang(ITEM_INFO* item, COLL_INFO* coll)//15770, 158A4 (F) } else { - item->pos.yPos += coll->frontFloor - bounds[2]; - item->pos.xPos += coll->shift.x; - item->pos.zPos += coll->shift.z; - } + /* item->pos.xPos += coll->shift.x; + item->pos.zPos += coll->shift.z; + @ORIGINAL_BUG: these two caused teleportation when Lara performed crawl2hang on triangulated geometry. replacing with shifts to the edges of blocks solved it*/ + + short angl = (unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f); + switch (angl) + { + case NORTH: + item->pos.zPos = (item->pos.zPos | (WALL_SIZE - 1)) - LARA_RAD; + break; + + case EAST: + item->pos.xPos = (item->pos.xPos | (WALL_SIZE - 1)) - LARA_RAD; + break; + + case SOUTH: + item->pos.zPos = (item->pos.zPos & -WALL_SIZE) + LARA_RAD; + break; + + case WEST: + item->pos.xPos = (item->pos.xPos & -WALL_SIZE) + LARA_RAD; + break; + } + } + item->pos.yPos += coll->frontFloor - bounds[2]; item->pos.yRot = angle; item->gravityStatus = true; @@ -4711,7 +4730,7 @@ void lara_col_crawlb(ITEM_INFO* item, COLL_INFO* coll)//15614, 15748 (F) coll->slopesArePits = true; coll->slopesAreWalls = true; - Lara.moveAngle = item->pos.yRot - ANGLE(180); + Lara.moveAngle = item->pos.yRot - ANGLE(180.0f); coll->facing = Lara.moveAngle; @@ -4760,21 +4779,21 @@ void lara_as_crawlb(ITEM_INFO* item, COLL_INFO* coll)//154F0, 15624 (F) Lara.torsoYrot = 0; Lara.torsoXrot = 0; - Camera.targetElevation = -ANGLE(23); + Camera.targetElevation = -ANGLE(23.0f); if (TrInput & IN_BACK) { if (TrInput & IN_RIGHT) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(3)) - Lara.turnRate = -ANGLE(3); + if (Lara.turnRate < -ANGLE(3.0f)) + Lara.turnRate = -ANGLE(3.0f); } else if (TrInput & IN_LEFT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(3)) - Lara.turnRate = ANGLE(3); + if (Lara.turnRate > ANGLE(3.0f)) + Lara.turnRate = ANGLE(3.0f); } } else @@ -4795,8 +4814,8 @@ void lara_as_all4turnr(ITEM_INFO* item, COLL_INFO* coll)//15484(<), 155B8(<) (F) coll->enableBaddiePush = 1; Lara.torsoYrot = 0; Lara.torsoXrot = 0; - Camera.targetElevation = -ANGLE(23); - item->pos.yRot += ANGLE(1.5); + Camera.targetElevation = -ANGLE(23.0f); + item->pos.yRot += ANGLE(1.5f); if (!(TrInput & IN_RIGHT)) item->goalAnimState = STATE_LARA_CRAWL_IDLE; @@ -4825,8 +4844,8 @@ void lara_as_all4turnl(ITEM_INFO* item, COLL_INFO* coll)//15390(<), 154C4(<) (F) coll->enableBaddiePush = 1; Lara.torsoYrot = 0; Lara.torsoXrot = 0; - Camera.targetElevation = -ANGLE(23); - item->pos.yRot -= ANGLE(1.5); + Camera.targetElevation = -ANGLE(23.0f); + item->pos.yRot -= ANGLE(1.5f); if (!(TrInput & IN_LEFT)) item->goalAnimState = STATE_LARA_CRAWL_IDLE; @@ -4893,7 +4912,7 @@ void lara_as_crawl(ITEM_INFO* item, COLL_INFO* coll)//150F4, 15228 (F) coll->enableSpaz = false; coll->enableBaddiePush = true; - Camera.targetElevation = -ANGLE(23); + Camera.targetElevation = -ANGLE(23.0f); if (TrInput & IN_FORWARD && (TrInput & IN_DUCK || Lara.keepDucked) @@ -4903,15 +4922,15 @@ void lara_as_crawl(ITEM_INFO* item, COLL_INFO* coll)//150F4, 15228 (F) { Lara.turnRate -= LARA_TURN_RATE; - if (Lara.turnRate < -ANGLE(3)) - Lara.turnRate = -ANGLE(3); + if (Lara.turnRate < -ANGLE(3.0f)) + Lara.turnRate = -ANGLE(3.0f); } else if (TrInput & IN_RIGHT) { Lara.turnRate += LARA_TURN_RATE; - if (Lara.turnRate > ANGLE(3)) - Lara.turnRate = ANGLE(3); + if (Lara.turnRate > ANGLE(3.0f)) + Lara.turnRate = ANGLE(3.0f); } } else @@ -4960,9 +4979,9 @@ void lara_col_all4s(ITEM_INFO* item, COLL_INFO* coll)//14B40, 14C74 (F) Lara.waterStatus != LW_WADE) { if (item->animNumber == ANIMATION_LARA_CRAWL_IDLE || - item->animNumber == ANIMATION_LARA_CROUCH_TO_CRAWL_END || - item->animNumber == ANIMATION_LARA_CRAWL_FORWARD_TO_IDLE_END_RIGHT || - item->animNumber == ANIMATION_LARA_CRAWL_FORWARD_TO_IDLE_END_LEFT) + item->animNumber == ANIMATION_LARA_CROUCH_TO_CRAWL_END || + item->animNumber == ANIMATION_LARA_CRAWL_FORWARD_TO_IDLE_END_RIGHT || + item->animNumber == ANIMATION_LARA_CRAWL_FORWARD_TO_IDLE_END_LEFT) { if (TrInput & IN_FORWARD) { @@ -4982,13 +5001,13 @@ void lara_col_all4s(ITEM_INFO* item, COLL_INFO* coll)//14B40, 14C74 (F) int x = item->pos.xPos; int z = item->pos.zPos; - item->pos.xPos += 128 * phd_sin(item->pos.yRot - ANGLE(90)) >> W2V_SHIFT; - item->pos.zPos += 128 * phd_cos(item->pos.yRot - ANGLE(90)) >> W2V_SHIFT; + item->pos.xPos += 128 * phd_sin(item->pos.yRot - ANGLE(90.0f)) >> W2V_SHIFT; + item->pos.zPos += 128 * phd_cos(item->pos.yRot - ANGLE(90.0f)) >> W2V_SHIFT; heightl = LaraFloorFront(item, item->pos.yRot, -300); - item->pos.xPos += 256 * phd_sin(item->pos.yRot + ANGLE(90)) >> W2V_SHIFT; - item->pos.zPos += 256 * phd_cos(item->pos.yRot + ANGLE(90)) >> W2V_SHIFT; + item->pos.xPos += 256 * phd_sin(item->pos.yRot + ANGLE(90.0f)) >> W2V_SHIFT; + item->pos.zPos += 256 * phd_cos(item->pos.yRot + ANGLE(90.0f)) >> W2V_SHIFT; heightr = LaraFloorFront(item, item->pos.yRot, -300); @@ -5025,22 +5044,22 @@ void lara_col_all4s(ITEM_INFO* item, COLL_INFO* coll)//14B40, 14C74 (F) if (!tmp) { - switch ((unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90)) + switch ((unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f)) { case 0: item->pos.yRot = 0; item->pos.zPos = (item->pos.zPos & 0xFFFFFC00) + 225; break; case 1: - item->pos.yRot = ANGLE(90); + item->pos.yRot = ANGLE(90.0f); item->pos.xPos = (item->pos.xPos & 0xFFFFFC00) + 225; break; case 2: - item->pos.yRot = -ANGLE(180); + item->pos.yRot = -ANGLE(180.0f); item->pos.zPos = (item->pos.zPos | 0x3FF) - 225; break; case 3: - item->pos.yRot = -ANGLE(90); + item->pos.yRot = -ANGLE(90.0f); item->pos.xPos = (item->pos.xPos | 0x3FF) - 225; break; } @@ -5089,14 +5108,13 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) } // FOR DEBUG PURPOSES UNTIL SCRIPTING IS FINISHED - if (item->animNumber == ANIMATION_LARA_CRAWL_IDLE) - { - EnableCrawlFlex1clickdown = true; - EnableCrawlFlex1clickup = true; - EnableCrawlFlex2clickE = true; - EnableCrawlFlex1clickE = true; - } - + EnableCrawlFlex1clickdown = true; + EnableCrawlFlex1clickup = true; + EnableCrawlFlex3clickE = true; + EnableCrawlFlex2clickE = true; + EnableCrawlFlex1clickE = true; + + @@ -5106,7 +5124,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) MESH_INFO* StaticMesh; PHD_VECTOR v; - if (LaraFloorFront(item, item->pos.yRot, 512) > 512 && + if (LaraFloorFront(item, item->pos.yRot, 512) > 768 && LaraCeilingFront(item, item->pos.yRot, 768, 512) != NO_HEIGHT && LaraCeilingFront(item, item->pos.yRot, 768, 512) <= 0) { @@ -5125,18 +5143,41 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) // TODO: fix ObjectOnLOS2 /*if (ObjectOnLOS2(&s, &d, &v, (PHD_VECTOR*)&StaticMesh) == 999) {*/ - item->animNumber = ANIMATION_LARA_CRAWL_JUMP_DOWN; - item->frameNumber = Anims[item->animNumber].frameBase; - item->goalAnimState = STATE_LARA_MISC_CONTROL; - item->currentAnimState = STATE_LARA_MISC_CONTROL; - Lara.gunStatus = LG_HANDS_BUSY; + item->animNumber = ANIMATION_LARA_CRAWL_JUMP_DOWN; + item->frameNumber = Anims[item->animNumber].frameBase; + item->goalAnimState = STATE_LARA_MISC_CONTROL; + item->currentAnimState = STATE_LARA_MISC_CONTROL; + Lara.gunStatus = LG_HANDS_BUSY; /*}*/ } } - else if (LaraFloorFront(item, item->pos.yRot, 256) == 512 && - LaraCeilingFront(item, item->pos.yRot, 768, 512) != NO_HEIGHT && - LaraCeilingFront(item, item->pos.yRot, 768, 512) <= 0) + else if (LaraFloorFront(item, item->pos.yRot, 256) == 768 && + LaraCeilingFront(item, item->pos.yRot, 768, 512) != NO_HEIGHT && + LaraCeilingFront(item, item->pos.yRot, 768, 512) <= 0) + { + s.x = LaraItem->pos.xPos; + s.y = LaraItem->pos.yPos - 96; + s.z = LaraItem->pos.zPos; + s.roomNumber = LaraItem->roomNumber; + + d.x = s.x + (768 * phd_sin(LaraItem->pos.yRot) >> W2V_SHIFT); + d.y = s.y + 160; + d.z = s.z + (768 * phd_cos(LaraItem->pos.yRot) >> W2V_SHIFT); + + if (LOS(&s, &d) && item->animNumber != ANIMATION_LARA_CROUCH_TO_CRAWL_BEGIN && item->animNumber != ANIMATION_LARA_CROUCH_TO_CRAWL_CONTINUE && EnableCrawlFlex3clickE == true) { + item->animNumber = ANIMATION_LARA_2_3CLICK_CRAWL_EXIT; + item->frameNumber = Anims[item->animNumber].frameBase; + item->goalAnimState = STATE_LARA_MISC_CONTROL; + item->currentAnimState = STATE_LARA_MISC_CONTROL; + Lara.gunStatus = LG_HANDS_BUSY; + + } + } + else if (LaraFloorFront(item, item->pos.yRot, 256) == 512 && + LaraCeilingFront(item, item->pos.yRot, 768, 512) != NO_HEIGHT && + LaraCeilingFront(item, item->pos.yRot, 768, 512) <= 0) + { s.x = LaraItem->pos.xPos; s.y = LaraItem->pos.yPos - 96; @@ -5156,7 +5197,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) Lara.gunStatus = LG_HANDS_BUSY; } - } + } else if (LaraFloorFront(item, item->pos.yRot, 256) == 256 && LaraCeilingFront(item, item->pos.yRot, 768, 512) != NO_HEIGHT && LaraCeilingFront(item, item->pos.yRot, 768, 512) <= 0) @@ -5180,7 +5221,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) } } - + } if ((TrInput & IN_ACTION) && (TrInput & IN_FORWARD) && item->animNumber != ANIMATION_LARA_CROUCH_TO_CRAWL_BEGIN && item->animNumber != ANIMATION_LARA_CROUCH_TO_CRAWL_CONTINUE) @@ -5194,7 +5235,6 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) item->frameNumber = Anims[item->animNumber].frameBase; item->goalAnimState = STATE_LARA_MISC_CONTROL; item->currentAnimState = STATE_LARA_MISC_CONTROL; - Lara.gunStatus = LG_HANDS_BUSY; } else if (LaraFloorFront(item, item->pos.yRot, 256) == 256 && @@ -5206,10 +5246,11 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) item->frameNumber = Anims[item->animNumber].frameBase; item->goalAnimState = STATE_LARA_MISC_CONTROL; item->currentAnimState = STATE_LARA_MISC_CONTROL; - Lara.gunStatus = LG_HANDS_BUSY; } } + Lara.gunStatus = LG_HANDS_BUSY; + if (TrInput & IN_LOOK) LookUpDown(); @@ -5222,7 +5263,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)//14970, 14A78 (F) if (item->animNumber == ANIMATION_LARA_CROUCH_TO_CRAWL_BEGIN) Lara.gunStatus = LG_HANDS_BUSY; - Camera.targetElevation = -ANGLE(23); + Camera.targetElevation = -ANGLE(23.0f); if (Rooms[LaraItem->roomNumber].flags & ENV_FLAG_WATER) { @@ -5260,8 +5301,8 @@ void lara_col_duck(ITEM_INFO* item, COLL_INFO* coll)//147C4, 148CC (F) if (coll->midFloor != NO_HEIGHT) item->pos.yPos += coll->midFloor; - if (TrInput & IN_DUCK && Lara.waterStatus != LW_WADE || - Lara.keepDucked || + if (TrInput & IN_DUCK && Lara.waterStatus != LW_WADE || + Lara.keepDucked || item->animNumber != ANIMATION_LARA_CROUCH_IDLE) { if (TrInput & IN_LEFT) @@ -5303,8 +5344,7 @@ void lara_as_duck(ITEM_INFO* item, COLL_INFO* coll)//14688, 14738 (F) GetFloor(LaraItem->pos.xPos, LaraItem->pos.yPos, LaraItem->pos.zPos, &roomNum); // FOR DEBUG PURPOSES UNTIL SCRIPTING IS FINISHED- - if (item->animNumber == ANIMATION_LARA_CROUCH_IDLE) - EnableCrouchRoll = true; + EnableCrouchRoll = true; if ((TrInput & IN_FORWARD || TrInput & IN_BACK) @@ -5328,21 +5368,21 @@ void lara_as_duck(ITEM_INFO* item, COLL_INFO* coll)//14688, 14738 (F) } } - else + else + + /*crouch roll*/ + if ((TrInput & IN_SPRINT) //maybe change this roll? or jump? + && (TrInput & IN_DUCK || Lara.keepDucked) + && Lara.gunStatus == LG_NO_ARMS + && Lara.waterStatus != LW_WADE + || Lara.waterSurfaceDist == 256 + && !(Lara.waterSurfaceDist > 256) + && EnableCrouchRoll == true) + //&& !(Rooms[roomNum].flags & ENV_FLAG_WATER)) //is this necessary?- update: nope, it's not + { + lara_as_crouch_roll(item, coll); + } - /*crouch roll*/ - if ((TrInput & IN_SPRINT) //maybe change this roll? or jump? - && (TrInput & IN_DUCK || Lara.keepDucked) - && Lara.gunStatus == LG_NO_ARMS - && Lara.waterStatus != LW_WADE - || Lara.waterSurfaceDist == 256 - && !(Lara.waterSurfaceDist > 256) - && EnableCrouchRoll == true) - //&& !(Rooms[roomNum].flags & ENV_FLAG_WATER)) //is this necessary?- update: nope, it's not - { - lara_as_crouch_roll(item, coll); - } - } void lara_as_crouch_roll(ITEM_INFO* item, COLL_INFO* coll) @@ -5382,20 +5422,20 @@ void lara_col_crouch_roll(ITEM_INFO* item, COLL_INFO* coll) item->goalAnimState = STATE_LARA_CROUCH_IDLE; return; } - - Lara.isDucked = true; - item->gravityStatus = false; - item->fallspeed = 0; - Lara.moveAngle = item->pos.yRot; - coll->facing = item->pos.yRot; - coll->badPos = STEPUP_HEIGHT; - coll->badNeg = -STEPUP_HEIGHT; - coll->badCeiling = 0; - coll->slopesAreWalls = true; - GetLaraCollisionInfo(item, coll); - ShiftItem(item, coll); - item->pos.yPos += coll->midFloor; + Lara.isDucked = true; + item->gravityStatus = false; + item->fallspeed = 0; + Lara.moveAngle = item->pos.yRot; + coll->facing = item->pos.yRot; + coll->badPos = STEPUP_HEIGHT; + coll->badNeg = -STEPUP_HEIGHT; + coll->badCeiling = 0; + coll->slopesAreWalls = true; + GetLaraCollisionInfo(item, coll); + + ShiftItem(item, coll); + item->pos.yPos += coll->midFloor; } @@ -5442,7 +5482,7 @@ void lara_as_duckr(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) coll->enableSpaz = false; if ((TrInput & (IN_DUCK | IN_LEFT)) != (IN_DUCK | IN_LEFT) || item->hitPoints <= 0) /* @ORIGINAL_BUG: the condition checks for IN_LEFT instead of IN_RIGHT */ item->goalAnimState = STATE_LARA_CROUCH_IDLE; - item->pos.yRot += ANGLE(1.5); + item->pos.yRot += ANGLE(1.5f); } void lara_as_duckl(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) @@ -5450,7 +5490,7 @@ void lara_as_duckl(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) coll->enableSpaz = false; if ((TrInput & (IN_DUCK | IN_LEFT)) != (IN_DUCK | IN_LEFT) || item->hitPoints <= 0) item->goalAnimState = STATE_LARA_CROUCH_IDLE; - item->pos.yRot -= ANGLE(1.5); + item->pos.yRot -= ANGLE(1.5f); } int TestHangSwingIn(ITEM_INFO* item, short angle)//14104, 141B4 (F) @@ -5491,7 +5531,7 @@ int TestHangSwingIn(ITEM_INFO* item, short angle)//14104, 141B4 (F) int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { - if (item->animNumber != ANIMATION_LARA_HANG_IDLE || item->animNumber != ANIMATION_LARA_HANG_FEET) + if (item->animNumber != ANIMATION_LARA_HANG_IDLE && item->animNumber != ANIMATION_LARA_HANG_FEET) return 0; if (coll->hitStatic) @@ -5505,7 +5545,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) short oldYrot = item->pos.yRot; int oldFrontFloor = coll->frontFloor; - short angle = (unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90); + short angle = (unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f); if (angle != NORTH && angle != SOUTH) { x = item->pos.xPos ^ (item->pos.xPos ^ item->pos.zPos) & 0x3FF; @@ -5521,7 +5561,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) Lara.cornerX = x; item->pos.zPos = z; Lara.cornerZ = z; - item->pos.yRot -= ANGLE(90); + item->pos.yRot -= ANGLE(90.0f); int result = -IsValidHangPos(item, coll); if (result) @@ -5555,7 +5595,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->pos.yRot = oldYrot; Lara.moveAngle = oldYrot; - if (LaraFloorFront(item, oldYrot - ANGLE(90), 116) < 0) + if (LaraFloorFront(item, oldYrot - ANGLE(90.0f), 116) < 0) return 0; switch (angle) @@ -5586,7 +5626,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) Lara.cornerX = x; item->pos.zPos = z; Lara.cornerZ = z; - item->pos.yRot += ANGLE(90); + item->pos.yRot += ANGLE(90.0f); result = IsValidHangPos(item, coll); if (!result) @@ -5646,7 +5686,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { - if (item->animNumber != ANIMATION_LARA_HANG_IDLE || item->animNumber != ANIMATION_LARA_HANG_FEET) + if (item->animNumber != ANIMATION_LARA_HANG_IDLE && item->animNumber != ANIMATION_LARA_HANG_FEET) return 0; if (coll->hitStatic) @@ -5660,7 +5700,7 @@ int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) short oldYrot = item->pos.yRot; int oldFrontFloor = coll->frontFloor; - short angle = (unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90); + short angle = (unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f); if (angle != NORTH && angle != SOUTH) { x = (item->pos.xPos & 0xFFFFFC00) - (item->pos.zPos & 0x3FF) + SECTOR(1); @@ -5676,7 +5716,7 @@ int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) Lara.cornerX = x; item->pos.zPos = z; Lara.cornerZ = z; - item->pos.yRot += ANGLE(90); + item->pos.yRot += ANGLE(90.0f); int result = -IsValidHangPos(item, coll); if (result) @@ -5710,7 +5750,7 @@ int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->pos.yRot = oldYrot; Lara.moveAngle = oldYrot; - if (LaraFloorFront(item, oldYrot + ANGLE(90), 116) < 0) + if (LaraFloorFront(item, oldYrot + ANGLE(90.0f), 116) < 0) return 0; switch (angle) @@ -5741,7 +5781,7 @@ int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) Lara.cornerX = x; item->pos.zPos = z; Lara.cornerZ = z; - item->pos.yRot -= ANGLE(90); + item->pos.yRot -= ANGLE(90.0f); result = IsValidHangPos(item, coll); if (!result) @@ -5804,7 +5844,7 @@ int IsValidHangPos(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (LaraFloorFront(item, Lara.moveAngle, 100) < 200) return 0; - short angle = (unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90); + short angle = (unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f); switch (angle) { case NORTH: @@ -5931,7 +5971,7 @@ int LaraTestHangOnClimbWall(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (item->fallspeed < 0) return 0; - switch ((unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90)) + switch ((unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f)) { case NORTH: case SOUTH: @@ -5947,7 +5987,7 @@ int LaraTestHangOnClimbWall(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) break; } - bounds = (ANIM_FRAME*) GetBoundsAccurate(item); + bounds = (ANIM_FRAME*)GetBoundsAccurate(item); if (Lara.moveAngle != item->pos.yRot) { @@ -5980,11 +6020,11 @@ void LaraSlideEdgeJump(ITEM_INFO* item, COLL_INFO* coll)//12B18, 12BC8 (F) switch (coll->collType) { case CT_LEFT: - item->pos.yRot += ANGLE(5); + item->pos.yRot += ANGLE(5.0f); break; case CT_RIGHT: - item->pos.yRot -= ANGLE(5); + item->pos.yRot -= ANGLE(5.0f); break; case CT_TOP: @@ -6039,7 +6079,7 @@ void LaraDeflectEdgeJump(ITEM_INFO* item, COLL_INFO* coll)//12904, 129B4 (F) } item->speed /= 4; - Lara.moveAngle -= ANGLE(180); + Lara.moveAngle -= ANGLE(180.0f); if (item->fallspeed <= 0) item->fallspeed = 1; @@ -6052,10 +6092,10 @@ void LaraDeflectEdgeJump(ITEM_INFO* item, COLL_INFO* coll)//12904, 129B4 (F) break; case CT_LEFT: - item->pos.yRot += ANGLE(5); + item->pos.yRot += ANGLE(5.0f); break; case CT_RIGHT: - item->pos.yRot -= ANGLE(5); + item->pos.yRot -= ANGLE(5.0f); break; case CT_CLAMP: item->pos.xPos -= (100 * 4 * phd_sin(coll->facing)) >> W2V_SHIFT; @@ -6096,7 +6136,7 @@ void lara_slide_slope(ITEM_INFO* item, COLL_INFO* coll)//127BC, 1286C (F) item->goalAnimState = STATE_LARA_RUN_FORWARD; } else - item->goalAnimState = STATE_LARA_STOP; + item->goalAnimState = STATE_LARA_STOP; StopSoundEffect(SFX_LARA_SLIPPING); } } @@ -6165,7 +6205,7 @@ int TestWall(ITEM_INFO* item, int front, int right, int down)//12550, 12600 (F) int y = item->pos.yPos + down; int z = item->pos.zPos; - short angle = (unsigned short) (item->pos.yRot + ANGLE(45)) / ANGLE(90); + short angle = (unsigned short)(item->pos.yRot + ANGLE(45.0f)) / ANGLE(90.0f); short roomNum = item->roomNumber; FLOOR_INFO* floor; @@ -6261,7 +6301,7 @@ int LaraTestClimbStance(ITEM_INFO* item, COLL_INFO* coll)//11F78, 12028 int LaraTestEdgeCatch(ITEM_INFO* item, COLL_INFO* coll, int* edge) // (F) (D) { - ANIM_FRAME* bounds = (ANIM_FRAME*) GetBoundsAccurate(item); + ANIM_FRAME* bounds = (ANIM_FRAME*)GetBoundsAccurate(item); int hdif = coll->frontFloor - bounds->MinY; if (hdif < 0 == hdif + item->fallspeed < 0) @@ -6302,12 +6342,12 @@ int LaraDeflectEdgeDuck(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (coll->collType == CT_LEFT) { ShiftItem(item, coll); - item->pos.yRot += ANGLE(2); + item->pos.yRot += ANGLE(2.0f); } else if (coll->collType == CT_RIGHT) { ShiftItem(item, coll); - item->pos.yRot -= ANGLE(2); + item->pos.yRot -= ANGLE(2.0f); } return 0; @@ -6329,12 +6369,12 @@ int LaraDeflectEdge(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (coll->collType == CT_LEFT) { ShiftItem(item, coll); - item->pos.yRot += ANGLE(5); + item->pos.yRot += ANGLE(5.0f); } else if (coll->collType == CT_RIGHT) { ShiftItem(item, coll); - item->pos.yRot -= ANGLE(5); + item->pos.yRot -= ANGLE(5.0f); } return 0; @@ -6444,13 +6484,10 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) return 0; // FOR DEBUG PURPOSES UNTIL SCRPTING IS FINISHED- - if (item->currentAnimState == STATE_LARA_STOP) - { - EnableCrawlFlex1click = true; - EnableCrawlFlex2click = true; - EnableCrawlFlex3click = true; - EnableMonkeyVault = true; - } + EnableCrawlFlex1click = true; + EnableCrawlFlex2click = true; + EnableCrawlFlex3click = true; + EnableMonkeyVault = true; if (coll->collType == CT_FRONT) { @@ -6487,26 +6524,20 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (angle & 0x1FFF) return 0; -/* - if (coll->frontFloor >= 0 && coll->frontFloor <= -256) + + if (coll->frontFloor < 0 && coll->frontFloor >= -256) { if (!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256) && EnableCrawlFlex1click == true) { item->animNumber = ANIMATION_LARA_1CLICK_CRAWL_VAULT; item->currentAnimState = STATE_LARA_GRABBING; item->frameNumber = Anims[item->animNumber].frameBase; - item->goalAnimState = STATE_LARA_STOP; + item->goalAnimState = STATE_LARA_CROUCH_IDLE; item->pos.yPos += coll->frontFloor + 256; Lara.gunStatus = LG_HANDS_BUSY; } - - else - { - return 0; - } } -*/ - if (coll->frontFloor >= -640 && coll->frontFloor <= -384) + else if (coll->frontFloor >= -640 && coll->frontFloor <= -384) { if (!slope && coll->frontFloor - coll->frontCeiling >= 0 && @@ -6525,7 +6556,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->pos.yPos += coll->frontFloor + 512; Lara.gunStatus = LG_HANDS_BUSY; } - else if((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)) && EnableCrawlFlex2click == true) + else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)) && EnableCrawlFlex2click == true) { item->animNumber = ANIMATION_LARA_2CLICK_CRAWL_VAULT; item->frameNumber = Anims[item->animNumber].frameBase; @@ -6558,7 +6589,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->pos.yPos += coll->frontFloor + 768; Lara.gunStatus = LG_HANDS_BUSY; } - else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256) && EnableCrawlFlex3click == true )) + else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256) && EnableCrawlFlex3click == true)) { item->animNumber = ANIMATION_LARA_3CLICK_CRAWL_VAULT; item->frameNumber = Anims[item->animNumber].frameBase; @@ -6641,15 +6672,18 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { if (Lara.canMonkeySwing) { - int h = (Rooms->maxceiling) - (item->pos.yPos); + FLOOR_INFO* F; + int c, h; + short roomNum = item->roomNumber; + F = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNum); + c = GetCeiling(F, item->pos.xPos, item->pos.yPos, item->pos.zPos); + h = (c)-(item->pos.yPos); if (h > 1792 || h < -1792 || abs(h) == 768) { return 0; } - - item->animNumber = ANIMATION_LARA_STAY_IDLE; item->frameNumber = Anims[ANIMATION_LARA_STAY_IDLE].frameBase; item->goalAnimState = STATE_LARA_JUMP_UP; @@ -6659,7 +6693,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) } } else - return 0; + return 0; } void LaraClimbRope(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) @@ -6670,7 +6704,7 @@ void LaraClimbRope(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) } else { - Camera.targetAngle = ANGLE(30); + Camera.targetAngle = ANGLE(30.0f); if (Lara.ropeCount) { if (!Lara.ropeFlag) @@ -6688,7 +6722,7 @@ void LaraClimbRope(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) { ROPE_STRUCT* rope = &Ropes[Lara.ropePtr]; Lara.ropeOffset = 0; - Lara.ropeDownVel = (unsigned int) (rope->meshSegment[Lara.ropeSegment + 1].y - rope->meshSegment[Lara.ropeSegment].y) >> 17; + Lara.ropeDownVel = (unsigned int)(rope->meshSegment[Lara.ropeSegment + 1].y - rope->meshSegment[Lara.ropeSegment].y) >> 17; Lara.ropeCount = 0; Lara.ropeOffset += Lara.ropeDownVel; Lara.ropeFlag = 1; @@ -6742,7 +6776,7 @@ void LaraClimbRope(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) }*/ /* -void SetLaraUnderwaterNodes()//8596C(<), 879B0(<) (F) +void SetLaraUnderwaterNodes()//8596C(<), 879B0(<) (F) { return;//not used yet PHD_VECTOR joint; @@ -6831,22 +6865,22 @@ int TestLaraSlide(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) if (abs(coll->tiltX) <= 2 && abs(coll->tiltZ) <= 2) return 0; - short angle = ANGLE(0); - if (coll->tiltX > 2) - angle = -ANGLE(90); + short angle = ANGLE(0.0f); + if (coll->tiltX > 2) + angle = -ANGLE(90.0f); else if (coll->tiltX < -2) - angle = ANGLE(90); + angle = ANGLE(90.0f); if (coll->tiltZ > 2 && coll->tiltZ > abs(coll->tiltX)) - angle = ANGLE(180); + angle = ANGLE(180.0f); else if (coll->tiltZ < -2 && -coll->tiltZ > abs(coll->tiltX)) - angle = ANGLE(0); + angle = ANGLE(0.0f); short delta = angle - item->pos.yRot; ShiftItem(item, coll); - if (delta < -ANGLE(90) || delta > ANGLE(90)) + if (delta < -ANGLE(90.0f) || delta > ANGLE(90.0f)) { if (item->currentAnimState == STATE_LARA_SLIDE_BACK && OldAngle == angle) return 1; @@ -6855,7 +6889,7 @@ int TestLaraSlide(ITEM_INFO* item, COLL_INFO* coll) // (F) (D) item->goalAnimState = STATE_LARA_SLIDE_BACK; item->currentAnimState = STATE_LARA_SLIDE_BACK; item->frameNumber = Anims[item->animNumber].frameBase; - item->pos.yRot = angle + ANGLE(180); + item->pos.yRot = angle + ANGLE(180.0f); } else { @@ -7057,6 +7091,9 @@ int TestHangFeet(ITEM_INFO* item, short angle) if (Lara.climbStatus == 1) return 0; + // EnableFeetHang = true; + + if (EnableFeetHang == false) return 0; @@ -7067,19 +7104,19 @@ int TestHangFeet(ITEM_INFO* item, short angle) FLOOR_INFO* floor; int h, c, g, m, j; - if (angle == ANGLE(180)) + if (angle == ANGLE(180.0f)) { z -= 256; } - else if (angle == -ANGLE(90)) + else if (angle == -ANGLE(90.0f)) { x -= 256; } - else if (angle == ANGLE(90)) + else if (angle == ANGLE(90.0f)) { x += 256; } - else if (angle == ANGLE(0)) + else if (angle == ANGLE(0.0f)) { z += 256; } @@ -7104,14 +7141,14 @@ int TestHangFeet(ITEM_INFO* item, short angle) } else { - if (h != NO_HEIGHT) - { - if (((g) > 0) - && ((m) < -128) - && ((j) > -72)) - return(0); - } - return(1); + if (h != NO_HEIGHT) + { + if (((g) > 0) + && ((m) < -128) + && ((j) > -72)) + return(0); + } + return(1); } } @@ -7131,7 +7168,7 @@ void lara_as_hang_feet(ITEM_INFO* item, COLL_INFO* coll) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); } void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll) { @@ -7151,41 +7188,41 @@ void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll) if (TrInput & IN_LEFT || TrInput & IN_LSTEP) { - if (CanLaraHangSideways(item, coll, -ANGLE(90))) + if (CanLaraHangSideways(item, coll, -ANGLE(90.0f))) { item->goalAnimState = STATE_LARA_HANG_FEET_SHIMMYL; return; } -/* flag = LaraHangLeftCornerTest(item, coll); - if (flag != 0) - { - if (flag <= 0) - item->goalAnimState = STATE_LARA_HANG_FEET_INCORNERL; - else - item->goalAnimState = STATE_LARA_HANG_FEET_OUTCORNERL; - return; - }*/ + /* flag = LaraHangLeftCornerTest(item, coll); + if (flag != 0) + { + if (flag <= 0) + item->goalAnimState = STATE_LARA_HANG_FEET_INCORNERL; + else + item->goalAnimState = STATE_LARA_HANG_FEET_OUTCORNERL; + return; + }*/ } if (TrInput & IN_RIGHT || TrInput & IN_RSTEP) { - if (CanLaraHangSideways(item, coll, ANGLE(90))) + if (CanLaraHangSideways(item, coll, ANGLE(90.0f))) { item->goalAnimState = STATE_LARA_HANG_FEET_SHIMMYR; return; } -/* flag = LaraHangRightCornerTest(item, coll); - if (flag != 0) - { - if (flag <= 0) - item->goalAnimState = STATE_LARA_HANG_FEET_INCORNERR; - else - item->goalAnimState = STATE_LARA_HANG_FEET_OUTCORNERR; - return; - }*/ + /* flag = LaraHangRightCornerTest(item, coll); + if (flag != 0) + { + if (flag <= 0) + item->goalAnimState = STATE_LARA_HANG_FEET_INCORNERR; + else + item->goalAnimState = STATE_LARA_HANG_FEET_OUTCORNERR; + return; + }*/ } @@ -7257,23 +7294,23 @@ void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll) } - void lara_as_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll) +void lara_as_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll) { - coll->enableBaddiePush = false; - coll->enableSpaz = false; - Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + coll->enableBaddiePush = false; + coll->enableSpaz = false; + Camera.targetAngle = 0; + Camera.targetElevation = -ANGLE(45.0f); - if (!(TrInput & (IN_RIGHT | IN_RSTEP))) - item->goalAnimState = STATE_LARA_HANG_FEET; + if (!(TrInput & (IN_RIGHT | IN_RSTEP))) + item->goalAnimState = STATE_LARA_HANG_FEET; } void lara_col_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll) { - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); coll->radius = 102; /* @ORIGINAL_BUG: this value (instead of LARA_RAD) can make Lara glitch if coll->frontType is DIAGONAL or SPLIT_TRI */ LaraHangTest(item, coll); - Lara.moveAngle = item->pos.yRot + ANGLE(90); + Lara.moveAngle = item->pos.yRot + ANGLE(90.0f); } void lara_as_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll) @@ -7282,45 +7319,45 @@ void lara_as_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll) coll->enableBaddiePush = false; coll->enableSpaz = false; Camera.targetAngle = 0; - Camera.targetElevation = -ANGLE(45); + Camera.targetElevation = -ANGLE(45.0f); if (!(TrInput & (IN_LEFT | IN_LSTEP))) item->goalAnimState = STATE_LARA_HANG_FEET; } void lara_col_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll) { - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); coll->radius = 102; /* @ORIGINAL_BUG: this value (instead of LARA_RAD) can make Lara glitch if coll->frontType is DIAGONAL or SPLIT_TRI */ LaraHangTest(item, coll); - Lara.moveAngle = item->pos.yRot - ANGLE(90); + Lara.moveAngle = item->pos.yRot - ANGLE(90.0f); } void lara_as_hang_feet_inRcorner(ITEM_INFO* item, COLL_INFO* coll) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnimFeet(item, coll, ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnimFeet(item, coll, ANGLE(90.0f), item->animNumber = ANIMATION_LARA_HANG_FEET_IN_RCORNER); } void lara_as_hang_feet_inLcorner(ITEM_INFO* item, COLL_INFO* coll) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnimFeet(item, coll, -ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnimFeet(item, coll, -ANGLE(90.0f), item->animNumber = ANIMATION_LARA_HANG_FEET_IN_LCORNER); } void lara_as_hang_feet_outRcorner(ITEM_INFO* item, COLL_INFO* coll) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnimFeet(item, coll, -ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnimFeet(item, coll, -ANGLE(90.0f), item->animNumber = ANIMATION_LARA_HANG_FEET_OUT_RCORNER); } void lara_as_hang_feet_outLcorner(ITEM_INFO* item, COLL_INFO* coll) { Camera.laraNode = 8; - Camera.targetElevation = ANGLE(33); - SetCornerAnimFeet(item, coll, ANGLE(90), + Camera.targetElevation = ANGLE(33.0f); + SetCornerAnimFeet(item, coll, ANGLE(90.0f), item->animNumber = ANIMATION_LARA_HANG_FEET_OUT_LCORNER); } @@ -7345,10 +7382,10 @@ void SetCornerAnimFeet(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip) else if (flip) { - item->animNumber = ANIMATION_LARA_HANG_FEET; - item->frameNumber = Anims[item->animNumber].frameBase + 24; - item->goalAnimState = STATE_LARA_HANG_FEET; - item->currentAnimState = STATE_LARA_HANG_FEET; + item->animNumber = ANIMATION_LARA_HANG_FEET; + item->frameNumber = Anims[item->animNumber].frameBase + 24; + item->goalAnimState = STATE_LARA_HANG_FEET; + item->currentAnimState = STATE_LARA_HANG_FEET; coll->old.x = Lara.cornerX; item->pos.xPos = Lara.cornerX;