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:
meep-eep
2006-11-01 22:43:43 +00:00
parent 1b8d20ff31
commit e2317304aa
5 changed files with 31 additions and 9 deletions
+1 -1
View File
@@ -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,
+13
View File
@@ -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)
+1
View File
@@ -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);
+3
View File
@@ -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();
+13 -8
View File
@@ -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.