mirror of
https://github.com/1dot13/source.git
synced 2026-08-26 14:30:26 +02:00
- MP: it just expands and differentiates the different messages generated during an interrupt to aid in debugging and knowing what is going on / what has happened (by haydent)
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5604 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+35
-16
@@ -557,6 +557,9 @@ typedef struct
|
|||||||
bullets_table bTable[11][50];
|
bullets_table bTable[11][50];
|
||||||
|
|
||||||
char client_names[4][30];
|
char client_names[4][30];
|
||||||
|
|
||||||
|
char team_names[][30];//hayden need client_names with AI
|
||||||
|
|
||||||
// OJW - 20081204
|
// OJW - 20081204
|
||||||
int client_ready[4];
|
int client_ready[4];
|
||||||
int client_edges[5];
|
int client_edges[5];
|
||||||
@@ -639,6 +642,22 @@ void ChatCallback (UINT8 ubResult);
|
|||||||
void HandleClientConnectionLost();
|
void HandleClientConnectionLost();
|
||||||
void disconnected_callback(UINT8 ubResult);
|
void disconnected_callback(UINT8 ubResult);
|
||||||
|
|
||||||
|
//hayden - i need this for message references
|
||||||
|
CHAR16 TeamNameStrings[][30] =
|
||||||
|
{
|
||||||
|
L"You", // player's turn
|
||||||
|
L"AI",
|
||||||
|
L"Creature",
|
||||||
|
L"Militia",
|
||||||
|
L"Civilian",
|
||||||
|
L"Player_Plan",// planning turn
|
||||||
|
L"Client #1",//hayden
|
||||||
|
L"Client #2",//hayden
|
||||||
|
L"Client #3",//hayden
|
||||||
|
L"Client #4",//hayden
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
// OJW - 20081222
|
// OJW - 20081222
|
||||||
void send_gameover( void );
|
void send_gameover( void );
|
||||||
void StartScoreScreen(); // this screen will send us to the multiplayer score screen
|
void StartScoreScreen(); // this screen will send us to the multiplayer score screen
|
||||||
@@ -1734,6 +1753,9 @@ void start_battle ( void )
|
|||||||
swprintf(full, MPClientMessage[57],i+1,name);
|
swprintf(full, MPClientMessage[57],i+1,name);
|
||||||
|
|
||||||
memcpy( TeamTurnString[ (i+6) ] , full, sizeof( CHAR16) * 255 );
|
memcpy( TeamTurnString[ (i+6) ] , full, sizeof( CHAR16) * 255 );
|
||||||
|
|
||||||
|
memcpy( TeamNameStrings[ (i+6) ] , name, sizeof( CHAR16) * 30 );
|
||||||
|
//give me a copy too ;) - hayden
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1919,12 +1941,12 @@ void recieveINTERRUPT (RPCParameters *rpcParameters)
|
|||||||
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
||||||
SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted];
|
SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted];
|
||||||
|
|
||||||
if(INT->bTeam==netbTeam)//for us or AI //im not sure about this comment. i think this if check only if its for us... - hayden
|
if(INT->bTeam==netbTeam)//for us
|
||||||
{
|
{
|
||||||
INT->bTeam=0;
|
INT->bTeam=0;
|
||||||
INT->ubID=INT->ubID - ubID_prefix;
|
INT->ubID=INT->ubID - ubID_prefix;
|
||||||
|
|
||||||
for(int i=0; i <= INT->gubOutOfTurnPersons; i++)
|
for(int i=0; i <= INT->gubOutOfTurnPersons; i++)//this loop translates soldier id's from what they are in someone else's game to what they are locally
|
||||||
{
|
{
|
||||||
if((INT->gubOutOfTurnOrder[i] >= ubID_prefix) && (INT->gubOutOfTurnOrder[i] < (ubID_prefix+6)))
|
if((INT->gubOutOfTurnOrder[i] >= ubID_prefix) && (INT->gubOutOfTurnOrder[i] < (ubID_prefix+6)))
|
||||||
{
|
{
|
||||||
@@ -1934,21 +1956,16 @@ void recieveINTERRUPT (RPCParameters *rpcParameters)
|
|||||||
memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS);
|
memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS);
|
||||||
gubOutOfTurnPersons = INT->gubOutOfTurnPersons;
|
gubOutOfTurnPersons = INT->gubOutOfTurnPersons;
|
||||||
|
|
||||||
// AI has interrupted
|
|
||||||
if (INT->bTeam == 1)
|
AddTopMessage( PLAYER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
|
||||||
{
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to %s.", TeamNameStrings[pOpponent->bTeam], TeamNameStrings[INT->bTeam] );
|
||||||
//AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AddTopMessage( PLAYER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// WANNE - MP: This seems to cause the HANG on AI interrupt where we have to press ALT + E on the server!
|
// WANNE - MP: This seems to cause the HANG on AI interrupt where we have to press ALT + E on the server!
|
||||||
if( INT->bTeam != 0)//not for our team - hayden
|
if( INT->bTeam != 0)//not for our team - hayden
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[17] );
|
|
||||||
//stop moving merc who was interrupted and init UI bar
|
//stop moving merc who was interrupted and init UI bar
|
||||||
SOLDIERTYPE* pMerc = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pMerc = MercPtrs[ INT->ubID ];
|
||||||
pMerc->HaultSoldierFromSighting(TRUE);
|
pMerc->HaultSoldierFromSighting(TRUE);
|
||||||
@@ -1959,6 +1976,8 @@ void recieveINTERRUPT (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
|
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
|
||||||
//this needed to add details of who's interrupt it is - hayden
|
//this needed to add details of who's interrupt it is - hayden
|
||||||
|
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt with %s awarded to %s.", TeamNameStrings[pOpponent->bTeam], TeamNameStrings[INT->bTeam] );//was MPClientMessage[17], can be reconnected if text updated and translated
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1969,7 +1988,7 @@ void recieveINTERRUPT (RPCParameters *rpcParameters)
|
|||||||
}
|
}
|
||||||
else //start our interrupt turn
|
else //start our interrupt turn
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[37] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ];
|
||||||
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
||||||
@@ -1980,7 +1999,7 @@ void recieveINTERRUPT (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
void intAI (SOLDIERTYPE *pSoldier )
|
void intAI (SOLDIERTYPE *pSoldier )
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[17] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"intAI with %s", TeamNameStrings[pSoldier->bTeam] );//was MPClientMessage[17], can be reconnected if text updated and translated
|
||||||
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ pSoldier->bTeam ] );
|
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ pSoldier->bTeam ] );
|
||||||
gTacticalStatus.fInterruptOccurred = TRUE;
|
gTacticalStatus.fInterruptOccurred = TRUE;
|
||||||
}
|
}
|
||||||
@@ -2021,9 +2040,9 @@ void resume_turn(RPCParameters *rpcParameters)
|
|||||||
if(is_server)
|
if(is_server)
|
||||||
Sawarded=false;
|
Sawarded=false;
|
||||||
|
|
||||||
if(INT->bTeam==netbTeam || (INT->bTeam==1 && is_server))//may need working
|
if(INT->bTeam==netbTeam || (INT->bTeam==1 && is_server))//may need working //its for us or we are the server and its for the AI
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[18] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Resumed turn after interrupt of %s", TeamNameStrings[INT->bTeam] );//was MPClientMessage[18], can be reconnected if text updated and translated
|
||||||
|
|
||||||
for(int i=0; i <= INT->gubOutOfTurnPersons; i++)
|
for(int i=0; i <= INT->gubOutOfTurnPersons; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -130,6 +130,9 @@ void reapplySETTINGS();
|
|||||||
BOOLEAN CheckConditionsForBattle( GROUP *pGroup ); // this comes from strategic movement.cpp
|
BOOLEAN CheckConditionsForBattle( GROUP *pGroup ); // this comes from strategic movement.cpp
|
||||||
|
|
||||||
extern char client_names[4][30];
|
extern char client_names[4][30];
|
||||||
|
|
||||||
|
extern CHAR16 TeamNameStrings[][30];
|
||||||
|
|
||||||
// OJW - 20081204
|
// OJW - 20081204
|
||||||
// I need to keep track of all the clients readyness, spawn edge and team
|
// I need to keep track of all the clients readyness, spawn edge and team
|
||||||
// <TODO> want to change this all to use client_info, but dont want to make sweeping
|
// <TODO> want to change this all to use client_info, but dont want to make sweeping
|
||||||
|
|||||||
+24
-11
@@ -323,7 +323,7 @@ void EndTurn( UINT8 ubNextTeam )
|
|||||||
if(is_networked)
|
if(is_networked)
|
||||||
{
|
{
|
||||||
end_interrupt( FALSE );//this tells other client to go on from where he was
|
end_interrupt( FALSE );//this tells other client to go on from where he was
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"ending interrupt" );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Player ended interrupt." );
|
||||||
}
|
}
|
||||||
EndInterrupt( FALSE );
|
EndInterrupt( FALSE );
|
||||||
}
|
}
|
||||||
@@ -393,7 +393,7 @@ void EndAITurn( void )
|
|||||||
if(is_networked)
|
if(is_networked)
|
||||||
{
|
{
|
||||||
end_interrupt( FALSE );//this tells other client to go on from where he was
|
end_interrupt( FALSE );//this tells other client to go on from where he was
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"ending interrupt" );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"AI ended interrupt." );
|
||||||
}
|
}
|
||||||
EndInterrupt( FALSE );
|
EndInterrupt( FALSE );
|
||||||
}
|
}
|
||||||
@@ -1155,17 +1155,22 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred )
|
|||||||
npSoldier = MercPtrs[nubFirstInterrupter];
|
npSoldier = MercPtrs[nubFirstInterrupter];
|
||||||
nbTeam = npSoldier->bTeam;
|
nbTeam = npSoldier->bTeam;
|
||||||
|
|
||||||
|
//pSoldier is interrupted //but its not available //needs calculating
|
||||||
|
//npSoldier,nbTeam is interruptor
|
||||||
|
//hayden
|
||||||
|
|
||||||
#ifdef BETAVERSION
|
#ifdef BETAVERSION
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"unchecked interrupt call area:(resume interrupted interrupt)...");
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"unchecked interrupt call area:(resume interrupted interrupt)...");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((nbTeam > 0) && (nbTeam <6 ) && is_server) //is AI and are server
|
if ((nbTeam > 0) && (nbTeam <6 ) && is_server) // AI interrupt resume and im server
|
||||||
{
|
{
|
||||||
send_interrupt( npSoldier );
|
send_interrupt( npSoldier );
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s and AI", TeamNameStrings[npSoldier->bTeam]);//tried to use pSoldier, but its not available. find another way to get correct team
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(is_server && gTacticalStatus.ubCurrentTeam == 1)// against ai
|
else if(is_server && gTacticalStatus.ubCurrentTeam == 1)// resume AI interrupted and im server
|
||||||
{
|
{
|
||||||
//hayden
|
//hayden
|
||||||
send_interrupt( npSoldier );
|
send_interrupt( npSoldier );
|
||||||
@@ -1175,13 +1180,15 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred )
|
|||||||
else
|
else
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"AI is interrupted");
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt of AI by %s", TeamNameStrings[npSoldier->bTeam]);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else// pure client awarding interrupt resume //suspect it needs to be: else if(gTacticalStatus.ubCurrentTeam == 0)//its our turn (we are moving)
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"interrupt for another team"); //may need more work.
|
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s", TeamNameStrings[npSoldier->bTeam]);//this can be simplified if above comment is implemented
|
||||||
//ClearIntList();
|
//ClearIntList();
|
||||||
//hayden
|
//hayden//may need more work.
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
send_interrupt( npSoldier ); //
|
send_interrupt( npSoldier ); //
|
||||||
}
|
}
|
||||||
@@ -2248,10 +2255,14 @@ void DoneAddingToIntList( SOLDIERTYPE * pSoldier, BOOLEAN fChange, UINT8 ubInter
|
|||||||
npSoldier = MercPtrs[nubFirstInterrupter];
|
npSoldier = MercPtrs[nubFirstInterrupter];
|
||||||
nbTeam = npSoldier->bTeam;
|
nbTeam = npSoldier->bTeam;
|
||||||
|
|
||||||
|
//pSoldier is interrupted
|
||||||
|
//npSoldier is interruptor
|
||||||
|
//hayden
|
||||||
|
|
||||||
// INTERRUPT is calculated on the server
|
// INTERRUPT is calculated on the server
|
||||||
if ((nbTeam > 0) && (nbTeam <6 ) && is_server) //is for AI and are server
|
if ((nbTeam > 0) && (nbTeam <6 ) && is_server) //is for AI and are server
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"interrupt for AI team");
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s is interrupt by AI", TeamNameStrings[pSoldier->bTeam]);
|
||||||
|
|
||||||
// Only display the top message if we (the server) got interrupted
|
// Only display the top message if we (the server) got interrupted
|
||||||
if (pSoldier->bTeam == 0)
|
if (pSoldier->bTeam == 0)
|
||||||
@@ -2262,7 +2273,7 @@ void DoneAddingToIntList( SOLDIERTYPE * pSoldier, BOOLEAN fChange, UINT8 ubInter
|
|||||||
|
|
||||||
}
|
}
|
||||||
// INTERRUPT is calculated on the server
|
// INTERRUPT is calculated on the server
|
||||||
else if(is_server && gTacticalStatus.ubCurrentTeam == 1)// against ai
|
else if(is_server && gTacticalStatus.ubCurrentTeam == 1)// against ai and are server
|
||||||
{
|
{
|
||||||
//hayden
|
//hayden
|
||||||
send_interrupt( npSoldier ); //
|
send_interrupt( npSoldier ); //
|
||||||
@@ -2271,7 +2282,7 @@ void DoneAddingToIntList( SOLDIERTYPE * pSoldier, BOOLEAN fChange, UINT8 ubInter
|
|||||||
else
|
else
|
||||||
StartInterrupt();//
|
StartInterrupt();//
|
||||||
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"AI is interrupted");
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"AI is interrupted by %s", TeamNameStrings[npSoldier->bTeam]);
|
||||||
}
|
}
|
||||||
// INTERRUPT is calculated on the pure client
|
// INTERRUPT is calculated on the pure client
|
||||||
else if(gTacticalStatus.ubCurrentTeam == 0)//its our turn (we are moving)
|
else if(gTacticalStatus.ubCurrentTeam == 0)//its our turn (we are moving)
|
||||||
@@ -2290,6 +2301,8 @@ void DoneAddingToIntList( SOLDIERTYPE * pSoldier, BOOLEAN fChange, UINT8 ubInter
|
|||||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||||
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ nbTeam ] );
|
AddTopMessage( COMPUTER_INTERRUPT_MESSAGE, TeamTurnString[ nbTeam ] );
|
||||||
gTacticalStatus.fInterruptOccurred = TRUE;
|
gTacticalStatus.fInterruptOccurred = TRUE;
|
||||||
|
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"You have interrupted %s", TeamNameStrings[npSoldier->bTeam]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user