Общие подкаталоги: src_old/asm_ia32 и src/asm_ia32 Общие подкаталоги: src_old/asm_x86_64 и src/asm_x86_64 Общие подкаталоги: src_old/g_doom и src/g_doom Общие подкаталоги: src_old/g_heretic и src/g_heretic Общие подкаталоги: src_old/g_hexen и src/g_hexen Общие подкаталоги: src_old/gl и src/gl Общие подкаталоги: src_old/g_raven и src/g_raven Общие подкаталоги: src_old/g_shared и src/g_shared Общие подкаталоги: src_old/g_strife и src/g_strife Общие подкаталоги: src_old/huffman и src/huffman diff -c src_old/lastmanstanding.cpp src/lastmanstanding.cpp *** src_old/lastmanstanding.cpp 2014-10-05 22:47:04.000000000 +0300 --- src/lastmanstanding.cpp 2015-01-10 18:26:13.962794054 +0200 *************** *** 94,99 **** --- 94,104 ---- } //***************************************************************************** + // CVARS + + CVAR( Bool, sv_lmsonlyallowedweapons, false, CVAR_ARCHIVE) + + //***************************************************************************** // void LASTMANSTANDING_Tick( void ) { *************** *** 674,735 **** bool LASTMANSTANDING_IsWeaponDisallowed( const PClass *pType ) { // [BB] Not in LMS mode, everything is allowed. ! if (( lastmanstanding == false ) && ( teamlms == false )) return false; ! if ((( lmsallowedweapons & LMS_AWF_CHAINSAW ) == false ) && ! ( pType == PClass::FindClass( "Chainsaw" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_PISTOL ) == false ) && ! ( pType == PClass::FindClass( "Pistol" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_SHOTGUN ) == false ) && ! ( pType == PClass::FindClass( "Shotgun" ))) ! { ! return true; ! } ! if (( pType == PClass::FindClass( "SuperShotgun" )) && ! ((( lmsallowedweapons & LMS_AWF_SSG ) == false ) || ! (( gameinfo.flags & GI_MAPxx ) == false ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_CHAINGUN ) == false ) && ! ( pType == PClass::FindClass( "Chaingun" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_MINIGUN ) == false ) && ! ( pType == PClass::FindClass( "Minigun" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_ROCKETLAUNCHER ) == false ) && ! ( pType == PClass::FindClass( "RocketLauncher" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_GRENADELAUNCHER ) == false ) && ! ( pType == PClass::FindClass( "GrenadeLauncher" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_PLASMA ) == false ) && ! ( pType == PClass::FindClass( "PlasmaRifle" ))) ! { ! return true; ! } ! if ((( lmsallowedweapons & LMS_AWF_RAILGUN ) == false ) && ! ( pType == PClass::FindClass( "Railgun" ))) { ! return true; } ! return false; } //***************************************************************************** --- 679,699 ---- bool LASTMANSTANDING_IsWeaponDisallowed( const PClass *pType ) { // [BB] Not in LMS mode, everything is allowed. ! if (( lastmanstanding == false ) && ( teamlms == false ) && !sv_lmsonlyallowedweapons) return false; ! FString weapons(lmsallowedweapons); ! char *weapon = strtok((char*)weapons.GetChars(), ","); ! ! while (weapon) { ! if (pType == PClass::FindClass(weapon)) ! return false; ! ! weapon = strtok(NULL, ","); } ! return true; } //***************************************************************************** *************** *** 830,854 **** } } ! CUSTOM_CVAR( Int, lmsallowedweapons, LMS_AWF_ALLALLOWED, CVAR_SERVERINFO ) { if (( NETWORK_GetState( ) == NETSTATE_SERVER ) && ( gamestate != GS_STARTUP )) { - SERVER_Printf( PRINT_HIGH, "%s changed to: %d\n", self.GetName( ), (LONG)self ); if ( lastmanstanding || teamlms ) SERVERCOMMANDS_SetLMSAllowedWeapons( ); } } - CVAR( Flag, lms_allowpistol, lmsallowedweapons, LMS_AWF_PISTOL ); - CVAR( Flag, lms_allowshotgun, lmsallowedweapons, LMS_AWF_SHOTGUN ); - CVAR( Flag, lms_allowssg, lmsallowedweapons, LMS_AWF_SSG ); - CVAR( Flag, lms_allowchaingun, lmsallowedweapons, LMS_AWF_CHAINGUN ); - CVAR( Flag, lms_allowminigun, lmsallowedweapons, LMS_AWF_MINIGUN ); - CVAR( Flag, lms_allowrocketlauncher, lmsallowedweapons, LMS_AWF_ROCKETLAUNCHER ); - CVAR( Flag, lms_allowgrenadelauncher, lmsallowedweapons, LMS_AWF_GRENADELAUNCHER ); - CVAR( Flag, lms_allowplasma, lmsallowedweapons, LMS_AWF_PLASMA ); - CVAR( Flag, lms_allowrailgun, lmsallowedweapons, LMS_AWF_RAILGUN ); - CVAR( Flag, lms_allowchainsaw, lmsallowedweapons, LMS_AWF_CHAINSAW ); CUSTOM_CVAR( Int, lmsspectatorsettings, LMS_SPF_VIEW, CVAR_SERVERINFO ) { --- 794,807 ---- } } ! CUSTOM_CVAR( String, lmsallowedweapons, LMS_ALLOWED_WEAPONS, CVAR_SERVERINFO ) { if (( NETWORK_GetState( ) == NETSTATE_SERVER ) && ( gamestate != GS_STARTUP )) { if ( lastmanstanding || teamlms ) SERVERCOMMANDS_SetLMSAllowedWeapons( ); } } CUSTOM_CVAR( Int, lmsspectatorsettings, LMS_SPF_VIEW, CVAR_SERVERINFO ) { diff -c src_old/lastmanstanding.h src/lastmanstanding.h *** src_old/lastmanstanding.h 2014-10-05 22:47:04.000000000 +0300 --- src/lastmanstanding.h 2014-11-16 17:20:15.155587829 +0200 *************** *** 65,88 **** } LMSSTATE_e; - #define LMS_AWF_PISTOL 0x00000001 - #define LMS_AWF_SHOTGUN 0x00000002 - #define LMS_AWF_SSG 0x00000004 - #define LMS_AWF_CHAINGUN 0x00000008 - #define LMS_AWF_MINIGUN 0x00000010 - #define LMS_AWF_ROCKETLAUNCHER 0x00000020 - #define LMS_AWF_GRENADELAUNCHER 0x00000040 - #define LMS_AWF_PLASMA 0x00000080 - #define LMS_AWF_RAILGUN 0x00000100 - #define LMS_AWF_CHAINSAW 0x00000200 - - #define LMS_AWF_ALLALLOWED ( LMS_AWF_PISTOL|LMS_AWF_SHOTGUN|LMS_AWF_SSG|LMS_AWF_CHAINGUN| \ - LMS_AWF_MINIGUN|LMS_AWF_ROCKETLAUNCHER|LMS_AWF_GRENADELAUNCHER|LMS_AWF_PLASMA| \ - LMS_AWF_RAILGUN|LMS_AWF_CHAINSAW ) - #define LMS_SPF_CHAT 0x00000001 #define LMS_SPF_VIEW 0x00000002 //***************************************************************************** // PROTOTYPES --- 65,76 ---- } LMSSTATE_e; #define LMS_SPF_CHAT 0x00000001 #define LMS_SPF_VIEW 0x00000002 + #define LMS_ALLOWED_WEAPONS "Chainsaw,Fist,Pistol,Shotgun,SuperShotgun,Chaingun,RocketLauncher,PlasmaRifle" + #define LMS_START_INVENTORY (gameinfo.gametype == GAME_Heretic) ? "SilverArmor" : "GreenArmor,PowerStrength" + //***************************************************************************** // PROTOTYPES *************** *** 117,123 **** // EXTERNAL CONSOLE VARIABLES EXTERN_CVAR( Int, sv_lmscountdowntime ) ! EXTERN_CVAR( Int, lmsallowedweapons ); EXTERN_CVAR( Int, lmsspectatorsettings ); EXTERN_CVAR( Int, winlimit ) --- 105,111 ---- // EXTERNAL CONSOLE VARIABLES EXTERN_CVAR( Int, sv_lmscountdowntime ) ! EXTERN_CVAR( String, lmsallowedweapons ); EXTERN_CVAR( Int, lmsspectatorsettings ); EXTERN_CVAR( Int, winlimit ) Общие подкаталоги: src_old/Linux и src/Linux Общие подкаталоги: src_old/network и src/network Общие подкаталоги: src_old/oplsynth и src/oplsynth diff -c src_old/p_user.cpp src/p_user.cpp *** src_old/p_user.cpp 2014-10-05 22:47:04.000000000 +0300 --- src/p_user.cpp 2015-01-10 18:31:51.562808371 +0200 *************** *** 80,85 **** --- 80,93 ---- // Note: ZDoom's limit is chosen such that the sky is rendered properly. CVAR (Bool, cl_oldfreelooklimit, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) + // LMS + CUSTOM_CVAR( Int, sv_lmsstarthealth, 200, CVAR_ARCHIVE ) + { + if (self <= 0) + self = 100; + } + CVAR( String, sv_lmsstartinventory, LMS_START_INVENTORY, CVAR_ARCHIVE ) + static FRandom pr_skullpop ("SkullPop"); *************** *** 1428,1448 **** } } ! // Also give the player berserk. ! player->mo->GiveInventoryTypeRespectingReplacements( PClass::FindClass( "Berserk" ) ); ! pBerserk = static_cast( player->mo->FindInventory( PClass::FindClass( "PowerStrength" ))); ! if ( pBerserk ) ! { ! pBerserk->EffectTics = 768; ! // [BB] This is a workaround to set the EffectTics property of the powerup on the clients. ! // Note: The server already tells the clients that they got PowerStrength, because ! // Berserk uses A_GiveInventory("PowerStrength"). ! if ( NETWORK_GetState( ) == NETSTATE_SERVER ) ! SERVERCOMMANDS_GivePowerup( static_cast(player - players), pBerserk ); } - player->health = deh.MegasphereHealth; - player->mo->GiveInventoryTypeRespectingReplacements( PClass::FindClass( "GreenArmor" ) ); player->health -= player->userinfo.lHandicap; // Don't allow player to be DOA. --- 1436,1452 ---- } } ! player->health = sv_lmsstarthealth; ! ! FString items(sv_lmsstartinventory); ! char *item = strtok((char*)items.GetChars(), ","); ! ! while (item) ! { ! player->mo->GiveInventoryTypeRespectingReplacements(PClass::FindClass(item)); ! item = strtok(NULL, ","); } player->health -= player->userinfo.lHandicap; // Don't allow player to be DOA. *************** *** 1554,1561 **** } } ! player->health = deh.MegasphereHealth; ! player->mo->GiveInventoryTypeRespectingReplacements( PClass::FindClass( "SilverShield" ) ); player->health -= player->userinfo.lHandicap; // Don't allow player to be DOA. --- 1558,1574 ---- } } ! player->health = sv_lmsstarthealth; ! ! FString items(sv_lmsstartinventory); ! char *item = strtok((char*)items.GetChars(), ","); ! ! while (item) ! { ! player->mo->GiveInventoryTypeRespectingReplacements(PClass::FindClass(item)); ! item = strtok(NULL, ","); ! } ! player->health -= player->userinfo.lHandicap; // Don't allow player to be DOA. Общие подкаталоги: src_old/sdl и src/sdl Общие подкаталоги: src_old/sfmt и src/sfmt Общие подкаталоги: src_old/sound и src/sound diff -c src_old/sv_commands.cpp src/sv_commands.cpp *** src_old/sv_commands.cpp 2014-10-05 22:47:04.000000000 +0300 --- src/sv_commands.cpp 2014-11-16 12:52:15.710905932 +0200 *************** *** 3515,3521 **** SERVER_CheckClientBuffer( ulIdx, 5, true ); NETWORK_WriteHeader( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, SVC_SETLMSALLOWEDWEAPONS ); ! NETWORK_WriteLong( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, lmsallowedweapons ); } } --- 3515,3521 ---- SERVER_CheckClientBuffer( ulIdx, 5, true ); NETWORK_WriteHeader( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, SVC_SETLMSALLOWEDWEAPONS ); ! NETWORK_WriteString(&SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, lmsallowedweapons); } } diff -c src_old/sv_main.cpp src/sv_main.cpp *** src_old/sv_main.cpp 2014-10-05 22:47:04.000000000 +0300 --- src/sv_main.cpp 2014-11-17 16:40:05.801303394 +0200 *************** *** 1911,1916 **** --- 1911,1917 ---- } // Make sure the network game version matches. + Printf("Netversion: %d\n", lClientNetworkGameVersion); if ( NETGAMEVERSION != lClientNetworkGameVersion ) { SERVER_ClientError( lClient, NETWORK_ERRORCODE_WRONGPROTOCOLVERSION ); Только в src/: svnrevision.h Общие подкаталоги: src_old/textures и src/textures Общие подкаталоги: src_old/thingdef и src/thingdef Общие подкаталоги: src_old/timidity и src/timidity Общие подкаталоги: src_old/win32 и src/win32 Общие подкаталоги: src_old/xlat и src/xlat