diff --git a/GameSettings.cpp b/GameSettings.cpp index 377260e5..21f6e579 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -2701,7 +2701,7 @@ void LoadModSettings(){ gModSettings.ubMeanwhileAddMadlabSector4X = iniReader.ReadInteger("Meanwhile", "ADD_MADLAB_SECTOR_4_X", 4); gModSettings.ubMeanwhileAddMadlabSector4Y = iniReader.ReadInteger("Meanwhile", "ADD_MADLAB_SECTOR_4_Y", 5); - + gModSettings.AllMeanwhileCutscene = iniReader.ReadBoolean("Meanwhile", "ALL_MEANWHILE_CUTSCENE", TRUE); gModSettings.CreatureMeanwhileCutscene = iniReader.ReadBoolean("Meanwhile", "CREATURE_MEANWHILE_CUTSCENE", TRUE); //[End Game] diff --git a/GameSettings.h b/GameSettings.h index 7eddcede..d24c534c 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -2146,6 +2146,8 @@ typedef struct UINT8 ubEndGameVictorySectorY; INT32 iEndGameVictoryGridNo; + //enable meanwhile cutscene + BOOLEAN AllMeanwhileCutscene; BOOLEAN CreatureMeanwhileCutscene; }MOD_SETTINGS; diff --git a/Strategic/Meanwhile.cpp b/Strategic/Meanwhile.cpp index 4a6df684..e2a94fa6 100644 --- a/Strategic/Meanwhile.cpp +++ b/Strategic/Meanwhile.cpp @@ -336,7 +336,14 @@ void ScheduleMeanwhileEvent( MEANWHILE_DEFINITION *pMeanwhileDef, UINT32 uiTime gMercProfiles[ ELLIOT ].bNPCData++; } - AddStrategicEvent( EVENT_MEANWHILE, uiTime, pMeanwhileDef->ubMeanwhileID ); + // enable/disable meanwhile cutscene + if( gModSettings.AllMeanwhileCutscene ) + AddStrategicEvent( EVENT_MEANWHILE, uiTime, pMeanwhileDef->ubMeanwhileID ); + else + {// simulate that we saw cutscene and handle implications right away + memcpy( &gCurrentMeanwhileDef, &(gMeanwhileDef[pMeanwhileDef->ubMeanwhileID]), sizeof( MEANWHILE_DEFINITION ) ); + ProcessImplicationsOfMeanwhile(); + } } diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index feadbbf0..cf484088 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -9556,33 +9556,35 @@ void MAPInvClickCallback( MOUSE_REGION *pRegion, INT32 iReason ) return; } - // !!! ATTACHING/MERGING ITEMS IN MAP SCREEN IS NOT SUPPORTED !!! + // hold ALT key to swap valid attachment item instead + if ( _KeyDown(ALT) ) + { + // do nothing + } + else if ( ValidAttachment( usNewItemIndex, usOldItemIndex ) ) + { + // it's an attempt to attach; bring up the inventory panel + if ( !InItemDescriptionBox( ) ) + { + // HEADROCK HAM 5: Sector Inventory Item Desc Box no longer accessible during combat. + + if( gTacticalStatus.uiFlags & INCOMBAT ) + { + DoScreenIndependantMessageBox( New113HAMMessage[ 23 ], MSG_BOX_FLAG_OK, NULL ); + return; + } + else + { + MAPInternalInitItemDescriptionBox( &(pSoldier->inv[ uiHandPos ]), 0, pSoldier ); + } + } + return; + } + + // !!! MERGING ITEMS IN MAP SCREEN IS NOT SUPPORTED !!! if ( uiHandPos == HANDPOS || uiHandPos == SECONDHANDPOS || uiHandPos == HELMETPOS || uiHandPos == VESTPOS || uiHandPos == LEGPOS ) { - if((UsingNewInventorySystem() == true) && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE)) - { - } - //if ( ValidAttachmentClass( usNewItemIndex, usOldItemIndex ) ) - else if ( ValidAttachment( usNewItemIndex, usOldItemIndex ) ) - { - // it's an attempt to attach; bring up the inventory panel - if ( !InItemDescriptionBox( ) ) - { - // HEADROCK HAM 5: Sector Inventory Item Desc Box no longer accessible during combat. - - if( gTacticalStatus.uiFlags & INCOMBAT ) - { - DoScreenIndependantMessageBox( New113HAMMessage[ 23 ], MSG_BOX_FLAG_OK, NULL ); - return; - } - else - { - MAPInternalInitItemDescriptionBox( &(pSoldier->inv[ uiHandPos ]), 0, pSoldier ); - } - } - return; - } - else if ( ValidMerge( usNewItemIndex, usOldItemIndex ) ) + if ( ValidMerge( usNewItemIndex, usOldItemIndex ) ) { // bring up merge requestor // TOO PAINFUL TO DO!! --CC