Advertisement
doomgod

Difference between 0.97c2 and 0.97c3

Aug 27th, 2012
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 27.45 KB | None | 0 0
  1. --- src/callvote.cpp
  2. +++ src/callvote.cpp
  3. @@ -70,6 +70,7 @@ static    ULONG                   g_ulVoteCompletedTicks
  4.  static bool                    g_bVotePassed;
  5.  static ULONG                   g_ulPlayersWhoVotedYes[(MAXPLAYERS / 2) + 1];
  6.  static ULONG                   g_ulPlayersWhoVotedNo[(MAXPLAYERS / 2) + 1];
  7. +static ULONG                   g_ulKickVoteTargetPlayerIdx;
  8.  
  9.  //*****************************************************************************
  10.  // PROTOTYPES
  11. @@ -126,9 +127,12 @@ void CALLVOTE_Tick( void )
  12.             if ( --g_ulVoteCompletedTicks == 0 )
  13.             {
  14.                 // If the vote passed, execute the command string.
  15. -               if ( g_bVotePassed && ( NETWORK_GetState( ) != NETSTATE_CLIENT ))
  16. +               if ( g_bVotePassed && ( NETWORK_GetState( ) != NETSTATE_CLIENT )){
  17. +                   // If the vote is a kick vote, we have to alter g_szVoteCommand to kick the cached player idx
  18. +                   if( strncmp ( g_szVoteCommand, "kick ", 5 ) == 0 )
  19. +                       sprintf( g_szVoteCommand, "kick_idx %d", g_ulKickVoteTargetPlayerIdx );
  20.                     AddCommandString( g_szVoteCommand );
  21. -
  22. +               }
  23.                 // Reset the module.
  24.                 CALLVOTE_ClearVote( );
  25.             }
  26. @@ -509,24 +513,34 @@ static bool callvote_CheckValidity( char
  27.     // First, figure out what kind of command we're trying to vote on.
  28.     if ( stricmp( "kick", pszCommand ) == 0 )
  29.         ulVoteCmd = VOTECMD_KICK;
  30. -   else if ( stricmp( "map", pszCommand ) == 0 )
  31. -       ulVoteCmd = VOTECMD_MAP;
  32. -   else if ( stricmp( "changemap", pszCommand ) == 0 )
  33. -       ulVoteCmd = VOTECMD_CHANGEMAP;
  34. -   else if ( stricmp( "fraglimit", pszCommand ) == 0 )
  35. -       ulVoteCmd = VOTECMD_FRAGLIMIT;
  36. -   else if ( stricmp( "timelimit", pszCommand ) == 0 )
  37. -       ulVoteCmd = VOTECMD_TIMELIMIT;
  38. -   else if ( stricmp( "winlimit", pszCommand ) == 0 )
  39. -       ulVoteCmd = VOTECMD_WINLIMIT;
  40. -   else if ( stricmp( "duellimit", pszCommand ) == 0 )
  41. -       ulVoteCmd = VOTECMD_DUELLIMIT;
  42. -   else if ( stricmp( "pointlimit", pszCommand ) == 0 )
  43. -       ulVoteCmd = VOTECMD_POINTLIMIT;
  44. -   else
  45. -       return ( false );
  46. +   else {
  47. +       int i = 0;
  48. +       while( pszParameters[i] != '\0' )
  49. +       {
  50. +         if( pszParameters[i] == ';' || pszParameters[i] == ' ' )
  51. +               return ( false );
  52. +         i++;
  53. +       }
  54. +       if ( stricmp( "map", pszCommand ) == 0 )
  55. +           ulVoteCmd = VOTECMD_MAP;
  56. +       else if ( stricmp( "changemap", pszCommand ) == 0 )
  57. +           ulVoteCmd = VOTECMD_CHANGEMAP;
  58. +       else if ( stricmp( "fraglimit", pszCommand ) == 0 )
  59. +           ulVoteCmd = VOTECMD_FRAGLIMIT;
  60. +       else if ( stricmp( "timelimit", pszCommand ) == 0 )
  61. +           ulVoteCmd = VOTECMD_TIMELIMIT;
  62. +       else if ( stricmp( "winlimit", pszCommand ) == 0 )
  63. +           ulVoteCmd = VOTECMD_WINLIMIT;
  64. +       else if ( stricmp( "duellimit", pszCommand ) == 0 )
  65. +           ulVoteCmd = VOTECMD_DUELLIMIT;
  66. +       else if ( stricmp( "pointlimit", pszCommand ) == 0 )
  67. +           ulVoteCmd = VOTECMD_POINTLIMIT;
  68. +       else
  69. +           return ( false );
  70. +   }
  71.  
  72.     // Then, make sure the parameter for each vote is valid.
  73. +   int parameterInt = atoi( pszParameters );
  74.     switch ( ulVoteCmd )
  75.     {
  76.     case VOTECMD_KICK:
  77. @@ -542,8 +556,11 @@ static bool callvote_CheckValidity( char
  78.             // Compare the parameter to the version of the player's name without color codes.
  79.             sprintf( szPlayerName, players[ulIdx].userinfo.netname );
  80.             V_RemoveColorCodes( szPlayerName );
  81. -           if ( stricmp( pszParameters, szPlayerName ) == 0 )
  82. +           if ( stricmp( pszParameters, szPlayerName ) == 0 ){
  83. +               // to prevent a player from escaping a kick vote by renaming, we store his ID at the beginning of the vote
  84. +               g_ulKickVoteTargetPlayerIdx = ulIdx;
  85.                 break;
  86. +           }
  87.         }
  88.  
  89.         // If we didn't find the player, then don't allow the vote.
  90. @@ -565,57 +582,62 @@ static bool callvote_CheckValidity( char
  91.     case VOTECMD_FRAGLIMIT:
  92.  
  93.         // Fraglimit must be from 0-255.
  94. -       if (( atoi( pszParameters ) < 0 ) || ( atoi( pszParameters ) >= 256 ))
  95. +       if (( parameterInt < 0 ) || ( parameterInt >= 256 ))
  96.             return ( false );
  97. -       else if ( atoi( pszParameters ) == 0 )
  98. +       else if ( parameterInt == 0 )
  99.         {
  100.             if (( pszParameters[0] != '0' ) || ( strlen( pszParameters ) != 1 ))
  101.                 return ( false );
  102.         }
  103. +       sprintf( pszParameters, "%d", parameterInt );
  104.         break;
  105.     case VOTECMD_TIMELIMIT:
  106.  
  107. -       // Timelimit must be from 0-65536.
  108. -       if (( atof( pszParameters ) < 0.0 ) || ( atoi( pszParameters ) >= 65536.0 ))
  109. +       // Timelimit must be from 0-65535.
  110. +       if (( parameterInt < 0 ) || ( parameterInt >= 65536 ))
  111.             return ( false );
  112. -       else if ( atoi( pszParameters ) == 0 )
  113. +       else if ( parameterInt == 0 )
  114.         {
  115.             if (( pszParameters[0] != '0' ) || ( strlen( pszParameters ) != 1 ))
  116.                 return ( false );
  117.         }
  118. +       sprintf( pszParameters, "%d", parameterInt );
  119.         break;
  120.     case VOTECMD_WINLIMIT:
  121.  
  122.         // Winlimit must be from 0-255.
  123. -       if (( atoi( pszParameters ) < 0 ) || ( atoi( pszParameters ) >= 256 ))
  124. +       if (( parameterInt < 0 ) || ( parameterInt >= 256 ))
  125.             return ( false );
  126. -       else if ( atoi( pszParameters ) == 0 )
  127. +       else if ( parameterInt == 0 )
  128.         {
  129.             if (( pszParameters[0] != '0' ) || ( strlen( pszParameters ) != 1 ))
  130.                 return ( false );
  131.         }
  132. +       sprintf( pszParameters, "%d", parameterInt );
  133.         break;
  134.     case VOTECMD_DUELLIMIT:
  135.  
  136.         // Duellimit must be from 0-255.
  137. -       if (( atoi( pszParameters ) < 0 ) || ( atoi( pszParameters ) >= 256 ))
  138. +       if (( parameterInt < 0 ) || ( parameterInt >= 256 ))
  139.             return ( false );
  140. -       else if ( atoi( pszParameters ) == 0 )
  141. +       else if ( parameterInt == 0 )
  142.         {
  143.             if (( pszParameters[0] != '0' ) || ( strlen( pszParameters ) != 1 ))
  144.                 return ( false );
  145.         }
  146. +       sprintf( pszParameters, "%d", parameterInt );
  147.         break;
  148.     case VOTECMD_POINTLIMIT:
  149.  
  150. -       // Pointlimit must be from 0-65526.
  151. -       if (( atoi( pszParameters ) < 0 ) || ( atoi( pszParameters ) >= 65536 ))
  152. +       // Pointlimit must be from 0-65535.
  153. +       if (( parameterInt < 0 ) || ( parameterInt >= 65536 ))
  154.             return ( false );
  155. -       else if ( atoi( pszParameters ) == 0 )
  156. +       else if ( parameterInt == 0 )
  157.         {
  158.             if (( pszParameters[0] != '0' ) || ( strlen( pszParameters ) != 1 ))
  159.                 return ( false );
  160.         }
  161. +       sprintf( pszParameters, "%d", parameterInt );
  162.         break;
  163.     default:
  164.  
  165. --- src/d_main.cpp
  166. +++ src/d_main.cpp
  167. @@ -928,8 +928,11 @@ void D_DoomLoop ()
  168.                     G_BuildTiccmd (&netcmds[consoleplayer][maketic%BACKUPTICS]);
  169.                     if (advancedemo)
  170.                         D_DoAdvanceDemo ();
  171. +                   // Console Ticker
  172.                     C_Ticker ();
  173. +                   // Menu Ticker
  174.                     M_Ticker ();
  175. +                   // Game Ticker
  176.                     G_Ticker ();
  177.                     gametic++;
  178.                     maketic++;
  179. @@ -2234,9 +2237,10 @@ void D_DoomMain (void)
  180.     // voices. I never got around to writing the utility to do it, though.
  181.     // And I probably never will now. But I know at least one person uses
  182.     // it for something else, so this gets to stay here.
  183. -   wad = BaseFileSearch ("zvox.wad", NULL);
  184. -   if (wad)
  185. -       D_AddFile (wad, false); // [BC]
  186. +   // [BB] Loading zvox with Skulltag introduces a bag of problems and does't do any good.
  187. +   //wad = BaseFileSearch ("zvox.wad", NULL);
  188. +   //if (wad)
  189. +   //  D_AddFile (wad, false); // [BC]
  190.  
  191.  
  192.     // [BC] Also load skulltag.wad.
  193. --- src/d_protocol.h
  194. +++ src/d_protocol.h
  195. @@ -69,14 +69,23 @@ struct zdemoheader_s {
  196.  
  197.  struct usercmd_s
  198.  {
  199. -   BYTE    buttons;
  200. -   BYTE    pad;
  201. -   short   pitch;          // up/down
  202. +   // [BB] Added unused dummy variables to prevent sthook from working at all.
  203. +   BYTE    dummy1;
  204. +   BYTE    dummy2;
  205. +   short   dummy3;
  206. +   short   dummy4;
  207. +   short   dummy5;
  208. +   short   dummy6;
  209. +   short   dummy7;
  210. +   short   dummy8;
  211.     short   yaw;            // left/right   // If you haven't guessed, I just
  212.     short   roll;           // tilt         // ripped these from Quake2's usercmd.
  213. +   short   pitch;          // up/down
  214. +   BYTE    buttons;
  215. +   BYTE    pad;
  216. +   short   upmove;
  217.     short   forwardmove;
  218.     short   sidemove;
  219. -   short   upmove;
  220.  };
  221.  typedef struct usercmd_s usercmd_t;
  222.  
  223. --- src/g_level.cpp
  224. +++ src/g_level.cpp
  225. @@ -1928,9 +1928,9 @@ void G_DoCompleted (void)
  226.         level.maptime = 0;
  227.     }
  228.  
  229. -   if (!deathmatch &&
  230. -       ((level.flags & LEVEL_NOINTERMISSION) ||
  231. -       ((nextcluster == thiscluster) && (thiscluster->flags & CLUSTER_HUB))))
  232. +    // [BB] LEVEL_NOINTERMISSION is also respected in deathmatch games
  233. +   if ( ((level.flags & LEVEL_NOINTERMISSION) ||
  234. +        ( !deathmatch && (nextcluster == thiscluster) && (thiscluster->flags & CLUSTER_HUB))))
  235.     {
  236.         G_WorldDone ();
  237.         return;
  238. --- src/gi.cpp
  239. +++ src/gi.cpp
  240. @@ -293,7 +293,7 @@ gameinfo_t CommercialGameInfo =
  241.     GI_MAPxx | GI_MENUHACK_COMMERCIAL,
  242.     "TITLEPIC",
  243.     "CREDIT",
  244. -   "STCREDIT", // [BC] In Skulltag, show the ST credits screen, instead of the regular credits screen twice.
  245. +   "CREDIT",
  246.     "D_DM2TTL",
  247.     11,
  248.     0,
  249. --- src/r_data.cpp
  250. +++ src/r_data.cpp
  251. @@ -1011,7 +1011,6 @@ static void R_InitPatches ()
  252.         "FINAL2",
  253.         "E2END",
  254.         // [BC] New Skulltag patches here.
  255. -       "STCREDIT",
  256.         "STFLA1",
  257.         "STFLA2",
  258.         "STFLA3",
  259. --- src/r_plane.cpp
  260. +++ src/r_plane.cpp
  261. @@ -68,7 +68,7 @@ planefunction_t       ceilingfunc;
  262.  #define MAXVISPLANES 128    /* must be a power of 2 */
  263.  
  264.  // Avoid infinite recursion with stacked sectors by limiting them.
  265. -#define MAX_SKYBOX_PLANES 100
  266. +#define MAX_SKYBOX_PLANES 1000
  267.  
  268.  // [RH] Allocate one extra for sky box planes.
  269.  static visplane_t      *visplanes[MAXVISPLANES+1]; // killough
  270. --- src/sv_commands.cpp
  271. +++ src/sv_commands.cpp
  272. @@ -170,6 +170,10 @@ void SERVERCOMMANDS_SpawnPlayer( ULONG u
  273.         NETWORK_WriteLong( &clients[ulIdx].netbuf, players[ulPlayer].mo->z );
  274.         NETWORK_WriteByte( &clients[ulIdx].netbuf, players[ulPlayer].userinfo.PlayerClass );
  275.     }
  276. +   NETWORK_CheckBuffer( ulPlayer, 3 );
  277. +   NETWORK_WriteHeader( &clients[ulPlayer].netbuf, SVC_SETPLAYERHEALTH );
  278. +   NETWORK_WriteByte( &clients[ulPlayer].netbuf, ulPlayer );
  279. +   NETWORK_WriteShort( &clients[ulPlayer].netbuf, players[ulPlayer].health );
  280.  }
  281.  
  282.  //*****************************************************************************
  283. --- src/sv_main.cpp
  284. +++ src/sv_main.cpp
  285. @@ -187,7 +187,7 @@ static  ULONG   g_ulMaxPacketSize = 0;
  286.  //*****************************************************************************
  287.  // CONSOLE VARIABLES
  288.  
  289. -CVAR( String, sv_motd, "\\cgWelcome to this Skulltag v0.96d server!\n\n\\ccHope you enjoy your stay!\n\\ccIf you have any questions or requests,\n\\ccplease talk to the admin of this server. Thanks!", CVAR_ARCHIVE )
  290. +CVAR( String, sv_motd, "\\cgWelcome to this Skulltag v0.97c3 server!\n\n\\ccHope you enjoy your stay!\n\\ccIf you have any questions or requests,\n\\ccplease talk to the admin of this server. Thanks!", CVAR_ARCHIVE )
  291.  CVAR( Bool, sv_defaultdmflags, true, 0 )
  292.  CVAR( Bool, sv_forcepassword, false, CVAR_ARCHIVE )
  293.  CVAR( Bool, sv_forcejoinpassword, false, CVAR_ARCHIVE )
  294. @@ -4386,6 +4386,34 @@ static bool server_VoteNo( void )
  295.  //*****************************************************************************
  296.  // CONSOLE COMMANDS
  297.  
  298. +CCMD( kick_idx )
  299. +{
  300. +   // Only the server can boot players!
  301. +   if ( NETWORK_GetState( ) != NETSTATE_SERVER )
  302. +       return;
  303. +
  304. +   if ( argv.argc( ) < 2 )
  305. +   {
  306. +       Printf( "Usage: kick_idx <player Idx> [reason]\n" );
  307. +       return;
  308. +   }
  309. +   ULONG ulIdx =  atoi(argv[1]);
  310. +   // check if the player idx is identifying an ingame player
  311. +   if ( playeringame[ulIdx] == false )
  312. +       return;
  313. +
  314. +   // you can't kick admins
  315. +   if ( SERVER_ADMIN_IsAdministrator( clients[ulIdx].address ))
  316. +       return;
  317. +
  318. +   // If we provided a reason, give it.
  319. +   if ( argv.argc( ) >= 3 )
  320. +       SERVER_KickPlayer( ulIdx, argv[2] );
  321. +   else
  322. +       SERVER_KickPlayer( ulIdx, "None given." );
  323. +   return;
  324. +}
  325. +
  326.  CCMD( kick )
  327.  {
  328.     ULONG   ulIdx;
  329. --- src/version.h
  330. +++ src/version.h
  331. @@ -36,15 +36,14 @@
  332.  
  333.  // The svnrevision.h is automatically updated to grab the revision of
  334.  // of the current source tree so that it can be included with version numbers.
  335. -// [BC] No need for SVN revision stuff.
  336. -//#include "svnrevision.h"
  337. +#include "svnrevision.h"
  338.  
  339.  /** Lots of different version numbers **/
  340.  
  341. -#define DOTVERSIONSTR_NOREV "0.97c2"
  342. +#define DOTVERSIONSTR_NOREV "0.97c3"
  343.  
  344.  // The version string the user actually sees.
  345. -#define DOTVERSIONSTR DOTVERSIONSTR_NOREV
  346. +#define DOTVERSIONSTR DOTVERSIONSTR_NOREV "-r" SVN_REVISION_STRING
  347.  
  348.  // [BC] What version of ZDoom is this based off of?
  349.  #define    ZDOOMVERSIONSTR     "2.1.7"
  350. @@ -53,13 +52,14 @@
  351.  #define RC_FILEVERSION 0,0,0,SVN_REVISION_NUMBER
  352.  #define RC_PRODUCTVERSION 0,0,0,97
  353.  #define RC_FILEVERSION2 DOTVERSIONSTR
  354. -#define RC_PRODUCTVERSION2 "97c2"
  355. +#define RC_PRODUCTVERSION2 "97c3-alpha0"
  356.  
  357.  // Version identifier for network games.
  358.  // Bump it every time you do a release unless you're certain you
  359.  // didn't change anything that will affect network protocol.
  360. -// This has been updated for 97d.
  361. -#define NETGAMEVERSION 003
  362. +// NETGAMEVERSION 003 = 0.97c2
  363. +// NETGAMEVERSION 004 = 0.97c3
  364. +#define NETGAMEVERSION 004
  365.  
  366.  // Version stored in the ini's [LastRun] section.
  367.  // Bump it if you made some configuration change that you want to
  368. @@ -76,7 +76,7 @@
  369.  #define MINDEMOVERSION 0x205
  370.  
  371.  // [BC] This is what's displayed as the title for server windows.
  372. -#define    SERVERCONSOLE_TITLESTRING   "Skulltag v0.97c Server"
  373. +#define    SERVERCONSOLE_TITLESTRING   "Skulltag v0.97c3 Server"
  374.  
  375.  // SAVEVER is the version of the information stored in level snapshots.
  376.  // Note that SAVEVER is not directly comparable to VERSION.
  377. --- src/win32/resource.h
  378. +++ src/win32/resource.h
  379. @@ -176,7 +176,7 @@
  380.  #define IDCE_REFLECTIONSPANX            1103
  381.  #define IDC_NO_FOV                      1103
  382.  #define IDCS_REFLECTIONSPANX            1104
  383. -#define IDC_NO_IMPALING                 1104
  384. +#define IDC_NO_COOP_MP_WEAPON_SPAWN     1104
  385.  #define IDCE_REFLECTIONSPANY            1105
  386.  #define IDC_YES_WEAPONDROP              1105
  387.  #define IDCS_REFLECTIONSPANY            1106
  388. @@ -184,23 +184,23 @@
  389.  #define IDCE_REFLECTIONSPANZ            1107
  390.  #define IDC_INSTANT_RETURN              1107
  391.  #define IDCS_REFLECTIONSPANZ            1108
  392. -#define IDC_ALLOW_BASECOLORS            1108
  393. +#define IDC_DISALLOW_CROUCH             1108
  394.  #define IDCE_REVERB                     1109
  395.  #define IDC_NO_TEAM_SWITCH              1109
  396.  #define IDCS_REVERB                     1110
  397.  #define IDC_NO_TEAM_SELECT              1110
  398.  #define IDCE_REVERBDELAY                1111
  399. -#define IDC_YES_RUNEDROP                1111
  400. +#define IDC_COOP_LOSE_INVENTORY         1111
  401.  #define IDCS_REVERBDELAY                1112
  402. -#define IDC_YES_200MAX                  1112
  403. +#define IDC_COOP_LOSE_ARMOR             1112
  404.  #define IDCE_REVERBPANX                 1113
  405.  #define IDC_YES_DOUBLEAMMO              1113
  406.  #define IDCS_REVERBPANX                 1114
  407. -#define IDC_NO_CLEARFRAGS               1114
  408. +#define IDC_COOP_LOSE_POWERUPS          1114
  409.  #define IDCE_REVERBPANY                 1115
  410.  #define IDC_YES_DEGENERATION            1115
  411.  #define IDCS_REVERBPANY                 1116
  412. -#define IDC_LOSEFRAG_ON_DEATH           1116
  413. +#define IDC_COOP_LOSE_AMMO              1116
  414.  #define IDCE_REVERBPANZ                 1117
  415.  #define IDC_YES_FREEAIMBFG              1117
  416.  #define IDCS_REVERBPANZ                 1118
  417. @@ -245,7 +245,7 @@
  418.  #define IDC_ORIGINALSOUNDCURVE          1138
  419.  #define IDC_OLDINTERMISSION             1139
  420.  #define IDC_DISABLESTEALTHMONSTERS      1140
  421. -#define IDC_DISABLECOOPERATIVEBACKPACKS 1141
  422. +#define IDC_COOP_HALVE_AMMO             1141
  423.  #define IDC_TITLEBOX                    1142
  424.  #define IDC_SCOREBOARD1                 1143
  425.  #define IDC_SCOREBOARD2                 1144
  426. --- src/win32/serverconsole.cpp
  427. +++ src/win32/serverconsole.cpp
  428. @@ -634,19 +634,19 @@ BOOL CALLBACK SERVERCONSOLE_DMFlagsCallb
  429.             case IDC_NO_JUMP:
  430.             case IDC_NO_FREELOOK:
  431.             case IDC_NO_FOV:
  432. -           case IDC_NO_IMPALING:
  433. +           case IDC_NO_COOP_MP_WEAPON_SPAWN:
  434.             case IDC_YES_WEAPONDROP:
  435.             case IDC_NO_RUNES:
  436.             case IDC_INSTANT_RETURN:
  437. -           case IDC_ALLOW_BASECOLORS:
  438. +           case IDC_DISALLOW_CROUCH:
  439.             case IDC_NO_TEAM_SWITCH:
  440.             case IDC_NO_TEAM_SELECT:
  441. -           case IDC_YES_RUNEDROP:
  442. -           case IDC_YES_200MAX:
  443. +           case IDC_COOP_LOSE_INVENTORY:
  444. +           case IDC_COOP_LOSE_ARMOR:
  445.             case IDC_YES_DOUBLEAMMO:
  446. -           case IDC_NO_CLEARFRAGS:
  447. +           case IDC_COOP_LOSE_POWERUPS:
  448.             case IDC_YES_DEGENERATION:
  449. -           case IDC_LOSEFRAG_ON_DEATH:
  450. +           case IDC_COOP_LOSE_AMMO:
  451.             case IDC_YES_FREEAIMBFG:
  452.             case IDC_BARRELS_RESPAWN:
  453.             case IDC_NO_RESPAWN_INVUL:
  454. @@ -3292,6 +3292,51 @@ void SERVERCONSOLE_InitializeDMFlagsDisp
  455.     else
  456.         SendDlgItemMessage( hDlg, IDC_NO_FOV, BM_SETCHECK, BST_UNCHECKED, 0 );
  457.  
  458. +   if ( dmflags & DF_NO_COOP_WEAPON_SPAWN )
  459. +       SendDlgItemMessage( hDlg, IDC_NO_COOP_MP_WEAPON_SPAWN, BM_SETCHECK, BST_CHECKED, 0 );
  460. +   else
  461. +       SendDlgItemMessage( hDlg, IDC_NO_COOP_MP_WEAPON_SPAWN, BM_SETCHECK, BST_UNCHECKED, 0 );
  462. +
  463. +   if ( dmflags & DF_NO_CROUCH )
  464. +       SendDlgItemMessage( hDlg, IDC_DISALLOW_CROUCH, BM_SETCHECK, BST_CHECKED, 0 );
  465. +   else
  466. +       SendDlgItemMessage( hDlg, IDC_DISALLOW_CROUCH, BM_SETCHECK, BST_UNCHECKED, 0 );
  467. +
  468. +   if ( dmflags & DF_COOP_LOSE_INVENTORY )
  469. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_INVENTORY, BM_SETCHECK, BST_CHECKED, 0 );
  470. +   else
  471. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_INVENTORY, BM_SETCHECK, BST_UNCHECKED, 0 );
  472. +
  473. +   if ( dmflags & DF_COOP_LOSE_KEYS )
  474. +       SendDlgItemMessage( hDlg, IDC_KEEP_KEYS, BM_SETCHECK, BST_CHECKED, 0 );
  475. +   else
  476. +       SendDlgItemMessage( hDlg, IDC_KEEP_KEYS, BM_SETCHECK, BST_UNCHECKED, 0 );
  477. +
  478. +   if ( dmflags & DF_COOP_LOSE_WEAPONS )
  479. +       SendDlgItemMessage( hDlg, IDC_KEEP_WEAPONS, BM_SETCHECK, BST_CHECKED, 0 );
  480. +   else
  481. +       SendDlgItemMessage( hDlg, IDC_KEEP_WEAPONS, BM_SETCHECK, BST_UNCHECKED, 0 );
  482. +
  483. +   if ( dmflags & DF_COOP_LOSE_ARMOR )
  484. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_ARMOR, BM_SETCHECK, BST_CHECKED, 0 );
  485. +   else
  486. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_ARMOR, BM_SETCHECK, BST_UNCHECKED, 0 );
  487. +
  488. +   if ( dmflags & DF_COOP_LOSE_POWERUPS )
  489. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_POWERUPS, BM_SETCHECK, BST_CHECKED, 0 );
  490. +   else
  491. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_POWERUPS, BM_SETCHECK, BST_UNCHECKED, 0 );
  492. +
  493. +   if ( dmflags & DF_COOP_LOSE_AMMO )
  494. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_AMMO, BM_SETCHECK, BST_CHECKED, 0 );
  495. +   else
  496. +       SendDlgItemMessage( hDlg, IDC_COOP_LOSE_AMMO, BM_SETCHECK, BST_UNCHECKED, 0 );
  497. +
  498. +   if ( dmflags & DF_COOP_HALVE_AMMO )
  499. +       SendDlgItemMessage( hDlg, IDC_COOP_HALVE_AMMO, BM_SETCHECK, BST_CHECKED, 0 );
  500. +   else
  501. +       SendDlgItemMessage( hDlg, IDC_COOP_HALVE_AMMO, BM_SETCHECK, BST_UNCHECKED, 0 );
  502. +
  503.     // DMFLAGS2
  504.     if ( dmflags2 & DF2_YES_WEAPONDROP )
  505.         SendDlgItemMessage( hDlg, IDC_YES_WEAPONDROP, BM_SETCHECK, BST_CHECKED, 0 );
  506. @@ -3343,6 +3388,7 @@ void SERVERCONSOLE_InitializeDMFlagsDisp
  507.     else
  508.         SendDlgItemMessage( hDlg, IDC_NO_RESPAWN_INVUL, BM_SETCHECK, BST_UNCHECKED, 0 );
  509.  
  510. +
  511.     if ( dmflags2 & DF2_COOP_SHOTGUNSTART )
  512.         SendDlgItemMessage( hDlg, IDC_SHOTGUN_START, BM_SETCHECK, BST_CHECKED, 0 );
  513.     else
  514. @@ -3364,10 +3410,10 @@ void SERVERCONSOLE_InitializeDMFlagsDisp
  515.     else
  516.         SendDlgItemMessage( hDlg, IDC_STAIRINDEX, BM_SETCHECK, BST_UNCHECKED, 0 );
  517.  
  518. -   if ( compatflags & COMPATF_LIMITPAIN )
  519. -       SendDlgItemMessage( hDlg, IDC_LIMITPAIN, BM_SETCHECK, BST_CHECKED, 0 );
  520. +   if ( compatflags & COMPATF_SILENTPICKUP )
  521. +       SendDlgItemMessage( hDlg, IDC_SILENTPICKUP, BM_SETCHECK, BST_CHECKED, 0 );
  522.     else
  523. -       SendDlgItemMessage( hDlg, IDC_LIMITPAIN, BM_SETCHECK, BST_UNCHECKED, 0 );
  524. +       SendDlgItemMessage( hDlg, IDC_SILENTPICKUP, BM_SETCHECK, BST_UNCHECKED, 0 );
  525.  
  526.     if ( compatflags & COMPATF_LIMITPAIN )
  527.         SendDlgItemMessage( hDlg, IDC_LIMITPAIN, BM_SETCHECK, BST_CHECKED, 0 );
  528. @@ -3442,8 +3488,8 @@ void SERVERCONSOLE_InitializeDMFlagsDisp
  529.     if ( compatflags & COMPATF_DISABLECOOPERATIVEBACKPACKS )
  530.         SendDlgItemMessage( hDlg, IDC_DISABLECOOPERATIVEBACKPACKS, BM_SETCHECK, BST_CHECKED, 0 );
  531.     else
  532. -*/
  533.         SendDlgItemMessage( hDlg, IDC_DISABLECOOPERATIVEBACKPACKS, BM_SETCHECK, BST_UNCHECKED, 0 );
  534. +*/
  535.  
  536.     // Store current values for dmflags/dmflags2/compatflags.
  537.     Val = dmflags.GetGenericRep( CVAR_Int );
  538. @@ -3502,6 +3548,24 @@ void SERVERCONSOLE_UpdateDMFlagsDisplay(
  539.         ulDMFlags |= DF_NO_FREELOOK;
  540.     if ( SendDlgItemMessage( hDlg, IDC_NO_FOV, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  541.         ulDMFlags |= DF_NO_FOV;
  542. +   if ( SendDlgItemMessage( hDlg, IDC_NO_COOP_MP_WEAPON_SPAWN, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  543. +       ulDMFlags |= DF_NO_COOP_WEAPON_SPAWN;
  544. +   if ( SendDlgItemMessage( hDlg, IDC_DISALLOW_CROUCH, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  545. +       ulDMFlags |= DF_NO_CROUCH ;
  546. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_INVENTORY, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  547. +       ulDMFlags |= DF_COOP_LOSE_INVENTORY;
  548. +   if ( SendDlgItemMessage( hDlg, IDC_KEEP_KEYS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  549. +       ulDMFlags |= DF_COOP_LOSE_KEYS;
  550. +   if ( SendDlgItemMessage( hDlg, IDC_KEEP_WEAPONS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  551. +       ulDMFlags |= DF_COOP_LOSE_WEAPONS;
  552. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_ARMOR, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  553. +       ulDMFlags |= DF_COOP_LOSE_ARMOR;
  554. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_POWERUPS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  555. +       ulDMFlags |= DF_COOP_LOSE_POWERUPS;
  556. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_AMMO, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  557. +       ulDMFlags |= DF_COOP_LOSE_AMMO;
  558. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_HALVE_AMMO, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  559. +       ulDMFlags |= DF_COOP_HALVE_AMMO;
  560.  
  561.     sprintf( szString, "dmflags: %d", ulDMFlags );
  562.     SetDlgItemText( hDlg, IDC_DMFLAGS, szString );
  563. @@ -3625,6 +3689,24 @@ void SERVERCONSOLE_UpdateDMFlags( HWND h
  564.         ulDMFlags |= DF_NO_FREELOOK;
  565.     if ( SendDlgItemMessage( hDlg, IDC_NO_FOV, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  566.         ulDMFlags |= DF_NO_FOV;
  567. +   if ( SendDlgItemMessage( hDlg, IDC_NO_COOP_MP_WEAPON_SPAWN, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  568. +       ulDMFlags |= DF_NO_COOP_WEAPON_SPAWN;
  569. +   if ( SendDlgItemMessage( hDlg, IDC_DISALLOW_CROUCH, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  570. +       ulDMFlags |= DF_NO_CROUCH;
  571. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_INVENTORY, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  572. +       ulDMFlags |= DF_COOP_LOSE_INVENTORY;
  573. +   if ( SendDlgItemMessage( hDlg, IDC_KEEP_KEYS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  574. +       ulDMFlags |= DF_COOP_LOSE_KEYS;
  575. +   if ( SendDlgItemMessage( hDlg, IDC_KEEP_WEAPONS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  576. +       ulDMFlags |= DF_COOP_LOSE_WEAPONS;
  577. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_ARMOR, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  578. +       ulDMFlags |= DF_COOP_LOSE_ARMOR;
  579. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_POWERUPS, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  580. +       ulDMFlags |= DF_COOP_LOSE_POWERUPS;
  581. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_LOSE_AMMO, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  582. +       ulDMFlags |= DF_COOP_LOSE_AMMO;
  583. +   if ( SendDlgItemMessage( hDlg, IDC_COOP_HALVE_AMMO, BM_GETCHECK, 0, 0 ) == BST_CHECKED )
  584. +       ulDMFlags |= DF_COOP_HALVE_AMMO;
  585.  
  586.     // If the DMFlags have changed, send the update.
  587.     if ( g_ulStoredDMFlags != ulDMFlags )
  588. --- src/win32/zdoom.rc
  589. +++ src/win32/zdoom.rc
  590. @@ -304,7 +304,7 @@ BEGIN
  591.              VALUE "Comments", "Thanks to id Software for creating DOOM and then releasing the source code. Thanks also to TeamTNT for creating BOOM, which ZDoom (and thus Skulltag) is partially based on.  Giant thanks to Randy Heit for his wonderful ZDoom.\0"
  592.              VALUE "CompanyName", " \0"
  593.              VALUE "FileDescription", "Skulltag\0"
  594. -            VALUE "FileVersion", "v0.97c\0"
  595. +            VALUE "FileVersion", "v0.97c3\0"
  596.              VALUE "InternalName", "Skulltag\0"
  597.              VALUE "LegalCopyright", "Copyright © 1993-1996, id Software & 1998-2006, Randy Heit\0"
  598.              VALUE "LegalTrademarks", "Doom® is a Registered Trademark of id Software, Inc.\0"
  599. @@ -749,32 +749,32 @@ BEGIN
  600.                      BS_AUTOCHECKBOX | WS_TABSTOP,16,294,69,10
  601.      CONTROL         "Disallow fov",IDC_NO_FOV,"Button",BS_AUTOCHECKBOX |
  602.                      WS_TABSTOP,16,304,54,10
  603. -    CONTROL         "No impaling",IDC_NO_IMPALING,"Button",BS_AUTOCHECKBOX |
  604. -                    WS_TABSTOP,168,124,53,10
  605. +    CONTROL         "Don't spawn multi. weapons (CO-OP)",IDC_NO_COOP_MP_WEAPON_SPAWN,"Button",BS_AUTOCHECKBOX |
  606. +                    WS_TABSTOP,168,124,130,10
  607.      CONTROL         "Drop weapons (DM)",IDC_YES_WEAPONDROP,"Button",
  608.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,134,79,10
  609.      CONTROL         "Don't spawn runes (DM)",IDC_NO_RUNES,"Button",
  610.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,144,92,10
  611.      CONTROL         "Instant flag return (ST/CTF)",IDC_INSTANT_RETURN,"Button",
  612.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,154,103,10
  613. -    CONTROL         "Allow base colors (ST/CTF)",IDC_ALLOW_BASECOLORS,"Button",
  614. +    CONTROL         "Disallow crouch",IDC_DISALLOW_CROUCH,"Button",
  615.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,164,103,10
  616.      CONTROL         "No team switching (ST/CTF)",IDC_NO_TEAM_SWITCH,"Button",
  617.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,174,106,10
  618.      CONTROL         "Server picks teams (ST/CTF)",IDC_NO_TEAM_SELECT,"Button",
  619.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,184,108,10
  620. -    CONTROL         "Drop runes",IDC_YES_RUNEDROP,"Button",BS_AUTOCHECKBOX |
  621. -                    WS_TABSTOP,168,194,51,10
  622. -    CONTROL         "Force 200%/200% max (DM)",IDC_YES_200MAX,"Button",
  623. -                    BS_AUTOCHECKBOX | WS_TABSTOP,168,204,106,10
  624. +    CONTROL         "Lose inventory (CO-OP)",IDC_COOP_LOSE_INVENTORY,"Button",BS_AUTOCHECKBOX |
  625. +                    WS_TABSTOP,168,194,130,10
  626. +    CONTROL         "Lose armor (CO-OP)",IDC_COOP_LOSE_ARMOR,"Button",
  627. +                    BS_AUTOCHECKBOX | WS_TABSTOP,168,204,130,10
  628.      CONTROL         "Double ammo (DM)",IDC_YES_DOUBLEAMMO,"Button",
  629.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,214,77,10
  630. -    CONTROL         "Don't clear frags (DM)",IDC_NO_CLEARFRAGS,"Button",
  631. -                    BS_AUTOCHECKBOX | WS_TABSTOP,168,224,85,10
  632. +    CONTROL         "Lose powerups (CO-OP)",IDC_COOP_LOSE_POWERUPS,"Button",
  633. +                    BS_AUTOCHECKBOX | WS_TABSTOP,168,224,130,10
  634.      CONTROL         "Degeneration",IDC_YES_DEGENERATION,"Button",
  635.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,234,59,10
  636. -    CONTROL         "Lose frag on death (DM)",IDC_LOSEFRAG_ON_DEATH,"Button",
  637. -                    BS_AUTOCHECKBOX | WS_TABSTOP,168,244,93,10
  638. +    CONTROL         "Lose ammo (CO-OP)",IDC_COOP_LOSE_AMMO,"Button",
  639. +                    BS_AUTOCHECKBOX | WS_TABSTOP,168,244,130,10
  640.      CONTROL         "Allow BFG freeaiming",IDC_YES_FREEAIMBFG,"Button",
  641.                      BS_AUTOCHECKBOX | WS_TABSTOP,168,254,83,10
  642.      CONTROL         "Barrels respawn (DM)",IDC_BARRELS_RESPAWN,"Button",
  643. @@ -827,8 +827,8 @@ BEGIN
  644.                      "Button",BS_AUTOCHECKBOX | WS_TABSTOP,320,274,126,10
  645.      CONTROL         "Disable stealth monsters",IDC_DISABLESTEALTHMONSTERS,
  646.                      "Button",BS_AUTOCHECKBOX | WS_TABSTOP,320,284,92,10
  647. -    CONTROL         "Disable cooperative backpacks",
  648. -                    IDC_DISABLECOOPERATIVEBACKPACKS,"Button",BS_AUTOCHECKBOX |
  649. +    CONTROL         "Lose half ammo (CO-OP)",
  650. +                    IDC_COOP_HALVE_AMMO,"Button",BS_AUTOCHECKBOX |
  651.                      WS_TABSTOP,320,294,116,10
  652.  END
  653.  
  654. @@ -1042,7 +1042,7 @@ END
  655.  
  656.  IDD_SERVERDIALOG DIALOG DISCARDABLE  0, 0, 288, 322
  657.  STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
  658. -CAPTION "Skulltag v0.96d Server"
  659. +CAPTION "Skulltag v0.97c3 Server"
  660.  MENU IDR_MAINMENU
  661.  FONT 8, "MS Sans Serif"
  662.  BEGIN
  663. --- zdoom.vcproj
  664. +++ zdoom.vcproj
  665. @@ -201,6 +201,7 @@
  666.                 Name="VCLinkerTool"
  667.                 AdditionalOptions="/MACHINE:I386"
  668.                 AdditionalDependencies="gdi32.lib user32.lib comctl32.lib shell32.lib advapi32.lib comdlg32.lib ole32.lib dxguid.lib dsound.lib ddraw.lib dinput8.lib strmiids.lib wsock32.lib winmm.lib fmodex_vc.lib setupapi.lib ws2_32.lib opengl32.lib glu32.lib ilu.lib ilut.lib devil.lib fmodvc.lib $(NOINHERIT)"
  669. +               OutputFile="..\$(ProjectName)-debug.exe"
  670.                 LinkIncremental="2"
  671.                 SuppressStartupBanner="true"
  672.                 AdditionalLibraryDirectories=""
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement