Confirmation fixes.
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2488 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -46,7 +46,7 @@
|
||||
#define FLAGSHIP_STRING_COUNT 13
|
||||
#define ORBITSCAN_STRING_COUNT 19
|
||||
#define MAINMENU_STRING_COUNT 56
|
||||
#define NETMELEE_STRING_COUNT 16
|
||||
#define NETMELEE_STRING_COUNT 18
|
||||
|
||||
enum {
|
||||
STAR_STRING_BASE = 0,
|
||||
|
||||
@@ -2970,6 +2970,19 @@ updateRandomSeed (PMELEE_STATE pMS, COUNT side, DWORD seed) {
|
||||
(void) side;
|
||||
}
|
||||
|
||||
// The remote player has done something which invalidates our confirmation.
|
||||
void
|
||||
confirmationCancelled(PMELEE_STATE pMS, COUNT side) {
|
||||
if (side == 0)
|
||||
DrawMeleeStatusMessage (GAME_STRING (NETMELEE_STRING_BASE + 16));
|
||||
// "Bottom player changed something -- need to reconfirm."
|
||||
else
|
||||
DrawMeleeStatusMessage (GAME_STRING (NETMELEE_STRING_BASE + 17));
|
||||
// "Top player changed something -- need to reconfirm."
|
||||
if (pMS->InputFunc == DoConfirmSettings)
|
||||
pMS->InputFunc = DoMelee;
|
||||
}
|
||||
|
||||
void
|
||||
connectedFeedback (PMELEE_STATE pMS, COUNT side) {
|
||||
if (side == 0)
|
||||
|
||||
@@ -121,6 +121,7 @@ void updateTeamName (PMELEE_STATE pMS, COUNT side, const char *name,
|
||||
size_t len);
|
||||
bool updateFleetShip (PMELEE_STATE pMS, COUNT side, COUNT index, BYTE ship);
|
||||
void updateRandomSeed (PMELEE_STATE pMS, COUNT side, DWORD seed);
|
||||
void confirmationCancelled(PMELEE_STATE pMS, COUNT side);
|
||||
void connectedFeedback (PMELEE_STATE pMS, COUNT side);
|
||||
void errorFeedback (PMELEE_STATE pMS, COUNT side);
|
||||
void closeFeedback (PMELEE_STATE pMS, COUNT side);
|
||||
|
||||
@@ -83,6 +83,9 @@ void
|
||||
netInput(void) {
|
||||
uint32 timeoutMs = 0;
|
||||
NetManager_process(&timeoutMs);
|
||||
// This may cause more packets to be queued, hence the
|
||||
// flushPacketQueues().
|
||||
flushPacketQueues();
|
||||
|
||||
Alarm_process();
|
||||
Callback_process();
|
||||
|
||||
@@ -166,7 +166,7 @@ PacketHandler_Ready(NetConnection *conn, const Packet_Ready *packet) {
|
||||
|
||||
int
|
||||
PacketHandler_Fleet(NetConnection *conn, const Packet_Fleet *packet) {
|
||||
uint32 numShips = ntoh16(packet->numShips);
|
||||
uint16 numShips = ntoh16(packet->numShips);
|
||||
size_t i;
|
||||
size_t len;
|
||||
int player;
|
||||
@@ -193,10 +193,13 @@ PacketHandler_Fleet(NetConnection *conn, const Packet_Fleet *packet) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (conn->stateFlags.handshake.localOk)
|
||||
Netplay_cancelConfirmation(conn);
|
||||
|
||||
battleStateData = (BattleStateData *) NetConnection_getStateData(conn);
|
||||
|
||||
if (conn->stateFlags.handshake.localOk) {
|
||||
Netplay_cancelConfirmation(conn);
|
||||
confirmationCancelled(battleStateData->meleeState, player);
|
||||
}
|
||||
|
||||
for (i = 0; i < numShips; i++) {
|
||||
int ship = packet->ships[i].ship;
|
||||
int index = packet->ships[i].index;
|
||||
@@ -228,16 +231,18 @@ PacketHandler_TeamName(NetConnection *conn, const Packet_TeamName *packet) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (conn->stateFlags.handshake.localOk)
|
||||
Netplay_cancelConfirmation(conn);
|
||||
|
||||
side = localSide(conn, (NetplaySide) packet->side);
|
||||
battleStateData = (BattleStateData *) NetConnection_getStateData(conn);
|
||||
|
||||
if (conn->stateFlags.handshake.localOk) {
|
||||
Netplay_cancelConfirmation(conn);
|
||||
confirmationCancelled(battleStateData->meleeState, side);
|
||||
}
|
||||
|
||||
nameLen = packetLength((const Packet *) packet)
|
||||
- sizeof (Packet_TeamName) - 1;
|
||||
// The -1 is for not counting the terminating '\0'.
|
||||
|
||||
battleStateData = (BattleStateData *) NetConnection_getStateData(conn);
|
||||
updateTeamName(battleStateData->meleeState, side, packet->name, nameLen);
|
||||
|
||||
// Padding data may follow; it is ignored.
|
||||
|
||||
Reference in New Issue
Block a user