mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Removed option AI_DECISION_INFO.
Added quest debug logging to Logs\QuestInfo.txt git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9177 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2349,7 +2349,6 @@ void LoadGameExternalOptions()
|
||||
gGameExternalOptions.fAITacticalRetreat = iniReader.ReadBoolean("Tactical AI Settings", "AI_TACTICAL_RETREAT", FALSE);
|
||||
gGameExternalOptions.fAIMovementMode = iniReader.ReadBoolean("Tactical AI Settings", "AI_MOVEMENT_MODE", TRUE);
|
||||
gGameExternalOptions.fAIPathTweaks = iniReader.ReadBoolean("Tactical AI Settings", "AI_PATH_TWEAKS", TRUE);
|
||||
gGameExternalOptions.fAIDecisionInfo = iniReader.ReadBoolean("Tactical AI Settings", "AI_DECISION_INFO", FALSE);
|
||||
gGameExternalOptions.fAIShootUnseen = iniReader.ReadBoolean("Tactical AI Settings", "AI_SHOOT_UNSEEN", FALSE);
|
||||
gGameExternalOptions.fAISafeSuppression = iniReader.ReadBoolean("Tactical AI Settings", "AI_SAFE_SUPPRESSION", TRUE);
|
||||
|
||||
|
||||
@@ -1578,7 +1578,6 @@ typedef struct
|
||||
BOOLEAN fAITacticalRetreat;
|
||||
BOOLEAN fAIMovementMode;
|
||||
BOOLEAN fAIPathTweaks;
|
||||
BOOLEAN fAIDecisionInfo;
|
||||
BOOLEAN fAIShootUnseen;
|
||||
BOOLEAN fAISafeSuppression;
|
||||
|
||||
|
||||
@@ -6847,6 +6847,8 @@ BOOLEAN LoadSavedGame( int ubSavedGameID )
|
||||
fclose( fp_timelog );
|
||||
#endif
|
||||
|
||||
DebugQuestInfo("\n--------- Game loaded ---------");
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
|
||||
@@ -538,6 +538,8 @@ void ShutdownStrategicLayer()
|
||||
ClearTacticalMessageQueue();
|
||||
}
|
||||
|
||||
extern void DebugQuestInfo(STR szOutput);
|
||||
|
||||
BOOLEAN InitNewGame( BOOLEAN fReset )
|
||||
{
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"InitNewGame");
|
||||
@@ -833,8 +835,6 @@ fFirstTimeInMapScreen = TRUE;
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
|
||||
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"InitNewGame done");
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
@@ -3584,8 +3584,11 @@ static int l_gubBoxerID(lua_State *L)
|
||||
UINT8 val = lua_tointeger( L, 1 );
|
||||
UINT8 val2 = lua_tointeger( L, 2 );
|
||||
|
||||
if ( val <= 2 )
|
||||
if (val <= 2)
|
||||
{
|
||||
gubBoxerID[val] = val2;
|
||||
DebugQuestInfo(String("Lua: set gubBoxerID[%d] %d", val, gubBoxerID[val]));
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -8195,6 +8198,7 @@ static int l_SetgfBoxerFought (lua_State *L)
|
||||
BOOLEAN Bool = lua_toboolean( L, 2 );
|
||||
|
||||
gfBoxerFought[id] = Bool;
|
||||
DebugQuestInfo(String("lua: set gfBoxerFought[%d] %d ", id, Bool));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -8203,7 +8207,10 @@ static int l_SetgfBoxerFought (lua_State *L)
|
||||
static int l_SetgfBoxersResting(lua_State *L)
|
||||
{
|
||||
if (lua_gettop(L))
|
||||
{
|
||||
gfBoxersResting = lua_toboolean(L, 1);
|
||||
DebugQuestInfo(String("lua: set gfBoxersResting %d", gfBoxersResting));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -8211,7 +8218,10 @@ static int l_SetgfBoxersResting(lua_State *L)
|
||||
static int l_SetgubBoxersRests(lua_State *L)
|
||||
{
|
||||
if (lua_gettop(L))
|
||||
{
|
||||
gubBoxersRests = lua_tointeger(L, 1);
|
||||
DebugQuestInfo(String("lua: set gubBoxersRests %d ", gubBoxersRests));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -10605,6 +10615,7 @@ static int l_ResetBoxers( lua_State *L )
|
||||
gubBoxerID[i] = NOBODY;
|
||||
// sevenfm: keep gfBoxerFought[] unchanged as it will be reset every day at 16:00 by HourlyQuestUpdate(), HourlyUpdate.lua
|
||||
//gfBoxerFought[i] = FALSE;
|
||||
DebugQuestInfo(String("Lua: reset boxer gubBoxerID[%d] %d", i, gubBoxerID[i]));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
+10
-1
@@ -70,17 +70,19 @@ extern void GuaranteeAtLeastXItemsOfIndex( UINT8 ubArmsDealer, UINT16 usItemInde
|
||||
|
||||
extern void GiveQuestRewardPoint( INT16 sQuestSectorX, INT16 sQuestsSectorY, INT8 bExpReward, UINT8 bException );
|
||||
|
||||
extern void DebugQuestInfo(STR szOutput);
|
||||
|
||||
void SetFactTrue( UINT16 usFact )
|
||||
{
|
||||
// This function is here just for control flow purposes (debug breakpoints)
|
||||
// and code is more readable that way
|
||||
|
||||
// must intercept when Jake is first trigered to start selling fuel
|
||||
// must intercept when Jake is first triggered to start selling fuel
|
||||
if ( ( usFact == FACT_ESTONI_REFUELLING_POSSIBLE ) && ( CheckFact( usFact, 0 ) == FALSE ) )
|
||||
{
|
||||
// give him some gas...
|
||||
GuaranteeAtLeastXItemsOfIndex( ARMS_DEALER_JAKE, GAS_CAN, ( UINT8 ) ( 4 + Random( 3 ) ) );
|
||||
DebugQuestInfo(String("guarantee X items of %d (GAS_CAN) for dealer %d (ARMS_DEALER_JAKE)", GAS_CAN, ARMS_DEALER_JAKE));
|
||||
}
|
||||
|
||||
gubFact[usFact] = TRUE;
|
||||
@@ -89,6 +91,7 @@ void SetFactTrue( UINT16 usFact )
|
||||
void SetFactFalse( UINT16 usFact )
|
||||
{
|
||||
gubFact[usFact] = FALSE;
|
||||
DebugQuestInfo(String("fact %d false", usFact));
|
||||
}
|
||||
|
||||
BOOLEAN CheckForNewShipment( void )
|
||||
@@ -1381,6 +1384,7 @@ UINT8 GetFact( UINT16 usFact )
|
||||
|
||||
void StartQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY )
|
||||
{
|
||||
DebugQuestInfo(String("start quest %d sector %d %d", ubQuest, sSectorX, sSectorY));
|
||||
InternalStartQuest( ubQuest, sSectorX, sSectorY, TRUE );
|
||||
}
|
||||
|
||||
@@ -1409,6 +1413,7 @@ void InternalStartQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY, BOOLEAN
|
||||
|
||||
void EndQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY )
|
||||
{
|
||||
DebugQuestInfo(String("end quest %d sector %d %d", ubQuest, sSectorX, sSectorY));
|
||||
InternalEndQuest( ubQuest, sSectorX, sSectorY, TRUE );
|
||||
}
|
||||
|
||||
@@ -1565,6 +1570,8 @@ void InitQuestEngine()
|
||||
memset(gubQuest, 0, sizeof(gubQuest));
|
||||
memset(gubFact, 0, sizeof(gubFact));
|
||||
|
||||
DebugQuestInfo(String("\nInit Quest Engine"));
|
||||
|
||||
// semi-hack to make the letter quest start right away
|
||||
CheckForQuests( 1 );
|
||||
|
||||
@@ -1583,6 +1590,8 @@ void InitQuestEngine()
|
||||
gfBoxersResting = FALSE;
|
||||
|
||||
InitLUAModderData( );
|
||||
|
||||
DebugQuestInfo(String("reset gubBoxersRests 0, gubBoxingMatchesWon 0, gfBoxersResting FALSE gubCambriaMedicalObjects %d", gubCambriaMedicalObjects));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3162,7 +3162,7 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
|
||||
//Moa: removed this function and replaced by the handling function.
|
||||
//SectorInventoryCooldownFunctions(sSectorX, sSectorY, bSectorZ);
|
||||
//moved from SectorInventoryCooldownFunctions. Invisible items are handled as well.
|
||||
//Since we have allready loaded the items previously we can use the globals here.
|
||||
//Since we have already loaded the items previously we can use the globals here.
|
||||
HandleSectorCooldownFunctions( sSectorX, sSectorY, (INT8)bSectorZ, gWorldItems, guiNumWorldItems, TRUE );
|
||||
//Update LastTimePlayerWasInSector
|
||||
SetLastTimePlayerWasInSector( );
|
||||
@@ -3170,6 +3170,8 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
|
||||
//Save to tempfile
|
||||
SaveWorldItemsToTempItemFile( sSectorX, sSectorY, (INT8)bSectorZ, guiNumWorldItems, gWorldItems );
|
||||
|
||||
DebugQuestInfo(String("--- Enter Sector %s%s Level %d ---", pVertStrings[sSectorY], pHortStrings[sSectorX], bSectorZ));
|
||||
|
||||
return TRUE; //because the map was loaded.
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +145,7 @@ void EndBoxingMatch( SOLDIERTYPE * pLoser )
|
||||
SetBoxingState( WON_ROUND );
|
||||
gfLastBoxingMatchWonByPlayer = TRUE;
|
||||
gubBoxingMatchesWon++;
|
||||
DebugQuestInfo(String("EndBoxingMatch: gubBoxingMatchesWon %d gfLastBoxingMatchWonByPlayer %d", gubBoxingMatchesWon, gfLastBoxingMatchWonByPlayer));
|
||||
}
|
||||
TriggerNPCRecord( DARREN, 22 );
|
||||
}
|
||||
@@ -303,6 +304,7 @@ void CountPeopleInBoxingRingAndDoActions( void )
|
||||
// start match!
|
||||
SetBoxingState(BOXING);
|
||||
gfLastBoxingMatchWonByPlayer = FALSE;
|
||||
DebugQuestInfo(String("Start Match: gfLastBoxingMatchWonByPlayer %d", gfLastBoxingMatchWonByPlayer));
|
||||
|
||||
#ifdef JA2TESTVERSION
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Boxer APs %d %d", pInRing[0]->bActionPoints, pInRing[1]->bActionPoints );
|
||||
@@ -347,6 +349,7 @@ BOOLEAN CheckOnBoxers( void )
|
||||
{
|
||||
// no weapon and not a civilian so this guy is a boxer
|
||||
gubBoxerID[ uiLoop ] = ubID;
|
||||
DebugQuestInfo(String("CheckOnBoxers: set gubBoxerID[%d] %d", ubID, gubBoxerID[uiLoop]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -401,6 +404,7 @@ BOOLEAN PickABoxer( void )
|
||||
CancelAIAction( pBoxer, TRUE );
|
||||
RESETTIMECOUNTER( pBoxer->timeCounters.AICounter, 0 );
|
||||
gfBoxerFought[ uiLoop ] = TRUE;
|
||||
DebugQuestInfo(String("PickABoxer: set gfBoxerFought[%d] %d", uiLoop, gfBoxerFought[uiLoop]));
|
||||
// improve stats based on the # of rests these guys have had
|
||||
pBoxer->stats.bStrength = __min( 100, pBoxer->stats.bStrength + gubBoxersRests * 5 );
|
||||
pBoxer->stats.bDexterity = __min( 100, pBoxer->stats.bDexterity + gubBoxersRests * 5 );
|
||||
@@ -529,6 +533,8 @@ void BoxingMovementCheck( SOLDIERTYPE * pSoldier )
|
||||
|
||||
void SetBoxingState( INT8 bNewState )
|
||||
{
|
||||
DebugQuestInfo(String("SetBoxingState: %d", bNewState));
|
||||
|
||||
if ( gTacticalStatus.bBoxingState == NOT_BOXING )
|
||||
{
|
||||
if ( bNewState != NOT_BOXING )
|
||||
@@ -549,6 +555,7 @@ void SetBoxingState( INT8 bNewState )
|
||||
// set one boxer to be set as boxed so that the game will allow another
|
||||
// fight to occur
|
||||
gfBoxerFought[ 0 ] = TRUE;
|
||||
DebugQuestInfo(String("SetBoxingState: set one boxer to be set as boxed so that the game will allow another, gfBoxerFought[ 0 ] %d", gfBoxerFought[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,6 +275,8 @@ enum
|
||||
|
||||
BOOLEAN InitiateConversation( SOLDIERTYPE *pDestSoldier, SOLDIERTYPE *pSrcSoldier, INT8 bApproach, UINT32 uiApproachData )
|
||||
{
|
||||
DebugQuestInfo(String("InitiateConversation: from [%d] to [%d] %d data %d", pSrcSoldier->ubID, pDestSoldier->ubID, bApproach, uiApproachData));
|
||||
|
||||
// ATE: OK, let's check the status of the Q
|
||||
// If it has something in it....delay this until after....
|
||||
if ( DialogueQueueIsEmptyOrSomebodyTalkingNow( ) )
|
||||
@@ -1404,6 +1406,7 @@ BOOLEAN NPCTriggerNPC( UINT8 ubTargetNPC, UINT8 ubTargetRecord, UINT8 ubTargetAp
|
||||
{
|
||||
//CHECKF( SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_TRIGGER_NPC, ubTargetNPC, ubTargetRecord, fShowDialogueMenu, gTalkPanel.iFaceIndex, DIALOGUE_NPC_UI ) != FALSE );
|
||||
CHECKF( SpecialCharacterDialogueEventWithExtraParam( DIALOGUE_SPECIAL_EVENT_TRIGGER_NPC, ubTargetNPC, ubTargetRecord, fShowDialogueMenu, ubTargetApproach, gTalkPanel.iFaceIndex, DIALOGUE_NPC_UI ) != FALSE );
|
||||
DebugQuestInfo(String("NPCTriggerNPC: <%d>, record %d, %d, display %d", ubTargetNPC, ubTargetRecord, ubTargetApproach, fShowDialogueMenu));
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
@@ -1412,6 +1415,7 @@ BOOLEAN NPCTriggerNPC( UINT8 ubTargetNPC, UINT8 ubTargetRecord, UINT8 ubTargetAp
|
||||
BOOLEAN NPCGotoGridNo( UINT8 ubTargetNPC, INT32 usGridNo, UINT8 ubRecordNum )
|
||||
{
|
||||
CHECKF( SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_GOTO_GRIDNO, ubTargetNPC, usGridNo, ubRecordNum, gTalkPanel.iFaceIndex, DIALOGUE_NPC_UI ) != FALSE );
|
||||
DebugQuestInfo(String("NPCGotoGridNo: <%d>, rec %d, usGridNo %d", ubTargetNPC, ubRecordNum, usGridNo));
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
@@ -1420,6 +1424,7 @@ BOOLEAN NPCGotoGridNo( UINT8 ubTargetNPC, INT32 usGridNo, UINT8 ubRecordNum )
|
||||
BOOLEAN NPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum )
|
||||
{
|
||||
CHECKF( SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_DO_ACTION, ubTargetNPC, usActionCode, ubQuoteNum, gTalkPanel.iFaceIndex, DIALOGUE_NPC_UI ) != FALSE );
|
||||
DebugQuestInfo(String("NPCDoAction:<%d>, action code %d, quote num %d", ubTargetNPC, usActionCode, ubQuoteNum));
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
@@ -1427,6 +1432,7 @@ BOOLEAN NPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum )
|
||||
BOOLEAN NPCClosePanel( )
|
||||
{
|
||||
CHECKF( SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_CLOSE_PANEL, 0, 0, 0, 0, DIALOGUE_NPC_UI ) != FALSE );
|
||||
DebugQuestInfo(String("NPCClosePanel"));
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
@@ -1471,7 +1477,7 @@ BOOLEAN SourceSoldierPointerIsValidAndReachableForGive( SOLDIERTYPE * pGiver )
|
||||
|
||||
void HandleNPCItemGiven( UINT8 ubNPC, OBJECTTYPE *pObject, INT8 bInvPos )
|
||||
{
|
||||
|
||||
DebugQuestInfo(String("HandleNPCItemGiven: <%d> item %d inv %d", ubNPC, pObject->usItem, bInvPos));
|
||||
// Give it to the NPC soldier
|
||||
// AutoPlaceObject( gpDestSoldier, pObject, FALSE );
|
||||
|
||||
@@ -1504,6 +1510,8 @@ void HandleNPCItemGiven( UINT8 ubNPC, OBJECTTYPE *pObject, INT8 bInvPos )
|
||||
|
||||
void HandleNPCTriggerNPC( UINT8 ubTargetNPC, UINT8 ubTargetRecord, BOOLEAN fShowDialogueMenu, UINT8 ubTargetApproach )
|
||||
{
|
||||
DebugQuestInfo(String("HandleNPCTriggerNPC: <%d>, record %d, %d, display %d", ubTargetNPC, ubTargetRecord, ubTargetApproach, fShowDialogueMenu));
|
||||
|
||||
SOLDIERTYPE *pSoldier;
|
||||
|
||||
pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE );
|
||||
@@ -1668,6 +1676,8 @@ void HandleWaitTimerForNPCTrigger( )
|
||||
|
||||
void HandleNPCGotoGridNo( UINT8 ubTargetNPC, INT32 usGridNo, UINT8 ubQuoteNum )
|
||||
{
|
||||
DebugQuestInfo(String("HandleNPCItemGiven:<%d> GridNo %d quote num %d", ubTargetNPC, usGridNo, ubQuoteNum));
|
||||
|
||||
SOLDIERTYPE *pSoldier;
|
||||
// OK, Move to gridNo!
|
||||
|
||||
|
||||
+49
-3
@@ -216,6 +216,7 @@ STR szAction[] = {
|
||||
// sevenfm
|
||||
UINT32 guiAIStartCounter = 0, guiAILastCounter = 0;
|
||||
//UINT8 gubAISelectedSoldier = NOBODY;
|
||||
BOOLEAN gfLogsEnabled = TRUE;
|
||||
|
||||
void DebugAI( INT8 bMsgType, SOLDIERTYPE *pSoldier, STR szOutput, INT8 bAction )
|
||||
{
|
||||
@@ -223,10 +224,8 @@ void DebugAI( INT8 bMsgType, SOLDIERTYPE *pSoldier, STR szOutput, INT8 bAction )
|
||||
CHAR8 msg[1024];
|
||||
CHAR8 buf[1024];
|
||||
|
||||
if (!gGameExternalOptions.fAIDecisionInfo)
|
||||
{
|
||||
if (!gfLogsEnabled)
|
||||
return;
|
||||
}
|
||||
|
||||
memset(buf, 0, 1024 * sizeof(char));
|
||||
|
||||
@@ -307,6 +306,12 @@ void DebugAI( INT8 bMsgType, SOLDIERTYPE *pSoldier, STR szOutput, INT8 bAction )
|
||||
fputs("\n", DebugFile);
|
||||
fclose(DebugFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
// cannot open file in Logs folder, stop logging
|
||||
gfLogsEnabled = FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
// also log to individual file for selected soldier
|
||||
sprintf(buf, "Logs\\AI_Decisions [%d].txt", pSoldier->ubID);
|
||||
@@ -322,6 +327,46 @@ void DebugAI( INT8 bMsgType, SOLDIERTYPE *pSoldier, STR szOutput, INT8 bAction )
|
||||
}
|
||||
}
|
||||
|
||||
extern UINT32 guiDay;
|
||||
extern UINT32 guiHour;
|
||||
extern UINT32 guiMin;
|
||||
|
||||
void DebugQuestInfo(STR szOutput)
|
||||
{
|
||||
/*CHAR16 buf16[1024];
|
||||
memset(buf16, 0, 1024 * sizeof(wchar_t));
|
||||
|
||||
if (strlen(szOutput) > 0)
|
||||
{
|
||||
mbstowcs(buf16, szOutput, 1024 - 1);
|
||||
AddTacticalDebugMessage(buf16);
|
||||
}*/
|
||||
CHAR8 buf[1024];
|
||||
|
||||
if (!gfLogsEnabled)
|
||||
return;
|
||||
|
||||
FILE* DebugFile;
|
||||
|
||||
DebugFile = fopen("Logs\\QuestInfo.txt", "a+t");
|
||||
if (DebugFile != NULL)
|
||||
{
|
||||
// first write game clock and date/time
|
||||
sprintf(buf, "%d Day %d %d:%d ", GetJA2Clock(), guiDay, guiHour, guiMin);
|
||||
fputs(buf, DebugFile);
|
||||
|
||||
fputs(szOutput, DebugFile);
|
||||
fputs("\n", DebugFile);
|
||||
fclose(DebugFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
// cannot open file in Logs folder, stop logging
|
||||
gfLogsEnabled = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN InitAI( void )
|
||||
{
|
||||
@@ -354,6 +399,7 @@ BOOLEAN InitAI( void )
|
||||
|
||||
// sevenfm: Clear the AI debug txt file to prevent it from getting huge
|
||||
remove("Logs\\AI_Decisions.txt");
|
||||
//remove("Logs\\QuestInfo.txt");
|
||||
|
||||
// remove all individual files
|
||||
CHAR8 buf[1024];
|
||||
|
||||
@@ -1871,6 +1871,7 @@ void ResetOncePerConvoRecordsForNPC( UINT8 ubNPC )
|
||||
return;
|
||||
}
|
||||
ResetOncePerConvoRecords( gpNPCQuoteInfoArray[ ubNPC ] );
|
||||
DebugQuestInfo(String("reset QUOTE_FLAG_SAID for profile %d", ubNPC));
|
||||
}
|
||||
|
||||
void ResetOncePerConvoRecordsForAllNPCsInLoadedSector( void )
|
||||
@@ -1933,6 +1934,8 @@ void Converse( UINT8 ubNPC, UINT8 ubMerc, INT8 bApproach, UINT32 uiApproachData
|
||||
SOLDIERTYPE * pNPC;
|
||||
BOOLEAN fAttemptingToGiveItem;
|
||||
|
||||
DebugQuestInfo(String("Converse: merc<%d> to NPC <%d> %d data %d", ubMerc, ubNPC, bApproach, uiApproachData));
|
||||
|
||||
// we have to record whether an item is being given in order to determine whether,
|
||||
// in the case where the approach is overridden, we need to return the item to the
|
||||
// player
|
||||
@@ -1986,6 +1989,7 @@ void Converse( UINT8 ubNPC, UINT8 ubMerc, INT8 bApproach, UINT32 uiApproachData
|
||||
{
|
||||
case NPC_INITIAL_QUOTE:
|
||||
// reset stuff
|
||||
DebugQuestInfo(String("ResetOncePerConvoRecords for <%d>", ubNPC));
|
||||
ResetOncePerConvoRecords( pNPCQuoteInfoArray );
|
||||
|
||||
// CHEAP HACK
|
||||
@@ -1994,6 +1998,7 @@ void Converse( UINT8 ubNPC, UINT8 ubMerc, INT8 bApproach, UINT32 uiApproachData
|
||||
if ( ubNPC == DARREN && CheckFact( 281, DARREN ) == FALSE )
|
||||
{
|
||||
TURN_FLAG_OFF( pNPCQuoteInfoArray[11].fFlags, QUOTE_FLAG_SAID );
|
||||
DebugQuestInfo(String("reset QUOTE_FLAG_SAID for <%d> 'DARREN'", ubNPC));
|
||||
}
|
||||
|
||||
// turn the NPC to face us
|
||||
@@ -2769,6 +2774,8 @@ void TriggerNPCRecord( UINT8 ubTriggerNPC, UINT8 ubTriggerNPCRec )
|
||||
NPCQuoteInfo *pQuotePtr;
|
||||
BOOLEAN fDisplayDialogue = TRUE;
|
||||
|
||||
DebugQuestInfo(String("TriggerNPCRecord: <%d> record %d", ubTriggerNPC, ubTriggerNPCRec));
|
||||
|
||||
if (EnsureQuoteFileLoaded( ubTriggerNPC ) == FALSE)
|
||||
{
|
||||
// error!!!
|
||||
@@ -2797,6 +2804,8 @@ void TriggerNPCRecordImmediately( UINT8 ubTriggerNPC, UINT8 ubTriggerNPCRec )
|
||||
NPCQuoteInfo *pQuotePtr;
|
||||
BOOLEAN fDisplayDialogue = TRUE;
|
||||
|
||||
DebugQuestInfo(String("TriggerNPCRecordImmediately: <%d> record %d", ubTriggerNPC, ubTriggerNPCRec));
|
||||
|
||||
if (EnsureQuoteFileLoaded( ubTriggerNPC ) == FALSE)
|
||||
{
|
||||
// error!!!
|
||||
|
||||
@@ -183,6 +183,7 @@ BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck );
|
||||
void DebugAI( STR szOutput );
|
||||
enum { AI_MSG_START, AI_MSG_DECIDE, AI_MSG_INFO, AI_MSG_TOPIC };
|
||||
void DebugAI(INT8 bMsgType, SOLDIERTYPE *pSoldier, STR szOutput, INT8 bAction = -1);
|
||||
void DebugQuestInfo(STR szOutput);
|
||||
INT8 DecideAction(SOLDIERTYPE *pSoldier);
|
||||
INT8 DecideActionBlack(SOLDIERTYPE *pSoldier);
|
||||
INT8 DecideActionEscort(SOLDIERTYPE *pSoldier);
|
||||
|
||||
@@ -2004,7 +2004,7 @@ BOOLEAN DishOutGasDamage( SOLDIERTYPE * pSoldier, EXPLOSIVETYPE * pExplosive, IN
|
||||
}
|
||||
|
||||
}
|
||||
else if ( pExplosive->ubType == EXPLOSV_SMOKE || pExplosive->ubType == EXPLOSV_SMOKE_DEBRIS | pExplosive->ubType == EXPLOSV_SMOKE_FIRERETARDANT )//dnl ch40 200909
|
||||
else if ( pExplosive->ubType == EXPLOSV_SMOKE || pExplosive->ubType == EXPLOSV_SMOKE_DEBRIS || pExplosive->ubType == EXPLOSV_SMOKE_FIRERETARDANT )//dnl ch40 200909
|
||||
{
|
||||
// robots are unaffected by smoke
|
||||
if( AM_A_ROBOT(pSoldier) )
|
||||
|
||||
Reference in New Issue
Block a user