From 840f73eb1cd07ab9182249c91f3d9b4517c36843 Mon Sep 17 00:00:00 2001 From: lalien Date: Sat, 17 Jun 2006 20:34:23 +0000 Subject: [PATCH] - re enabled strategic event NPC_ACTION_SEND_SOLDIERS_TO_DRASSEN and increased amount of troops git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@255 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameVersion.cpp | 2 +- JA2.vcproj | 4 +- Strategic/Meanwhile.cpp | 3 +- Strategic/Strategic AI.cpp | 113 ++++++++++++++++++++++++++++------ Tactical/Air Raid.cpp | 2 +- Tactical/Turn Based Input.cpp | 8 +++ 6 files changed, 107 insertions(+), 25 deletions(-) diff --git a/GameVersion.cpp b/GameVersion.cpp index ab00b91c..f68e2e1b 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -23,7 +23,7 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - INT16 zVersionLabel[256] = { L"Release v1.13.253" }; + INT16 zVersionLabel[256] = { L"Release v1.13.254" }; #endif diff --git a/JA2.vcproj b/JA2.vcproj index bc2c520a..ea1796f8 100644 --- a/JA2.vcproj +++ b/JA2.vcproj @@ -43,7 +43,7 @@ pEnemyGroup->ubIntention = STAGE; + // gGarrisonGroup[ SectorInfo[ ubSectorID ].ubGarrisonID ].ubPendingGroupID = pGroup->ubGroupID; + //} + //else + //{ //this should never happen (but if it did, then this is the best way to deal with it). + // pGroup->pEnemyGroup->ubIntention = PURSUIT; + //} + + //Madd: unlimited reinforcements in Insane + //if ( gGameOptions.ubDifficultyLevel < DIF_LEVEL_INSANE ) + // giReinforcementPool -= ubNumSoldiers; + + //giReinforcementPool = max( giReinforcementPool, 0 ); + + //MoveSAIGroupToSector( &pGroup, ubSectorID, EVASIVE, pGroup->pEnemyGroup->ubIntention ); + + + ubSectorID = SEC_D13; + ubNumSoldiers = (UINT8)( gubMinEnemyGroupSize + gGameOptions.ubDifficultyLevel * 3); - pGroup = CreateNewEnemyGroupDepartingFromSector( SEC_P3, 0, ubNumSoldiers, 0 ); + //pGroup = CreateNewEnemyGroupDepartingFromSector( SEC_P3, 0, ubNumSoldiers, 0 ); + + pGroup0 = CreateNewEnemyGroupDepartingFromSector( SEC_H13, 0, ubNumSoldiers, 0 ); + pGroup1 = CreateNewEnemyGroupDepartingFromSector( SEC_H13, 0, ubNumSoldiers, 0 ); + pGroup2 = CreateNewEnemyGroupDepartingFromSector( SEC_H13, 0, ubNumSoldiers, 0 ); + pGroup3 = CreateNewEnemyGroupDepartingFromSector( SEC_H13, 0, ubNumSoldiers, 0 ); + + + //pGroup = CreateNewEnemyGroupDepartingFromSector( ubSector-16, 0, 11, 5 ); + //pGroup->ubNextX = (UINT8)gsSelSectorX; + //pGroup->ubNextY = (UINT8)gsSelSectorY; + //pGroup->uiTraverseTime = 10; + //pGroup->pEnemyGroup->ubIntention = ASSAULT; + //SetGroupArrivalTime( pGroup, uiWorldMin + 10 ); + //pGroup->ubMoveType = ONE_WAY; + //pGroup->fDebugGroup = TRUE; + //AddStrategicEvent( EVENT_GROUP_ARRIVAL, pGroup->uiArrivalTime, pGroup->ubGroupID ); + + + //pGroup0->uiTraverseTime = 1000; + //pGroup1->uiTraverseTime = 10; + //pGroup2->uiTraverseTime = 10; + //pGroup3->uiTraverseTime = 10; + + //SetGroupArrivalTime( pGroup0, GetWorldTotalMin() + 1000 ); + //SetGroupArrivalTime( pGroup1, GetWorldTotalMin() + 10 ); + //SetGroupArrivalTime( pGroup2, GetWorldTotalMin() + 10 ); + //SetGroupArrivalTime( pGroup3, GetWorldTotalMin() + 10 ); + + //AddStrategicEvent( EVENT_GROUP_ARRIVAL, pGroup0->uiArrivalTime, pGroup0->ubGroupID ); + //AddStrategicEvent( EVENT_GROUP_ARRIVAL, pGroup1->uiArrivalTime, pGroup1->ubGroupID ); + //AddStrategicEvent( EVENT_GROUP_ARRIVAL, pGroup2->uiArrivalTime, pGroup2->ubGroupID ); + //AddStrategicEvent( EVENT_GROUP_ARRIVAL, pGroup3->uiArrivalTime, pGroup3->ubGroupID ); + if( !gGarrisonGroup[ SectorInfo[ ubSectorID ].ubGarrisonID ].ubPendingGroupID ) { - pGroup->pEnemyGroup->ubIntention = STAGE; - gGarrisonGroup[ SectorInfo[ ubSectorID ].ubGarrisonID ].ubPendingGroupID = pGroup->ubGroupID; + //pGroup->pEnemyGroup->ubIntention = STAGE; + //gGarrisonGroup[ SectorInfo[ ubSectorID ].ubGarrisonID ].ubPendingGroupID = pGroup->ubGroupID; + + pGroup0->pEnemyGroup->ubIntention = STAGE; + pGroup1->pEnemyGroup->ubIntention = STAGE; + pGroup2->pEnemyGroup->ubIntention = STAGE; + pGroup3->pEnemyGroup->ubIntention = REINFORCEMENTS; + + gGarrisonGroup[ SectorInfo[ ubSectorID ].ubGarrisonID ].ubPendingGroupID = pGroup3->ubGroupID; + } else { //this should never happen (but if it did, then this is the best way to deal with it). - pGroup->pEnemyGroup->ubIntention = PURSUIT; + //pGroup->pEnemyGroup->ubIntention = PURSUIT; + pGroup0->pEnemyGroup->ubIntention = PURSUIT; + pGroup1->pEnemyGroup->ubIntention = PURSUIT; + pGroup2->pEnemyGroup->ubIntention = PURSUIT; + pGroup3->pEnemyGroup->ubIntention = PURSUIT; } //Madd: unlimited reinforcements in Insane - if ( gGameOptions.ubDifficultyLevel < DIF_LEVEL_INSANE ) - giReinforcementPool -= ubNumSoldiers; + //if ( gGameOptions.ubDifficultyLevel < DIF_LEVEL_INSANE ) + // giReinforcementPool -= ubNumSoldiers; giReinforcementPool = max( giReinforcementPool, 0 ); - MoveSAIGroupToSector( &pGroup, ubSectorID, EVASIVE, pGroup->pEnemyGroup->ubIntention ); + //MoveSAIGroupToSector( &pGroup, ubSectorID, EVASIVE, pGroup->pEnemyGroup->ubIntention ); + MoveSAIGroupToSector( &pGroup0, SEC_D14, EVASIVE, pGroup0->pEnemyGroup->ubIntention ); + MoveSAIGroupToSector( &pGroup1, SEC_E13, EVASIVE, pGroup1->pEnemyGroup->ubIntention ); + MoveSAIGroupToSector( &pGroup2, SEC_D12, EVASIVE, pGroup2->pEnemyGroup->ubIntention ); + MoveSAIGroupToSector( &pGroup3, SEC_D14, EVASIVE, pGroup3->pEnemyGroup->ubIntention ); break; diff --git a/Tactical/Air Raid.cpp b/Tactical/Air Raid.cpp index 36900754..55b81465 100644 --- a/Tactical/Air Raid.cpp +++ b/Tactical/Air Raid.cpp @@ -1254,7 +1254,7 @@ BOOLEAN InAirRaid( ) BOOLEAN HandleAirRaidEndTurn( UINT8 ubTeam ) { - return( TRUE ); + return( TRUE ); // lal bugfix air raid hangs (remove to enable air raid) if ( !gfInAirRaid ) { diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 6142cd4b..d7c8d1a1 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -2578,6 +2578,14 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_GL_HIGH_ANGLE ] ); } break; + + case 'Q': + { + ExecuteStrategicAIAction( NPC_ACTION_SEND_SOLDIERS_TO_DRASSEN, 13, 4 ); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Queen attack" ); + } + break; + case 'G': if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] ) {