diff --git a/Source/FreeCS-CE.prj b/Source/FreeCS-CE.prj index 7acd6442..32523f1e 100644 --- a/Source/FreeCS-CE.prj +++ b/Source/FreeCS-CE.prj @@ -61,7 +61,7 @@ - + @@ -83,7 +83,6 @@ - diff --git a/Source/Menu/MenuMultiplayer.c b/Source/Menu/MenuMultiplayer.c index a3533eaa..554be45f 100755 --- a/Source/Menu/MenuMultiplayer.c +++ b/Source/Menu/MenuMultiplayer.c @@ -189,6 +189,8 @@ Server creation menu screen void Menu_Multiplayer_Create( void ) { static int iSelectedMap; static int iScrollMap; + static int iFirst = 1; + static string strHostname; static void Create_ListMap( vector vPosition, int iIndex ) { float fAlpha = 0.8; @@ -216,6 +218,13 @@ void Menu_Multiplayer_Create( void ) { iMenu = MENU_MULTIPLAYER_OPTIONS; } static void Create_ButtonOK( void ) { + // Apply the configurations + if ( strHostname != __NULL__ ) { + localcmd( sprintf( "hostname %s\n", strHostname ) ); + } else { + strHostname = cvar_string( "hostname" ); + } + // Start server localcmd( sprintf( "map %s\n", sMapList[ iSelectedMap ] ) ); } @@ -223,10 +232,20 @@ void Menu_Multiplayer_Create( void ) { iMenu = MENU_MULTIPLAYER; } + if ( iFirst == 1 ) { + strHostname = cvar_string( "hostname" ); + iFirst = 0; + } + Object_Button( '32 148', BTN_ADVOPTIONS, Create_ButtonAdvanced, fButtonAlpha[0] ); Object_Button( '32 180', BTN_OK, Create_ButtonOK, fButtonAlpha[1] ); Object_Button( '32 212', BTN_CANCEL, Create_ButtonCancel, fButtonAlpha[2] ); + // Options + Object_Label( '196 148', _("SERVER_NAME"), '8 8' ); + Object_Textfield( '196 160', strHostname, 20 ); + + // Map list Object_Label( '384 148', _("MP_MAPS"), '8 8' ); Object_Frame( '384 164', '190 288' ); Object_Scrollbar( '576 164', 288, iScrollMap ); diff --git a/Source/Shared/Weapons.c b/Source/Shared/Weapons.c index 5b87a99e..dd160234 100755 --- a/Source/Shared/Weapons.c +++ b/Source/Shared/Weapons.c @@ -287,6 +287,10 @@ float Weapon_SlotEmpty( int fSlot ) { if ( self.fSlotSecondary == 0 ) { return TRUE; } + } else if ( fSlot == SLOT_GRENADE ) { + if ( self.fSlotGrenade == 0 ) { + return TRUE; + } } return FALSE; @@ -402,9 +406,14 @@ void Weapon_DropWeapon( int iSlot ) { return; } + // No bomb for the CTs + if ( ( self.weapon == WEAPON_C4BOMB ) && ( other.team == TEAM_CT ) ) { + return; + } + entity eOld = self; self = other; - + if ( Weapon_SlotEmpty( Weapon_GetSlot( eOld.weapon ) ) ) { Weapon_AddItem( eOld.weapon ); Weapon_Draw( eOld.weapon ); diff --git a/freecs/menu.dat b/freecs/menu.dat index ee8ec31b..b4674ff8 100755 Binary files a/freecs/menu.dat and b/freecs/menu.dat differ diff --git a/freecs/menu.dat.de.po b/freecs/menu.dat.de.po index 5c79f6a2..cc01bc68 100755 --- a/freecs/menu.dat.de.po +++ b/freecs/menu.dat.de.po @@ -48,4 +48,7 @@ msgid "PLAYER_GUICOLOR" msgstr "UI Farbe:" msgid "PLAYER_HUDCOLOR" -msgstr "Heads-Up-Display Farbe:" \ No newline at end of file +msgstr "Heads-Up-Display Farbe:" + +msgid "SERVER_NAME" +msgstr "Servername:" \ No newline at end of file diff --git a/freecs/menu.dat.en.po b/freecs/menu.dat.en.po index f6719477..c5d732e1 100755 --- a/freecs/menu.dat.en.po +++ b/freecs/menu.dat.en.po @@ -54,4 +54,7 @@ msgid "PLAYER_GUICOLOR" msgstr "UI Color:" msgid "PLAYER_HUDCOLOR" -msgstr "Heads-Up-Display Color:" \ No newline at end of file +msgstr "Heads-Up-Display Color:" + +msgid "SERVER_NAME" +msgstr "Hostname:" \ No newline at end of file diff --git a/freecs/progs.dat b/freecs/progs.dat index 54a8edf5..ea8d1f0b 100644 Binary files a/freecs/progs.dat and b/freecs/progs.dat differ