Various Bugfixes by Headrock:

- Fixed: NPC and PC movement errors
- Fixed: Boxers in San Mona do not leave the boxing ring after the fight
- Fixed: Darren does not pay the cash after you won the boxing fight 

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@3320 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2010-02-18 19:16:57 +00:00
parent c8bf95490a
commit 53821fcf49
3 changed files with 17 additions and 4 deletions
+8
View File
@@ -83,6 +83,14 @@ void ExitBoxing( void )
pSoldier->aiData.bAlertStatus = STATUS_GREEN;
pSoldier->aiData.bUnderFire = 0;
// HEADROCK HAM 3.6: Make sure all boxers' APs have been reset to a reasonable number. Otherwise,
// the AI combatant may fail several conditions in subsequent functions, and fail to leave the ring
// as a result.
if (pSoldier->bActionPoints < (APBPConstants[AP_MAXIMUM]*6)/10)
{
pSoldier->bActionPoints = (APBPConstants[AP_MAXIMUM]*6)/10;
}
// if necessary, revive boxer so he can leave ring
if (pSoldier->stats.bLife > 0 && (pSoldier->stats.bLife < OKLIFE || pSoldier->bBreath < OKBREATH ) )
{
+6 -3
View File
@@ -6616,18 +6616,21 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou
// in the previous turn, then the player has apparently forgotten that he was moving.
// In this case, abort the character's action.
// If haven't moved since the start of last round
if (!this->bTilesMoved)
// If hasn't moved since the start of last round
// AND this function is being executed in Turn Based mode
// AND character is a player-controlled merc
if (!fFromRealTime && !this->bTilesMoved && this->bTeam == OUR_TEAM )
{
// but are doing a movement animation
if ( !( gAnimControl[ this->usAnimState ].uiFlags & ANIM_STATIONARY ) )
{
// Stop the merc
this->EVENT_StopMerc( this->sGridNo, this->ubDirection );
this->pathing.sFinalDestination = NOWHERE;
}
// Reset destination
this->pathing.sFinalDestination = this->sGridNo;
//this->pathing.sFinalDestination = this->sGridNo;
}
this->bTilesMoved = 0;
+3 -1
View File
@@ -738,8 +738,10 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
// character then didn't trigger the end of boxing record
// (and we know from the if statement above that we're
// still in a boxing state of some sort...)
TriggerEndOfBoxingRecord( NULL );
//TriggerEndOfBoxingRecord( NULL );
// HEADROCK HAM 3.6: This should trigger Darren's script
TriggerEndOfBoxingRecord( pSoldier );
}
}
}