diff --git a/Laptop/mercs Files.cpp b/Laptop/mercs Files.cpp index d4247612..f61085d2 100644 Binary files a/Laptop/mercs Files.cpp and b/Laptop/mercs Files.cpp differ diff --git a/Laptop/mercs.cpp b/Laptop/mercs.cpp index db3001a9..db6e39aa 100644 --- a/Laptop/mercs.cpp +++ b/Laptop/mercs.cpp @@ -259,7 +259,10 @@ NUMBER_TIMES_QUOTE_SAID gNumberOfTimesQuoteSaid[ MERC_NUMBER_OF_RANDOM_QUOTES { SPECK_QUOTE_PLAYER_NOT_DOING_ANYTHING_AIM_SLANDER_3, 0 }, { SPECK_QUOTE_PLAYER_NOT_DOING_ANYTHING_AIM_SLANDER_4, 0 }, +#ifdef JA2UB +#else { SPECK_QUOTE_PLAYER_NOT_DOING_ANYTHING_SPECK_SELLS_HIMSELF, 0 }, +#endif }; @@ -623,6 +626,8 @@ void HandleMercs() gfMercSiteScreenIsReDrawn = TRUE; } +#ifdef JA2UB +#else // anv: stop, Speck can't say anything because he's out of reach if( !IsSpeckComAvailable() ) { @@ -631,6 +636,7 @@ void HandleMercs() RenderMercs(); gfRedrawMercSite = TRUE; } +#endif //if Speck has something to say, say it if( gusMercVideoSpeckSpeech != MERC_VIDEO_SPECK_SPEECH_NOT_TALKING )// && !gfDoneIntroSpeech ) @@ -2330,7 +2336,6 @@ void HandlePlayerHiringMerc( UINT8 ubHiredMercID ) if( IsMercMercAvailable( BIFF ) ) StartSpeckTalking( SPECK_QUOTE_PLAYER_HIRES_STOGIE ); break; -#endif // anv: Speck is hired case SPECK_PLAYABLE: @@ -2339,6 +2344,8 @@ void HandlePlayerHiringMerc( UINT8 ubHiredMercID ) else StartSpeckTalking( SPECK_QUOTE_PLAYER_HIRES_SPECK ); break; +#endif + } } @@ -2374,7 +2381,10 @@ BOOLEAN ShouldSpeckStartTalkingDueToActionOnSubPage() HandlePlayerHiringMerc( GetMercIDFromMERCArray( gubCurMercIndex ) ); +#ifdef JA2UB +#else if( IsSpeckComAvailable() ) +#endif { #ifdef JA2UB //if it hasnt been said, say the better equipment quote @@ -2407,6 +2417,8 @@ BOOLEAN ShouldSpeckStartTalkingDueToActionOnSubPage() return( FALSE ); } +#ifdef JA2UB +#else BOOLEAN IsSpeckComAvailable() // anv: Prevent Speck from talking if his playable version is out of reach { //he's hired, travelling, dead or POW, he cant' talk @@ -2504,6 +2516,7 @@ void HandleSpeckWitnessingEmployeeDeath( SOLDIERTYPE* pSoldier ) // anv: handle } } } +#endif BOOLEAN ShouldSpeckSayAQuote() { @@ -2797,11 +2810,14 @@ BOOLEAN CanMercQuoteBeSaid( UINT32 uiQuoteID ) fRetVal = FALSE; break; +#ifdef JA2UB +#else //anv: playable Speck case SPECK_QUOTE_PLAYER_NOT_DOING_ANYTHING_SPECK_SELLS_HIMSELF: if( !IsMercMercAvailable( SPECK_PLAYABLE ) ) fRetVal = FALSE; break; +#endif #ifdef JA2UB case SPECK_QUOTE_BIFF_DEAD_WHEN_IMPORTING: @@ -2948,6 +2964,13 @@ void NewMercsAvailableAtMercSiteCallBack( ) LaptopSaveInfo.ubLastMercAvailableId = gConditionsForMercAvailability[i].uiIndex; gConditionsForMercAvailability[i].StartMercsAvailable = TRUE; +#ifdef JA2UB + AddEmail( NEW_MERCS_AT_MERC, NEW_MERCS_AT_MERC_LENGTH, SPECK_FROM_MERC, GetWorldTotalMin(), -1, -1, TYPE_EMAIL_EMAIL_EDT); + + //new mercs are available + LaptopSaveInfo.fNewMercsAvailableAtMercSite = TRUE; +#else + if( IsSpeckComAvailable() ) { AddEmail( NEW_MERCS_AT_MERC, NEW_MERCS_AT_MERC_LENGTH, SPECK_FROM_MERC, GetWorldTotalMin(), -1, -1, TYPE_EMAIL_EMAIL_EDT); @@ -2960,6 +2983,7 @@ void NewMercsAvailableAtMercSiteCallBack( ) // anv: Have speck inform player personally TacticalCharacterDialogue( FindSoldierByProfileID( SPECK_PLAYABLE, TRUE ), SPECK_PLAYABLE_QUOTE_NEW_MERCS_AVAILABLE ); } +#endif } } } diff --git a/Laptop/mercs.h b/Laptop/mercs.h index 0a8110b1..08fb5281 100644 --- a/Laptop/mercs.h +++ b/Laptop/mercs.h @@ -153,8 +153,11 @@ extern BOOLEAN gfJustHiredAMercMerc; void MakeBiffAwayForCoupleOfDays(); // anv: for playable Speck -BOOLEAN IsSpeckComAvailable(); -void HandleSpeckWitnessingEmployeeDeath( SOLDIERTYPE* pSoldier ); +#ifdef JA2UB +#else + BOOLEAN IsSpeckComAvailable(); + void HandleSpeckWitnessingEmployeeDeath( SOLDIERTYPE* pSoldier ); +#endif void InitializeNumDaysMercArrive(); diff --git a/Strategic/strategic.cpp b/Strategic/strategic.cpp index 5ad5a17f..bf24b2c4 100644 --- a/Strategic/strategic.cpp +++ b/Strategic/strategic.cpp @@ -17,8 +17,11 @@ #include "Game Clock.h" #endif -// anv: for playable Speck -#include "mercs.h" +#ifdef JA2UB +#else + // anv: for playable Speck + #include "mercs.h" +#endif StrategicMapElement StrategicMap[MAP_WORLD_X*MAP_WORLD_Y]; @@ -126,9 +129,13 @@ void HandleSoldierDeadComments( SOLDIERTYPE *pSoldier ) break; } } + +#ifdef JA2UB +#else // anv: handle Speck witnessing his employee death if( pTeamSoldier->ubProfile == SPECK_PLAYABLE && pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__MERC ) HandleSpeckWitnessingEmployeeDeath( pSoldier ); +#endif } diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index 1d5568d2..0aeb07e1 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -94,9 +94,12 @@ #include "Ja25Update.h" #endif -// anv: for playable Speck -#include "Speck Quotes.h" -#include "mercs.h" +#ifdef JA2UB +#else + // anv: for playable Speck + #include "Speck Quotes.h" + #include "mercs.h" +#endif //forward declarations of common classes to eliminate includes class OBJECTTYPE; @@ -2728,6 +2731,8 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum if( pSoldier->ubProfile == FLO ) { SetFactTrue( FACT_PC_MARRYING_DARYL_IS_FLO ); +#ifdef JA2UB +#else // anv: make Speck whine about it immediately if on team if( !IsMercDead(BIFF) && !IsSpeckComAvailable() ) { @@ -2736,6 +2741,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum LaptopSaveInfo.fSpeckSaidFloMarriedCousinQuote = TRUE; MakeBiffAwayForCoupleOfDays(); } +#endif } HandleMoraleEvent( pSoldier, MORALE_MERC_MARRIED, gWorldSectorX, gWorldSectorY, gbWorldSectorZ ); diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 1e934907..3ee44d18 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -123,8 +123,11 @@ #include "ub_config.h" #endif -// anv: for playable Speck -#include "mercs.h" +#ifdef JA2UB +#else + // anv: for playable Speck + #include "mercs.h" +#endif // OJW - 20090419 UINT8 giMAXIMUM_NUMBER_OF_PLAYER_MERCS = CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS; @@ -3362,9 +3365,12 @@ void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ) default: break; } +#ifdef JA2UB +#else // anv: handle Speck witnessing his employee death if( pTeamSoldier->ubProfile == SPECK_PLAYABLE && pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__MERC ) HandleSpeckWitnessingEmployeeDeath( pSoldier ); +#endif } } diff --git a/Tactical/Soldier Profile.cpp b/Tactical/Soldier Profile.cpp index 1fe345aa..9622e068 100644 --- a/Tactical/Soldier Profile.cpp +++ b/Tactical/Soldier Profile.cpp @@ -64,9 +64,12 @@ #include "ub_config.h" #include "XML.h" -// anv: for playable Speck -#include "Speck Quotes.h" -#include "LaptopSave.h" +#ifdef JA2UB +#else + // anv: for playable Speck + #include "Speck Quotes.h" + #include "LaptopSave.h" +#endif #include "connect.h" #ifdef JA2EDITOR @@ -2346,6 +2349,9 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier ) if ( pSoldier->ubProfile == LARRY_DRUNK ) { SetFactTrue( FACT_LARRY_CHANGED ); + +#ifdef JA2UB +#else // anv: make speck whine about it immediately if on team if( !IsSpeckComAvailable() ) { @@ -2353,6 +2359,7 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier ) // don't bring this up again LaptopSaveInfo.uiSpeckQuoteFlags |= SPECK_QUOTE__ALREADY_TOLD_PLAYER_THAT_LARRY_RELAPSED; } +#endif } else {