diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 4d2237061..ca94c5500 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -1628,8 +1628,11 @@ BOOLEAN ExecuteOverhead( ) { // Flugente: if in turnbased combat and option is selected, do not go to standing animation // By this, we wont have to spend additional APs when we continue to run - if ( gTacticalStatus.uiFlags & TURNBASED && gTacticalStatus.uiFlags & INCOMBAT && gGameExternalOptions.fNoStandingAnimAdjustInCombat && - !pSoldier->bCollapsed && !pSoldier->bBreathCollapsed ) + if ((gTacticalStatus.uiFlags & TURNBASED && gTacticalStatus.uiFlags & INCOMBAT) && + (pSoldier->flags.uiStatusFlags & SOLDIER_PC) && // sevenfm: this option works only for player + gGameExternalOptions.fNoStandingAnimAdjustInCombat && + !pSoldier->bCollapsed && + !pSoldier->bBreathCollapsed) { // Flugente: We have to decide depending on the animation we have, otherwise we can cause bugs if we do this after being hit by an explosion etc. BOOLEAN dontadjustanim = FALSE; @@ -1670,11 +1673,15 @@ BOOLEAN ExecuteOverhead( ) pSoldier->ubPendingDirection = NO_PENDING_DIRECTION; pSoldier->aiData.ubPendingAction = NO_PENDING_ACTION; } - else - pSoldier->SoldierGotoStationaryStance( ); + else + { + pSoldier->SoldierGotoStationaryStance(); + } } - else - pSoldier->SoldierGotoStationaryStance( ); + else + { + pSoldier->SoldierGotoStationaryStance(); + } } } } diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index c32f3dbb2..9d93c45e4 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -7411,7 +7411,7 @@ void SOLDIERTYPE::StopSoldier( void ) this->EVENT_StopMerc( this->sGridNo, this->ubDirection ); } - // Set desination + // Set destination this->pathing.sFinalDestination = this->sGridNo; } @@ -19403,9 +19403,16 @@ BOOLEAN SOLDIERTYPE::AIDoctorFriend( ) if ( gAnimControl[this->usAnimState].ubEndHeight == ANIM_CROUCH ) { + // sevenfm: first change to stationary + this->SoldierGotoStationaryStance(); + this->EVENT_InitNewSoldierAnim( START_AID, 0, FALSE ); } + // sevenfm: change target to stationary + if (pSoldier->stats.bLife >= OKLIFE && pSoldier->bBreath >= OKBREATH && !pSoldier->bCollapsed) + pSoldier->SoldierGotoStationaryStance(); + // AI medics always perform surgery this->fDoingSurgery = TRUE; @@ -19448,6 +19455,9 @@ BOOLEAN SOLDIERTYPE::AIDoctorSelf( ) if ( gAnimControl[this->usAnimState].ubEndHeight == ANIM_CROUCH ) { + // sevenfm: first change to stationary + this->SoldierGotoStationaryStance(); + this->EVENT_InitNewSoldierAnim( START_AID, 0, FALSE ); } diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index 9ecadd715..ac115648b 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -9515,8 +9515,8 @@ UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAi else { // Changed from DG by CJC to give higher chances of hitting with a stab or punch - // sevenfm: lowered chance for HTH - if (ubMode == HTH_MODE_PUNCH) + // sevenfm: lowered chance for boxers + if (pAttacker->flags.uiStatusFlags & SOLDIER_BOXER) iChance = 50 + (iAttRating - iDefRating) / 3; else iChance = 67 + (iAttRating - iDefRating) / 3;