mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
*********************************************************
* 2006/05/01 * * Little Alien * * Developed in VS 2003 * ********************************************************* Source: - Added militia control in tactical (can be turned on/off in ja2.ini file) - Aiming/readying gun: show in red points needed for readying gun Data: - Added new ja2.ini git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@46 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+61
-6
@@ -7,14 +7,35 @@
|
||||
|
||||
#define GAME_INI_FILE "\\Ja2.ini"
|
||||
|
||||
BOOLEAN gfStretch = FALSE;
|
||||
BOOLEAN gfStretchWinGDI = FALSE;
|
||||
BOOLEAN gfVSync = FALSE;
|
||||
|
||||
#define SET_SYSTEM "JA2 System Settings"
|
||||
#define SET_RESOLUTION "JA2 Screen Resolution Settings"
|
||||
#define SET_RAIN "JA2 Rain Settings"
|
||||
#define SET_THUNDER "JA2 Thunder Settings"
|
||||
#define SET_TURN_SPEED "JA2 Turnbased Animation Speed Settings"
|
||||
#define SET_STRATEGIC "JA2 Strategic Settings"
|
||||
#define SET_SPECIAL "JA2 Special Settings"
|
||||
#define SET_TACTICAL "JA2 Tactical Settings"
|
||||
#define SET_TACTICAL_AI "JA2 Tactical AI Settings"
|
||||
#define SET_GRAPHIC "JA2 Graphic Settings"
|
||||
#define SET_GAMEPLAY "JA2 Gameplay Settings"
|
||||
|
||||
|
||||
UINT8 gubDeadLockDelay = 15;
|
||||
UINT8 ubStraightSightRange = 13;
|
||||
|
||||
BOOLEAN gfVSync = FALSE;
|
||||
BOOLEAN gfAllowRain = FALSE;
|
||||
|
||||
UINT16 gusRainChancePerDay = 100, gusRainMinLength = 60, gusRainMaxLength = 180;
|
||||
|
||||
|
||||
extern UINT8 gubPlayerTurnSpeedUpFactor;
|
||||
extern UINT8 gubEnemyTurnSpeedUpFactor;
|
||||
extern UINT8 gubCreatureTurnSpeedUpFactor;
|
||||
extern UINT8 gubMilitiaTurnSpeedUpFactor;
|
||||
extern UINT8 gubCivTurnSpeedUpFactor;
|
||||
|
||||
extern UINT32 guiMinLightningInterval;
|
||||
extern UINT32 guiMaxLightningInterval;
|
||||
extern UINT32 guiMinDLInterval;
|
||||
@@ -24,6 +45,14 @@ extern UINT32 guiChanceToDoLightningBetweenTurns;
|
||||
|
||||
extern UINT32 guiMaxRainDrops;
|
||||
|
||||
BOOLEAN gfEnableEmergencyButton_SkipStrategicEvents = FALSE;
|
||||
BOOLEAN gfAllowMilitiaGroups = TRUE;
|
||||
BOOLEAN gfAllowReinforcments = TRUE;
|
||||
BOOLEAN gfAllowReinforcmentsOnlyInCity = FALSE;
|
||||
UINT32 guiBaseQueenPoolIncrement = 60;
|
||||
|
||||
BOOLEAN fAllowTacticalMilitiaCommand = TRUE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
CHAR8* strParamName;
|
||||
@@ -32,8 +61,6 @@ typedef struct
|
||||
UINT8 ubVarType;
|
||||
}TSetting;
|
||||
|
||||
#define SET_RAIN "JA2 Rain Settings"
|
||||
#define SET_THUNDER "JA2 Thunder Settings"
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -46,8 +73,36 @@ enum
|
||||
VT_BOOLEAN
|
||||
};
|
||||
|
||||
TSetting gpSettings[] = {
|
||||
TSetting gpSettings[] =
|
||||
{
|
||||
{"fVSync", SET_RESOLUTION, &gfVSync, VT_BOOLEAN},
|
||||
|
||||
{"PlayerTurnSpeedUpFactor", SET_TURN_SPEED, (LPVOID)&gubPlayerTurnSpeedUpFactor, VT_UINT8},
|
||||
{"EnemyTurnSpeedUpFactor", SET_TURN_SPEED, (LPVOID)&gubEnemyTurnSpeedUpFactor, VT_UINT8},
|
||||
{"CreatureTurnSpeedUpFactor", SET_TURN_SPEED, (LPVOID)&gubCreatureTurnSpeedUpFactor, VT_UINT8},
|
||||
{"MilitiaTurnSpeedUpFactor", SET_TURN_SPEED, (LPVOID)&gubMilitiaTurnSpeedUpFactor, VT_UINT8},
|
||||
{"CivTurnSpeedUpFactor", SET_TURN_SPEED, (LPVOID)&gubCivTurnSpeedUpFactor, VT_UINT8},
|
||||
|
||||
// Militia Settings
|
||||
{"AllowTacticalMilitiaCommand", SET_TACTICAL, &fAllowTacticalMilitiaCommand, VT_BOOLEAN},
|
||||
|
||||
{"AllowMilitiaMobileGroups", SET_GAMEPLAY, &gfAllowMilitiaGroups, VT_BOOLEAN},
|
||||
{"AllowReinforcments", SET_GAMEPLAY, &gfAllowReinforcments, VT_BOOLEAN},
|
||||
{"AllowReinforcmentsOnlyInCities", SET_GAMEPLAY, &gfAllowReinforcmentsOnlyInCity, VT_BOOLEAN},
|
||||
{"QueenPoolIncrementPerDifficultyLevel", SET_GAMEPLAY, &guiBaseQueenPoolIncrement, VT_UINT32},
|
||||
|
||||
|
||||
//Sight range
|
||||
{"BaseSightRange", SET_TACTICAL, &ubStraightSightRange, VT_UINT8},
|
||||
|
||||
|
||||
// Maximal search distance for grenades
|
||||
//{"MaxTossSearchDist", SET_TACTICAL_AI, &guiMaxTossSearchDist, VT_UINT32},
|
||||
|
||||
//{"fEnableEmergencyButton_NumLock_ToSkipStrategicEvents", SET_SPECIAL, &gfEnableEmergencyButton_SkipStrategicEvents, VT_BOOLEAN},
|
||||
|
||||
|
||||
|
||||
// Rain settings
|
||||
{"ALLOW_RAIN", SET_RAIN, &gfAllowRain, VT_BOOLEAN},
|
||||
{"RAIN_CHANCE_PER_DAY", SET_RAIN, &gusRainChancePerDay, VT_UINT16},
|
||||
|
||||
+10
-4
@@ -1,10 +1,16 @@
|
||||
#ifndef ___NEW_GAME_SETTINGS___
|
||||
#define ___NEW_GAME_SETTINGS___
|
||||
|
||||
extern BOOLEAN gfUseABResources;
|
||||
extern BOOLEAN gfEnableEmergencyButton_SkipStrategicEvents;
|
||||
extern UINT32 guiMaxTossSearchDist;
|
||||
extern BOOLEAN gfShowItemShadow;
|
||||
//extern BOOLEAN gfUseABResources;
|
||||
//extern BOOLEAN gfEnableEmergencyButton_SkipStrategicEvents;
|
||||
//extern UINT32 guiMaxTossSearchDist;
|
||||
//extern BOOLEAN gfShowItemShadow;
|
||||
|
||||
extern BOOLEAN gfAllowMilitiaGroups;
|
||||
extern BOOLEAN gfAllowReinforcments;
|
||||
extern BOOLEAN gfAllowReinforcmentsOnlyInCity;
|
||||
extern UINT32 guiBaseQueenPoolIncrement;
|
||||
extern UINT8 ubStraightSightRange;
|
||||
|
||||
void NSSaveSettings();
|
||||
void NSLoadSettings();
|
||||
|
||||
@@ -290,6 +290,8 @@ BOOLEAN fShowAttributeMenu = FALSE;
|
||||
BOOLEAN fShowSquadMenu = FALSE;
|
||||
BOOLEAN fShowContractMenu = FALSE;
|
||||
BOOLEAN fShowRemoveMenu = FALSE;
|
||||
BOOLEAN fShowMilitiaControlMenu = FALSE; //lal
|
||||
//BOOLEAN fShowTalkToAllMenu = FALSE;//lal
|
||||
|
||||
BOOLEAN fRebuildMoveBox = FALSE;
|
||||
|
||||
@@ -306,8 +308,17 @@ SGPPoint VehiclePosition={160,150};
|
||||
SGPPoint RepairPosition={160,150};
|
||||
SGPRect RepairDimensions={0,0,80,80};
|
||||
|
||||
SGPRect AssignmentDimensions = { 0,0, 100, 95};
|
||||
//lal
|
||||
SGPPoint MilitiaControlPosition={120,150};
|
||||
SGPRect MilitiaControlDimensions={0,0,100,95};
|
||||
|
||||
//SGPPoint TalkToAllPosition={160,150};
|
||||
//SGPRect TalkToAllDimensions={0,0,100,95};
|
||||
//lal
|
||||
|
||||
SGPPoint AssignmentPosition = { 120, 150 };
|
||||
SGPRect AssignmentDimensions = { 0,0, 100, 95};
|
||||
|
||||
SGPPoint SquadPosition ={ 160, 150 };
|
||||
SGPRect SquadDimensions ={ 0, 0, 140, 60 };
|
||||
|
||||
@@ -317,6 +328,8 @@ SGPPoint OrigSquadPosition ={ 160, 150 };
|
||||
SGPPoint OrigAssignmentPosition = { 120, 150 };
|
||||
SGPPoint OrigTrainPosition={160,150};
|
||||
SGPPoint OrigVehiclePosition={160,150};
|
||||
SGPPoint OrigMilitiaControlPosition = { 120, 150 }; //lal
|
||||
//SGPPoint OrigTalkToAllPosition = { 160, 150 };
|
||||
|
||||
//extern BOOLEAN fMapExitDueToMessageBox;
|
||||
|
||||
@@ -2205,6 +2218,65 @@ void UpdateMapScreenAssignmentPositions( void )
|
||||
}
|
||||
|
||||
|
||||
//lal
|
||||
void UpdateMapScreenMilitiaControlPositions( void )
|
||||
{
|
||||
// set the position of the pop up boxes
|
||||
SGPPoint pPoint;
|
||||
|
||||
if( guiCurrentScreen != MAP_SCREEN )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( bSelectedAssignChar == -1 )
|
||||
{
|
||||
if( gfPreBattleInterfaceActive == FALSE )
|
||||
{
|
||||
giBoxY = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if( gCharactersList[ bSelectedAssignChar ].fValid == FALSE )
|
||||
{
|
||||
if( gfPreBattleInterfaceActive == FALSE )
|
||||
{
|
||||
giBoxY = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if( gfPreBattleInterfaceActive )
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
giBoxY = ( Y_START + ( bSelectedAssignChar ) * ( Y_SIZE + 2 ) );
|
||||
}
|
||||
|
||||
MilitiaControlPosition.iY = giBoxY;
|
||||
|
||||
//TalkToAllPosition.iY = MilitiaControlPosition.iY + ( GetFontHeight( MAP_SCREEN_FONT ) + 2 )* MILCON_MENU_ALL;
|
||||
|
||||
|
||||
|
||||
if( fShowMilitiaControlMenu )
|
||||
{
|
||||
GetBoxPosition( ghMilitiaControlBox, &pPoint);
|
||||
pPoint.iY = giBoxY;
|
||||
|
||||
SetBoxPosition( ghMilitiaControlBox, pPoint );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
//lal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum )
|
||||
{
|
||||
|
||||
@@ -52,6 +52,35 @@ typedef struct FASTHELPREGION {
|
||||
#define MAP_START_KEYRING_Y 107
|
||||
#define Y_SIZE GetFontHeight(MAP_SCREEN_FONT)
|
||||
|
||||
//lal
|
||||
// militia control menu
|
||||
enum{
|
||||
MILCON_MENU_ATTACK,
|
||||
MILCON_MENU_HOLD,
|
||||
MILCON_MENU_RETREAT,
|
||||
MILCON_MENU_COMETOME,
|
||||
MILCON_MENU_GETDOWN,
|
||||
MILCON_MENU_TAKE_COVER,
|
||||
MILCON_MENU_ALL_ATTACK,
|
||||
MILCON_MENU_ALL_HOLD,
|
||||
MILCON_MENU_ALL_RETREAT,
|
||||
MILCON_MENU_ALL_COMETOME,
|
||||
MILCON_MENU_ALL_GETDOWN,
|
||||
MILCON_MENU_ALL_TAKE_COVER,
|
||||
MILCON_MENU_ALL_TAKE_ITEMS,
|
||||
MILCON_MENU_CANCEL,
|
||||
MAX_MILCON_STRING_COUNT,
|
||||
};
|
||||
|
||||
//enum{
|
||||
// TTALL_MENU_ATTACK,
|
||||
// TTALL_MENU_HOLD,
|
||||
// TTALL_MENU_RETREAT,
|
||||
// TTALL_MENU_COMETOME,
|
||||
// TTALL_MENU_GETDOWN,
|
||||
// TTALL_MENU_CANCEL,
|
||||
// MAX_TTALL_STRING_COUNT,
|
||||
//};
|
||||
|
||||
// attribute menu defines (must match NUM_TRAINABLE_STATS defines, and pAttributeMenuStrings )
|
||||
enum {
|
||||
@@ -212,6 +241,8 @@ extern BOOLEAN fShowAttributeMenu;
|
||||
extern BOOLEAN fShowSquadMenu ;
|
||||
extern BOOLEAN fShowContractMenu ;
|
||||
extern BOOLEAN fShowRemoveMenu ;
|
||||
extern BOOLEAN fShowMilitiaControlMenu ; //lal
|
||||
//extern BOOLEAN fShowTalkToAllMenu ;
|
||||
|
||||
extern BOOLEAN fFirstTimeInMapScreen;
|
||||
extern BOOLEAN fLockOutMapScreenInterface;
|
||||
@@ -261,12 +292,20 @@ extern SGPRect SquadDimensions ;
|
||||
extern SGPPoint RepairPosition;
|
||||
extern SGPRect RepairDimensions;
|
||||
|
||||
extern SGPPoint MilitiaControlPosition; //lal
|
||||
extern SGPRect MilitiaControlDimensions;
|
||||
|
||||
//extern SGPPoint TalkToAllPosition;
|
||||
//extern SGPRect TalkToAllDimensions;
|
||||
|
||||
extern SGPPoint OrigContractPosition;
|
||||
extern SGPPoint OrigAttributePosition;
|
||||
extern SGPPoint OrigSquadPosition ;
|
||||
extern SGPPoint OrigAssignmentPosition ;
|
||||
extern SGPPoint OrigTrainPosition;
|
||||
extern SGPPoint OrigVehiclePosition;
|
||||
extern SGPPoint OrigMilitiaControlPosition ; //lal
|
||||
//extern SGPPoint OrigTalkToAllPosition ;
|
||||
|
||||
// disble team info panel due to showing of battle roster
|
||||
extern BOOLEAN fDisableDueToBattleRoster;
|
||||
@@ -433,6 +472,7 @@ void RenderMapRegionBackground( void );
|
||||
|
||||
// update mapscreen assignment positions
|
||||
void UpdateMapScreenAssignmentPositions( void );
|
||||
void UpdateMapScreenMilitiaControlPositions( void );
|
||||
|
||||
// get the umber of valid mercs in the mapscreen character list
|
||||
INT32 GetNumberOfPeopleInCharacterList( void );
|
||||
|
||||
@@ -862,6 +862,7 @@ void CreateTrainingBox( void );
|
||||
void CreateMercRemoveAssignBox( void );
|
||||
|
||||
void DetermineWhichAssignmentMenusCanBeShown( void );
|
||||
void DetermineWhichMilitiaControlMenusCanBeShown( void ); //lal
|
||||
|
||||
void DetermineIfContractMenuCanBeShown( void );
|
||||
void ContractRegionBtnCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
@@ -3697,6 +3698,7 @@ UINT32 MapScreenHandle(void)
|
||||
// check which menus can be shown right now
|
||||
DetermineWhichAssignmentMenusCanBeShown( );
|
||||
|
||||
DetermineWhichMilitiaControlMenusCanBeShown( ); //lal
|
||||
// determine if contract menu can be shown
|
||||
DetermineIfContractMenuCanBeShown( );
|
||||
|
||||
@@ -6011,6 +6013,7 @@ void EndMapScreen( BOOLEAN fDuringFade )
|
||||
// clear out mouse regions for pop up boxes
|
||||
DetermineWhichAssignmentMenusCanBeShown( );
|
||||
|
||||
DetermineWhichMilitiaControlMenusCanBeShown( ); //lal
|
||||
sSelectedMilitiaTown = 0;
|
||||
CreateDestroyMilitiaPopUPRegions( );
|
||||
CreateDestroyMilitiaSectorButtons( );
|
||||
@@ -6024,6 +6027,7 @@ void EndMapScreen( BOOLEAN fDuringFade )
|
||||
ghContractBox = -1;
|
||||
|
||||
CreateDestroyAssignmentPopUpBoxes( );
|
||||
CreateDestroyMilitiaControlPopUpBoxes( ); //lal
|
||||
|
||||
// shutdown movement box
|
||||
if ( fShowMapScreenMovementList )
|
||||
|
||||
+167
-152
@@ -5520,6 +5520,7 @@ BOOLEAN HandleTalkInit( )
|
||||
INT16 sDistVisible;
|
||||
INT16 sActionGridNo;
|
||||
UINT8 ubDirection;
|
||||
UINT8 commandRange; //lal
|
||||
|
||||
// Get soldier
|
||||
if ( !GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||
@@ -5535,189 +5536,203 @@ BOOLEAN HandleTalkInit( )
|
||||
// Check if there is a guy here to talk to!
|
||||
if ( gfUIFullTargetFound )
|
||||
{
|
||||
// Is he a valid NPC?
|
||||
if ( IsValidTalkableNPC( (UINT8)gusUIFullTargetID, FALSE, TRUE , FALSE ) )
|
||||
{
|
||||
GetSoldier( &pTSoldier, gusUIFullTargetID );
|
||||
// Is he a valid NPC?
|
||||
if ( IsValidTalkableNPC( (UINT8)gusUIFullTargetID, FALSE, TRUE , FALSE ) )
|
||||
{
|
||||
GetSoldier( &pTSoldier, gusUIFullTargetID );
|
||||
|
||||
if ( pTSoldier->ubID != pSoldier->ubID )
|
||||
{
|
||||
//ATE: Check if we have good LOS
|
||||
// is he close enough to see that gridno if he turns his head?
|
||||
if ( pTSoldier->ubID != pSoldier->ubID )
|
||||
{
|
||||
if ( !(( pTSoldier->bTeam == MILITIA_TEAM ) && ( CheckIfRadioIsEquipped() )) ) //lal
|
||||
{
|
||||
//ATE: Check if we have good LOS
|
||||
// is he close enough to see that gridno if he turns his head?
|
||||
sDistVisible = DistanceVisible( pSoldier, DIRECTION_IRRELEVANT, DIRECTION_IRRELEVANT, pTSoldier->sGridNo, pTSoldier->bLevel, pTSoldier );
|
||||
|
||||
// Check LOS!
|
||||
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, pTSoldier->sGridNo, pTSoldier->bLevel, 3, (UINT8) sDistVisible, TRUE ) )
|
||||
{
|
||||
if ( pTSoldier->ubProfile != NO_PROFILE )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_LOS_TO_TALK_TARGET ], pSoldier->name, pTSoldier->name );
|
||||
}
|
||||
else
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 45 ], pSoldier->name );
|
||||
}
|
||||
return( FALSE );
|
||||
}
|
||||
}
|
||||
// Check LOS!
|
||||
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, pTSoldier->sGridNo, pTSoldier->bLevel, 3, (UINT8) sDistVisible, TRUE ) )
|
||||
{
|
||||
if ( pTSoldier->ubProfile != NO_PROFILE )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_LOS_TO_TALK_TARGET ], pSoldier->name, pTSoldier->name );
|
||||
}
|
||||
else
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 45 ], pSoldier->name );
|
||||
}
|
||||
return( FALSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( pTSoldier->bCollapsed )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 21 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
if ( pTSoldier->bCollapsed )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 21 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// If Q on, turn off.....
|
||||
if ( guiCurrentScreen == DEBUG_SCREEN )
|
||||
{
|
||||
gfExitDebugScreen = TRUE;
|
||||
// If Q on, turn off.....
|
||||
if ( guiCurrentScreen == DEBUG_SCREEN )
|
||||
{
|
||||
gfExitDebugScreen = TRUE;
|
||||
}
|
||||
|
||||
// ATE: if our own guy...
|
||||
if ( pTSoldier->bTeam == gbPlayerNum && !AM_AN_EPC( pTSoldier ) )
|
||||
{
|
||||
if ( pTSoldier->ubProfile == DIMITRI )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 32 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// ATE: if our own guy...
|
||||
if ( pTSoldier->bTeam == gbPlayerNum && !AM_AN_EPC( pTSoldier ) )
|
||||
// Randomize quote to use....
|
||||
|
||||
// If buddy had a social trait...
|
||||
if ( gMercProfiles[ pTSoldier->ubProfile ].bAttitude != ATT_NORMAL )
|
||||
{
|
||||
if ( pTSoldier->ubProfile == DIMITRI )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 32 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
ubDiceRoll = (UINT8)Random( 3 );
|
||||
}
|
||||
else
|
||||
{
|
||||
ubDiceRoll = (UINT8)Random( 2 );
|
||||
}
|
||||
|
||||
// Randomize quote to use....
|
||||
// If we are a PC, only use 0
|
||||
if ( pTSoldier->ubWhatKindOfMercAmI == MERC_TYPE__PLAYER_CHARACTER )
|
||||
{
|
||||
ubDiceRoll = 0;
|
||||
}
|
||||
|
||||
// If buddy had a social trait...
|
||||
if ( gMercProfiles[ pTSoldier->ubProfile ].bAttitude != ATT_NORMAL )
|
||||
switch( ubDiceRoll )
|
||||
{
|
||||
case 0:
|
||||
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
||||
if ( QuoteExp_PassingDislike[ pTSoldier->ubProfile ] )
|
||||
{
|
||||
ubDiceRoll = (UINT8)Random( 3 );
|
||||
ubQuoteNum = QUOTE_PASSING_DISLIKE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ubDiceRoll = (UINT8)Random( 2 );
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
}
|
||||
break;
|
||||
|
||||
// If we are a PC, only use 0
|
||||
if ( pTSoldier->ubWhatKindOfMercAmI == MERC_TYPE__PLAYER_CHARACTER )
|
||||
{
|
||||
ubDiceRoll = 0;
|
||||
}
|
||||
|
||||
switch( ubDiceRoll )
|
||||
{
|
||||
case 0:
|
||||
case 2:
|
||||
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
break;
|
||||
ubQuoteNum = QUOTE_SOCIAL_TRAIT;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
default:
|
||||
|
||||
if ( QuoteExp_PassingDislike[ pTSoldier->ubProfile ] )
|
||||
{
|
||||
ubQuoteNum = QUOTE_PASSING_DISLIKE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
ubQuoteNum = QUOTE_SOCIAL_TRAIT;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( pTSoldier->ubProfile == IRA )
|
||||
{
|
||||
ubQuoteNum = QUOTE_PASSING_DISLIKE;
|
||||
}
|
||||
|
||||
TacticalCharacterDialogue( pTSoldier, ubQuoteNum );
|
||||
|
||||
return( FALSE );
|
||||
ubQuoteNum = QUOTE_NEGATIVE_COMPANY;
|
||||
break;
|
||||
}
|
||||
|
||||
// Check distance
|
||||
uiRange = GetRangeFromGridNoDiff( pSoldier->sGridNo, usMapPos );
|
||||
|
||||
// Double check path
|
||||
if ( GetCivType( pTSoldier ) != CIV_TYPE_NA )
|
||||
if ( pTSoldier->ubProfile == IRA )
|
||||
{
|
||||
// ATE: If one is already active, just remove it!
|
||||
if ( ShutDownQuoteBoxIfActive( ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
ubQuoteNum = QUOTE_PASSING_DISLIKE;
|
||||
}
|
||||
|
||||
if ( uiRange > NPC_TALK_RADIUS )
|
||||
{
|
||||
// First get an adjacent gridno....
|
||||
sActionGridNo = FindAdjacentGridEx( pSoldier, pTSoldier->sGridNo, &ubDirection, NULL, FALSE, TRUE );
|
||||
|
||||
if ( sActionGridNo == -1 )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_PATH ] );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if ( UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, FALSE, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints ) == 0 )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_PATH ] );
|
||||
return( FALSE );
|
||||
}
|
||||
TacticalCharacterDialogue( pTSoldier, ubQuoteNum );
|
||||
|
||||
// Walk up and talk to buddy....
|
||||
gfNPCCircularDistLimit = TRUE;
|
||||
sGoodGridNo = FindGridNoFromSweetSpotWithStructData( pSoldier, pSoldier->usUIMovementMode, pTSoldier->sGridNo, (NPC_TALK_RADIUS-1), &ubNewDirection, TRUE );
|
||||
gfNPCCircularDistLimit = FALSE;
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// First calculate APs and validate...
|
||||
sAPCost = AP_TALK;
|
||||
//sAPCost += UIPlotPath( pSoldier, sGoodGridNo, NO_COPYROUTE, FALSE, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints );
|
||||
// Check distance
|
||||
uiRange = GetRangeFromGridNoDiff( pSoldier->sGridNo, usMapPos );
|
||||
|
||||
// Check AP cost...
|
||||
if ( !EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Now walkup to talk....
|
||||
pSoldier->ubPendingAction = MERC_TALK;
|
||||
pSoldier->uiPendingActionData1 = pTSoldier->ubID;
|
||||
pSoldier->ubPendingActionAnimCount = 0;
|
||||
|
||||
// WALK UP TO DEST FIRST
|
||||
EVENT_InternalGetNewSoldierPath( pSoldier, sGoodGridNo, pSoldier->usUIMovementMode , TRUE , pSoldier->fNoAPToFinishMove );
|
||||
|
||||
return( FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
sAPCost = AP_TALK;
|
||||
|
||||
// Check AP cost...
|
||||
if ( !EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// OK, startup!
|
||||
PlayerSoldierStartTalking( pSoldier, pTSoldier->ubID, FALSE );
|
||||
}
|
||||
|
||||
if ( GetCivType( pTSoldier ) != CIV_TYPE_NA )
|
||||
// Double check path
|
||||
if ( GetCivType( pTSoldier ) != CIV_TYPE_NA )
|
||||
{
|
||||
// ATE: If one is already active, just remove it!
|
||||
if ( ShutDownQuoteBoxIfActive( ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
//lal
|
||||
if ( pTSoldier->bTeam == MILITIA_TEAM )
|
||||
{
|
||||
commandRange = NPC_TALK_RADIUS*3;
|
||||
}
|
||||
else
|
||||
{
|
||||
commandRange = NPC_TALK_RADIUS;
|
||||
}
|
||||
|
||||
|
||||
if ( ( uiRange > commandRange ) && ( !CheckIfRadioIsEquipped() ) ) //lal
|
||||
{
|
||||
// First get an adjacent gridno....
|
||||
sActionGridNo = FindAdjacentGridEx( pSoldier, pTSoldier->sGridNo, &ubDirection, NULL, FALSE, TRUE );
|
||||
|
||||
if ( sActionGridNo == -1 )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_PATH ] );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if ( UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, FALSE, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints ) == 0 )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_PATH ] );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Walk up and talk to buddy....
|
||||
gfNPCCircularDistLimit = TRUE;
|
||||
sGoodGridNo = FindGridNoFromSweetSpotWithStructData( pSoldier, pSoldier->usUIMovementMode, pTSoldier->sGridNo, (NPC_TALK_RADIUS-1), &ubNewDirection, TRUE );
|
||||
gfNPCCircularDistLimit = FALSE;
|
||||
|
||||
// First calculate APs and validate...
|
||||
sAPCost = AP_TALK;
|
||||
//sAPCost += UIPlotPath( pSoldier, sGoodGridNo, NO_COPYROUTE, FALSE, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints );
|
||||
|
||||
// Check AP cost...
|
||||
if ( !EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Now walkup to talk....
|
||||
pSoldier->ubPendingAction = MERC_TALK;
|
||||
pSoldier->uiPendingActionData1 = pTSoldier->ubID;
|
||||
pSoldier->ubPendingActionAnimCount = 0;
|
||||
|
||||
// WALK UP TO DEST FIRST
|
||||
EVENT_InternalGetNewSoldierPath( pSoldier, sGoodGridNo, pSoldier->usUIMovementMode , TRUE , pSoldier->fNoAPToFinishMove );
|
||||
|
||||
return( FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
sAPCost = AP_TALK;
|
||||
|
||||
// Check AP cost...
|
||||
if ( !EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// OK, startup!
|
||||
PlayerSoldierStartTalking( pSoldier, pTSoldier->ubID, FALSE );
|
||||
}
|
||||
|
||||
if ( GetCivType( pTSoldier ) != CIV_TYPE_NA )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( TRUE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return( FALSE );
|
||||
|
||||
@@ -340,6 +340,7 @@ void GotoHeigherStance( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT16 sGridNo , BOOLEAN fCheckForPath);
|
||||
|
||||
void PopupAssignmentMenuInTactical( SOLDIERTYPE *pSoldier );
|
||||
void PopupMilitiaControlMenu( SOLDIERTYPE *pSoldier ); //lal
|
||||
|
||||
void PreventFromTheFreezingBug(SOLDIERTYPE* pSoldier);
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@ BOOLEAN gfPausedTacticalRenderFlags = FALSE;
|
||||
|
||||
// which assignment menu can be shown?
|
||||
extern void DetermineWhichAssignmentMenusCanBeShown( void );
|
||||
extern void DetermineWhichMilitiaControlMenusCanBeShown( void ); //lal
|
||||
extern void HandleAnyMercInSquadHasCompatibleStuff( UINT8 ubSquad, OBJECTTYPE *pObject, BOOLEAN fReset );
|
||||
extern BOOLEAN RemoveFlashItemSlot( ITEM_POOL *pItemPool );
|
||||
|
||||
@@ -346,6 +347,10 @@ void ResetInterface( )
|
||||
DetermineWhichAssignmentMenusCanBeShown();
|
||||
CreateDestroyAssignmentPopUpBoxes( );
|
||||
|
||||
DetermineWhichMilitiaControlMenusCanBeShown( ); //lal
|
||||
CreateDestroyMilitiaControlPopUpBoxes( );
|
||||
|
||||
|
||||
HideUICursor( );
|
||||
|
||||
ResetPhysicsTrajectoryUI( );
|
||||
|
||||
+1969
-1
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,11 @@
|
||||
#ifndef __MILITIA_CONTROL_H
|
||||
#define __MILITIA_CONTROL_H
|
||||
|
||||
#include "Types.h"
|
||||
#include "Soldier Control.h"
|
||||
#include "mousesystem.h"
|
||||
#include "Strategic Movement.h"
|
||||
|
||||
void PrepareMilitiaForTactical();
|
||||
void RemoveMilitiaFromTactical();
|
||||
void ResetMilitia();
|
||||
@@ -8,4 +13,19 @@ void HandleMilitiaPromotions();
|
||||
|
||||
extern BOOLEAN gfStrategicMilitiaChangesMade;
|
||||
|
||||
extern INT32 ghMilitiaControlBox;
|
||||
//extern INT32 ghTalkToAllBox;
|
||||
|
||||
extern BOOLEAN fFirstClickInMilitiaControlScreenMask;
|
||||
|
||||
// figure out the assignment menu pop up box positions
|
||||
void DetermineMilitiaControlBoxPositions( void );
|
||||
|
||||
// set x,y position in tactical
|
||||
void SetTacticalPopUpMilitiaControlBoxXY( SOLDIERTYPE *pSoldier );
|
||||
|
||||
BOOLEAN CreateDestroyMilitiaControlPopUpBoxes( void );
|
||||
|
||||
BOOLEAN CheckIfRadioIsEquipped( void );
|
||||
|
||||
#endif
|
||||
+2
-2
@@ -151,7 +151,7 @@ BOOLEAN IsItAllowedToRenderRain()
|
||||
{
|
||||
if( !gfAllowRain )return FALSE;
|
||||
|
||||
if( !( guiEnvWeather & WEATHER_FORECAST_THUNDERSHOWERS | WEATHER_FORECAST_SHOWERS ) )return FALSE;
|
||||
if( !( guiEnvWeather & (WEATHER_FORECAST_THUNDERSHOWERS | WEATHER_FORECAST_SHOWERS) ) )return FALSE;
|
||||
|
||||
if( guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != SHOPKEEPER_SCREEN ) return FALSE;
|
||||
|
||||
@@ -198,7 +198,7 @@ void ResetRain()
|
||||
|
||||
void GenerateRainDropsList()
|
||||
{
|
||||
guiCurrMaxAmountOfRainDrops = (UINT32)(BASE_MAXIMUM_DROPS * gbCurrentRainIntensity);
|
||||
guiCurrMaxAmountOfRainDrops = (UINT32)BASE_MAXIMUM_DROPS * gbCurrentRainIntensity;
|
||||
|
||||
pRainDrops = (TRainDrop *)MemAlloc( sizeof( TRainDrop ) * guiCurrMaxAmountOfRainDrops );
|
||||
memset( pRainDrops, 0, sizeof( TRainDrop ) * guiCurrMaxAmountOfRainDrops );
|
||||
|
||||
@@ -70,6 +70,7 @@ extern BOOLEAN fIgnoreLeftUp;
|
||||
extern UINT32 guiCurrentEvent;
|
||||
extern UINT32 guiCurrentUICursor;
|
||||
extern void DetermineWhichAssignmentMenusCanBeShown( void );
|
||||
extern void DetermineWhichMilitiaControlMenusCanBeShown( void );
|
||||
extern BOOLEAN gfIgnoreOnSelectedGuy;
|
||||
extern INT16 gsOverItemsGridNo;
|
||||
extern INT16 gsOverItemsLevel;
|
||||
@@ -1023,34 +1024,38 @@ void QueryRTRightButton( UINT32 *puiNewEvent )
|
||||
case TALKCURSOR_MODE:
|
||||
case MOVE_MODE:
|
||||
|
||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||
{
|
||||
if ( ( guiUIFullTargetFlags & OWNED_MERC ) && ( guiUIFullTargetFlags & VISIBLE_MERC ) && !( guiUIFullTargetFlags & DEAD_MERC )&&!( pSoldier ? pSoldier->uiStatusFlags & SOLDIER_VEHICLE : 0 ) )
|
||||
{
|
||||
//if( pSoldier->bAssignment >= ON_DUTY )
|
||||
{
|
||||
PopupAssignmentMenuInTactical( pSoldier );
|
||||
fClickHoldIntercepted = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
fShowAssignmentMenu = FALSE;
|
||||
CreateDestroyAssignmentPopUpBoxes( );
|
||||
DetermineWhichAssignmentMenusCanBeShown( );
|
||||
}
|
||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||
{
|
||||
if ( ( guiUIFullTargetFlags & OWNED_MERC ) && ( guiUIFullTargetFlags & VISIBLE_MERC ) && !( guiUIFullTargetFlags & DEAD_MERC )&&!( pSoldier ? pSoldier->uiStatusFlags & SOLDIER_VEHICLE : 0 ) )
|
||||
{
|
||||
//if( pSoldier->bAssignment >= ON_DUTY )
|
||||
{
|
||||
PopupAssignmentMenuInTactical( pSoldier );
|
||||
fClickHoldIntercepted = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
fShowAssignmentMenu = FALSE;
|
||||
CreateDestroyAssignmentPopUpBoxes( );
|
||||
DetermineWhichAssignmentMenusCanBeShown( );
|
||||
|
||||
fShowMilitiaControlMenu = FALSE;
|
||||
CreateDestroyMilitiaControlPopUpBoxes( );
|
||||
DetermineWhichMilitiaControlMenusCanBeShown( );
|
||||
}
|
||||
|
||||
// ATE:
|
||||
if ( !fClickHoldIntercepted )
|
||||
{
|
||||
*puiNewEvent = U_MOVEMENT_MENU;
|
||||
fClickHoldIntercepted = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// ATE:
|
||||
if ( !fClickHoldIntercepted )
|
||||
{
|
||||
*puiNewEvent = U_MOVEMENT_MENU;
|
||||
fClickHoldIntercepted = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( gCurrentUIMode == ACTION_MODE || gCurrentUIMode == TALKCURSOR_MODE )
|
||||
{
|
||||
PauseRT( FALSE );
|
||||
|
||||
@@ -93,6 +93,8 @@ UINT8 gubMilitiaTurnSpeedUpFactor = 1;
|
||||
UINT8 gubCivTurnSpeedUpFactor = 1;
|
||||
//turnspeed
|
||||
|
||||
extern BOOLEAN fAllowTacticalMilitiaCommand; //lal
|
||||
|
||||
extern INT16 DirIncrementer[8];
|
||||
|
||||
#define PALETTEFILENAME "BINARYDATA\\ja2pal.dat"
|
||||
@@ -10755,6 +10757,7 @@ void MercStealFromMerc( SOLDIERTYPE *pSoldier, SOLDIERTYPE *pTarget )
|
||||
}
|
||||
}
|
||||
|
||||
SOLDIERTYPE *pTMilitiaSoldier;
|
||||
BOOLEAN PlayerSoldierStartTalking( SOLDIERTYPE *pSoldier, UINT8 ubTargetID, BOOLEAN fValidate )
|
||||
{
|
||||
INT16 sFacingDir, sXPos, sYPos, sAPCost;
|
||||
@@ -10795,28 +10798,45 @@ BOOLEAN PlayerSoldierStartTalking( SOLDIERTYPE *pSoldier, UINT8 ubTargetID, BOOL
|
||||
// Deduct points from our guy....
|
||||
DeductPoints( pSoldier, sAPCost, 0 );
|
||||
|
||||
ConvertGridNoToXY( pTSoldier->sGridNo, &sXPos, &sYPos );
|
||||
if ( !(gTacticalStatus.uiFlags & INCOMBAT) || (gTacticalStatus.uiFlags & REALTIME) ) //lal
|
||||
{
|
||||
ConvertGridNoToXY( pTSoldier->sGridNo, &sXPos, &sYPos );
|
||||
|
||||
// Get direction from mouse pos
|
||||
sFacingDir = GetDirectionFromXY( sXPos, sYPos, pSoldier );
|
||||
// Get direction from mouse pos
|
||||
sFacingDir = GetDirectionFromXY( sXPos, sYPos, pSoldier );
|
||||
|
||||
// Set our guy facing
|
||||
SendSoldierSetDesiredDirectionEvent( pSoldier, sFacingDir );
|
||||
// Set our guy facing
|
||||
SendSoldierSetDesiredDirectionEvent( pSoldier, sFacingDir );
|
||||
|
||||
// Set NPC facing
|
||||
SendSoldierSetDesiredDirectionEvent( pTSoldier, gOppositeDirection[ sFacingDir ] );
|
||||
|
||||
// Stop our guys...
|
||||
EVENT_StopMerc( pSoldier, pSoldier->sGridNo, pSoldier->bDirection );
|
||||
// Set NPC facing
|
||||
SendSoldierSetDesiredDirectionEvent( pTSoldier, gOppositeDirection[ sFacingDir ] );
|
||||
|
||||
// Stop our guys...
|
||||
EVENT_StopMerc( pSoldier, pSoldier->sGridNo, pSoldier->bDirection );
|
||||
}
|
||||
|
||||
pTMilitiaSoldier = pTSoldier; //lal
|
||||
|
||||
//lal
|
||||
// ATE; Check for normal civs...
|
||||
if ( GetCivType( pTSoldier ) != CIV_TYPE_NA )
|
||||
{
|
||||
StartCivQuote( pTSoldier );
|
||||
return( FALSE );
|
||||
//lal
|
||||
if ( ( pTSoldier->bTeam == MILITIA_TEAM ) && ( fAllowTacticalMilitiaCommand == TRUE ) )
|
||||
{
|
||||
PopupMilitiaControlMenu( pTSoldier );
|
||||
return( FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
StartCivQuote( pTSoldier );
|
||||
return( FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Are we an EPC that is being escorted?
|
||||
if ( pTSoldier->ubProfile != NO_PROFILE && pTSoldier->ubWhatKindOfMercAmI == MERC_TYPE__EPC )
|
||||
{
|
||||
|
||||
@@ -227,6 +227,7 @@ UINT8 gubCheatLevel = STARTING_CHEAT_LEVEL;
|
||||
|
||||
|
||||
extern void DetermineWhichAssignmentMenusCanBeShown( void );
|
||||
extern void DetermineWhichMilitiaControlMenusCanBeShown( void ); //lal
|
||||
|
||||
void GetTBMouseButtonInput( UINT32 *puiNewEvent )
|
||||
{
|
||||
@@ -4985,3 +4986,16 @@ void PopupAssignmentMenuInTactical( SOLDIERTYPE *pSoldier )
|
||||
fFirstClickInAssignmentScreenMask = TRUE;
|
||||
gfIgnoreScrolling = TRUE;
|
||||
}
|
||||
|
||||
//lal
|
||||
void PopupMilitiaControlMenu( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
// do something
|
||||
fShowMilitiaControlMenu = TRUE;
|
||||
CreateDestroyMilitiaControlPopUpBoxes( );
|
||||
SetTacticalPopUpMilitiaControlBoxXY( pSoldier );
|
||||
DetermineMilitiaControlBoxPositions();
|
||||
DetermineWhichMilitiaControlMenusCanBeShown( );
|
||||
fFirstClickInMilitiaControlScreenMask = TRUE;
|
||||
gfIgnoreScrolling = TRUE;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
#include "Cursor Control.h"
|
||||
#endif
|
||||
|
||||
//aim
|
||||
extern UINT8 gubShowActionPointsInRed;
|
||||
UINT8 gpShadesFromWhiteToRed[] = {FONT_MCOLOR_WHITE, FONT_MCOLOR_DKWHITE, FONT_MCOLOR_DKGRAY, FONT_MCOLOR_DKRED, FONT_MCOLOR_RED };
|
||||
//aim
|
||||
|
||||
#define NUM_MOUSE_LEVELS 2
|
||||
|
||||
@@ -1451,6 +1455,16 @@ void DrawMouseText( )
|
||||
SetFontBackground( FONT_MCOLOR_BLACK );
|
||||
SetFontForeground( FONT_MCOLOR_WHITE );
|
||||
SetFontShadow( DEFAULT_SHADOW );
|
||||
|
||||
//aim
|
||||
if ( gubShowActionPointsInRed )
|
||||
{
|
||||
SetFontForeground( gpShadesFromWhiteToRed[ gubShowActionPointsInRed - 1 ] );
|
||||
gubShowActionPointsInRed = 0;
|
||||
}
|
||||
else
|
||||
SetFontForeground( FONT_MCOLOR_WHITE );
|
||||
//aim
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1460,6 +1474,14 @@ void DrawMouseText( )
|
||||
|
||||
if ( gfUIDisplayActionPointsBlack )
|
||||
{
|
||||
//aim
|
||||
if ( gubShowActionPointsInRed )
|
||||
{
|
||||
SetFontForeground( gpShadesFromWhiteToRed[ gubShowActionPointsInRed - 1 ] );
|
||||
gubShowActionPointsInRed = 0;
|
||||
}
|
||||
else
|
||||
//aim
|
||||
SetFontForeground( FONT_MCOLOR_WHITE );
|
||||
SetFontShadow( DEFAULT_SHADOW );
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ extern UINT16 WeaponType[MAXITEMS][30];
|
||||
|
||||
extern UINT16 Message[][STRING_LENGTH];
|
||||
extern UINT16 TeamTurnString[][STRING_LENGTH];
|
||||
extern STR16 pMilitiaControlMenuStrings[]; //lal
|
||||
//extern STR16 pTalkToAllMenuStrings[];
|
||||
extern STR16 pAssignMenuStrings[];
|
||||
extern STR16 pTrainingStrings[];
|
||||
extern STR16 pTrainingMenuStrings[];
|
||||
|
||||
Reference in New Issue
Block a user