diff --git a/src/d_clisrv.c b/src/d_clisrv.c index bb7a5355..44b08cca 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1147,6 +1147,7 @@ static UINT8 cl_challengequestion[MD5_LEN+1]; static char cl_challengepassword[65]; static UINT8 cl_challengeanswer[MD5_LEN+1]; static UINT8 cl_challengeattempted = 0; +static char cl_challengeaddress[64]; // Player name send/load @@ -2275,6 +2276,8 @@ boolean CL_Responder(event_t *ev) #ifndef NONET SL_ClearServerList(servernode); + if (I_NetMakeNodewPort) + servernode = I_NetMakeNode(cl_challengeaddress); #endif cl_mode = CL_SEARCHING; @@ -3794,7 +3797,7 @@ static void HandleConnect(SINT8 node) D_MakeJoinPasswordChallenge(&netbuffer->u.joinchallenge.challengenum, netbuffer->u.joinchallenge.question); netbuffer->packettype = PT_JOINCHALLENGE; - HSendPacket(node, true, 0, sizeof(joinchallenge_pak)); + HSendPacket(node, false, 0, sizeof(joinchallenge_pak)); Net_CloseConnection(node); return; @@ -4017,6 +4020,8 @@ static void HandlePacketFromAwayNode(SINT8 node) cl_challengenum = netbuffer->u.joinchallenge.challengenum; memcpy(cl_challengequestion, netbuffer->u.joinchallenge.question, 16); + if (I_GetNodeAddress) + strcpy(cl_challengeaddress, I_GetNodeAddress(node)); Net_CloseConnection(node); // Don't need to stay connected while challenging cl_mode = CL_CHALLENGE; @@ -4026,6 +4031,10 @@ static void HandlePacketFromAwayNode(SINT8 node) case 2: // We already sent a correct password, so throw it back up again. D_ComputeChallengeAnswer(cl_challengequestion, cl_challengepassword, cl_challengeanswer); +#ifndef NONET + if (I_NetMakeNodewPort) + servernode = I_NetMakeNode(cl_challengeaddress); +#endif cl_mode = CL_ASKJOIN; break; diff --git a/src/d_net.c b/src/d_net.c index b849612b..02f4b23d 100644 --- a/src/d_net.c +++ b/src/d_net.c @@ -781,6 +781,8 @@ static const char *packettypename[NUMPACKETTYPE] = { "NOTHING", "SERVERCFG", + + "CLIENTCMD", "CLIENTMIS", "CLIENT2CMD", @@ -801,6 +803,9 @@ static const char *packettypename[NUMPACKETTYPE] = "RESYNCHEND", "RESYNCHGET", + + + "CLIENT3CMD", "CLIENT3MIS", "CLIENT4CMD", @@ -811,13 +816,20 @@ static const char *packettypename[NUMPACKETTYPE] = "DOWNLOADFILESOKAY", "FILEFRAGMENT", + "TEXTCMD", "TEXTCMD2", "TEXTCMD3", "TEXTCMD4", + "CLIENTJOIN", "NODETIMEOUT", "RESYNCHING", + + + "TELLFILESNEEDED", + "MOREFILESNEEDED", + "PING" }; @@ -1159,7 +1171,8 @@ boolean HGetPacket(void) || netbuffer->packettype == PT_PLAYERINFO || netbuffer->packettype == PT_REQUESTFILE || netbuffer->packettype == PT_ASKINFOVIAMS - || netbuffer->packettype == PT_CLIENTJOIN)) + || netbuffer->packettype == PT_CLIENTJOIN + || netbuffer->packettype == PT_TELLFILESNEEDED)) { DEBFILE(va("New node sent an unexpected %s packet\n", packettypename[netbuffer->packettype])); CONS_Alert(CONS_NOTICE, "New node sent an unexpected %s packet\n", packettypename[netbuffer->packettype]); diff --git a/src/k_kart.c b/src/k_kart.c index 606665f2..f9af5a24 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3159,11 +3159,11 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (dir == -1) { // Shoot backward - mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x06000000, 0, PROJSPEED/4); - K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x03000000, 0, PROJSPEED/4); - K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180, 0, PROJSPEED/4); - K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x03000000, 0, PROJSPEED/4); - K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x06000000, 0, PROJSPEED/4); + mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x06000000, 0, PROJSPEED/16); + K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x03000000, 0, PROJSPEED/16); + K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180, 0, PROJSPEED/16); + K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x03000000, 0, PROJSPEED/16); + K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x06000000, 0, PROJSPEED/16); } else { @@ -3180,7 +3180,7 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (dir == -1 && mapthing != MT_SPB) { // Shoot backward - mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180, 0, PROJSPEED/2); + mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180, 0, PROJSPEED/8); } else {