From 669c607190f9c91d99ab8073a41223f819a74b1f Mon Sep 17 00:00:00 2001 From: Robert MacGregor Date: Mon, 17 Jul 2017 23:27:34 -0400 Subject: [PATCH] v24834 - skipped v24763 and v24822 due to not being available (09/13/01): Map Editor =================================== Several editor crashes have been resolved and this tool should be more stable for the MOD community now. VCR Mode =================================== The VCR Mode has been implemented. F3 starts recording. F4 stops the current recording. Multiple recordings can be made from the same mission. Other controls can be used while playing back a recording. They include: -- ESCAPE will stop the playback -- TAB will pop up the playback controls window in the upper part of the screen -- SPACEBAR will pause/unpause the playback -- Numpad + will increase the time step so that the playback accelerates (maximum of 16X speed) -- Numpad - will decrease the time step so that the playback slows down (minimum of 1/16X speed) ***If you Alt-Tab to windows to rename a demo file and then return to Tribes instead of using the rename file feature of the demo recorder you will crash after you exit the recorder. It is a windows issue and so we can't fix it. Satchel Charge Icon Glow =================================== When the satchel charge is deployed and ready to explode, the icon now glows. The icon disappears completely when the satchel is destroyed (either through activation or destruction). This allows players to more readily keep track of satchel charge status. "Visibility" option for Server Admins ===================================== Allows an Advanced Server option to indicate whether the server will use the "Speed" or "Distance" versions of the maps when hosting games. The "Distance" setting will use world versions with much less fog and more visible distance. The "Speed" setting will use the current foggier map settings. These settings will be displayed as a new column on the Master Server List titled "VISIBILITY" and the settings will be "Speed" or "Distance". NOTE: This visibility change won't be apparent on all maps. A map you can use as a test to show the differences is "Dessicator". World Skins Default to Main Tribes ========================================== The missions are now set up so they have default skins other than "Storm" vs. "Inferno". This occurs whenever a player has "Show Individual Skins" toggled OFF. In otherwords, some maps will have "Diamond Skin" vs. "StarWolf", while others will have different combinations. (NOTE: If a player has "Show Individual Skins" toggled ON, then he will see the regular individual skins for players.) New voice samples have been added to allow Victory messages indicate these new team skins. Also note: Bioderms are bioderms, regardless of the team they are on...we're not changing models or voice packages. Teams now use skins for CTF games relative to the planet - as follows: Terrain Team 1 Team 2 Ice Starwolf Blood Eagle Lush Blood Eagle Diamond Sword Badlands Starwolf Diamond Sword Desert Phoenix Blood Eagle Lava Diamond Sword Phoenix If the server admin wishes to specify team skins, set the variable $host:: useCustomSkins = true; in serverPrefs.cs if this variable is set true the skins and names used are $Host::TeamName1 and $Host::TeamName2 and $Host::TeamSkin1 and $Host::TeamSkin2 also set in serverPrefs.cs. These team and skin names are always used for non-CTF games. NOTE: In "Tournament" mode games, the skins will always default to Storm and Inferno rather than world-specific skins. This is to make it easier for League and Ladder players to assign teams to sides. Cheat Fixes =================================== Significant cheat prevention code has been implemented to eliminate known cheats, as well as to make it much more difficult for future cheating of a similar nature to occur. NOTE: If you have any troubles running a server now, you may have altered or removed something from the build on your server. The code is checking almost everything now (shapes, textures, etc.), so you should ensure that you have all files present from a normal build on your server. (Additional files, like MODs and extra art files won't be a problem...but all original files must be there as well.) Siege Halftime Improved =================================== The Siege halftime now gets a screen listing the winning team instead of simply "Switching Sides". CTF Individual Scoring =================================== No change was made whatsoever to the team CTF scoring. But the individual scoring now takes into account vehicle kills, more repair/destroy stuff, and makes it nice and robust for statistical tracking later. NOTE: The scores are dramatically inflated compared to previous individual scores so that we had more "granularity" in the system and didn't have to use decimal points. Thus, you will appear to be racking up a huge amount of points, but it's all relative when compared to other players in the game. Scoring Details ---------------------- Kill: 10 pts Flag Capture: 30 pts Flag Grab (if subsequently captured): 20 [A one player grab-and-cap you get both for a total of 50] Carrier Escort: 3 Sniper Headshot: 1 Turret kill: manned: 10 automated: 3 Flag Defend: 5 Flag Carrier Kill: 5 Flag Return: 0 - 10 pts [Points are scaled by distance: no points for a short return. 10 pts if the flag carrier gets all the way to the flag. 1 point per 10% (Halfway is 5 pts.)] 15 points if the return breaks a stalemate (both teams have had each others flags for 60 seconds or longer.) Generator Defend: 5 pts Object Destroy Repair Generator 10 8 Sensor 4 1 Base Turret 5 4 Inv Station 2 2 Vehicle Station 5 4 Solar Panel 5 4 Sentry Turret 4 2 Deployed sensor 1 0 Deployed inv station 2 0 Deployed turret 3 3 Shrike 5 Bomber 8 Havoc 5 Wildcat 5 Tank 8 MPB 12 *vehicles destroyed by mines are double points, vehicles destroyed by the Shrike are triple points **vehicles destroyed also score 2 points per passenger (after any multiplier) ***points accumulated in a vehicle are earned by everyone in the vehicle Heat Lock vs. Target Laser Lock =================================== Heat Locking now supercedes Targeting Laser Locking so that heat locks can be attained on objects that are being lazed by friends. Keep in mind that when the target is out of range for the ML, it will still lock onto the targeting laser giving the appearance that its locking onto the laser first. If the target is in range the ML will always look for heated targets first. Objective HUD Visible on Vehicles =================================== The objective HUD is now visible while flying/driving vehicles. Client-Side Toggle on Vehicle Tport =================================== The player now has the ability to toggle Vehicle Tport ability on/off (defaults to ON) as a client-side option in SETTINGS/GAME. EAX Sound Improvements =================================== EAX environmental sound reverbs have been included for underwater and interiors. Those sounds will only be heard when using EAX or EAX2 drivers. (We recommend EAX for best results.) IFeel Force Feedback Mouse =================================== The IFeel force feedback mouse vibrations should now work correctly again. They have also been enhanced beyond what was previously available. Vehicles Parking on Flags =================================== "Anti-Parking" code has been added to flags similar to the "anti-camping" code around a Nexus in Hunters. This results in vehicles taking damage over time when they are parked near a flag, eventually resulting in their destruction if left there too long. Aiming Up and Down =================================== The restrictions on aiming up and down have been virtually removed for all armors. NOTE: This will result in situations where your weapon can clip through the leg of your armor when looking straight down. If this bothers you, then change your graphics setting to "Items Only" so that your body is not drawn when in first-person perspective. Jetpower for Suits =================================== Scout jetpower (power of thrust) was reduced to previous levels, but their maximum speed velocity was increased somewhat. This removes the "butterfly" effect, but allows slightly faster skiing than previously allowed. Additionally, air resistance was reduced by 33% on all armors to further reduce the "floaty" feel. This also allows slightly faster speeds across the board. Splash Damage =================================== Splash damage on shots was reduced slightly. It is still much more powerful than when the game was released, but this change makes mortars and grenades more playable. Shrike Speed =================================== The Shrike thrust was returned to normal, making the Shrike very responsive again. A new maximum speed cap has been added to prevent it from going too fast, but the performance improvement on this vehicle is significant. Mine Damage =================================== Mine damage was reduced slightly to prevent Lights from being one-shotted by stepping on a mine. They will still be severely harmed, but won't go from 100% health to dead in one shot. Missile Launcher =================================== The Missile Launcher range had been inadvertently reduced during the reticule improvements a few patches back. It has now been increased back to its original design. Range is now 400m. Heat Signature Fall Off =================================== Heat reduces *very slightly* slower than it did previously. Players can still easily manage their heat signatures, but must be a bit more paranoid of missile launchers now (thus making it a bit easier for high-ping players to use this weapon). Suit Mortars vs. Tanks =================================== The strength of hand-held mortars versus Tanks was incorrectly weak. It has now been increased so that it is much more useful. Shrike Gun Changes =================================== The Shrike blasters have been moved out to the wing joints to allow easier strafing of objects. Additionally, there is some (very minor...one degree of spread) projectile spread on the blasters now to make strafing easier. (For comparison purposes, the chaingun has eight degrees of spread.)The range of the blasters was incorrectly enormous and has been reduced to a balanced distance (slightly outside the range of hand-held missile launchers). Water Movement =================================== Speeds in water have been greatly increased so as to make water a more viable playing environment. Whiteout Grenades =================================== A maximum saturation has been defined for the Whiteout grenades to keep your "whiteout" time to no more than two seconds. OOB Grid =================================== The mission boundary is now visually defined. As you approach a mission boundary, and "out of bounds grid" will fade into existence. If you go past the boundary, the grid will not fade out until you return inside the mission area. This is done to make it easier to avoid getting a flag stripped or getting damaged due to OOB damage. This visual option can be toggled OFF in your Game Settings area (option button is called "Show Out of Bounds Grid"). Wildcat Grav Bike =================================== "Suspension" has been added to the Wildcat making it easier to control over rough terrain. Air Drag =================================== Air Drag has been reduced making the game feel "faster". Panther XL Support Added =================================== Players will now be able to satisfactorily map the roller ball of the Panther XL. The Z axis or throttle is not configurable with T2 because of a Panther XL driver issue. Flight Ceiling limited for Shrike =================================== If you fly past the flight ceiling then you will lose your jetting and thrusting ability. Angle your nose down (when you are above the flight ceiling) and thrust will function normally. "Unassigned" Team =================================== This bug allowed a person to join as "unassigned" and view all friend/foe triangles as grey. It has been fixed. and random string issues =================================== There is a finite number of network strings available, the single quote strings. This problem occurs when all strings have been allocated. This is particularly common with mod servers, which appear to be allocating too many net strings. Mod and script developers need to be cautious when creating new strings. Don't create dynamic net strings unless you have a firm understanding of the implications. If a string is added using "AddTaggedString" make sure that there is a corresponding "RemoveTaggedSting" call when the string is no longer needed. Also be sure to limit the number of imbedded strings in your scripts. --- AMDW2KCardProfiles.cs | 9 +- AMDW98CardProfiles.cs | 11 +- AMDW98SECardProfiles.cs | 11 +- AMDWMECardProfiles.cs | 11 +- IntelW2KCardProfiles.cs | 6 +- IntelW95CardProfiles.cs | 8 +- IntelW98CardProfiles.cs | 11 +- IntelW98SECardProfiles.cs | 11 +- IntelWMECardProfiles.cs | 7 +- SierraUp.cfg | 2 +- base/console_end.cs | 36 +- base/gui/AdvancedHostDlg.gui | 90 +- base/gui/ChatDlg.gui | 8 +- base/gui/ChatGui.gui | 510 +- base/gui/CreateAccountDlg.gui | 1 + base/gui/CreateTribeDlg.gui | 2 + base/gui/CreditsGui.gui | 2 +- base/gui/DemoLoadProgressDlg.gui | 45 + base/gui/DemoPlaybackDlg.gui | 100 + base/gui/DemoRenameFileDlg.gui | 97 + base/gui/EditorGui.gui | 3 +- base/gui/GameGui.gui | 100 +- base/gui/InteriorPreviewGui.gui | 199 + base/gui/MessageBoxDlg.gui | 26 +- base/gui/NewsGui.gui | 450 +- base/gui/OptionsDlg.gui | 5091 +++++++------ base/gui/PlayGui.gui | 6551 +++++++++++++++-- base/gui/RecordingsDlg.gui | 116 +- base/gui/ShellLoadFileDlg.gui | 4 +- base/gui/ShellSaveFileDlg.gui | 4 +- base/gui/TerraformerHeightfieldGui.gui | 22 +- base/gui/TerraformerTextureGui.gui | 79 +- base/gui/TerrainEditorButtonbarDlg.gui | 4 - base/gui/TerrainEditorStatusbarDlg.gui | 4 +- base/gui/WarriorPropertiesDlg.gui | 1 + base/gui/guiProfiles.cs | 20 +- base/input.log | 441 -- base/missions/Abominable.mis | 2 + base/missions/AgentsOfFortune.mis | 4 + base/missions/Alcatraz.mis | 6 + base/missions/Archipelago.mis | 9 + base/missions/AshesToAshes.mis | 3 + base/missions/BeggarsRun.mis | 2 + base/missions/Caldera.mis | 1 + base/missions/Casern_Cavite.mis | 1 + base/missions/Damnation.mis | 7 + base/missions/DeathBirdsFly.mis | 9 + base/missions/Desiccator.mis | 8 + base/missions/DustToDust.mis | 5 + base/missions/Equinox.mis | 3 + base/missions/Escalade.mis | 5 + base/missions/Flashpoint.mis | 3 + base/missions/Gauntlet.mis | 5 + base/missions/IceBound.mis | 8 + base/missions/Insalubria.mis | 8 + base/missions/JacobsLadder.mis | 2 + base/missions/Katabatic.mis | 2 + base/missions/Masada.mis | 953 +-- base/missions/Minotaur.mis | 1 + base/missions/MyrkWood.mis | 1 + base/missions/Oasis.mis | 4 + base/missions/Overreach.mis | 7 + base/missions/Pyroclasm.mis | 1 + base/missions/Quagmire.mis | 5 + base/missions/Rasp.mis | 1 + base/missions/Recalescence.mis | 6 + base/missions/Respite.mis | 6 + base/missions/Reversion.mis | 3 + base/missions/Rimehold.mis | 1 + base/missions/RiverDance.mis | 5 + base/missions/Sanctuary.mis | 14 +- base/missions/Sirocco.mis | 11 + base/missions/Slapdash.mis | 16 +- base/missions/Talus.mis | 1 + base/missions/ThinIce.mis | 3 + base/missions/Tombstone.mis | 4 + base/missions/Training1.mis | 4 + base/missions/Training2.mis | 3 + base/missions/Training3.mis | 1 + base/missions/Training4.mis | 1 + base/missions/Training5.mis | 2 + base/missions/UltimaThule.mis | 2 + base/missions/Underhill.mis | 1 + base/missions/Whiteout.mis | 1 + base/prefs/French Config.cs | 12 +- base/prefs/German config.cs | 12 +- base/prefs/Italian Config.cs | 12 +- base/prefs/Spanish Config.cs | 12 +- base/prefs/WASDConfig.cs | 10 +- base/scripts/BountyGame.cs | 1 + base/scripts/CTFGame.cs | 1277 +++- base/scripts/ChatGui.cs | 117 +- base/scripts/CnHGame.cs | 5 +- base/scripts/DMGame.cs | 1 + base/scripts/DemoEndGui.cs | 29 + base/scripts/GameGui.cs | 125 +- base/scripts/HuntersGame.cs | 16 +- base/scripts/LaunchLanGui.cs | 38 +- base/scripts/LobbyGui.cs | 5 +- base/scripts/OptionsDlg.cs | 244 +- base/scripts/SiegeGame.cs | 161 +- base/scripts/SinglePlayerGame.cs | 168 +- base/scripts/TeamHuntersGame.cs | 6 - base/scripts/Training1.cs | 322 +- base/scripts/Training2.cs | 57 +- base/scripts/Training3.cs | 73 +- base/scripts/Training4.cs | 11 + base/scripts/Training5.cs | 43 +- base/scripts/TrainingGui.cs | 2 +- base/scripts/admin.cs | 2 +- base/scripts/aiBotProfiles.cs | 2 +- base/scripts/aiCTF.cs | 8 +- base/scripts/aiChat.cs | 12 +- base/scripts/aiCnH.cs | 8 +- base/scripts/aiSiege.cs | 8 +- base/scripts/aiTeamHunters.cs | 10 + .../badlands => scripts}/badlandsPropMap.cs | 22 +- base/scripts/camera.cs | 11 +- base/scripts/client.cs | 76 +- base/scripts/clientAudio.cs | 108 +- base/scripts/clientDefaults.cs | 39 +- base/scripts/commanderMap.cs | 38 +- base/scripts/commonDialogs.cs | 24 +- base/scripts/controlDefaults.cs | 26 +- base/scripts/creditsGui.cs | 2 +- base/scripts/creditsText.cs | 122 +- base/scripts/damageTypes.cs | 16 +- base/scripts/deathMessages.cs | 12 + base/scripts/defaultGame.cs | 185 +- base/scripts/deployables.cs | 44 +- .../desert => scripts}/desertPropMap.cs | 22 +- base/scripts/gameBase.cs | 17 +- base/scripts/hud.cs | 275 +- base/{textures/ice => scripts}/icePropMap.cs | 16 +- base/scripts/inventory.cs | 3 + base/scripts/inventoryHud.cs | 95 +- base/scripts/item.cs | 30 +- .../{textures/lava => scripts}/lavaPropMap.cs | 13 +- base/scripts/loadingGui.cs | 12 +- .../{textures/lush => scripts}/lushPropMap.cs | 23 +- base/scripts/message.cs | 61 +- base/scripts/objectiveHud.cs | 34 +- base/scripts/pack.cs | 26 +- base/scripts/packs/ammopack.cs | 3 +- base/scripts/packs/cloakingpack.cs | 11 + base/scripts/packs/repairpack.cs | 37 +- base/scripts/packs/satchelCharge.cs | 48 +- base/scripts/packs/sensorjammerpack.cs | 46 +- base/scripts/packs/shieldpack.cs | 14 +- base/scripts/player.cs | 163 +- base/scripts/projectiles.cs | 11 +- base/scripts/recordings.cs | 723 +- base/scripts/server.cs | 312 +- base/scripts/serverAudio.cs | 20 +- base/scripts/serverCommanderMap.cs | 2 + base/scripts/serverDefaults.cs | 114 +- base/scripts/spdialog.cs | 2 + base/scripts/staticShape.cs | 366 +- base/scripts/station.cs | 535 +- base/scripts/targetManager.cs | 3 - base/scripts/turret.cs | 23 +- base/scripts/turrets/ELFBarrelLarge.cs | 15 + base/scripts/turrets/aaBarrelLarge.cs | 23 +- .../scripts/turrets/indoorDeployableBarrel.cs | 16 + base/scripts/turrets/missileBarrelLarge.cs | 20 +- base/scripts/turrets/mortarBarrelLarge.cs | 16 + .../turrets/outdoorDeployableBarrel.cs | 18 + base/scripts/turrets/plasmaBarrelLarge.cs | 15 + base/scripts/turrets/sentryTurret.cs | 15 + base/scripts/vehicles/clientVehicleHud.cs | 11 +- base/scripts/vehicles/serverVehicleHud.cs | 35 +- base/scripts/vehicles/vehicle.cs | 32 +- base/scripts/vehicles/vehicle_bomber.cs | 84 +- base/scripts/vehicles/vehicle_havoc.cs | 16 + base/scripts/vehicles/vehicle_mpb.cs | 17 +- base/scripts/vehicles/vehicle_shrike.cs | 37 +- base/scripts/vehicles/vehicle_spec_fx.cs | 43 +- base/scripts/vehicles/vehicle_tank.cs | 57 +- base/scripts/vehicles/vehicle_wildcat.cs | 25 +- base/scripts/weapTurretCode.cs | 18 +- base/scripts/weapons/ELFGun.cs | 10 +- base/scripts/weapons/blaster.cs | 4 +- base/scripts/weapons/cameraGrenade.cs | 19 +- base/scripts/weapons/chaingun.cs | 11 +- base/scripts/weapons/concussionGrenade.cs | 18 + base/scripts/weapons/disc.cs | 44 +- base/scripts/weapons/flareGrenade.cs | 8 + base/scripts/weapons/flashGrenade.cs | 9 + base/scripts/weapons/grenade.cs | 20 +- base/scripts/weapons/grenadeLauncher.cs | 6 +- base/scripts/weapons/mine.cs | 4 +- base/scripts/weapons/missileLauncher.cs | 15 +- base/scripts/weapons/mortar.cs | 8 +- base/scripts/weapons/plasma.cs | 6 +- base/scripts/weapons/shockLance.cs | 5 +- base/scripts/weapons/sniperRifle.cs | 7 +- base/scripts/weapons/targetingLaser.cs | 15 + base/scripts/webbrowser.cs | 13 +- base/scripts/webemail.cs | 20 +- base/scripts/webforums.cs | 117 +- base/scripts/webnews.cs | 291 +- base/version.cs | 1 - base/webcache/94/email1 | 19 - console_start.cs | 13 +- 204 files changed, 16193 insertions(+), 6841 deletions(-) create mode 100644 base/gui/DemoLoadProgressDlg.gui create mode 100644 base/gui/DemoPlaybackDlg.gui create mode 100644 base/gui/DemoRenameFileDlg.gui delete mode 100644 base/input.log create mode 100644 base/scripts/DemoEndGui.cs rename base/{textures/badlands => scripts}/badlandsPropMap.cs (54%) rename base/{textures/desert => scripts}/desertPropMap.cs (54%) rename base/{textures/ice => scripts}/icePropMap.cs (62%) rename base/{textures/lava => scripts}/lavaPropMap.cs (68%) rename base/{textures/lush => scripts}/lushPropMap.cs (56%) delete mode 100644 base/version.cs delete mode 100644 base/webcache/94/email1 diff --git a/AMDW2KCardProfiles.cs b/AMDW2KCardProfiles.cs index 59baa01..9caf59b 100644 --- a/AMDW2KCardProfiles.cs +++ b/AMDW2KCardProfiles.cs @@ -2,9 +2,14 @@ // // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------- -addOSCardProfile( "Matrox", "G400", false, true, false); +addOSCardProfile( "Matrox", "G400", true, false, true); addOSCardProfile( "Matrox", "G450", false, true, false); addOSCardProfile( "3Dfx", "Voodoo4", true, false, true); addOSCardProfile( "3Dfx", "Voodoo5", true, false, true); addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); -addOSCardProfile( "NVIDIA", "GeForce2", true, false, true); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); + + + \ No newline at end of file diff --git a/AMDW98CardProfiles.cs b/AMDW98CardProfiles.cs index 0503b0c..9b70cc9 100644 --- a/AMDW98CardProfiles.cs +++ b/AMDW98CardProfiles.cs @@ -2,15 +2,16 @@ // // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------------- -addOSCardProfile( "Matrox", "G400", false, true, false); +addOSCardProfile( "Matrox", "G400", true, false, true); addOSCardProfile( "Matrox", "G450", false, true, false); addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "ATI", "RAGE 128", true, false, true); -addOSCardProfile( "ATI", "Radeon", true, true, false); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", true, true, false); addOSCardProfile( "3Dlabs", "GLINT R3 PT", true, true, false); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); diff --git a/AMDW98SECardProfiles.cs b/AMDW98SECardProfiles.cs index 9dd29a9..5dd9ca7 100644 --- a/AMDW98SECardProfiles.cs +++ b/AMDW98SECardProfiles.cs @@ -2,15 +2,16 @@ // // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------------- -addOSCardProfile( "Matrox", "G400", false, true, false); +addOSCardProfile( "Matrox", "G400", true, false, true); addOSCardProfile( "Matrox", "G450", false, true, false); addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "ATI", "RAGE 128", true, false, true); -addOSCardProfile( "ATI", "Radeon", true, true, false); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", true, true, false); addOSCardProfile( "3Dlabs", "GLINT R3 PT", true, true, false); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); diff --git a/AMDWMECardProfiles.cs b/AMDWMECardProfiles.cs index 2a6d3b1..f4e3776 100644 --- a/AMDWMECardProfiles.cs +++ b/AMDWMECardProfiles.cs @@ -2,15 +2,16 @@ // // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------------- -addOSCardProfile( "Matrox", "G400", false, true, false); +addOSCardProfile( "Matrox", "G400", true, false, true); addOSCardProfile( "Matrox", "G450", false, true, false); addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/3DNow!/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "ATI", "RAGE 128", true, false, true); -addOSCardProfile( "ATI", "Radeon", true, true, false); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", true, true, false); addOSCardProfile( "3Dlabs", "GLINT R3 PT", true, true, false); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); diff --git a/IntelW2KCardProfiles.cs b/IntelW2KCardProfiles.cs index 9bed388..8c9996e 100644 --- a/IntelW2KCardProfiles.cs +++ b/IntelW2KCardProfiles.cs @@ -5,6 +5,8 @@ addOSCardProfile( "3Dfx", "Voodoo4", true, false, true); addOSCardProfile( "3Dfx", "Voodoo5", true, false, true); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", false, true, false); addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); -addOSCardProfile( "NVIDIA", "GeForce2", true, false, true); \ No newline at end of file +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); +addOSCardProfile( "Matrox", "G400", true, false, true); diff --git a/IntelW95CardProfiles.cs b/IntelW95CardProfiles.cs index 0de007f..afd4659 100644 --- a/IntelW95CardProfiles.cs +++ b/IntelW95CardProfiles.cs @@ -3,12 +3,14 @@ // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------- addOSCardProfile( "ATI", "RAGE 128", true, false, true); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); addOSCardProfile( "Matrox", "G450", false, true, false); addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", true, false, true); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", false, true, false); addOSCardProfile( "NVIDIA", "GeForce2", true, false, true); +addOSCardProfile( "Matrox", "G400", true, false, true); diff --git a/IntelW98CardProfiles.cs b/IntelW98CardProfiles.cs index c2206a2..c88dbb2 100644 --- a/IntelW98CardProfiles.cs +++ b/IntelW98CardProfiles.cs @@ -3,10 +3,13 @@ // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------- addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", false, true, false); -addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); \ No newline at end of file +addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); +addOSCardProfile( "Matrox", "G400", true, false, true); diff --git a/IntelW98SECardProfiles.cs b/IntelW98SECardProfiles.cs index 5f97b9f..9163677 100644 --- a/IntelW98SECardProfiles.cs +++ b/IntelW98SECardProfiles.cs @@ -3,10 +3,13 @@ // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------- addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "S3", "Savage2000", true, false, true); -addOSCardProfile( "Imagination", "PowerVR KYRO", false, true, false); -addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); \ No newline at end of file +addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); +addOSCardProfile( "ATI", "Radeon DDR", true, true, false); +addOSCardProfile( "ATI", "Radeon VE", true, false, true); +addOSCardProfile( "NVIDIA", "GeForce", true, false, true); +addOSCardProfile( "Matrox", "G400", true, false, true); diff --git a/IntelWMECardProfiles.cs b/IntelWMECardProfiles.cs index 29fb9f2..2c848b2 100644 --- a/IntelWMECardProfiles.cs +++ b/IntelWMECardProfiles.cs @@ -3,10 +3,11 @@ // Vendor Renderer AllowOpenGL AllowD3D PreferOpenGL //---------------------------------------------------------------------------------------------------------------------------------- addOSCardProfile( "3Dfx", "Banshee", true, false, true); -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Nov 2 2000)", false, true, false); // Voodoo3 -addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm)/2 TMUs/16 MB SDRAM/ICD (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Nov 2 2000)", false, true, false); // Voodoo3 +addOSCardProfile( "3Dfx", "3Dfx/Voodoo3 (tm) - (Jan 17 2000)", true, false, true); // Voodoo3 3500 TV addOSCardProfile( "3Dfx", "Voodoo4", false, true, false); addOSCardProfile( "3Dfx", "Voodoo5", true, true, false); addOSCardProfile( "S3", "Savage2000", true, false, true); addOSCardProfile( "Imagination", "PowerVR KYRO", false, true, false); -addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); \ No newline at end of file +addOSCardProfile( "3Dlabs", "GLINT R3 PT", false, true, false); +addOSCardProfile( "Matrox", "G400", true, false, true); diff --git a/SierraUp.cfg b/SierraUp.cfg index 018cf66..eac36e2 100644 --- a/SierraUp.cfg +++ b/SierraUp.cfg @@ -1,7 +1,7 @@ ProductName "Tribes2" DisplayName "Tribes 2" PatchFolder .\patch -CurrentVersion 0.23669.0.0 +CurrentVersion 0.24834.0.0 AutoStart MonitorPatch LaunchExe "tribes2.exe" diff --git a/base/console_end.cs b/base/console_end.cs index 7710dff..d0e22d1 100644 --- a/base/console_end.cs +++ b/base/console_end.cs @@ -37,7 +37,7 @@ exec("scripts/message.cs"); //function to be called when the game exits function onExit() { - if ( !isDemo() && !isDemoServer() ) + if ( !isDemo() && isObject($IRCClient.tcp) ) IRCClient::quit(); echo("exporting pref::* to ClientPrefs.cs"); @@ -252,6 +252,9 @@ loadGui("BrowserSearchDlg"); loadGui("BrowserEditInfoDlg"); loadGui("CreateTribeDlg"); loadGui("RecordingsDlg"); +loadGui("DemoLoadProgressDlg"); +loadGui("DemoRenameFileDlg"); +loadGui("DemoPlaybackDlg"); loadGui("TrainingGui"); loadGui("SinglePlayerEscapeDlg"); loadGui("LobbyGui"); @@ -266,7 +269,6 @@ loadGui("PlayGui"); loadGui("PanoramaGui"); loadGui("LoadingGui"); loadGui("TestGui"); -loadGui("BriefingGui"); // HUD GUI's: loadGui("HUDDlgs"); @@ -277,7 +279,9 @@ loadGui("TerraformerTextureGui"); loadGui("TerraformerHeightfieldGui"); loadGui("TerraformerFullScreenGui"); loadGui("helpTextGui"); + // + loadGui("InteriorPreviewGui"); loadGui("InteriorDebug"); loadGui("EditorGui"); @@ -292,11 +296,16 @@ loadGui("IHVTest"); // Load material properties echo("Load Material Properties:"); -exec("textures/badlands/badlandsPropMap.cs"); -exec("textures/desert/desertPropMap.cs"); -exec("textures/ice/icePropMap.cs"); -exec("textures/lava/lavaPropMap.cs"); -exec("textures/lush/lushPropMap.cs"); +//exec("textures/badlands/badlandsPropMap.cs"); +//exec("textures/desert/desertPropMap.cs"); +//exec("textures/ice/icePropMap.cs"); +//exec("textures/lava/lavaPropMap.cs"); +//exec("textures/lush/lushPropMap.cs"); +exec("scripts/badlandsPropMap.cs"); +exec("scripts/desertPropMap.cs"); +exec("scripts/icePropMap.cs"); +exec("scripts/lavaPropMap.cs"); +exec("scripts/lushPropMap.cs"); // commander map exec("scripts/commanderProfiles.cs"); @@ -412,6 +421,15 @@ function DebugMetrics() " NO: " @ $Metrics::numObjectsRendered; } +function showMapperMetrics( %expr ) +{ + GLEnableMetrics( %expr ); + + if( Canvas.getContent() != PlayGui.getId() ) + metricsIMain.setVisible( %expr ); + else + metricsMain.setVisible( %expr ); +} function showTerr() { @@ -531,7 +549,7 @@ function abs(%val) function ServerConnectionAccepted() { - if ( !isDemo() && !isDemoServer() ) + if ( !isDemo() ) { %info = GMJ_Browser.getServerInfoString(); %desc = "joined a" SPC getField(%info,4) @ " game (" @ getField(%info,3) @ ") on the \"" @ getField(%info,0) @ "\" server."; @@ -550,7 +568,7 @@ function ServerConnectionAccepted() function LocalConnectionAccepted() { - if ( !isDemo() && !isDemoServer() ) + if ( !isDemo() ) { %desc = $pref::IRCClient::hostmsg; diff --git a/base/gui/AdvancedHostDlg.gui b/base/gui/AdvancedHostDlg.gui index 9ce766b..5040ecf 100644 --- a/base/gui/AdvancedHostDlg.gui +++ b/base/gui/AdvancedHostDlg.gui @@ -23,6 +23,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "ADVANCED HOST OPTIONS"; + longTextBuffer = "0"; maxLength = "255"; noTitleBar = "0"; @@ -30,7 +31,7 @@ new GuiControl(AdvancedHostDlg) { profile = "ShellTextRightProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "114 40"; + position = "31 40"; extent = "40 22"; minExtent = "8 8"; visible = "1"; @@ -38,22 +39,25 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Port:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl(AH_HostPort) { profile = "NewTextEditNumericProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "150 32"; + position = "67 32"; extent = "98 38"; minExtent = "32 38"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "8"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; @@ -62,7 +66,7 @@ new GuiControl(AdvancedHostDlg) { profile = "ShellTextRightProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "249 40"; + position = "166 40"; extent = "64 22"; minExtent = "8 8"; visible = "1"; @@ -70,22 +74,25 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Time Limit:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl(AH_TimeLimit) { profile = "NewTextEditNumericProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "309 32"; + position = "226 32"; extent = "68 38"; minExtent = "32 38"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "3"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; @@ -94,7 +101,7 @@ new GuiControl(AdvancedHostDlg) { profile = "ShellTextProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "375 40"; + position = "292 40"; extent = "41 22"; minExtent = "8 8"; visible = "1"; @@ -102,13 +109,14 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Minutes"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl() { profile = "ShellTextRightProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "123 70"; + position = "40 70"; extent = "110 22"; minExtent = "8 8"; visible = "1"; @@ -116,31 +124,66 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Admin Password:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl(AH_AdminPassword) { profile = "NewTextEditProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "229 62"; + position = "146 62"; extent = "180 38"; minExtent = "32 38"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "16"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; }; + new ShellRadioButton(AH_HiFPSRdo) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "358 37"; + extent = "150 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "HIGH FRAME RATE"; + longTextBuffer = "0"; + maxLength = "255"; + groupNum = "0"; + }; + new ShellRadioButton(AH_HiVisibilityRdo) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "358 67"; + extent = "150 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "HIGH VISIBILITY"; + longTextBuffer = "0"; + maxLength = "255"; + groupNum = "0"; + }; new ShellToggleButton(AH_DedicatedTgl) { profile = "ShellRadioProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "94 106"; + position = "32 106"; extent = "150 30"; minExtent = "26 27"; visible = "1"; @@ -148,13 +191,14 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "DEDICATED"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellToggleButton(AH_PureServerTgl) { profile = "ShellRadioProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "296 106"; + position = "195 106"; extent = "150 30"; minExtent = "26 27"; visible = "1"; @@ -162,6 +206,22 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "PURE SERVER"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(AH_TeamDamageTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "358 106"; + extent = "150 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "TEAM DAMAGE ON"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellToggleButton(AH_TournamentTgl) { @@ -176,6 +236,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "TOURNAMENT MODE"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellToggleButton(AH_AdminVoteTgl) { @@ -190,6 +251,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "ALLOW ADMIN VOTES"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellToggleButton(AH_AllowSmurfTgl) { @@ -204,6 +266,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "ALLOW ALIASES"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl() { @@ -218,6 +281,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Vote Pass Percentage:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(AH_VotePassText) { @@ -232,6 +296,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "60%"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(AH_VotePassSlider) { @@ -264,6 +329,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Vote Time:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(AH_VoteTimeText) { @@ -278,6 +344,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "20 seconds"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(AH_VoteTimeSlider) { @@ -310,6 +377,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Observer Timeout:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(AH_RespawnText) { @@ -324,6 +392,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "30 seconds"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(AH_RespawnSlider) { @@ -356,6 +425,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Warmup Time:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(AH_WarmupText) { @@ -370,6 +440,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "30 seconds"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(AH_WarmupSlider) { @@ -402,6 +473,7 @@ new GuiControl(AdvancedHostDlg) { bypassHideCursor = "0"; helpTag = "0"; text = "Server Info:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellScrollCtrl() { diff --git a/base/gui/ChatDlg.gui b/base/gui/ChatDlg.gui index 15a5bf1..43b4697 100644 --- a/base/gui/ChatDlg.gui +++ b/base/gui/ChatDlg.gui @@ -11,11 +11,11 @@ new GuiControl(MainChatHud) { setFirstResponder = "0"; new GuiNoMouseCtrl() { - profile = "defaultGuiProfile"; + profile = "GuiDefaultProfile"; horizSizing = "relative"; vertSizing = "bottom"; position = "0 0"; - extent = "400 300"; + extent = "300 300"; minExtent = "8 8"; visible = "1"; @@ -47,7 +47,7 @@ new GuiControl(MainChatHud) { extent = "5 10"; minExtent = "1 1"; visible = "1"; - bitmap = "gui/voteMeterPassBar.png"; + bitmap = "gui/voteMeterPassBar"; }; }; @@ -71,7 +71,7 @@ new GuiControl(MainChatHud) { extent = "13 13"; minExtent = "8 8"; visible = "0"; - bitmap = "gui/hud_chatPageDown.png"; + bitmap = "gui/hud_chatPageDown"; }; new GuiScrollCtrl(ChatScrollHud) diff --git a/base/gui/ChatGui.gui b/base/gui/ChatGui.gui index 3751865..c67ea78 100644 --- a/base/gui/ChatGui.gui +++ b/base/gui/ChatGui.gui @@ -25,15 +25,16 @@ new GuiChunkedBitmapCtrl(ChatGui) { bypassHideCursor = "0"; helpTag = "0"; text = "CHAT"; + longTextBuffer = "0"; maxLength = "255"; noTitleBar = "0"; new ShellTabFrame(ChatTabFrame) { profile = "ShellHorzTabFrameProfile"; horizSizing = "width"; - vertSizing = "bottom"; + vertSizing = "height"; position = "22 54"; - extent = "576 254"; + extent = "576 351"; minExtent = "26 254"; visible = "1"; hideCursor = "0"; @@ -42,6 +43,330 @@ new GuiChunkedBitmapCtrl(ChatGui) { isVertical = "0"; useCloseButton = "0"; edgeInset = "0"; + + new GuiBubbleTextCtrl(ChatChannelTopic) { + profile = "ShellTopicTextProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "59 14"; + extent = "328 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "This is a sample chat topic"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "15 14"; + extent = "38 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "TOPIC:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton(ChatOpenPaneBtn) { + profile = "ShellButtonProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "444 5"; + extent = "100 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "ChatTabView.openNewPane();"; + helpTag = "0"; + text = "CHANNELS"; + simpleStyle = "0"; + }; + new ShellBitmapButton(ChatClosePaneBtn) { + profile = "ShellButtonProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "529 5"; + extent = "43 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "ChatTabView.closeCurrentPane();"; + accelerator = "x"; + helpTag = "0"; + text = "X"; + simpleStyle = "0"; + }; + }; + new ShellFieldCtrl(WelcomePanel) { + profile = "ShellFieldProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "31 92"; + extent = "559 315"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellScrollCtrl() { + profile = "NewScrollCtrlProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "195 5"; + extent = "360 303"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "alwaysOn"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 2"; + fieldBase = "gui/shll_field"; + + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 6"; + extent = "336 291"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiMLTextCtrl(WelcomeText) { + profile = "NewTextEditProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "0 0"; + extent = "362 2376"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + }; + new ShellScrollCtrl() { + profile = "NewScrollCtrlProfile"; + horizSizing = "right"; + vertSizing = "height"; + position = "2 21"; + extent = "195 287"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "dynamic"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 3"; + fieldBase = "gui/shll_field"; + + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 7"; + extent = "187 273"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellTextList(WelcomeHeadlines) { + profile = "ShellTextArrayProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "187 180"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + enumerate = "0"; + resizeCell = "1"; + columns = "0"; + fitParentWidth = "1"; + clipColumnText = "0"; + }; + }; + }; + new GuiTextCtrl() { + profile = "ShellAltTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 6"; + extent = "72 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CONTENTS:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new ShellFieldCtrl(ChatPanel) { + profile = "ShellFieldProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "31 92"; + extent = "559 315"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellTextEditCtrl(ChatMessageEntry) { + profile = "NewTextEditProfile"; + horizSizing = "width"; + vertSizing = "top"; + position = "-2 279"; + extent = "392 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + altCommand = "ChatSendText();"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + historySize = "0"; + password = "0"; + IRCName = "0"; + tabComplete = "1"; + deniedSound = "InputDeniedSound"; + glowOffset = "9 9"; + }; + new ShellScrollCtrl(MemberScroll) { + profile = "NewScrollCtrlProfile"; + horizSizing = "left"; + vertSizing = "height"; + position = "383 1"; + extent = "175 311"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "alwaysOn"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 2"; + fieldBase = "gui/shll_field"; + + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 6"; + extent = "151 299"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellChatMemberList(ChatRoomMemberList) { + profile = "ShellChatMemberListProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "151 8"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + altCommand = "ChatPrivate();"; + helpTag = "0"; + enumerate = "1"; + resizeCell = "1"; + columns = "0"; + fitParentWidth = "1"; + clipColumnText = "0"; + }; + }; + }; + new ShellScrollCtrl(ChatGuiScroll) { + profile = "NewScrollCtrlProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 2"; + extent = "381 282"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "alwaysOn"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "2 3"; + fieldBase = "gui/shll_field"; + + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "6 7"; + extent = "353 268"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiChannelVectorCtrl(ChatGuiMessageVector) { + profile = "GuiChannelVectorProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "357 8"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "0"; + lineContinuedIndex = "5"; + allowedMatches[0] = "http"; + matchColor = "4 235 105 255"; + maxColorIndex = "9"; + }; + }; + }; }; new ShellTabGroupCtrl(ChatTabView) { profile = "TabGroupProfile"; @@ -59,185 +384,6 @@ new GuiChunkedBitmapCtrl(ChatGui) { maxTabWidth = "150"; stretchToFit = "0"; }; - new ShellScrollCtrl(ChatGuiScroll) { - profile = "NewScrollCtrlProfile"; - horizSizing = "width"; - vertSizing = "height"; - position = "33 91"; - extent = "381 284"; - minExtent = "24 52"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "alwaysOn"; - constantThumbHeight = "0"; - defaultLineHeight = "15"; - childMargin = "2 3"; - fieldBase = "gui/shll_field"; - - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; - horizSizing = "width"; - vertSizing = "height"; - position = "6 7"; - extent = "353 270"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new GuiChannelVectorCtrl(ChatGuiMessageVector) { - profile = "GuiChannelVectorProfile"; - horizSizing = "width"; - vertSizing = "height"; - position = "0 0"; - extent = "357 52"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - lineSpacing = "0"; - lineContinuedIndex = "5"; - allowedMatches[0] = "http"; - matchColor = "4 235 105 255"; - maxColorIndex = "9"; - }; - }; - }; - new ShellScrollCtrl() { - profile = "NewScrollCtrlProfile"; - horizSizing = "left"; - vertSizing = "height"; - position = "412 62"; - extent = "175 341"; - minExtent = "24 52"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "alwaysOn"; - constantThumbHeight = "0"; - defaultLineHeight = "15"; - childMargin = "0 2"; - fieldBase = "gui/shll_field"; - - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "4 6"; - extent = "151 329"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new ShellChatMemberList(ChatRoomMemberList) { - profile = "ShellChatMemberListProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "151 8"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - altCommand = "ChatPrivate();"; - helpTag = "0"; - enumerate = "1"; - resizeCell = "1"; - columns = "0"; - fitParentWidth = "1"; - clipColumnText = "0"; - }; - }; - }; - new ShellTextEditCtrl(ChatMessageEntry) { - profile = "NewTextEditProfile"; - horizSizing = "width"; - vertSizing = "top"; - position = "27 370"; - extent = "392 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - altCommand = "ChatSendText();"; - helpTag = "0"; - maxLength = "255"; - historySize = "0"; - password = "0"; - tabComplete = "1"; - deniedSound = "InputDeniedSound"; - glowOffset = "9 9"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "34 69"; - extent = "38 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "TOPIC:"; - maxLength = "255"; - }; - new GuiBubbleTextCtrl(ChatChannelTopic) { - profile = "ShellTopicTextProfile"; - horizSizing = "width"; - vertSizing = "bottom"; - position = "78 69"; - extent = "207 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "This is a sample chat topic"; - maxLength = "255"; - }; - new ShellBitmapButton(ChatOpenPaneBtn) { - profile = "ShellButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "285 60"; - extent = "100 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "ChatTabView.openNewPane();"; - helpTag = "0"; - text = "CHANNELS"; - simpleStyle = "0"; - }; - new ShellBitmapButton(ChatClosePaneBtn) { - profile = "ShellButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "377 60"; - extent = "43 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "ChatTabView.closeCurrentPane();"; - accelerator = "x"; - helpTag = "0"; - text = "X"; - simpleStyle = "0"; - }; new ShellBitmapButton(ChatEditChannelBtn) { profile = "ShellButtonProfile"; horizSizing = "right"; @@ -260,7 +406,7 @@ new GuiChunkedBitmapCtrl(ChatGui) { position = "15 -5"; extent = "128 38"; minExtent = "32 38"; - visible = "0"; + visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; command = "EditChatOptions();"; diff --git a/base/gui/CreateAccountDlg.gui b/base/gui/CreateAccountDlg.gui index 9b9907a..f178292 100644 --- a/base/gui/CreateAccountDlg.gui +++ b/base/gui/CreateAccountDlg.gui @@ -139,6 +139,7 @@ new GuiControl(CreateAccountDlg) { maxLength = "16"; password = "0"; glowOffset = "9 9"; + IRCName = true; }; new ShellTextEditCtrl() { profile = "NewTextEditProfile"; diff --git a/base/gui/CreateTribeDlg.gui b/base/gui/CreateTribeDlg.gui index 30a3c06..72c9ac5 100644 --- a/base/gui/CreateTribeDlg.gui +++ b/base/gui/CreateTribeDlg.gui @@ -72,6 +72,7 @@ new GuiControl(CreateTribeDlg) { historySize = "0"; password = "0"; glowOffset = "9 9"; + IRCName = true; }; new ShellTextEditCtrl(CT_TagText) { profile = "NewTextEditProfile"; @@ -88,6 +89,7 @@ new GuiControl(CreateTribeDlg) { historySize = "0"; password = "0"; glowOffset = "9 9"; + IRCName = true; }; new ShellToggleButton(rbAppendTag) { profile = "ShellRadioProfile"; diff --git a/base/gui/CreditsGui.gui b/base/gui/CreditsGui.gui index 376cc41..e4e0f05 100644 --- a/base/gui/CreditsGui.gui +++ b/base/gui/CreditsGui.gui @@ -66,7 +66,7 @@ new GuiChunkedBitmapCtrl(CreditsGui) { minExtent = "8 8"; visible = "1"; helpTag = "0"; - bitmap = "gui/loading.png"; + bitmap = "gui/loading"; useVariable = "0"; }; }; diff --git a/base/gui/DemoLoadProgressDlg.gui b/base/gui/DemoLoadProgressDlg.gui new file mode 100644 index 0000000..0c2f8c2 --- /dev/null +++ b/base/gui/DemoLoadProgressDlg.gui @@ -0,0 +1,45 @@ +//--- OBJECT WRITE BEGIN --- +new GuiControl(DemoLoadProgressDlg) { + profile = "DlgBackProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellPaneCtrl() { + profile = "ShellDlgPaneProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "178 189"; + extent = "300 107"; + minExtent = "48 92"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Loading..."; + longTextBuffer = "0"; + maxLength = "255"; + noTitleBar = "0"; + + new GuiProgressCtrl(DemoLoadProgressCtrl) { + profile = "ShellProgressBarProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "46 43"; + extent = "209 30"; + minExtent = "32 15"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + glowOffset = "9 9"; + }; + }; +}; +//--- OBJECT WRITE END --- diff --git a/base/gui/DemoPlaybackDlg.gui b/base/gui/DemoPlaybackDlg.gui new file mode 100644 index 0000000..29d9c83 --- /dev/null +++ b/base/gui/DemoPlaybackDlg.gui @@ -0,0 +1,100 @@ +//--- OBJECT WRITE BEGIN --- +new GuiControl(DemoPlaybackDlg) { + profile = "GuiModelessDialogProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "1"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl() { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "210 8"; + extent = "217 82"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiProgressCtrl() { + profile = "ShellProgressBarProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "9 34"; + extent = "200 24"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$DemoPlaybackProgress"; + helpTag = "0"; + + new GuiTextCtrl(DemoPlayback_CurTime) { + profile = "ShellProgressBarTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 2"; + extent = "200 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 59"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "00:00"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(DemoPlayback_EndTime) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "142 59"; + extent = "64 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(DemoPlayback_StatusText) { + profile = "ShellTextCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "77 10"; + extent = "64 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; +}; +//--- OBJECT WRITE END --- + diff --git a/base/gui/DemoRenameFileDlg.gui b/base/gui/DemoRenameFileDlg.gui new file mode 100644 index 0000000..57c4bf0 --- /dev/null +++ b/base/gui/DemoRenameFileDlg.gui @@ -0,0 +1,97 @@ +//--- OBJECT WRITE BEGIN --- +new GuiControl(DemoRenameFileDlg) { + profile = "DlgBackProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellPaneCtrl() { + profile = "ShellDlgPaneProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "170 186"; + extent = "300 146"; + minExtent = "48 92"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Rename File..."; + longTextBuffer = "0"; + maxLength = "255"; + noTitleBar = "0"; + + new ShellTextEditCtrl(DemoRenameFile_Edit) { + profile = "NewTextEditProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "71 39"; + extent = "209 39"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + historySize = "0"; + password = "0"; + IRCName = "0"; + tabComplete = "0"; + deniedSound = "InputDeniedSound"; + glowOffset = "9 9"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "28 47"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Filename:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "28 82"; + extent = "124 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OK"; + simpleStyle = "0"; + command = "Canvas.popDialog(DemoRenameFileDlg); doDemoFileRename();"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "154 82"; + extent = "124 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CANCEL"; + simpleStyle = "0"; + command = "Canvas.popDialog(DemoRenameFileDlg);"; + }; + }; +}; +//--- OBJECT WRITE END --- diff --git a/base/gui/EditorGui.gui b/base/gui/EditorGui.gui index 54df945..5251e7f 100644 --- a/base/gui/EditorGui.gui +++ b/base/gui/EditorGui.gui @@ -205,14 +205,13 @@ function Editor::close(%this) if(%this.prevResolution $= "") %this.prevResolution = getResolution(); - if(%this.prevContent == -1 || %this.prevContent == "") + if(%this.prevContent == -1 || %this.prevContent $= "") %this.prevContent = "PlayGui"; Canvas.setContent(%this.prevContent); //jff: hangs when switching resolutions // setResolution(getWord(%this.prevResolution, 0), getWord(%this.prevResolution, 1)); - closeMessageHud(); } //------------------------------------------------------------------------------ diff --git a/base/gui/GameGui.gui b/base/gui/GameGui.gui index b468cc4..48f4815 100644 --- a/base/gui/GameGui.gui +++ b/base/gui/GameGui.gui @@ -25,6 +25,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "GAME"; + longTextBuffer = "0"; maxLength = "255"; noTitleBar = "0"; @@ -83,6 +84,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "FILTER:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiControl() { @@ -109,6 +111,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "All Servers"; + longTextBuffer = "0"; maxLength = "255"; }; }; @@ -124,6 +127,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Status Text..."; + longTextBuffer = "0"; maxLength = "255"; }; new GuiProgressCtrl(GMJ_ProgressBar) { @@ -204,7 +208,7 @@ new GuiChunkedBitmapCtrl(GameGui) { horizSizing = "right"; vertSizing = "bottom"; position = "0 0"; - extent = "810 8"; + extent = "840 8"; minExtent = "8 8"; visible = "1"; hideCursor = "0"; @@ -355,6 +359,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Game Type:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellPopupMenu(GMH_MissionType) { @@ -369,6 +374,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "GAME TYPE"; + longTextBuffer = "0"; maxLength = "255"; maxPopupHeight = "200"; buttonBitmap = "gui/shll_pulldown"; @@ -388,6 +394,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Mission Name:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellScrollCtrl() { @@ -465,6 +472,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Server Name:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl() { @@ -479,9 +487,11 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; variable = "$Host::GameName"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "24"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; @@ -498,6 +508,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Password:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl() { @@ -512,9 +523,11 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; variable = "$Host::Password"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "16"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; @@ -531,6 +544,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Max Players:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellTextEditCtrl(GMH_MaxPlayersTE) { @@ -545,10 +559,12 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; variable = "$Host::MaxPlayers"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "3"; validate = "validateMaxPlayers();"; historySize = "0"; password = "0"; + IRCName = "0"; tabComplete = "0"; deniedSound = "InputDeniedSound"; glowOffset = "9 9"; @@ -581,6 +597,7 @@ new GuiChunkedBitmapCtrl(GameGui) { variable = "$Host::BotsEnabled"; helpTag = "0"; text = "ENABLE BOTS"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiControl(GMH_EnableBotsGroup) { @@ -607,6 +624,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Number of Bots:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(GMH_BotCountText) { @@ -621,6 +639,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "(0)"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(GMH_MinCombatantSlider) { @@ -638,7 +657,7 @@ new GuiChunkedBitmapCtrl(GameGui) { helpTag = "0"; range = "0.000000 1.000000"; ticks = "15"; - value = "0.00333333"; + value = "0.27"; usePlusMinus = "1"; }; new GuiTextCtrl(GMH_BotDiffText) { @@ -653,6 +672,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Bot Difficulty:"; + longTextBuffer = "0"; maxLength = "255"; }; new GuiTextCtrl(GMH_BotMinText) { @@ -667,6 +687,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Min:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(GMH_BotMinSlider) { @@ -699,6 +720,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Max:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellSliderCtrl(GMH_BotMaxSlider) { @@ -762,6 +784,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Warrior:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellPopupMenu(GMW_WarriorPopup) { @@ -776,6 +799,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Select Warrior"; + longTextBuffer = "0"; maxLength = "255"; maxPopupHeight = "200"; buttonBitmap = "gui/shll_pulldown"; @@ -787,8 +811,8 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "GuiDefaultProfile"; horizSizing = "left"; vertSizing = "center"; - position = "290 22"; - extent = "257 300"; + position = "290 15"; + extent = "257 322"; minExtent = "8 8"; visible = "1"; hideCursor = "0"; @@ -799,7 +823,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellButtonProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "94 12"; + position = "94 4"; extent = "152 38"; minExtent = "32 38"; visible = "1"; @@ -814,7 +838,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellTextRightProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "18 63"; + position = "18 55"; extent = "80 22"; minExtent = "8 8"; visible = "1"; @@ -822,13 +846,14 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Race/Gender:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellPopupMenu(GMW_RaceGenderPopup) { profile = "ShellPopupProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "95 54"; + position = "95 46"; extent = "152 38"; minExtent = "49 36"; visible = "1"; @@ -836,6 +861,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Select Race/Gender"; + longTextBuffer = "0"; maxLength = "255"; maxPopupHeight = "200"; buttonBitmap = "gui/shll_pulldown"; @@ -847,7 +873,42 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellTextRightProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "18 99"; + position = "18 92"; + extent = "80 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Show:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(GMW_SkinPrefPopup) { + profile = "ShellPopupProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "95 83"; + extent = "152 38"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "All Skins"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "18 129"; extent = "80 22"; minExtent = "8 8"; visible = "1"; @@ -855,13 +916,14 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Skin:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellPopupMenu(GMW_SkinPopup) { profile = "ShellPopupProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "95 90"; + position = "95 120"; extent = "152 38"; minExtent = "49 36"; visible = "1"; @@ -869,6 +931,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Select Skin"; + longTextBuffer = "0"; maxLength = "255"; maxPopupHeight = "200"; buttonBitmap = "gui/shll_pulldown"; @@ -880,7 +943,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellTextRightProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "18 136"; + position = "18 166"; extent = "80 22"; minExtent = "8 8"; visible = "1"; @@ -888,13 +951,14 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Voice:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellPopupMenu(GMW_VoicePopup) { profile = "ShellPopupProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "95 127"; + position = "95 157"; extent = "152 38"; minExtent = "49 36"; visible = "1"; @@ -902,6 +966,7 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Select Voice"; + longTextBuffer = "0"; maxLength = "255"; maxPopupHeight = "200"; buttonBitmap = "gui/shll_pulldown"; @@ -914,7 +979,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellTextRightProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "114 168"; + position = "114 198"; extent = "100 22"; minExtent = "8 8"; visible = "1"; @@ -922,13 +987,14 @@ new GuiChunkedBitmapCtrl(GameGui) { bypassHideCursor = "0"; helpTag = "0"; text = "Test Voice:"; + longTextBuffer = "0"; maxLength = "255"; }; new ShellBitmapButton(GMW_VoiceTestBtn) { profile = "SoundTestButtonProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "214 165"; + position = "214 195"; extent = "24 24"; minExtent = "24 24"; visible = "1"; @@ -942,7 +1008,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellButtonProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "94 206"; + position = "94 236"; extent = "152 38"; minExtent = "32 38"; visible = "1"; @@ -957,7 +1023,7 @@ new GuiChunkedBitmapCtrl(GameGui) { profile = "ShellButtonProfile"; horizSizing = "left"; vertSizing = "bottom"; - position = "94 243"; + position = "94 273"; extent = "152 38"; minExtent = "32 38"; visible = "1"; @@ -1006,6 +1072,7 @@ new GuiChunkedBitmapCtrl(GameGui) { command = "GMW_PlayerModel.update();"; helpTag = "0"; text = "LIGHT"; + longTextBuffer = "0"; maxLength = "255"; groupNum = "1"; }; @@ -1022,6 +1089,7 @@ new GuiChunkedBitmapCtrl(GameGui) { command = "GMW_PlayerModel.update();"; helpTag = "0"; text = "MEDIUM"; + longTextBuffer = "0"; maxLength = "255"; groupNum = "1"; }; @@ -1038,6 +1106,7 @@ new GuiChunkedBitmapCtrl(GameGui) { command = "GMW_PlayerModel.update();"; helpTag = "0"; text = "HEAVY"; + longTextBuffer = "0"; maxLength = "255"; groupNum = "1"; }; @@ -1054,6 +1123,7 @@ new GuiChunkedBitmapCtrl(GameGui) { hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; + longTextBuffer = "0"; maxLength = "255"; }; }; diff --git a/base/gui/InteriorPreviewGui.gui b/base/gui/InteriorPreviewGui.gui index 44bae97..185ca9e 100644 --- a/base/gui/InteriorPreviewGui.gui +++ b/base/gui/InteriorPreviewGui.gui @@ -44,6 +44,205 @@ new GuiControl(interiorPreviewGui) { helpTag = "0"; text = "Exit"; }; + new ShellFieldCtrl(metricsIMain) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "10 160"; + extent = "242 275"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(title) { + profile = "CenterPrintTextProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "63 7"; + extent = "110 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Mapper Metrics"; + longTextBuffer = "0"; + maxLength = "255"; + lineSpacing = "2"; + maxChars = "-1"; + allowColorChars = "0"; + }; + new GuiTextCtrl(ThreeSpacePolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 148"; + extent = "85 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "TS Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(InteriorPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 118"; + extent = "98 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Interior Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(TerrainPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 88"; + extent = "99 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Terrain Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(TotalPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 226"; + extent = "101 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Scene Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(WaterPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 178"; + extent = "127 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Water Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(FrameRateText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 40"; + extent = "87 26"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Frame Rate: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiConsoleVariableCtrl(frameRate) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 40"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$FPS::Real"; + }; + new GuiConsoleVariableCtrl(ThreeSpacePolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 148"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount3"; + }; + new GuiConsoleVariableCtrl(InteriorPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 118"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount2"; + }; + new GuiConsoleVariableCtrl(TerrainPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 88"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount1"; + }; + new GuiConsoleVariableCtrl(TotalPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 226"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount"; + }; + new GuiConsoleVariableCtrl(WaterPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 179"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$Water::triCount"; + }; + }; }; //--- OBJECT WRITE END --- diff --git a/base/gui/MessageBoxDlg.gui b/base/gui/MessageBoxDlg.gui index f3a3ffc..42c3c10 100644 --- a/base/gui/MessageBoxDlg.gui +++ b/base/gui/MessageBoxDlg.gui @@ -7,6 +7,8 @@ new GuiControl(MessageBoxOKDlg) { extent = "640 480"; minExtent = "8 8"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; new ShellPaneCtrl(MBOKFrame) { @@ -30,7 +32,7 @@ new GuiControl(MessageBoxOKDlg) { helpTag = "0"; lineSpacing = "2"; }; - new ShellBitmapButton() { + new ShellBitmapButton(MBOKButton) { profile = "ShellButtonProfile"; horizSizing = "center"; vertSizing = "bottom"; @@ -38,7 +40,7 @@ new GuiControl(MessageBoxOKDlg) { extent = "120 38"; minExtent = "32 38"; visible = "1"; - command = "eval(MessageBoxOKDlg.callback); Canvas.popDialog(MessageBoxOKDlg);"; + command = "Canvas.popDialog(MessageBoxOKDlg);"; accelerator = "return"; helpTag = "0"; text = "OK"; @@ -57,6 +59,8 @@ new GuiControl(MessageBoxYesNoDlg) { extent = "640 480"; minExtent = "8 8"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; new ShellPaneCtrl(MBYesNoFrame) { @@ -80,7 +84,7 @@ new GuiControl(MessageBoxYesNoDlg) { helpTag = "0"; lineSpacing = "2"; }; - new ShellBitmapButton() { + new ShellBitmapButton(MBYesNoButtonYes) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "bottom"; @@ -88,13 +92,13 @@ new GuiControl(MessageBoxYesNoDlg) { extent = "120 38"; minExtent = "32 38"; visible = "1"; - command = "eval(MessageBoxYesNoDlg.yesCallback); Canvas.popDialog(MessageBoxYesNoDlg);"; + command = "Canvas.popDialog(MessageBoxYesNoDlg);"; accelerator = "enter"; helpTag = "0"; text = "YES"; simpleStyle = "0"; }; - new ShellBitmapButton() { + new ShellBitmapButton(MBYesNoButtonNo) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "bottom"; @@ -102,7 +106,7 @@ new GuiControl(MessageBoxYesNoDlg) { extent = "120 38"; minExtent = "32 38"; visible = "1"; - command = "eval(MessageBoxYesNoDlg.noCallback); Canvas.popDialog(MessageBoxYesNoDlg);"; + command = "Canvas.popDialog(MessageBoxYesNoDlg);"; accelerator = "escape"; helpTag = "0"; text = "NO"; @@ -121,6 +125,8 @@ new GuiControl(MessageBoxOKCancelDlg) { extent = "640 480"; minExtent = "8 8"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; new ShellPaneCtrl(MBOKCancelFrame) { @@ -144,7 +150,7 @@ new GuiControl(MessageBoxOKCancelDlg) { helpTag = "0"; lineSpacing = "2"; }; - new ShellBitmapButton() { + new ShellBitmapButton(MBOKCancelButtonOK) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "bottom"; @@ -152,13 +158,13 @@ new GuiControl(MessageBoxOKCancelDlg) { extent = "120 38"; minExtent = "32 38"; visible = "1"; - command = "eval(MessageBoxOKCancelDlg.callback); Canvas.popDialog(MessageBoxOKCancelDlg);"; + command = "Canvas.popDialog(MessageBoxOKCancelDlg);"; accelerator = "return"; helpTag = "0"; text = "OK"; simpleStyle = "0"; }; - new ShellBitmapButton() { + new ShellBitmapButton(MBOKCancelButtonCancel) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "bottom"; @@ -166,7 +172,7 @@ new GuiControl(MessageBoxOKCancelDlg) { extent = "120 38"; minExtent = "32 38"; visible = "1"; - command = "eval(MessageBoxOKCancelDlg.cancelCallback); Canvas.popDialog(MessageBoxOKCancelDlg);"; + command = "Canvas.popDialog(MessageBoxOKCancelDlg);"; accelerator = "escape"; helpTag = "0"; text = "CANCEL"; diff --git a/base/gui/NewsGui.gui b/base/gui/NewsGui.gui index 286bf12..894c955 100644 --- a/base/gui/NewsGui.gui +++ b/base/gui/NewsGui.gui @@ -17,250 +17,242 @@ new GuiChunkedBitmapCtrl(NewsGui) { profile = "ShellPaneProfile"; horizSizing = "width"; vertSizing = "height"; - position = "12 13"; - extent = "620 423"; + position = "7 13"; + extent = "629 429"; minExtent = "48 92"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; text = "NEWS"; + longTextBuffer = "0"; maxLength = "255"; noTitleBar = "0"; - new ShellBitmapButton(NewsSubmitBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "52 368"; - extent = "128 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "PostNews();"; - helpTag = "0"; - text = "SUBMIT NEWS"; - simpleStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "left"; + new ShellTabGroupCtrl(NewsTabGroup) { + profile = "TabGroupProfile"; + horizSizing = "width"; vertSizing = "bottom"; - position = "369 34"; - extent = "55 22"; - minExtent = "8 8"; + position = "214 67"; + extent = "386 34"; + minExtent = "42 29"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; - text = "Web Links:"; - maxLength = "255"; + glowOffset = "6"; + tabSpacing = "0"; + maxTabWidth = "200"; + stretchToFit = "1"; }; - new ShellPopupMenu(WebLinksMenu) { - profile = "ShellPopupProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "361 45"; - extent = "200 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "549 45"; - extent = "53 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "WebLinksMenu.launchWebBrowser();"; - helpTag = "0"; - text = "GO"; - simpleStyle = "0"; - }; - new ShellFieldCtrl() { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "24 34"; - extent = "332 45"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new GuiMLTextCtrl(NewsMOTDText) { - profile = "ShellAltTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "4 4"; - extent = "310 16"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - lineSpacing = "2"; - allowColorChars = "0"; - maxChars = "-1"; - deniedSound = "InputDeniedSound"; - }; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "25 79"; - extent = "60 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "HEADLINES"; - maxLength = "255"; - }; - new ShellScrollCtrl() { - profile = "NewScrollCtrlProfile"; - horizSizing = "right"; - vertSizing = "height"; - position = "21 91"; - extent = "190 253"; - minExtent = "24 52"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "dynamic"; - constantThumbHeight = "0"; - defaultLineHeight = "15"; - childMargin = "0 3"; - fieldBase = "gui/shll_field"; - - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "4 7"; - extent = "182 239"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new ShellTextList(NewsHeadlines) { - profile = "ShellTextArrayProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "182 8"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - enumerate = "0"; - resizeCell = "1"; - columns = "0"; - fitParentWidth = "1"; - clipColumnText = "0"; - }; - }; - }; - new ShellBitmapButton(NewsPrevBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "28 340"; - extent = "85 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "NewsGui.getPreviousNewsItems();"; - helpTag = "0"; - text = "PREV"; - simpleStyle = "0"; - }; - new ShellBitmapButton(NewsNextBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "119 340"; - extent = "85 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "NewsGui.getNextNewsItems();"; - helpTag = "0"; - text = "NEXT"; - simpleStyle = "0"; - }; - new ShellScrollCtrl() { - profile = "NewScrollCtrlProfile"; + new ShellTabFrame(NewsTabFrame) { + profile = "ShellHorzTabFrameProfile"; horizSizing = "width"; vertSizing = "height"; - position = "211 91"; - extent = "385 308"; - minExtent = "24 52"; + position = "16 95"; + extent = "596 318"; + minExtent = "516 254"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "alwaysOn"; - constantThumbHeight = "0"; - defaultLineHeight = "15"; - childMargin = "0 2"; - fieldBase = "gui/shll_field"; + isVertical = "0"; + useCloseButton = "0"; + edgeInset = "0"; - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; + new ShellScrollCtrl() { + profile = "NewScrollCtrlProfile"; horizSizing = "width"; vertSizing = "height"; - position = "4 6"; - extent = "361 296"; - minExtent = "8 8"; + position = "202 6"; + extent = "385 280"; + minExtent = "24 52"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "alwaysOn"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 2"; + fieldBase = "gui/shll_field"; - new GuiMLTextCtrl(NewsText) { - profile = "NewTextEditProfile"; + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; horizSizing = "width"; - vertSizing = "bottom"; - position = "0 0"; - extent = "387 16"; + vertSizing = "height"; + position = "4 6"; + extent = "361 268"; minExtent = "8 8"; visible = "1"; hideCursor = "0"; bypassHideCursor = "0"; helpTag = "0"; - lineSpacing = "2"; - allowColorChars = "0"; - maxChars = "-1"; - deniedSound = "InputDeniedSound"; + + new GuiMLTextCtrl(NewsText) { + profile = "NewTextEditProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "0 0"; + extent = "387 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; }; }; + new ShellScrollCtrl() { + profile = "NewScrollCtrlProfile"; + horizSizing = "right"; + vertSizing = "height"; + position = "9 7"; + extent = "197 278"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "dynamic"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 3"; + fieldBase = "gui/shll_field"; + + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 7"; + extent = "189 264"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellTextList(NewsHeadlines) { + profile = "ShellTextArrayProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "187 8"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + enumerate = "0"; + resizeCell = "1"; + columns = "0"; + fitParentWidth = "1"; + clipColumnText = "0"; + }; + }; + }; + new ShellBitmapButton(NewsPrevBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "0 282"; + extent = "40 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "NewsGui.getPreviousNewsItems();"; + helpTag = "0"; + text = "< "; + simpleStyle = "0"; + }; + new ShellBitmapButton(NewsSubmitBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "23 282"; + extent = "159 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "PostNews();"; + helpTag = "0"; + text = "SUBMIT NEWS"; + simpleStyle = "0"; + }; + new ShellBitmapButton(NewsNextBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "165 282"; + extent = "40 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "NewsGui.getNextNewsItems();"; + helpTag = "0"; + text = " >"; + simpleStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "310 290"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Web Links:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(WebLinksMenu) { + profile = "ShellPopupProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "362 282"; + extent = "200 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "545 282"; + extent = "53 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "WebLinksMenu.launchWebBrowser();"; + helpTag = "0"; + text = "GO"; + simpleStyle = "0"; + }; }; new ShellBitmapButton(NewsEditMOTDBtn) { profile = "ShellButtonProfile"; @@ -277,6 +269,50 @@ new GuiChunkedBitmapCtrl(NewsGui) { text = "EDIT MOTD"; simpleStyle = "0"; }; + new ShellFieldCtrl() { + profile = "ShellFieldProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "20 27"; + extent = "589 42"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiMLTextCtrl(NewsMOTDText) { + profile = "CenterPrintTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "9 3"; + extent = "570 18"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "29 78"; + extent = "60 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "HEADLINES"; + longTextBuffer = "0"; + maxLength = "255"; + }; }; }; //--- OBJECT WRITE END --- diff --git a/base/gui/OptionsDlg.gui b/base/gui/OptionsDlg.gui index 1fe4bf5..7efc305 100644 --- a/base/gui/OptionsDlg.gui +++ b/base/gui/OptionsDlg.gui @@ -1,2458 +1,2669 @@ //--- OBJECT WRITE BEGIN --- new GuiControl(OptionsDlg) { - profile = "DlgBackProfile"; - horizSizing = "width"; - vertSizing = "height"; - position = "0 0"; - extent = "640 480"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - pane = "VIDEO"; + profile = "DlgBackProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + pane = "VIDEO"; - new ShellPaneCtrl() { - profile = "ShellDlgPaneProfile"; - horizSizing = "center"; - vertSizing = "center"; - position = "20 30"; - extent = "600 420"; - minExtent = "48 92"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "SETTINGS"; - maxLength = "255"; - noTitleBar = "0"; + new ShellPaneCtrl() { + profile = "ShellDlgPaneProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "20 30"; + extent = "600 420"; + minExtent = "48 92"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "SETTINGS"; + longTextBuffer = "0"; + maxLength = "255"; + noTitleBar = "0"; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "34 362"; - extent = "82 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "Canvas.popDialog(OptionsDlg);"; - helpTag = "0"; - text = "DONE"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_VideoTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 46"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Video);"; - helpTag = "0"; - text = "VIDEO"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_GraphicsTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 76"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Graphics);"; - helpTag = "0"; - text = "GRAPHICS"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_TexturesTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 106"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Textures);"; - helpTag = "0"; - text = "TEXTURES"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_SoundTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 136"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Sound);"; - helpTag = "0"; - text = "SOUND"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_VoiceTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 166"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Voice);"; - helpTag = "0"; - text = "VOICE"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_ControlsTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 196"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Controls);"; - helpTag = "0"; - text = "CONTROLS"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_NetworkTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 226"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Network);"; - helpTag = "0"; - text = "NETWORK"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabButton(OP_GameTab) { - profile = "ShellTabProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "19 256"; - extent = "108 38"; - minExtent = "48 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.setPane(Game);"; - helpTag = "0"; - text = "GAME"; - maxLength = "255"; - simpleStyle = "0"; - }; - new ShellTabFrame() { - profile = "ShellTabFrameProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "127 31"; - extent = "254 368"; - minExtent = "254 26"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - isVertical = "1"; - useCloseButton = "0"; - edgeInset = "0"; - }; - new ShellFieldCtrl(OP_VideoPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "34 362"; + extent = "82 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "Canvas.popDialog(OptionsDlg);"; + helpTag = "0"; + text = "DONE"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_VideoTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 46"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Video);"; + helpTag = "0"; + text = "VIDEO"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_GraphicsTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 76"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Graphics);"; + helpTag = "0"; + text = "GRAPHICS"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_TexturesTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 106"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Textures);"; + helpTag = "0"; + text = "TEXTURES"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_SoundTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 136"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Sound);"; + helpTag = "0"; + text = "SOUND"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_VoiceTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 166"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Voice);"; + helpTag = "0"; + text = "VOICE"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_ControlsTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 196"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Controls);"; + helpTag = "0"; + text = "CONTROLS"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_NetworkTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 226"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Network);"; + helpTag = "0"; + text = "NETWORK"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabButton(OP_GameTab) { + profile = "ShellTabProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "19 256"; + extent = "108 38"; + minExtent = "48 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.setPane(Game);"; + helpTag = "0"; + text = "GAME"; + longTextBuffer = "0"; + maxLength = "255"; + simpleStyle = "0"; + }; + new ShellTabFrame() { + profile = "ShellTabFrameProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "127 31"; + extent = "254 368"; + minExtent = "254 26"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + isVertical = "1"; + useCloseButton = "0"; + edgeInset = "0"; + }; + new ShellFieldCtrl(OP_VideoPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "2 16"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Video Driver:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_VideoDriverMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "99 7"; - extent = "140 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Driver"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "2 54"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Resolution:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_ResMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "99 45"; - extent = "140 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Resolution"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "2 92"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Bit Depth:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_BPPMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "99 83"; - extent = "140 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Default"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new ShellToggleButton(OP_FullScreenTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "102 125"; - extent = "127 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "FULL SCREEN"; - maxLength = "255"; - }; - new ShellBitmapButton(OP_ApplyBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "275 176"; - extent = "128 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OptionsDlg.applyGraphicChanges();"; - helpTag = "0"; - text = "APPLY CHANGES"; - simpleStyle = "0"; - }; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "275 8"; - extent = "128 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "Canvas.pushDialog(DriverInfoDlg);"; - helpTag = "0"; - text = "DRIVER INFO"; - simpleStyle = "0"; - }; - new ShellToggleButton(OP_VSyncTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "133 243"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "DISABLE VERTICAL SYNC"; - maxLength = "255"; - }; - }; - new ShellFieldCtrl(OP_GraphicsPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "2 16"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Video Driver:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_VideoDriverMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "99 7"; + extent = "140 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Driver"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "2 54"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Resolution:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_ResMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "99 45"; + extent = "140 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Resolution"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "2 92"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Bit Depth:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_BPPMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "99 83"; + extent = "140 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Default"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellToggleButton(OP_FullScreenTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "102 125"; + extent = "127 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "FULL SCREEN"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton(OP_ApplyBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "275 176"; + extent = "128 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OptionsDlg.applyGraphicChanges();"; + helpTag = "0"; + text = "APPLY CHANGES"; + simpleStyle = "0"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "275 8"; + extent = "128 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "Canvas.pushDialog(DriverInfoDlg);"; + helpTag = "0"; + text = "DRIVER INFO"; + simpleStyle = "0"; + }; + new ShellToggleButton(OP_VSyncTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "133 243"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DISABLE VERTICAL SYNC"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new ShellFieldCtrl(OP_GraphicsPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 6"; - extent = "97 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Gamma Correction:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_GammaSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 21"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - altCommand = "updateGammaCorrection();"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.903509"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 6"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Terrain Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_TerrainSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 21"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - command = "updateTerrainDetail();"; - helpTag = "0"; - range = "0.000000 25.000000"; - ticks = "26"; - value = "17"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 44"; - extent = "67 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Shape Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_ShapeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 59"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "19"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "27 44"; - extent = "77 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Shadow Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_ShadowSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "37 59"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.5"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "27 82"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Interior Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_InteriorDetailSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "37 97"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.300000 1.000000"; - ticks = "1000"; - value = "0.82193"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 82"; - extent = "85 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Visible Distance:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_VisibleDistanceSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 97"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.600000 1.000000"; - ticks = "400"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "27 120"; - extent = "84 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Particle Density:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_ParticleDensitySlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "37 135"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 3.000000"; - ticks = "1000"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl(OP_DynamicLightText) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 120"; - extent = "160 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Dynamic Light Visible Distance:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_DynamicLightText_Disabled) { - profile = "DisabledTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 120"; - extent = "160 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Dynamic Light Visible Distance:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_DynamicLightSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 135"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 100.000000"; - ticks = "100"; - value = "75"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "79 168"; - extent = "70 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Sky Detail:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_SkyDetailMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "146 159"; - extent = "200 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Default"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "35 198"; - extent = "114 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "First Person Draw:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_PlayerRenderMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "146 189"; - extent = "200 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Default"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 226"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::precipitationOn"; - helpTag = "0"; - text = "PRECIPITATION"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 226"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Interior::DynamicLights"; - command = "updateDynamicLightSliderState();"; - helpTag = "0"; - text = "DYNAMIC INTERIOR LIGHTS"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 256"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::decalsOn"; - helpTag = "0"; - text = "DECALS"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 256"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Terrain::dynamicLights"; - command = "updateDynamicLightSliderState();"; - helpTag = "0"; - text = "DYNAMIC TERRAIN LIGHTS"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 286"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Terrain::enableDetails"; - helpTag = "0"; - text = "TERRAIN DETAILS"; - maxLength = "255"; - }; - new ShellToggleButton(OP_IntTexturedFogTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 286"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "INTERIOR TEXTURED FOG"; - maxLength = "255"; - }; - new ShellToggleButton(OP_VertexLightTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "133 316"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "VERTEX LIGHTING"; - maxLength = "255"; - }; - }; - new ShellFieldCtrl(OP_TexturesPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 6"; + extent = "97 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Gamma Correction:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_GammaSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 21"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + altCommand = "updateGammaCorrection();"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.385965"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 6"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Terrain Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_TerrainSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 21"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + command = "updateTerrainDetail();"; + helpTag = "0"; + range = "0.000000 25.000000"; + ticks = "26"; + value = "23"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 44"; + extent = "67 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Shape Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_ShapeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 59"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "19"; + value = "1"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "27 44"; + extent = "77 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Shadow Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_ShadowSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "37 59"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.596491"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "27 82"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Interior Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_InteriorDetailSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "37 97"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.300000 1.000000"; + ticks = "1000"; + value = "0.950877"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 82"; + extent = "85 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Visible Distance:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_VisibleDistanceSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 97"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.600000 1.000000"; + ticks = "400"; + value = "1"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "27 120"; + extent = "84 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Particle Density:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_ParticleDensitySlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "37 135"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 3.000000"; + ticks = "1000"; + value = "3"; + usePlusMinus = "1"; + }; + new GuiTextCtrl(OP_DynamicLightText) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 120"; + extent = "160 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Dynamic Light Visible Distance:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_DynamicLightText_Disabled) { + profile = "DisabledTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 120"; + extent = "160 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Dynamic Light Visible Distance:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_DynamicLightSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 135"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 100.000000"; + ticks = "100"; + value = "92.1053"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "79 168"; + extent = "70 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Sky Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_SkyDetailMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "146 159"; + extent = "200 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Default"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "35 198"; + extent = "114 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "First Person Draw:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_PlayerRenderMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "146 189"; + extent = "200 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Default"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 226"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::precipitationOn"; + helpTag = "0"; + text = "PRECIPITATION"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 226"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Interior::DynamicLights"; + command = "updateDynamicLightSliderState();"; + helpTag = "0"; + text = "DYNAMIC INTERIOR LIGHTS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 256"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::decalsOn"; + helpTag = "0"; + text = "DECALS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 256"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Terrain::dynamicLights"; + command = "updateDynamicLightSliderState();"; + helpTag = "0"; + text = "DYNAMIC TERRAIN LIGHTS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 286"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Terrain::enableDetails"; + helpTag = "0"; + text = "TERRAIN DETAILS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_IntTexturedFogTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 286"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INTERIOR TEXTURED FOG"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 316"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::useOldShieldEffect"; + helpTag = "0"; + text = "HI-RES SHIELD EFFECTS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_VertexLightTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 316"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "VERTEX LIGHTING"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new ShellFieldCtrl(OP_TexturesPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "37 16"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Texture Quality:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_TexQualityMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "134 7"; - extent = "140 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Default"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 85"; - extent = "114 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Terrain Texture Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_TerrainTexSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 100"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 6.000000"; - ticks = "7"; - value = "5"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 85"; - extent = "109 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Shape Texture Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_ShapeTexSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 100"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "6"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 123"; - extent = "119 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Building Texture Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_BuildingTexSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 138"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "6"; - value = "0.8"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 123"; - extent = "97 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Sky Texture Detail:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_SkyTexSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 138"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "6"; - value = "0.8"; - usePlusMinus = "1"; - }; - new GuiTextCtrl(OP_CompressLabel) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "17 46"; - extent = "120 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Texture Compression:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_CompressLabel_Disabled) { - profile = "DisabledTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "6 46"; - extent = "135 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Texture Compression:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_CompressMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "134 37"; - extent = "140 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "None"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl(OP_AnisotropyLabel) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 179"; - extent = "58 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Anisotropy:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_AnisotropyLabel_Disabled) { - profile = "DisabledTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 179"; - extent = "58 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Anisotropy:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_AnisotropySlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "37 194"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0"; - usePlusMinus = "1"; - }; - new ShellToggleButton(OP_EnvMapTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 180"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::environmentMaps"; - helpTag = "0"; - text = "ENVIRONMENT MAPS"; - maxLength = "255"; - }; - new ShellToggleButton(OP_IntEnvMapTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 210"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Interior::ShowEnvironmentMaps"; - helpTag = "0"; - text = "INTERIOR ENV. MAPS"; - maxLength = "255"; - }; - }; - new ShellFieldCtrl(OP_SoundPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "37 16"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Texture Quality:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_TexQualityMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "134 7"; + extent = "140 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Default"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 85"; + extent = "114 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Terrain Texture Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_TerrainTexSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 100"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 6.000000"; + ticks = "7"; + value = "5"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 85"; + extent = "109 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Shape Texture Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_ShapeTexSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 100"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "6"; + value = "1"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 123"; + extent = "119 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Building Texture Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_BuildingTexSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 138"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "6"; + value = "0.8"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 123"; + extent = "97 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Sky Texture Detail:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_SkyTexSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 138"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "6"; + value = "0.8"; + usePlusMinus = "1"; + }; + new GuiTextCtrl(OP_CompressLabel) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "17 46"; + extent = "120 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Texture Compression:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_CompressLabel_Disabled) { + profile = "DisabledTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "6 46"; + extent = "135 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Texture Compression:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_CompressMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "134 37"; + extent = "140 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "None"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl(OP_AnisotropyLabel) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 179"; + extent = "58 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Anisotropy:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_AnisotropyLabel_Disabled) { + profile = "DisabledTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 179"; + extent = "58 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Anisotropy:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_AnisotropySlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "37 194"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0"; + usePlusMinus = "1"; + }; + new ShellToggleButton(OP_EnvMapTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 180"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::environmentMaps"; + helpTag = "0"; + text = "ENVIRONMENT MAPS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_IntEnvMapTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 210"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Interior::ShowEnvironmentMaps"; + helpTag = "0"; + text = "INTERIOR ENV. MAPS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_HiResSkinTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 250"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "HI-RES PLAYER SKINS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new ShellFieldCtrl(OP_SoundPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "10 16"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "3D Provider:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_AudioProviderMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "79 7"; - extent = "268 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Provider"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new ShellBitmapButton(OP_AudioResetProvider) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "339 7"; - extent = "79 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "RESET"; - simpleStyle = "0"; - }; - new ShellToggleButton(OP_AudioEnvironmentTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "249 42"; - extent = "160 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Audio::environmentEnabled"; - helpTag = "0"; - text = "ENVIRONMENT ENABLED"; - maxLength = "255"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "10 46"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Speakers:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_AudioSpeakerMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "79 37"; - extent = "169 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Speaker"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "11 97"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Frequency:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_AudioFrequencyMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "80 88"; - extent = "169 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Frequency"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "11 127"; - extent = "72 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Bit Rate:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_AudioBitRateMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "80 118"; - extent = "100 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Bit Rate"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "221 127"; - extent = "60 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Channels:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_AudioChannelsMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "278 118"; - extent = "100 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select # Channels"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 177"; - extent = "79 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Master Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_MasterVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 192"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - altCommand = "updateMasterVolume();"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.894737"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 177"; - extent = "79 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Effects Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_EffectsVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 192"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 215"; - extent = "60 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Gui Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_GuiVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 230"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - altCommand = "updateGuiVolume();"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.692982"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 215"; - extent = "97 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Voice Bind Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_VoiceBindVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 230"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.8"; - usePlusMinus = "1"; - }; - new ShellToggleButton(OP_MusicTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 266"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Audio::musicEnabled"; - helpTag = "0"; - text = "MP3 MUSIC"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_MusicVolumeLabel) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 257"; - extent = "74 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Music Volume:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_MusicVolumeLabel_Disabled) { - profile = "DisabledTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 253"; - extent = "74 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Music Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_MusicVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 268"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - altCommand = "updateMusicVolume();"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "0.859649"; - usePlusMinus = "1"; - }; - }; - new ShellFieldCtrl(OP_VoicePane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "10 16"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "3D Provider:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_AudioProviderMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "79 7"; + extent = "268 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Provider"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellBitmapButton(OP_AudioResetProvider) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "339 7"; + extent = "79 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RESET"; + simpleStyle = "0"; + }; + new ShellToggleButton(OP_AudioEnvironmentTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "249 42"; + extent = "160 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Audio::environmentEnabled"; + helpTag = "0"; + text = "ENVIRONMENT ENABLED"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "10 46"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Speakers:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_AudioSpeakerMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "79 37"; + extent = "169 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Speaker"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "11 97"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Frequency:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_AudioFrequencyMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "80 88"; + extent = "169 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Frequency"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "11 127"; + extent = "72 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Bit Rate:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_AudioBitRateMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "80 118"; + extent = "100 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Bit Rate"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "221 127"; + extent = "60 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Channels:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_AudioChannelsMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "278 118"; + extent = "100 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select # Channels"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 177"; + extent = "79 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Master Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_MasterVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 192"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + altCommand = "updateMasterVolume();"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.894737"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 177"; + extent = "79 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Effects Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_EffectsVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 192"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.938596"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 215"; + extent = "60 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Gui Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_GuiVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 230"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + altCommand = "updateGuiVolume();"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.692982"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 215"; + extent = "97 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Voice Bind Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_VoiceBindVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 230"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.824561"; + usePlusMinus = "1"; + }; + new ShellToggleButton(OP_MusicTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 266"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Audio::musicEnabled"; + helpTag = "0"; + text = "MP3 MUSIC"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_MusicVolumeLabel) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 257"; + extent = "74 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Music Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_MusicVolumeLabel_Disabled) { + profile = "DisabledTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 253"; + extent = "74 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Music Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_MusicVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 268"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + altCommand = "updateMusicVolume();"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "0.859649"; + usePlusMinus = "1"; + }; + }; + new ShellFieldCtrl(OP_VoicePane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new ShellToggleButton(OP_MicrophoneEnabledTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 13"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Audio::enableVoiceCapture"; - helpTag = "0"; - text = "MICROPHONE ENABLED"; - maxLength = "255"; - }; - new ShellBitmapButton(OP_RecordTestBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "232 8"; - extent = "173 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "alxCaptureStart(true);"; - helpTag = "0"; - text = "TEST RECORD"; - simpleStyle = "0"; - }; - new GuiTextCtrl(OP_MicVolumeLabel) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "28 43"; - extent = "102 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Microphone Volume:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_MicVolumeLabel_Disabled) { - profile = "DisabledTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "28 43"; - extent = "102 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Microphone Volume:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_MicrophoneVolumeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "38 58"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 1.000000"; - ticks = "1000"; - value = "1"; - usePlusMinus = "1"; - }; - new GuiTextCtrl(OP_InputBoostLabel) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 43"; - extent = "123 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Microphone Input Boost:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_InputBoostLabel_Disabled) { - profile = "DisabledTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 43"; - extent = "123 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Microphone Input Boost:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_InputBoostPercentTxt) { - profile = "ShellTextCenterProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "271 61"; - extent = "110 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "100%"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_InputBoostSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 58"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - altCommand = "updateInputBoost();"; - helpTag = "0"; - range = "1.000000 5.000000"; - ticks = "5000"; - value = "3.59649"; - usePlusMinus = "1"; - }; - new GuiTextCtrl(OP_VoiceListenLabel) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "46 96"; - extent = "140 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Voice Listen Codec(s):"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_VoiceListenMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "183 87"; - extent = "129 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Quality"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl(OP_VoiceSendLabel) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "46 126"; - extent = "140 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Voice Send Codec:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_VoiceSendMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "183 117"; - extent = "129 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Quality"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl(OP_VoiceListenLabel_Disabled) { - profile = "DisabledTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "46 96"; - extent = "140 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Voice Listen Quality:"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_VoiceSendLabel_Disabled) { - profile = "DisabledTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "46 126"; - extent = "140 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Voice Send Quality:"; - maxLength = "255"; - }; - new GuiMLTextCtrl(OP_VoiceCodecInfo) { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "25 159"; - extent = "395 140"; - minExtent = "8 140"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - lineSpacing = "2"; - allowColorChars = "0"; - maxChars = "-1"; - deniedSound = "InputDeniedSound"; - }; - }; - new ShellFieldCtrl(OP_ControlsPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - group = "Main"; + new ShellToggleButton(OP_MicrophoneEnabledTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 13"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Audio::enableVoiceCapture"; + helpTag = "0"; + text = "MICROPHONE ENABLED"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton(OP_RecordTestBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "232 8"; + extent = "173 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "alxCaptureStart(true);"; + helpTag = "0"; + text = "TEST RECORD"; + simpleStyle = "0"; + }; + new GuiTextCtrl(OP_MicVolumeLabel) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "28 43"; + extent = "102 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Microphone Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_MicVolumeLabel_Disabled) { + profile = "DisabledTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "28 43"; + extent = "102 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Microphone Volume:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_MicrophoneVolumeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "38 58"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 1.000000"; + ticks = "1000"; + value = "1"; + usePlusMinus = "1"; + }; + new GuiTextCtrl(OP_InputBoostLabel) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 43"; + extent = "123 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Microphone Input Boost:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_InputBoostLabel_Disabled) { + profile = "DisabledTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 43"; + extent = "123 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Microphone Input Boost:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_InputBoostPercentTxt) { + profile = "ShellTextCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "271 61"; + extent = "110 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "100%"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_InputBoostSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 58"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + altCommand = "updateInputBoost();"; + helpTag = "0"; + range = "1.000000 5.000000"; + ticks = "5000"; + value = "3.70175"; + usePlusMinus = "1"; + }; + new GuiTextCtrl(OP_VoiceListenLabel) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "46 96"; + extent = "140 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Voice Listen Codec(s):"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_VoiceListenMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "183 87"; + extent = "129 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Quality"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl(OP_VoiceSendLabel) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "46 126"; + extent = "140 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Voice Send Codec:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_VoiceSendMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "183 117"; + extent = "129 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Quality"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl(OP_VoiceListenLabel_Disabled) { + profile = "DisabledTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "46 96"; + extent = "140 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Voice Listen Quality:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_VoiceSendLabel_Disabled) { + profile = "DisabledTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "46 126"; + extent = "140 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Voice Send Quality:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(OP_VoiceCodecInfo) { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "25 159"; + extent = "395 140"; + minExtent = "8 140"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new ShellFieldCtrl(OP_ControlsPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + group = "Main"; - new ShellScrollCtrl() { - profile = "NewScrollCtrlProfile"; - horizSizing = "right"; - vertSizing = "height"; - position = "2 31"; - extent = "290 283"; - minExtent = "24 52"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "alwaysOn"; - constantThumbHeight = "0"; - defaultLineHeight = "15"; - childMargin = "0 2"; - fieldBase = "gui/shll_field"; + new ShellScrollCtrl() { + profile = "NewScrollCtrlProfile"; + horizSizing = "right"; + vertSizing = "height"; + position = "2 31"; + extent = "290 283"; + minExtent = "24 52"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "alwaysOn"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "0 2"; + fieldBase = "gui/shll_field"; - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "4 6"; - extent = "266 271"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 6"; + extent = "266 271"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new ShellTextList(OP_RemapList) { - profile = "ShellTextArrayProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "266 8"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - altCommand = "OP_RemapList.doRemap();"; - helpTag = "0"; - enumerate = "0"; - resizeCell = "1"; - columns = "2 150"; - fitParentWidth = "1"; - clipColumnText = "0"; - }; - }; - }; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "292 8"; - extent = "140 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "restoreDefaultMappings();"; - helpTag = "0"; - text = "RESTORE DEFAULTS"; - simpleStyle = "0"; - }; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "292 38"; - extent = "140 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "ShellGetLoadFilename( \"LOAD CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"loadMapFile\" );"; - helpTag = "0"; - text = "LOAD"; - simpleStyle = "0"; - }; - new ShellBitmapButton() { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "292 68"; - extent = "140 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "ShellGetSaveFilename( \"SAVE CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"saveMapFile\", $pref::Input::ActiveConfig );"; - helpTag = "0"; - text = "SAVE AS"; - simpleStyle = "0"; - }; - new ShellToggleButton(OP_MouseTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "296 116"; - extent = "126 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Input::MouseEnabled"; - helpTag = "0"; - text = "DINPUT MOUSE"; - maxLength = "255"; - }; - new ShellBitmapButton(OP_ConfigureMouseBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "292 146"; - extent = "140 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "Canvas.pushDialog(MouseConfigDlg);"; - helpTag = "0"; - text = "CONFIGURE MOUSE"; - simpleStyle = "0"; - }; - new ShellToggleButton(OP_JoystickTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "296 194"; - extent = "126 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "ENABLE JOYSTICK"; - maxLength = "255"; - }; - new ShellBitmapButton(OP_ConfigureJoystickBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "292 224"; - extent = "140 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "Canvas.pushDialog(JoystickConfigDlg);"; - helpTag = "0"; - text = "CONFIGURE JOYSTICK"; - simpleStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "32 317"; - extent = "124 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Toggle Console Key:"; - maxLength = "255"; - }; - new ShellFieldCtrl() { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "161 316"; - extent = "128 23"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new ShellTextList(OP_RemapList) { + profile = "ShellTextArrayProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "266 8"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + altCommand = "OP_RemapList.doRemap();"; + helpTag = "0"; + enumerate = "0"; + resizeCell = "1"; + columns = "2 150"; + fitParentWidth = "1"; + clipColumnText = "0"; + }; + }; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "292 8"; + extent = "140 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "restoreDefaultMappings();"; + helpTag = "0"; + text = "RESTORE DEFAULTS"; + simpleStyle = "0"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "292 38"; + extent = "140 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "ShellGetLoadFilename( \"LOAD CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"loadMapFile\" );"; + helpTag = "0"; + text = "LOAD"; + simpleStyle = "0"; + }; + new ShellBitmapButton() { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "292 68"; + extent = "140 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "ShellGetSaveFilename( \"SAVE CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"saveMapFile\", $pref::Input::ActiveConfig );"; + helpTag = "0"; + text = "SAVE AS"; + simpleStyle = "0"; + }; + new ShellToggleButton(OP_MouseTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "296 116"; + extent = "126 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Input::MouseEnabled"; + helpTag = "0"; + text = "DINPUT MOUSE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton(OP_ConfigureMouseBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "292 146"; + extent = "140 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "Canvas.pushDialog(MouseConfigDlg);"; + helpTag = "0"; + text = "CONFIGURE MOUSE"; + simpleStyle = "0"; + }; + new ShellToggleButton(OP_JoystickTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "296 194"; + extent = "126 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENABLE JOYSTICK"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellBitmapButton(OP_ConfigureJoystickBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "292 224"; + extent = "140 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "Canvas.pushDialog(JoystickConfigDlg);"; + helpTag = "0"; + text = "CONFIGURE JOYSTICK"; + simpleStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "32 317"; + extent = "124 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Toggle Console Key:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellFieldCtrl() { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "161 316"; + extent = "128 23"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiButtonCtrl(OP_ConsoleKeyBtn) { - profile = "ShellActiveTextProfile"; - horizSizing = "width"; - vertSizing = "height"; - position = "3 3"; - extent = "122 17"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "OP_ConsoleKeyBtn.doRemap();"; - helpTag = "0"; - text = "grave"; - }; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "22 9"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Control Group:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_ControlGroupMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "118 0"; - extent = "180 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Control Group"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - }; - new ShellFieldCtrl(OP_NetworkPane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiButtonCtrl(OP_ConsoleKeyBtn) { + profile = "ShellActiveTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "3 3"; + extent = "122 17"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "OP_ConsoleKeyBtn.doRemap();"; + helpTag = "0"; + text = "grave"; + }; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "22 9"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Control Group:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_ControlGroupMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "118 0"; + extent = "180 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Control Group"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + }; + new ShellFieldCtrl(OP_NetworkPane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "9 16"; - extent = "60 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Presets:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_NetworkPresetsMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "73 8"; - extent = "151 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Preset"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 52"; - extent = "65 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Packet Rate:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_PacketRateSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 67"; - extent = "170 24"; - minExtent = "12 24"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "2.000000 32.000000"; - ticks = "31"; - value = "8.31579"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "231 52"; - extent = "62 22"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Packet Size:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_PacketSizeSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "241 67"; - extent = "170 24"; - minExtent = "12 24"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "100.000000 450.000000"; - ticks = "36"; - value = "350"; - usePlusMinus = "1"; - }; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 47"; - extent = "99 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Client Update Rate:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_UpdateRateSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 62"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "8.000000 32.000000"; - ticks = "25"; - value = "32"; - usePlusMinus = "1"; - command = "updateNetworkSettings();"; - }; - new GuiTextCtrl(OP_MasterServerTxt) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "11 222"; - extent = "200 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Display on Master Server:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_MasterServerMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "208 214"; - extent = "180 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Display Option"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new GuiTextCtrl() { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "67 253"; - extent = "144 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Server Location:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_RegionMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "208 244"; - extent = "180 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Region"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - new ShellToggleButton(OP_CheckEmailTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "123 283"; - extent = "190 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Net::CheckEmail"; - helpTag = "0"; - text = "CHECK EMAIL WHILE PLAYING"; - maxLength = "255"; - }; - new ShellToggleButton(OP_ChatDisconnectTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "123 311"; - extent = "190 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Net::DisconnectChat"; - helpTag = "0"; - text = "DISCONNECT FROM CHAT"; - maxLength = "255"; - }; - new ShellFieldCtrl() { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "183 100"; - extent = "227 103"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "9 16"; + extent = "60 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Presets:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_NetworkPresetsMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "73 8"; + extent = "151 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Preset"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + updateSettings = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 52"; + extent = "65 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Packet Rate:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_PacketRateSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 67"; + extent = "170 24"; + minExtent = "12 24"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "2.000000 32.000000"; + ticks = "31"; + value = "32"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "231 52"; + extent = "62 22"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Packet Size:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_PacketSizeSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "241 67"; + extent = "170 24"; + minExtent = "12 24"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "100.000000 450.000000"; + ticks = "36"; + value = "450"; + usePlusMinus = "1"; + }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 47"; + extent = "99 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Client Update Rate:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_UpdateRateSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 62"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + command = "updateNetworkSettings();"; + helpTag = "0"; + range = "8.000000 32.000000"; + ticks = "25"; + value = "32"; + usePlusMinus = "1"; + }; + new GuiTextCtrl(OP_MasterServerTxt) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "11 222"; + extent = "200 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Display on Master Server:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_MasterServerMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "208 214"; + extent = "180 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Display Option"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new GuiTextCtrl() { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "67 253"; + extent = "144 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Server Location:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_RegionMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "208 244"; + extent = "180 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Region"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellToggleButton(OP_CheckEmailTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "123 283"; + extent = "190 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Net::CheckEmail"; + helpTag = "0"; + text = "CHECK EMAIL WHILE PLAYING"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_ChatDisconnectTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "123 311"; + extent = "190 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Net::DisconnectChat"; + helpTag = "0"; + text = "DISCONNECT FROM CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellFieldCtrl() { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "183 100"; + extent = "227 103"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new HudNetDisplay(OP_NetworkDisplayHud) { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "2 1"; - extent = "223 101"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "1"; - historySize = "100"; - updatePeriod = "50"; - infoCallback = "1"; - }; - }; - new ShellFieldCtrl(OP_NetworkDisplayTextFrame) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "25 100"; - extent = "149 103"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - }; - }; - new ShellFieldCtrl(OP_GamePane) { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "138 42"; - extent = "437 346"; - minExtent = "16 18"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; + new HudNetDisplay(OP_NetworkDisplayHud) { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "2 1"; + extent = "223 101"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + historySize = "100"; + updatePeriod = "50"; + renderField[0] = "1"; + renderField[1] = "1"; + renderField[2] = "0"; + renderField[3] = "1"; + renderField[4] = "0"; + renderField[5] = "1"; + fieldColors[0] = "0 220 0 255"; + fieldColors[1] = "220 0 0 255"; + fieldColors[2] = "220 220 220 255"; + fieldColors[3] = "120 120 120 255"; + fieldColors[4] = "0 190 240 255"; + fieldColors[5] = "0 120 170 255"; + lowerBound[0] = "0"; + lowerBound[1] = "0"; + lowerBound[2] = "0"; + lowerBound[3] = "0"; + lowerBound[4] = "0"; + lowerBound[5] = "0"; + upperBound[0] = "500"; + upperBound[1] = "100"; + upperBound[2] = "32"; + upperBound[3] = "4096"; + upperBound[4] = "32"; + upperBound[5] = "4096"; + infoCallback = "1"; + renderGraph = "1"; + }; + }; + new ShellFieldCtrl(OP_NetworkDisplayTextFrame) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "25 100"; + extent = "149 103"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + }; + }; + new ShellFieldCtrl(OP_GamePane) { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "138 42"; + extent = "437 346"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new GuiTextCtrl() { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "26 8"; - extent = "65 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Zoom Speed:"; - maxLength = "255"; - }; - new ShellSliderCtrl(OP_ZoomSpeedSlider) { - profile = "ShellSliderProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "36 23"; - extent = "170 24"; - minExtent = "12 24"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "value"; - helpTag = "0"; - range = "0.000000 500.000000"; - ticks = "501"; - value = "500"; - usePlusMinus = "1"; - }; - new ShellBitmapButton(OP_EditChatMenuBtn) { - profile = "ShellButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "237 11"; - extent = "173 38"; - minExtent = "32 38"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - command = "Canvas.popDialog( OptionsDlg ); Canvas.pushDialog(EditChatMenuGui);"; - helpTag = "0"; - text = "EDIT CHAT MENU"; - simpleStyle = "0"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 64"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::toggleVehicleView"; - helpTag = "0"; - text = "3RD PERSON VEHICLE"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 64"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::SkipIntro"; - helpTag = "0"; - text = "SKIP INTRO"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 94"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::Vehicle::InvertYAxis"; - helpTag = "0"; - text = "INVERT VEHICLE Y-AXIS"; - maxLength = "255"; - }; - new ShellToggleButton(OP_ForceFeedbackTgl) { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 94"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$Pref::useImmersion"; - command = "toggleImmersion();"; - helpTag = "0"; - text = "ENABLE FORCE FEEDBACK"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "31 124"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::enableBadWordFilter"; - helpTag = "0"; - text = "ENABLE BAD WORD FILTER"; - maxLength = "255"; - }; - new ShellToggleButton() { - profile = "ShellRadioProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "236 124"; - extent = "170 30"; - minExtent = "26 27"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - variable = "$pref::usePrefSkins"; - helpTag = "0"; - text = "SHOW PERSONAL SKINS"; - maxLength = "255"; - }; - new GuiTextCtrl(OP_LaunchScreenTxt) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "79 173"; - extent = "100 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Launch Screen:"; - maxLength = "255"; - }; - new ShellPopupMenu(OP_LaunchScreenMenu) { - profile = "ShellPopupProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "176 164"; - extent = "180 36"; - minExtent = "49 36"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "Select Screen"; - maxLength = "255"; - maxPopupHeight = "200"; - buttonBitmap = "gui/shll_pulldown"; - rolloverBarBitmap = "gui/shll_pulldownbar_rol"; - selectedBarBitmap = "gui/shll_pulldownbar_act"; - noButtonStyle = "0"; - }; - }; - }; + new GuiTextCtrl() { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "26 8"; + extent = "65 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Zoom Speed:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellSliderCtrl(OP_ZoomSpeedSlider) { + profile = "ShellSliderProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "36 23"; + extent = "170 24"; + minExtent = "12 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "value"; + helpTag = "0"; + range = "0.000000 500.000000"; + ticks = "501"; + value = "500"; + usePlusMinus = "1"; + }; + new ShellBitmapButton(OP_EditChatMenuBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "237 11"; + extent = "173 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "Canvas.popDialog( OptionsDlg ); Canvas.pushDialog(EditChatMenuGui);"; + helpTag = "0"; + text = "EDIT CHAT MENU"; + simpleStyle = "0"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 64"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::toggleVehicleView"; + helpTag = "0"; + text = "3RD PERSON VEHICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 64"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::SkipIntro"; + helpTag = "0"; + text = "SKIP INTRO"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 94"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Vehicle::InvertYAxis"; + command = "toggleInvertYAxis();"; + helpTag = "0"; + text = "INVERT VEHICLE Y-AXIS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton(OP_ForceFeedbackTgl) { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 94"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$Pref::useImmersion"; + command = "toggleImmersion();"; + helpTag = "0"; + text = "ENABLE FORCE FEEDBACK"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 124"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::Vehicle::pilotTeleport"; + command = "toggleVehicleTeleportPref();"; + helpTag = "0"; + text = "TELEPORT TO VEHICLES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 124"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::usePrefSkins"; + helpTag = "0"; + text = "SHOW PERSONAL SKINS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 154"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::enableBadWordFilter"; + helpTag = "0"; + text = "ENABLE BAD WORD FILTER"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "236 154"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::RenderOOBGrid"; + helpTag = "0"; + text = "SHOW OUT OF BOUNDS GRID"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(OP_LaunchScreenTxt) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "79 233"; + extent = "100 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Launch Screen:"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellPopupMenu(OP_LaunchScreenMenu) { + profile = "ShellPopupProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "176 224"; + extent = "180 36"; + minExtent = "49 36"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Select Screen"; + longTextBuffer = "0"; + maxLength = "255"; + maxPopupHeight = "200"; + buttonBitmap = "gui/shll_pulldown"; + rolloverBarBitmap = "gui/shll_pulldownbar_rol"; + selectedBarBitmap = "gui/shll_pulldownbar_act"; + noButtonStyle = "0"; + }; + new ShellToggleButton() { + profile = "ShellRadioProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "31 185"; + extent = "170 30"; + minExtent = "26 27"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + variable = "$pref::ignoreTeamRepairMessages"; + helpTag = "0"; + text = "IGNORE REPAIR MESSAGES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + }; }; - //--- OBJECT WRITE END --- diff --git a/base/gui/PlayGui.gui b/base/gui/PlayGui.gui index cab720e..dfa1f18 100644 --- a/base/gui/PlayGui.gui +++ b/base/gui/PlayGui.gui @@ -1,679 +1,5892 @@ //--- OBJECT WRITE BEGIN --- new GameTSCtrl(PlayGui) { - profile = "GuiContentProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "640 480"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "1"; - modal = "1"; - hideCursor = "1"; - helpTag = "0"; - beaconBaseTextureName = "gui/beacon_base"; - beaconTargetTextureName = "gui/crosshairs"; - beaconTargetPeriod = 4000; - beaconsVisible = true; - enemyBeaconLineBeginColor = "0 1 0 0.2"; - enemyBeaconLineEndColor = "0 1 0 0.8"; - vehicleBeaconLineBeginColor = "1 0 0 0.2"; - vehicleBeaconLineEndColor = "1 0 0 0.8"; - friendBeaconLineBeginColor = "1 1 0 0.2"; - frinedBeaconLineEndColor = "1 1 0 0.8"; - beaconLineWidth = "2.5"; - beaconTextYOffset = 14; + profile = "GuiContentProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "1"; + bypassHideCursor = "0"; + helpTag = "0"; + beaconBaseTextureName = "gui/beacon_base"; + beaconTargetTextureName = "gui/crosshairs"; + beaconTargetPeriod = "4000"; + beaconsVisible = "1"; + enemyBeaconLineBeginColor = "0.000000 1.000000 0.000000 0.200000"; + enemyBeaconLineEndColor = "0.000000 1.000000 0.000000 0.800000"; + vehicleBeaconLineBeginColor = "1.000000 0.000000 0.000000 0.200000"; + vehicleBeaconLineEndColor = "1.000000 0.000000 0.000000 0.800000"; + friendBeaconLineBeginColor = "1.000000 1.000000 0.000000 0.200000"; + friendBeaconLineEndColor = "1.000000 1.000000 0.000000 0.800000"; + beaconLineWidth = "2.5"; + beaconTextYOffset = "14"; + showAlternateTarget = "0"; + frinedBeaconLineEndColor = "1 1 0 0.8"; - new HudScoreCtrl(objectiveHud) { - profile = "HudScoreProfile"; - horizSizing = "right"; - vertSizing = "top"; - position = "8 437"; - extent = "245 35"; - minExtent = "8 8"; - visible = "0"; - }; + new HudScoreCtrl(objectiveHud) { + profile = "HudScoreProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "8 437"; + extent = "245 37"; + minExtent = "16 37"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + verticalInset = "3 0"; + horizontalInset = "2 2"; + teamScore2 = "4967"; + teamName1 = "4964"; + flagLabel2 = "4969"; + teamScore1 = "4966"; + flagLocation2 = "4971"; + flagLocation1 = "4970"; + teamName2 = "4965"; + flagLabel1 = "4968"; - new HudBitmapCtrl(hudClusterBack) { + new GuiTextCtrl() { + profile = "GuiTextObjGreenLeftProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 3"; + extent = "65 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjGreenCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "75 3"; + extent = "20 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjGreenCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "100 3"; + extent = "30 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "FLAG"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjGreenLeftProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "135 3"; + extent = "105 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjHudLeftProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 19"; + extent = "65 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjHudCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "75 19"; + extent = "20 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjHudCenterProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "100 19"; + extent = "30 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "FLAG"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl() { + profile = "GuiTextObjHudLeftProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "135 19"; + extent = "105 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new HudBitmapCtrl(hudClusterBack) { + profile = "GuiButtonProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "444 8"; + extent = "188 81"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + bitmap = "gui/hud_new_cog"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + + new HudBitmapCtrl(hudCompassBack) { + profile = "GuiButtonProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "109 2"; + extent = "77 77"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + bitmap = "gui/hud_new_compass"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + }; + new GuiControl(compassHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "107 2"; + extent = "81 77"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + opacity = "1.0"; + + new HudCompass(compass) { + profile = "clockProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "0 0"; + extent = "81 77"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + textColor = "0 255 0 255"; + }; + }; + new HudPulsingBitmap(sensorHudBack) { + profile = "GuiButtonProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "134 26"; + extent = "27 29"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + bitmap = "gui/hud_new_ping"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + color = "3 255 110 255"; + pulse = "0"; + pulseRate = "1000"; + }; + new HudPulsingBitmap(sensorHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "134 26"; + extent = "27 29"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + bitmap = "gui/hud_new_ping"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + color = "255 255 255 255"; + pulse = "1"; + pulseRate = "1000"; + jam = "0"; + pingColor = "255 22 22"; + ping = "0"; + jamColor = "253 255 2"; + }; + new HudEnergy(energyHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "8 23"; + extent = "93 5"; + minExtent = "93 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.353000 0.373000 0.933000 0.800000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.8"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "0 0 93 10"; + displayMounted = "0"; + pulseRate = "500"; + pulseThreshold = "0.3"; + verticalFill = "0"; + value = "0"; + }; + new HudDamage(damageHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "8 5"; + extent = "93 8"; + minExtent = "93 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.000000 1.000000 0.000000 0.800000"; + frameColor = "0.000000 1.000000 0.000000 0.000000"; + opacity = "0.8"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "0 0 93 10"; + displayMounted = "0"; + pulseRate = "500"; + pulseThreshold = "0.3"; + verticalFill = "0"; + value = "0"; + }; + new HudHeat(HeatHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "8 30"; + extent = "93 3"; + minExtent = "93 3"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "1.000000 0.000000 0.000000 0.800000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.8"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "0 0 100 10"; + displayMounted = "0"; + pulseRate = "500"; + pulseThreshold = "0.3"; + verticalFill = "0"; + value = "0"; + heatWarning = "0.6"; + }; + }; + new HudClock(clockHUD) { + profile = "clockProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "559 38"; + extent = "65 23"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + bitmap = "gui/hud_mistimer"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "0 2 65 15"; + }; + new ShellFieldCtrl(NetGraphHudFrame) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "266 8"; + extent = "176 50"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new HudNetDisplay(NetGraphHud) { + profile = "HudScoreProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "1 1"; + extent = "174 48"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + historySize = "100"; + updatePeriod = "50"; + renderField[0] = "1"; + renderField[1] = "1"; + renderField[2] = "0"; + renderField[3] = "1"; + renderField[4] = "0"; + renderField[5] = "1"; + fieldColors[0] = "0 220 0 255"; + fieldColors[1] = "220 0 0 255"; + fieldColors[2] = "220 220 220 255"; + fieldColors[3] = "120 120 120 255"; + fieldColors[4] = "0 190 240 255"; + fieldColors[5] = "0 120 170 255"; + lowerBound[0] = "0"; + lowerBound[1] = "0"; + lowerBound[2] = "0"; + lowerBound[3] = "0"; + lowerBound[4] = "0"; + lowerBound[5] = "0"; + upperBound[0] = "500"; + upperBound[1] = "100"; + upperBound[2] = "32"; + upperBound[3] = "4096"; + upperBound[4] = "32"; + upperBound[5] = "4096"; + infoCallback = "0"; + renderGraph = "1"; + }; + }; + new GuiControl(NetBarHudFrame) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "290 0"; + extent = "129 68"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new HudNetDisplay(NetBarHud) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "1 1"; + extent = "174 48"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + historySize = "2"; + updatePeriod = "50"; + renderField[0] = "1"; + renderField[1] = "1"; + renderField[2] = "1"; + renderField[3] = "1"; + renderField[4] = "1"; + renderField[5] = "1"; + fieldColors[0] = "0 220 0 255"; + fieldColors[1] = "220 0 0 255"; + fieldColors[2] = "220 220 220 255"; + fieldColors[3] = "120 120 120 255"; + fieldColors[4] = "0 190 240 255"; + fieldColors[5] = "0 120 170 255"; + lowerBound[0] = "0"; + lowerBound[1] = "0"; + lowerBound[2] = "0"; + lowerBound[3] = "0"; + lowerBound[4] = "0"; + lowerBound[5] = "0"; + upperBound[0] = "500"; + upperBound[1] = "100"; + upperBound[2] = "32"; + upperBound[3] = "4096"; + upperBound[4] = "32"; + upperBound[5] = "4096"; + infoCallback = "1"; + renderGraph = "0"; + }; + new ShellFieldCtrl() { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "6 27"; + extent = "120 18"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new HudBarBaseCtrl(NetBarHudSendBar) { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "120 18"; + minExtent = "120 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.000000 0.800000 0.000000 1.000000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.6"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "2 2 116 15"; + displayMounted = "0"; + pulseRate = "500"; + pulseThreshold = "0.3"; + verticalFill = "0"; + value = "0.868807"; + }; + }; + new ShellFieldCtrl() { + profile = "ShellFieldProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "6 46"; + extent = "120 18"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new HudBarBaseCtrl(NetBarHudReceiveBar) { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "120 18"; + minExtent = "120 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.000000 0.800000 0.000000 1.000000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.6"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "2 2 116 15"; + displayMounted = "0"; + pulseRate = "500"; + pulseThreshold = "0.3"; + verticalFill = "0"; + value = "0.911488"; + }; + }; + new GuiTextCtrl(NetBarHudPingText) { + profile = "ShellTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "9 9"; + extent = "35 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "0ms"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(NetBarHudPacketLossText) { + profile = "ShellTextRightProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "76 9"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "0%"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new GuiControl(retCenterHud) { + profile = "GuiDefaultProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "192 112"; + extent = "256 256"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + wrap = "0"; + + new HudCrosshair(reticleHud) { + profile = "GuiButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "112 112"; + extent = "32 32"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.5"; + bitmap = "gui/ret_blaster"; + autoCenter = "1"; + autoResize = "1"; + flipVertical = "0"; + flipHorizontal = "0"; + }; + new GuiTextCtrl(ammoHud) { + profile = "GuiAmmoHudProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "75 150"; + extent = "80 20"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new HudPulsingBitmap(deploySensor) { + profile = "GuiButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "90 90"; + extent = "75 75"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.5"; + bitmap = "gui/hud_ping"; + autoCenter = "1"; + autoResize = "1"; + flipVertical = "0"; + flipHorizontal = "0"; + color = "0 0 0 0"; + pulse = "0"; + pulseRate = "1000"; + }; + new HudCrosshair(reticleFrameHud) { + profile = "GuiButtonProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "96 96"; + extent = "64 64"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.5"; + bitmap = "gui/hud_retrng"; + autoCenter = "1"; + autoResize = "1"; + flipVertical = "0"; + flipHorizontal = "0"; + }; + }; + new HudInventory(inventoryHud) { + profile = "GuiHudCounterProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "486 434"; + extent = "116 38"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + ammoOffset = "6 24"; + backGroundOffset = "0 0"; + highLightOffset = "0 0"; + iconOffset = "1 1"; + backGroundSpace = "2"; + }; + new GuiBitmapCtrl(backpackFrame) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "457 434"; + extent = "27 38"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + bitmap = "gui/hud_new_panel"; + wrap = "0"; + + new GuiBitmapCtrl(backpackIcon) { + profile = "GuiDefaultProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "0 3"; + extent = "25 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + wrap = "0"; + }; + new GuiTextCtrl(backpackText) { + profile = "GuiPackTextProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "1 24"; + extent = "25 16"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new HudWeapons(weaponsHud) { + profile = "GuiHudCounterProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "604 194"; + extent = "32 160"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.9"; + ammoOffset = "6 24"; + backGroundOffset = "0 0"; + highLightOffset = "0 0"; + iconOffset = "1 1"; + backGroundSpace = "2"; + }; + new HudNavDisplay(navHud) { + profile = "GuiHudNavProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.5"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + renderXYProjection = "0"; + renderEdgeMarkers = "1"; + markerHitRadius = "2"; + markerAngle = "30"; + markerLen = "20"; + defaultMarkerColor = "0 255 220 220"; + acquireScreenRadius = "75"; + playerEyeZOffset = "0.4"; + damageRectSize = "50 12"; + infoOffset = "24 24"; + minProjectSize = "10"; + acquireBoxCheckDistance = "50"; + targetLockedFrameColor = "255 0 0 255"; + damageFrameColor = "255 255 255 255"; + minMarkerScale = "0.5"; + markerScaleDistance = "1000"; + markerImageNames[0] = "small_triangle"; + markerImageNames[1] = "small_square"; + markerImageNames[2] = "small_diamond"; + markerImageNames[3] = "small_cross"; + markerImageNames[4] = "small_circle"; + markerTextEdgeOffset = "2"; + renderMarkerText = "1"; + protectedStatics = "0"; + enemyBeaconColor = "0 255 0 255"; + friendBeaconColor = "255 255 0 255"; + vehicleBeaconColor = "0 255 0 255"; + imageOffset = "2"; + missileMarker1 = "gui/RET_missile_marker"; + missileMarker2 = "gui/RET_missile_marker_red"; + missileFlash1 = "gui/RET_missile_horizflash_red"; + missileFlash2 = "gui/RET_missile_vertflash_red"; + LOSMarkerUpdate = "250"; + }; + new GuiDashBoardCtrl(dashboardHud) { + profile = "GuiDefaultProfile"; + horizSizing = "center"; + vertSizing = "top"; + position = "0 360"; + extent = "640 120"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + wrap = "0"; + + new HudVehicleWeapon(vWeaponsBox) { + profile = "GuiButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "180 25"; + extent = "70 40"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "0.8"; + ammoOffset = "10 30"; + backGroundOffset = "5 4"; + highLightOffset = "0 0"; + iconOffset = "7 4"; + backGroundSpace = "8"; + }; + }; + new ShellFieldCtrl(voiceCommHud) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "8 92"; + extent = "160 70"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(vcRecordingHud) { + profile = "GuiRecordingHudProfile"; + horizSizing = "center"; + vertSizing = "top"; + position = "0 0"; + extent = "160 20"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Recording"; + longTextBuffer = "0"; + maxLength = "255"; + }; + }; + new GuiTextCtrl(controlObjectText) { + profile = "ShellBigTextProfile"; + horizSizing = "center"; + vertSizing = "top"; + position = "130 440"; + extent = "380 26"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Press \'\c2Escape\cr\' to return to game."; + longTextBuffer = "0"; + maxLength = "255"; + }; + new ShellFieldCtrl(centerPrintDlg) { + profile = "GuiChatBackProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "45 230"; + extent = "550 20"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiMLTextCtrl(CenterPrintText) { + profile = "CenterPrintTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "0 0"; + extent = "546 18"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new ShellFieldCtrl(bottomPrintDlg) { + profile = "GuiChatBackProfile"; + horizSizing = "center"; + vertSizing = "top"; + position = "45 375"; + extent = "550 56"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiMLTextCtrl(BottomPrintText) { + profile = "CenterPrintTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "0 0"; + extent = "546 36"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudZoom(ZoomHud) { + profile = "ZoomHudProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "8 8"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + }; + new ShellFieldCtrl(metricsMain) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "10 160"; + extent = "242 275"; + minExtent = "16 18"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(title) { + profile = "CenterPrintTextProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "63 7"; + extent = "110 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Mapper Metrics"; + longTextBuffer = "0"; + maxLength = "255"; + lineSpacing = "2"; + maxChars = "-1"; + allowColorChars = "0"; + }; + new GuiTextCtrl(ThreeSpacePolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 148"; + extent = "85 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "TS Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(InteriorPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 118"; + extent = "98 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Interior Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(TerrainPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 88"; + extent = "99 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Terrain Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(TotalPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 226"; + extent = "101 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Scene Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(WaterPolysText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 178"; + extent = "127 20"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Water Polys: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiTextCtrl(FrameRateText) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "12 40"; + extent = "87 26"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "Frame Rate: "; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiConsoleVariableCtrl(frameRate) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 40"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$FPS::Real"; + }; + new GuiConsoleVariableCtrl(ThreeSpacePolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 148"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount3"; + }; + new GuiConsoleVariableCtrl(InteriorPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 118"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount2"; + }; + new GuiConsoleVariableCtrl(TerrainPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 88"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount1"; + }; + new GuiConsoleVariableCtrl(TotalPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 226"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$OpenGL::triCount"; + }; + new GuiConsoleVariableCtrl(WaterPolys) { + profile = "ScoreTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "156 179"; + extent = "70 25"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + expression = "$Water::triCount"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new GuiControl(helpTextGui) { + profile = "GuiContentProfileNoClear"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "640 480"; + minExtent = "8 8"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(objHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "40 365"; + extent = "140 65"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(objHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "66 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "OBJECTIVES"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(objHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(objHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "160 425"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(chatHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "14 85"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(chatHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "31 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "CHAT"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(chatHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(chatHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "145 75"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(energyHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "320 75"; + extent = "145 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(energyHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "43 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "ENERGY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(energyHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(energyHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "450 35"; + extent = "5 45"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(compassHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "480 90"; + extent = "150 100"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(compassHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "55 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "COMPASS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(compassHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(compassHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "595 80"; + extent = "5 25"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "1"; + }; + new ShellFieldCtrl(damageHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "280 10"; + extent = "150 50"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(damageHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "48 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "DAMAGE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(damageHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "140 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(damageHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "425 15"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new GuiControl(reticleTextFrame) { + profile = "GuiHelpTextProfile"; + horizSizing = "center"; + vertSizing = "center"; + position = "120 90"; + extent = "400 300"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new ShellFieldCtrl(reticleHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "20 140"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + + new GuiTextCtrl(reticleHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "44 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "RETICLE"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(reticleHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(reticleHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "155 145"; + extent = "25 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellFieldCtrl(inventoryHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "420 340"; + extent = "140 85"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(inventoryHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "62 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "INVENTORY"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(inventoryHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "130 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(inventoryHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "490 420"; + extent = "5 20"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + new ShellFieldCtrl(weaponsHudBox) { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "460 240"; + extent = "140 70"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + + new GuiTextCtrl(weaponsHudHeader) { + profile = "GuiHelpHeaderProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 1"; + extent = "54 22"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "WEAPONS"; + longTextBuffer = "0"; + maxLength = "255"; + }; + new GuiMLTextCtrl(weaponsHudText) { + profile = "GuiHelpTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "4 15"; + extent = "135 16"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "1"; + allowColorChars = "0"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + new HudHelpTag(weaponsHudLine) { + profile = "GuiHelpLineProfile"; + horizSizing = "left"; + vertSizing = "top"; + position = "590 300"; + extent = "20 5"; + minExtent = "5 5"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1"; + flip = "0"; + }; + }; + new ShellPaneCtrl(siegeHalftimeHud) { + profile = "ShellPaneProfile"; + horizSizing = "relative"; + vertSizing = "height"; + position = "296 4"; + extent = "340 472"; + minExtent = "48 92"; + visible = "0"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + text = "HALFTIME"; + longTextBuffer = "0"; + maxLength = "255"; + noTitleBar = "0"; - profile = "GuiButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "444 8"; - extent = "188 81"; - minExtent = "8 8"; - visible = "1"; - frameColor = "0 1 0 1"; - opacity = "0.9"; - bitmap = "gui/hud_new_cog.png"; - - new HudBitmapCtrl(hudCompassBack) { - - profile = "GuiButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "109 2"; - extent = "77 77"; - minExtent = "8 8"; - visible = "1"; - frameColor = "0 1 0 1"; - opacity = "0.9"; - bitmap = "gui/hud_new_compass.png"; - }; - - new GuiControl( compassHud ) { - - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "107 2"; - extent = "81 77"; - minExtent = "8 8"; - visible = "1"; - opacity = "1.0"; + new ShellFieldCtrl() { + profile = "GuiChatBackProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "261 4"; + extent = "54 18"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - new HudCompass( compass ) { - - profile = "clockProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "0 0"; - extent = "100 100"; - minExtent = "8 8"; - visible = "1"; - opacity = "1.0"; - textColor = "0 255 0"; - }; - }; - - new HudPulsingBitmap( sensorHudBack ) - { - profile = "GuiButtonProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "134 26"; - extent = "27 29"; - minExtent = "8 8"; - visible = "1"; - frameColor = "0 1 0 1"; - opacity = "0.9"; - bitmap = "gui/hud_new_ping.png"; - pulse = false; - color = "3 255 110"; - }; + new HudClock(SiegeHalftimeClock) { + profile = "SiegeHalftimeClockProfile"; + horizSizing = "left"; + vertSizing = "bottom"; + position = "-6 -3"; + extent = "65 23"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + fillColor = "0.250000 0.250000 0.250000 0.250000"; + frameColor = "0.000000 1.000000 0.000000 1.000000"; + opacity = "1.0"; + bitmap = "gui/hud_mistimer.png"; + autoCenter = "0"; + autoResize = "0"; + flipVertical = "0"; + flipHorizontal = "0"; + subRegion = "0 2 65 15"; + }; + }; + new ShellFieldCtrl(SiegeHalftimeHeader) { + profile = "GuiChatBackProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "21 32"; + extent = "298 24"; + minExtent = "16 18"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + }; + new GuiMLTextCtrl(SiegeHalftimeHeaderText) { + profile = "DebriefHeadlineTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "25 35"; + extent = "290 18"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "1"; + maxChars = "255"; + deniedSound = "InputDeniedSound"; + }; + new ShellScrollCtrl(SiegeHalftimeScroll) { + profile = "NewScrollCtrlProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "18 130"; + extent = "304 323"; + minExtent = "24 24"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "dynamic"; + constantThumbHeight = "0"; + defaultLineHeight = "15"; + childMargin = "3 3"; + fieldBase = "gui/hud_new_window"; - new HudPulsingBitmap( sensorHud ) { - - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "134 26"; - extent = "27 29"; - minExtent = "8 8"; - visible = "1"; - opacity = "0.9"; - bitmap = "gui/hud_new_ping.png"; - pulse = true; - pulseRate = 1000; - visible = false; + new GuiScrollContentCtrl() { + profile = "GuiDefaultProfile"; + horizSizing = "width"; + vertSizing = "bottom"; + position = "7 7"; + extent = "290 309"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; - pingColor = "255 22 22"; - jamColor = "253 255 2"; - }; - - new HudEnergy( energyHud ) { - - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "8 23"; - extent = "93 5"; - minExtent = "93 5"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.353000 0.373000 0.933000 0.800000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.8"; - subRegion = "0 0 93 10"; - pulseRate = "500"; - pulseThreshold = "0.3"; - }; - - new HudDamage( damageHud ) { - - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "8 5"; - extent = "93 8"; - minExtent = "93 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.000 1.000 0.000 0.800000"; - frameColor = "0.000000 1.000000 0.000000 0.000000"; - opacity = "0.8"; - subRegion = "0 0 93 10"; - pulseRate = "500"; - pulseThreshold = "0.3"; - }; - - new HudHeat(HeatHud) { - - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "8 30"; - extent = "93 3"; - minExtent = "93 3"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "1.000 0.000 0.000 0.800000"; - opacity = "0.8"; - subRegion = "0 0 100 10"; - pulseRate = "500"; - pulseThreshold = "0.3"; - heatWarning = 0.7; //When does the heat bar flash on the player? - }; - }; - - new HudClock( clockHud ) { - profile = "clockProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "559 38"; - extent = "65 15"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - opacity = "0.9"; - bitmap = "gui/hud_mistimer.png"; - autoCenter = "0"; - autoResize = "0"; - subRegion = "0 2 65 15"; - }; - - new ShellFieldCtrl(NetGraphHudFrame) { - profile = "GuiChatBackProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "266 8"; - extent = "176 50"; - minExtent = "8 8"; - visible = "0"; - - new HudNetDisplay(NetGraphHud) { - profile = "HudScoreProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "1 1"; - extent = "174 48"; - minExtent = "8 8"; - visible = "1"; - }; - }; - - new GuiControl(NetBarHudFrame) { - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "290 0"; - extent = "129 68"; - minExtent = "8 8"; - visible = "0"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new HudNetDisplay(NetBarHud) { - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "bottom"; - position = "1 1"; - extent = "174 48"; - minExtent = "8 8"; - visible = "1"; - infoCallback = "1"; - renderGraph = false; - historySize = 2; - }; - - new ShellFieldCtrl() { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "6 27"; - extent = "120 18"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new HudBarBaseCtrl(NetBarHudSendBar) { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "120 18"; - minExtent = "120 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - fillColor = "0.000000 0.800000 0.000000 1.000000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.6"; - autoCenter = "0"; - autoResize = "0"; - flipVertical = "0"; - flipHorizontal = "0"; - subRegion = "2 2 116 15"; - displayMounted = "0"; - pulseRate = "500"; - pulseThreshold = "0.3"; - verticalFill = "0"; - }; - }; - new ShellFieldCtrl() { - profile = "ShellFieldProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "6 46"; - extent = "120 18"; - minExtent = "16 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - - new HudBarBaseCtrl(NetBarHudReceiveBar) { - profile = "GuiDefaultProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "120 18"; - minExtent = "120 18"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - fillColor = "0.000000 0.800000 0.000000 1.000000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.6"; - autoCenter = "0"; - autoResize = "0"; - flipVertical = "0"; - flipHorizontal = "0"; - subRegion = "2 2 116 15"; - displayMounted = "0"; - pulseRate = "500"; - pulseThreshold = "0.3"; - verticalFill = "0"; - }; - }; - new GuiTextCtrl(NetBarHudPingText) { - profile = "ShellTextProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "9 9"; - extent = "36 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "0ms"; - maxLength = "255"; - }; - new GuiTextCtrl(NetBarHudPacketLossText) { - profile = "ShellTextRightProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "76 9"; - extent = "48 22"; - minExtent = "8 8"; - visible = "1"; - hideCursor = "0"; - bypassHideCursor = "0"; - helpTag = "0"; - text = "0%"; - maxLength = "255"; - }; - }; - - new GuiControl(retCenterHud) { - profile = "GuiDefaultProfile"; - horizSizing = "center"; - vertSizing = "center"; - position = "192 112"; - extent = "256 256"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - wrap = "0"; - - new HudCrosshair(reticleHud) { - profile = "GuiButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "256 256"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.5"; - bitmap = "gui/ret_blaster.png"; - autoCenter = "1"; - autoResize = "1"; - }; - - new GuiTextCtrl(ammoHud) { - profile = "GuiAmmoHudProfile"; - horizSizing = "left"; - vertSizing = "top"; - position = "75 150"; - extent = "80 30"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - }; - - new HudPulsingBitmap(deploySensor) - { - profile = "GuiButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "94 94"; - extent = "67 67"; - minExtent = "8 8"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.5"; - bitmap = "gui/hud_ping.png"; - autoCenter = "1"; - autoResize = "1"; - pulse = "false"; - pulseRate = "1000"; - visible = false; - color = "0 0 0 0"; - }; - new HudCrosshair(reticleFrameHud) { - profile = "GuiButtonProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "94 94"; - extent = "67 67"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.5"; - bitmap = "gui/hud_retrng.png"; - autoCenter = "1"; - autoResize = "1"; - }; - }; - new HudInventory(inventoryHud) { - profile = "GuiHudCounterProfile"; - horizSizing = "left"; - vertSizing = "top"; - position = "486 434"; - extent = "115 39"; - minExtent = "8 8"; - visible = "1"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.9"; - ammoOffset = "6 24"; - backGroundOffset = "0 0"; - highLightOffset = "0 0"; - iconOffset = "1 1"; - backGroundSpace = "2"; - }; - - new GuiBitmapCtrl(backpackFrame) { - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "top"; - bitmap = "gui/hud_new_panel.png"; - position = "457 434"; - extent = "27 38"; - minExtent = "8 8"; - visible = "0"; - - new GuiBitmapCtrl(backpackIcon) { - profile = "GuiDefaultProfile"; - horizSizing = "left"; - vertSizing = "top"; - position = "0 3"; - extent = "25 25"; - minExtent = "8 8"; - visible = "1"; - }; - - new GuiTextCtrl(backpackText) { - profile = "GuiPackTextProfile"; - horizSizing = "left"; - vertSizing = "top"; - position = "1 24"; - extent = "25 15"; - minExtent = "8 8"; - visible = "0"; - }; - }; - - new HudWeapons(weaponsHud) { - profile = "GuiHudCounterProfile"; - horizSizing = "left"; - vertSizing = "top"; - position = "604 194"; - extent = "27 244"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.9"; - ammoOffset = "6 24"; - backGroundOffset = "0 0"; - highLightOffset = "0 0"; - iconOffset = "1 1"; - backGroundSpace = "2"; - }; - - new HudNavDisplay(navHud) { - profile = "GuiHudNavProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "640 480"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.5"; - autoCenter = "0"; - autoResize = "0"; - renderEdgeMarkers = "1"; - renderXYProjection = "0"; - markerHitRadius = "2"; - markerAngle = "30"; - markerLen = "20"; - defaultMarkerColor = "0 255 220 220"; - acquireScreenRadius = "75"; - playerEyeZOffset = "0.4"; - damageRectSize = "50 12"; - infoOffset = "24 24"; - acquireBoxCheckDistance = "50"; - damageFrameColor = "255 255 255 255"; - protectedStatics = false; - minMarkerScale = "0.5"; - markerScaleDistance = "1000"; - imageOffset = "2"; - markerImageNames[0] = "small_triangle"; // mission waypoint - markerImageNames[1] = "small_square"; // potential task - markerImageNames[2] = "small_diamond"; // assigned task - markerImageNames[3] = "small_cross"; // client waypoint - markerImageNames[4] = "small_circle"; // target - - missileMarker1 = "gui/RET_missile_marker"; - missileMarker2 = "gui/RET_missile_marker_red"; - missileFlash1 = "gui/RET_missile_horizflash_red"; - missileFlash2 = "gui/RET_missile_vertflash_red"; - - LOSMarkerUpdate = 250; // amount of time in ms that markers get LOS updates. Turn this down to get more updates or up to get less. - }; - - new GuiControl(dashboardHud) { - profile = "GuiDefaultProfile"; - horizSizing = "center"; - vertSizing = "top"; - position = "0 360"; - extent = "640 120"; - minExtent = "8 8"; - visible = "0"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - wrap = "0"; - new HudVehicleWeapon(vWeaponsBox) { - profile = "GuiButtonProfile"; - horizSizing = "right"; - vertSizing = "top"; - //position = "225 30"; - position = "180 25"; - extent = "70 40"; - minExtent = "8 8"; - visible = "1"; - setFirstResponder = "0"; - modal = "1"; - helpTag = "0"; - fillColor = "0.250000 0.250000 0.250000 0.250000"; - frameColor = "0.000000 1.000000 0.000000 1.000000"; - opacity = "0.8"; - ammoOffset = "10 30"; - backGroundOffset = "5 4"; - highLightOffset = "0 0"; - iconOffset = "7 4"; - backGroundSpace = "8"; - }; - }; - - new ShellFieldCtrl(voiceCommHud) - { - profile = "GuiChatBackProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "8 110"; - extent = "160 70"; - minExtent = "8 8"; - visible = "0"; - - new GuiTextCtrl(vcRecordingHud) - { - profile = "GuiRecordingHudProfile"; - position = "0 0"; - extent = "160 16"; - text = "Recording"; - visible = false; - horizSizing = "center"; - vertSizing = "top"; - }; - }; - - new GuiTextCtrl(controlObjectText) - { - profile = "ShellBigTextProfile"; - position = "0 440"; - extent = "640 40"; - text = "Press '\c2Escape\cr' to return to game."; - visible = false; - horizSizing = "center"; - vertSizing = "top"; - }; - - new ShellFieldCtrl(CenterPrintDlg) - { - profile = "GuiChatBackProfile"; - horizSizing = "center"; - vertSizing = "center"; - position = "45 200"; - extent = "550 20"; - minExtent = "8 8"; - visible = "0"; - setFirstResponder = "0"; - - new GuiMLTextCtrl(CenterPrintText) { - profile = "CenterPrintTextProfile"; - horizSizing = "center"; - vertSizing = "center"; - position = "0 0"; - extent = "546 20"; - minExtent = "8 8"; - visible = "1"; - helpTag = "0"; - lineSpacing = "2"; - }; - }; - - new ShellFieldCtrl(BottomPrintDlg) - { - profile = "GuiChatBackProfile"; - horizSizing = "center"; - vertSizing = "top"; - position = "45 375"; - extent = "550 20"; - minExtent = "8 8"; - visible = "0"; - setFirstResponder = "0"; - - new GuiMLTextCtrl(BottomPrintText) { - profile = "CenterPrintTextProfile"; - horizSizing = "center"; - vertSizing = "center"; - position = "0 0"; - extent = "546 20"; - minExtent = "8 8"; - visible = "1"; - helpTag = "0"; - lineSpacing = "2"; - }; - }; - - new HudZoom(ZoomHud) - { - profile = "ZoomHudProfile"; - bitmap = ""; - position = "0 0"; - extent = "0 0"; - minExtent = "8 8"; - visible = "0"; - }; + new GuiMLTextCtrl(SiegeHalftimeText) { + profile = "DebriefTextProfile"; + horizSizing = "width"; + vertSizing = "height"; + position = "0 0"; + extent = "274 18"; + minExtent = "8 8"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + helpTag = "0"; + lineSpacing = "2"; + allowColorChars = "1"; + maxChars = "-1"; + deniedSound = "InputDeniedSound"; + }; + }; + }; + }; }; //--- OBJECT WRITE END --- diff --git a/base/gui/RecordingsDlg.gui b/base/gui/RecordingsDlg.gui index 4b0cb97..255a8df 100644 --- a/base/gui/RecordingsDlg.gui +++ b/base/gui/RecordingsDlg.gui @@ -7,72 +7,82 @@ new GuiControl(RecordingsDlg) { extent = "640 480"; minExtent = "8 8"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; new ShellPaneCtrl() { profile = "ShellDlgPaneProfile"; horizSizing = "center"; vertSizing = "center"; - position = "120 60"; - extent = "400 360"; + position = "60 61"; + extent = "530 360"; minExtent = "48 92"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; text = "SELECT RECORDING"; + longTextBuffer = "0"; + maxLength = "255"; noTitleBar = "0"; - new ShellScrollCtrl() { + new ShellFancyArrayScrollCtrl() { profile = "NewScrollCtrlProfile"; horizSizing = "center"; vertSizing = "height"; - position = "91 36"; - extent = "218 266"; - minExtent = "24 52"; + position = "23 37"; + extent = "484 266"; + minExtent = "32 32"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "dynamic"; - constantThumbHeight = "1"; - defaultLineHeight = "15"; - childMargin = "0 0"; - fieldBase = "gui/shll_field"; + fixedHorizontal = "1"; + vertSpacerBitmap = "gui/shll_vertspacer"; + horzSpacerBitmap = "gui/shll_horzspacer"; - new GuiScrollContentCtrl() { - profile = "GuiDefaultProfile"; + new ShellFancyTextList(RecordingsDlgList) { + profile = "ShellServerBrowserProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "4 4"; - extent = "210 258"; - minExtent = "8 8"; + position = "0 0"; + extent = "464 262"; + minExtent = "8 20"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; helpTag = "0"; - - new ShellTextList(RecordingsDlgList) { - profile = "ShellTextArrayProfile"; - horizSizing = "right"; - vertSizing = "bottom"; - position = "0 0"; - extent = "210 8"; - minExtent = "8 8"; - visible = "1"; - helpTag = "0"; - enumerate = "1"; - resizeCell = "1"; - columns = "0"; - fitParentWidth = "1"; - clipColumnText = "0"; - }; + startScrollRegion = "3 0"; + headerBitmap = "gui/server_tabs"; + sortArrowBitmap = "gui/shll_sortarrow"; + fieldBase = "gui/shll_field"; + barBase = "gui/shll_bar"; + glowOffset = "4"; + rowHeight = "19"; + headerFontType = "Univers Condensed"; + headerFontSize = "16"; + headerFontColor = "8 19 6 255"; + headerFontColorHL = "25 68 56 255"; + separatorColor = "192 192 192 255"; + drawSeparators = "0"; + headerSort = "1"; + allowReposition = "1"; + noSelect = "0"; + allowColorChars = "1"; + altCommand = "startSelectedDemo();"; }; }; new ShellBitmapButton(PR_CancelBtn) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "top"; - position = "48 305"; + position = "386 304"; extent = "128 38"; minExtent = "32 38"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; command = "Canvas.popDialog(RecordingsDlg);"; accelerator = "escape"; helpTag = "0"; @@ -83,13 +93,45 @@ new GuiControl(RecordingsDlg) { profile = "ShellButtonProfile"; horizSizing = "right"; vertSizing = "top"; - position = "224 305"; + position = "16 304"; extent = "128 38"; minExtent = "32 38"; visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; command = "StartSelectedDemo();"; helpTag = "0"; - text = "START DEMO"; + text = "PLAY"; + simpleStyle = "0"; + }; + new ShellBitmapButton(PR_DeleteDemoBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "134 304"; + extent = "128 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "DeleteSelectedDemo();"; + helpTag = "0"; + text = "DELETE"; + simpleStyle = "0"; + }; + new ShellBitmapButton(PR_RenameDemoBtn) { + profile = "ShellButtonProfile"; + horizSizing = "right"; + vertSizing = "top"; + position = "252 304"; + extent = "128 38"; + minExtent = "32 38"; + visible = "1"; + hideCursor = "0"; + bypassHideCursor = "0"; + command = "RenameSelectedDemo();"; + helpTag = "0"; + text = "RENAME"; simpleStyle = "0"; }; }; diff --git a/base/gui/ShellLoadFileDlg.gui b/base/gui/ShellLoadFileDlg.gui index 4dd5627..7fbde8f 100644 --- a/base/gui/ShellLoadFileDlg.gui +++ b/base/gui/ShellLoadFileDlg.gui @@ -56,7 +56,7 @@ new GuiControl(ShellLoadFileDlg) { extent = "268 8"; minExtent = "8 8"; visible = "1"; - altCommand = "eval($loadFileCommand); Canvas.popDialog(ShellLoadFileDlg);"; + altCommand = "Canvas.popDialog(ShellLoadFileDlg);"; helpTag = "0"; enumerate = "0"; resizeCell = "1"; @@ -88,7 +88,7 @@ new GuiControl(ShellLoadFileDlg) { extent = "128 38"; minExtent = "32 38"; visible = "1"; - command = "eval($loadFileCommand); Canvas.popDialog(ShellLoadFileDlg);"; + command = "Canvas.popDialog(ShellLoadFileDlg);"; helpTag = "0"; text = "LOAD"; simpleStyle = "0"; diff --git a/base/gui/ShellSaveFileDlg.gui b/base/gui/ShellSaveFileDlg.gui index 4d53647..ba926b5 100644 --- a/base/gui/ShellSaveFileDlg.gui +++ b/base/gui/ShellSaveFileDlg.gui @@ -41,7 +41,7 @@ new GuiControl(ShellSaveFileDlg) { minExtent = "32 38"; visible = "1"; command = "SAVE_FileName.checkValid();"; - altCommand = "eval($saveFileCommand); Canvas.popDialog(ShellSaveFileDlg);"; + altCommand = "Canvas.popDialog(ShellSaveFileDlg);"; helpTag = "0"; historySize = "0"; maxLength = "32"; @@ -70,7 +70,7 @@ new GuiControl(ShellSaveFileDlg) { extent = "128 38"; minExtent = "32 38"; visible = "1"; - command = "eval($saveFileCommand); Canvas.popDialog(ShellSaveFileDlg);"; + command = "Canvas.popDialog(ShellSaveFileDlg);"; helpTag = "0"; text = "SAVE"; simpleStyle = "0"; diff --git a/base/gui/TerraformerHeightfieldGui.gui b/base/gui/TerraformerHeightfieldGui.gui index 0a6d825..6bc92da 100644 --- a/base/gui/TerraformerHeightfieldGui.gui +++ b/base/gui/TerraformerHeightfieldGui.gui @@ -2250,18 +2250,18 @@ function Heightfield::resetTabs() tab_terrainFile.reset(); tab_fbm.reset(); tab_rmf.reset(); - tab_canyon.reset(); - tab_smooth.reset(); - tab_smoothWater.reset(); - tab_smoothRidge.reset(); - tab_filter.reset(); - tab_turbulence.reset(); - tab_thermal.reset(); - tab_hydraulic.reset(); - tab_general.reset(); - tab_bitmap.reset(); +// tab_canyon.reset(); +// tab_smooth.reset(); +// tab_smoothWater.reset(); +// tab_smoothRidge.reset(); +// tab_filter.reset(); +// tab_turbulence.reset(); +// tab_thermal.reset(); +// tab_hydraulic.reset(); +// tab_general.reset(); +// tab_bitmap.reset(); tab_blend.reset(); - tab_sinus.reset(); +// tab_sinus.reset(); } //-------------------------------------- diff --git a/base/gui/TerraformerTextureGui.gui b/base/gui/TerraformerTextureGui.gui index 229b941..091dd5f 100644 --- a/base/gui/TerraformerTextureGui.gui +++ b/base/gui/TerraformerTextureGui.gui @@ -706,6 +706,76 @@ new GuiControl(TerraformerTextureGui) { text = "Use Fractal Distortion"; }; }; + new GuiControl(tab_ShorelineMask) { + profile = "GuiDefaultProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "0 0"; + extent = "261 200"; + minExtent = "8 8"; + visible = "0"; + setFirstResponder = "1"; + modal = "1"; + helpTag = "0"; + + new GuiTextCtrl() { + profile = "GuiTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "4 1"; + extent = "131 18"; + minExtent = "8 8"; + visible = "1"; + setFirstResponder = "1"; + modal = "1"; + helpTag = "0"; + text = "Shoreline Mask Settings:"; + }; + new GuiTextCtrl() { + profile = "GuiTextProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "20 46"; + extent = "10 18"; + minExtent = "8 8"; + visible = "1"; + setFirstResponder = "1"; + modal = "1"; + helpTag = "0"; + text = "Tolerance (meters):"; + }; + new GuiTextEditSliderCtrl(shorelineTolerance) { + profile = "GuiTextEditProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "168 46"; + extent = "78 18"; + minExtent = "8 8"; + visible = "1"; + setFirstResponder = "1"; + modal = "1"; + helpTag = "0"; + historySize = "0"; + maxLength = "255"; + format = "%3.1f"; + range = "0 100"; + increment = "1.0"; + }; + new GuiCheckBoxCtrl(shorelineDistort) { + profile = "GuiCheckBoxProfile"; + horizSizing = "right"; + vertSizing = "bottom"; + position = "63 165"; + extent = "129 20"; + minExtent = "8 8"; + visible = "1"; + setFirstResponder = "1"; + modal = "1"; + command = "Texture::saveOperation();Texture::previewOperation();"; + helpTag = "0"; + text = "Use Fractal Distortion"; + }; + }; }; }; }; @@ -1183,6 +1253,7 @@ function TerraformerTextureGui::init(%this) Texture_operation_menu.add("Place by Height", 2); Texture_operation_menu.add("Place by Slope", 3); Texture_operation_menu.add("Place by Water Level", 4); + Texture_operation_menu.add("Place by Shoreline", 5); %this.refresh(); } @@ -1300,6 +1371,9 @@ function Texture_operation_menu::onSelect(%this, %id, %text) case "Place by Water Level": %id = Texture::addOperation("Place by Water Level\ttab_WaterMask\t" @ $nextTextureRegister++ @ "\t" @ %dreg @ "\twaterDistort\ttrue"); + + case "Place by Shoreline": + %id = Texture::addOperation("Place by Shoreline\ttab_ShorelineMask\t" @ $nextTextureRegister++ @ "\t" @ %dreg @ "\tshorelineTolerance\t10\tshorelineDistort\ttrue"); } // select it @@ -1483,7 +1557,6 @@ function Texture::evalOperationData(%data, %row) return; } - myecho("label = " @ %label); switch$ (%label) { case "Fractal Distortion": @@ -1500,6 +1573,9 @@ function Texture::evalOperationData(%data, %row) case "Place by Water Level": terraformer.maskWater( $HeightfieldSrcRegister, %reg, getField(%data,5), %dreg ); + + case "Place by Shoreline": + terraformer.maskShoreline( $HeightfieldSrcRegister, %reg, getField(%data,5), getField(%data, 7), %dreg ); } @@ -1763,6 +1839,7 @@ function Texture::hideTab() tab_HeightMask.setVisible(false); tab_SlopeMask.setVisible(false); tab_waterMask.setVisible(false); + tab_shorelineMask.setVisible(false); } diff --git a/base/gui/TerrainEditorButtonbarDlg.gui b/base/gui/TerrainEditorButtonbarDlg.gui index dc0a86e..acf3f71 100644 --- a/base/gui/TerrainEditorButtonbarDlg.gui +++ b/base/gui/TerrainEditorButtonbarDlg.gui @@ -363,10 +363,6 @@ new GuiControl(terraineditorbuttonbardlg) { function TerrainEditorButtonBarDlg::init(%this) { - // set the default - TerrainActionsMenu.setText(tEditor.getActionName(0)); - for(%i = 0; %i < tEditor.getNumActions(); %i++) - TerrainActionsMenu.add(tEditor.getActionName(%i), %i); } //------------------------------------------------------------------------------ diff --git a/base/gui/TerrainEditorStatusbarDlg.gui b/base/gui/TerrainEditorStatusbarDlg.gui index e769bd9..fc02f9a 100644 --- a/base/gui/TerrainEditorStatusbarDlg.gui +++ b/base/gui/TerrainEditorStatusbarDlg.gui @@ -57,8 +57,8 @@ new GuiControl(TerrainEditorStatusbarDlg) { function TerrainEditorStatusbarDlg::init(%this) { - MouseBrushInfo.setValue("Mouse Brush Info"); - SelectionInfo.setValue("Selection Info"); + TEMouseBrushInfo.setValue("Mouse Brush Info"); + TESelectionInfo.setValue("Selection Info"); } function TerrainEditorStatusbarDlg::update(%this, %info) diff --git a/base/gui/WarriorPropertiesDlg.gui b/base/gui/WarriorPropertiesDlg.gui index 87968c5..0ef9cc2 100644 --- a/base/gui/WarriorPropertiesDlg.gui +++ b/base/gui/WarriorPropertiesDlg.gui @@ -181,6 +181,7 @@ new GuiChunkedBitmapCtrl(WarriorPropertiesDlg) { historySize = "0"; password = "0"; glowOffset = "9 9"; + IRCName = true; }; new GuiTextCtrl(wp_currentname) { profile = "BrowserProgressProfile"; diff --git a/base/gui/guiProfiles.cs b/base/gui/guiProfiles.cs index 096d00e..0005f7e 100644 --- a/base/gui/guiProfiles.cs +++ b/base/gui/guiProfiles.cs @@ -94,7 +94,14 @@ new GuiControlProfile ("clockProfile") { fontType = "Univers Condensed"; fontSize = 12; - fontColor = "0 255 0"; + fontColor = "255 255 255"; +}; + +new GuiControlProfile ("SiegeHalftimeClockProfile") +{ + fontType = "Univers Condensed"; + fontSize = 18; + fontColor = "255 255 255"; }; new GuiControlProfile ("GuiContentProfileNoClear") @@ -1538,6 +1545,17 @@ new GuiControlProfile( "DlgBackProfile" ) fillColor = "0 0 0 160"; }; +new GuiControlProfile( "MotdCProfile" ) +{ + justify = "center"; + opaque = true; + autoSizeWidth = true; + fillColor = "0 0 0 160"; + fontType = "Univers Condensed"; + fontSize = 14; + fontColor = "000 219 234"; +}; + new GuiControlProfile( "GuiInputCtrlProfile" ) { tab = true; diff --git a/base/input.log b/base/input.log deleted file mode 100644 index c52a935..0000000 --- a/base/input.log +++ /dev/null @@ -1,441 +0,0 @@ -Input log opened at Tue Jul 3 14:37:21 2001 - -Operating System: - WinNT version 5.0 - Build number 2195 - Service Pack 1 - -Enabling DirectInput... -DirectX 3 detected. -Enumerating input devices... -Keyboard detected, created as keyboard0 (asynchronous). - 128 total objects detected. - 128 keys. - -Mouse detected, created as mouse0 (asynchronous). - 6 total objects detected. - 3 buttons. - 1 x-axis. - 1 y-axis. - 1 z-axis. - ---- Filling the ASCII table! --- -KC: 0X09 DK: 0X01 VK: 0X1B - LOWER- R: 1 A[0]: 0X001B A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X001B A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0A DK: 0X39 VK: 0X20 - LOWER- R: 1 A[0]: 0X0020 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0020 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0B DK: 0XD1 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0C DK: 0XC9 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0D DK: 0XCF VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0E DK: 0XC7 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X0F DK: 0XCB VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X10 DK: 0XC8 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X11 DK: 0XCD VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X12 DK: 0XD0 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X13 DK: 0XB7 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X14 DK: 0XD2 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X15 DK: 0XD3 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X17 DK: 0X0B VK: 0X30 - LOWER- R: 1 A[0]: 0X0030 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0029 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X18 DK: 0X02 VK: 0X31 - LOWER- R: 1 A[0]: 0X0031 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0021 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X19 DK: 0X03 VK: 0X32 - LOWER- R: 1 A[0]: 0X0032 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0040 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1A DK: 0X04 VK: 0X33 - LOWER- R: 1 A[0]: 0X0033 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0023 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1B DK: 0X05 VK: 0X34 - LOWER- R: 1 A[0]: 0X0034 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0024 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1C DK: 0X06 VK: 0X35 - LOWER- R: 1 A[0]: 0X0035 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0025 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1D DK: 0X07 VK: 0X36 - LOWER- R: 1 A[0]: 0X0036 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X005E A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1E DK: 0X08 VK: 0X37 - LOWER- R: 1 A[0]: 0X0037 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0026 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X1F DK: 0X09 VK: 0X38 - LOWER- R: 1 A[0]: 0X0038 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X002A A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X20 DK: 0X0A VK: 0X39 - LOWER- R: 1 A[0]: 0X0039 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0028 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X21 DK: 0X1E VK: 0X41 - LOWER- R: 1 A[0]: 0X0061 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0041 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X22 DK: 0X30 VK: 0X42 - LOWER- R: 1 A[0]: 0X0062 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0042 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X23 DK: 0X2E VK: 0X43 - LOWER- R: 1 A[0]: 0X0063 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0043 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X24 DK: 0X20 VK: 0X44 - LOWER- R: 1 A[0]: 0X0064 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0044 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X25 DK: 0X12 VK: 0X45 - LOWER- R: 1 A[0]: 0X0065 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0045 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X26 DK: 0X21 VK: 0X46 - LOWER- R: 1 A[0]: 0X0066 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0046 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X27 DK: 0X22 VK: 0X47 - LOWER- R: 1 A[0]: 0X0067 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0047 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X28 DK: 0X23 VK: 0X48 - LOWER- R: 1 A[0]: 0X0068 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0048 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X29 DK: 0X17 VK: 0X49 - LOWER- R: 1 A[0]: 0X0069 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0049 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2A DK: 0X24 VK: 0X4A - LOWER- R: 1 A[0]: 0X006A A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004A A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2B DK: 0X25 VK: 0X4B - LOWER- R: 1 A[0]: 0X006B A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004B A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2C DK: 0X26 VK: 0X4C - LOWER- R: 1 A[0]: 0X006C A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004C A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2D DK: 0X32 VK: 0X4D - LOWER- R: 1 A[0]: 0X006D A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004D A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2E DK: 0X31 VK: 0X4E - LOWER- R: 1 A[0]: 0X006E A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004E A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X2F DK: 0X18 VK: 0X4F - LOWER- R: 1 A[0]: 0X006F A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X004F A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X30 DK: 0X19 VK: 0X50 - LOWER- R: 1 A[0]: 0X0070 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0050 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X31 DK: 0X10 VK: 0X51 - LOWER- R: 1 A[0]: 0X0071 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0051 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X32 DK: 0X13 VK: 0X52 - LOWER- R: 1 A[0]: 0X0072 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0052 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X33 DK: 0X1F VK: 0X53 - LOWER- R: 1 A[0]: 0X0073 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0053 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X34 DK: 0X14 VK: 0X54 - LOWER- R: 1 A[0]: 0X0074 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0054 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X35 DK: 0X16 VK: 0X55 - LOWER- R: 1 A[0]: 0X0075 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0055 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X36 DK: 0X2F VK: 0X56 - LOWER- R: 1 A[0]: 0X0076 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0056 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X37 DK: 0X11 VK: 0X57 - LOWER- R: 1 A[0]: 0X0077 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0057 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X38 DK: 0X2D VK: 0X58 - LOWER- R: 1 A[0]: 0X0078 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0058 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X39 DK: 0X15 VK: 0X59 - LOWER- R: 1 A[0]: 0X0079 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0059 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3A DK: 0X2C VK: 0X5A - LOWER- R: 1 A[0]: 0X007A A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X005A A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3B DK: 0X29 VK: 0XC0 - LOWER- R: 1 A[0]: 0X0060 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X007E A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3C DK: 0X0C VK: 0XBD - LOWER- R: 1 A[0]: 0X002D A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X005F A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3D DK: 0X0D VK: 0XBB - LOWER- R: 1 A[0]: 0X003D A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X002B A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3E DK: 0X1A VK: 0XDB - LOWER- R: 1 A[0]: 0X005B A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X007B A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X3F DK: 0X1B VK: 0XDD - LOWER- R: 1 A[0]: 0X005D A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X007D A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X40 DK: 0X2B VK: 0XDC - LOWER- R: 1 A[0]: 0X005C A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X007C A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X41 DK: 0X27 VK: 0XBA - LOWER- R: 1 A[0]: 0X003B A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X003A A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X42 DK: 0X28 VK: 0XDE - LOWER- R: 1 A[0]: 0X0027 A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X0022 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X43 DK: 0X33 VK: 0XBC - LOWER- R: 1 A[0]: 0X002C A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X003C A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X44 DK: 0X34 VK: 0XBE - LOWER- R: 1 A[0]: 0X002E A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X003E A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X45 DK: 0X35 VK: 0XBF - LOWER- R: 1 A[0]: 0X002F A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X003F A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X46 DK: 0X52 VK: 0X2D - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X47 DK: 0X4F VK: 0X23 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X48 DK: 0X50 VK: 0X28 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X49 DK: 0X51 VK: 0X22 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4A DK: 0X4B VK: 0X25 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4B DK: 0X4C VK: 0X0C - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4C DK: 0X4D VK: 0X27 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4D DK: 0X47 VK: 0X24 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4E DK: 0X48 VK: 0X26 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X4F DK: 0X49 VK: 0X21 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X50 DK: 0X37 VK: 0X6A - LOWER- R: 1 A[0]: 0X002A A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X002A A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X51 DK: 0X4E VK: 0X6B - LOWER- R: 1 A[0]: 0X002B A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X002B A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X52 DK: 0XB3 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X53 DK: 0X4A VK: 0X6D - LOWER- R: 1 A[0]: 0X002D A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X002D A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X54 DK: 0X53 VK: 0X2E - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X55 DK: 0XB5 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X56 DK: 0X9C VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X57 DK: 0X3B VK: 0X70 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X58 DK: 0X3C VK: 0X71 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X59 DK: 0X3D VK: 0X72 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5A DK: 0X3E VK: 0X73 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5B DK: 0X3F VK: 0X74 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5C DK: 0X40 VK: 0X75 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5D DK: 0X41 VK: 0X76 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5E DK: 0X42 VK: 0X77 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X5F DK: 0X43 VK: 0X78 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X60 DK: 0X44 VK: 0X79 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X61 DK: 0X57 VK: 0X7A - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X62 DK: 0X58 VK: 0X7B - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X63 DK: 0X64 VK: 0X7C - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X64 DK: 0X65 VK: 0X7D - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X65 DK: 0X66 VK: 0X7E - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X6F DK: 0X45 VK: 0X90 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X70 DK: 0X46 VK: 0X91 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X71 DK: 0X1D VK: 0X11 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X72 DK: 0X9D VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X73 DK: 0X38 VK: 0X12 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X74 DK: 0XB8 VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X75 DK: 0X2A VK: 0X10 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X76 DK: 0X36 VK: 0X10 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X77 DK: 0XDB VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X78 DK: 0XDC VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X79 DK: 0XDD VK: 0X00 - LOWER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - UPPER- R: 0 A[0]: 0X0000 A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 -KC: 0X80 DK: 0X56 VK: 0XE2 - LOWER- R: 1 A[0]: 0X005C A[1]: 0X0000 - UPPER- R: 1 A[0]: 0X007C A[1]: 0X0000 - GOOFY- R: 0 A[0]: 0X0000 A[1]: 0X0000 ---- Finished filling the ASCII table! --- - -*** CLOSING LOG *** diff --git a/base/missions/Abominable.mis b/base/missions/Abominable.mis index 29e6441..d3a60e3 100644 --- a/base/missions/Abominable.mis +++ b/base/missions/Abominable.mis @@ -1560,6 +1560,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_Pulse_2"; locked = "true"; team = "0"; + audioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop1) { position = "120.531 595.532 58.8337"; @@ -1778,6 +1779,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_Pulse_2"; locked = "true"; team = "0"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "-387.637 -689.558 218.178"; diff --git a/base/missions/AgentsOfFortune.mis b/base/missions/AgentsOfFortune.mis index b058874..0dc1700 100644 --- a/base/missions/AgentsOfFortune.mis +++ b/base/missions/AgentsOfFortune.mis @@ -458,6 +458,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + audioEnvironment = BigRoom; }; new InteriorInstance() { position = "-61.9873 145.333 208.013"; @@ -467,6 +468,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + audioEnvironment = SmallRoom; }; new InteriorInstance() { position = "203.206 303.487 247.408"; @@ -476,6 +478,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team1StationInventory1) { position = "203.105 290.287 236.41"; @@ -595,6 +598,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item(Nexus) { position = "130.989 125.937 160.988"; diff --git a/base/missions/Alcatraz.mis b/base/missions/Alcatraz.mis index e8da3f1..5329dff 100644 --- a/base/missions/Alcatraz.mis +++ b/base/missions/Alcatraz.mis @@ -35,11 +35,15 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "400"; + high_visibleDistance = "450"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.365000 0.390000 0.420000 0.000000"; fogDistance = "130"; + high_fogDistance = "200"; fogColor = "0.450000 0.500000 0.500000 1.000000"; + high_fogVolume1 = "50 0 245"; + high_fogVolume2 = "75 245 258"; fogVolume1 = "40 0 258"; fogVolume2 = "0 0 0"; fogVolume3 = "0 0 0"; @@ -97,6 +101,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.15"; removeWetEdges = "0"; locked = "true"; + audioEnvironment = Underwater; }; new AudioEmitter() { position = "788.243 -120.742 93.2821"; @@ -373,6 +378,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new TSStatic(Plug) { position = "66.0336 -62.8706 290.539"; diff --git a/base/missions/Archipelago.mis b/base/missions/Archipelago.mis index 30ac251..306dc3a 100644 --- a/base/missions/Archipelago.mis +++ b/base/missions/Archipelago.mis @@ -75,6 +75,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.2"; removeWetEdges = "0"; locked = "true"; + audioEnvironment = Underwater; }; new Sky(Sky) { position = "-536 -1240 0"; @@ -204,6 +205,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new StaticShape() { position = "-193.171 662.696 218.64"; @@ -235,6 +237,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item() { position = "-66.4878 624.459 228.436"; @@ -292,6 +295,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "-448.098 544.367 232.716"; @@ -327,6 +331,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item() { position = "287.049 623.05 196.942"; @@ -509,6 +514,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "-278.446 -448.882 260.269"; @@ -557,6 +563,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "352.306 -411.627 257.31"; @@ -617,6 +624,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new InteriorInstance() { position = "-12 -323 203.12"; @@ -690,6 +698,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "152.547 -458.643 164.3"; diff --git a/base/missions/AshesToAshes.mis b/base/missions/AshesToAshes.mis index df3b39c..99718f2 100644 --- a/base/missions/AshesToAshes.mis +++ b/base/missions/AshesToAshes.mis @@ -290,6 +290,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "394.92 -660.453 183.097"; @@ -413,6 +414,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; locked = "true"; + audioEnvironment = BigRoom; }; new StaticShape() { position = "129.01 -257.276 246.325"; @@ -543,6 +545,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "-198.981 103.15 179.64"; diff --git a/base/missions/BeggarsRun.mis b/base/missions/BeggarsRun.mis index 994273f..b798df0 100644 --- a/base/missions/BeggarsRun.mis +++ b/base/missions/BeggarsRun.mis @@ -149,6 +149,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk1.dif"; showTerrainInside = "0"; team = "1"; + audioEnvironment = SmallRoom; }; new InteriorInstance() { position = "364.62 325.1 110.527"; @@ -308,6 +309,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "1"; Hidden = "false"; + audioEnvironment = SmallRoom; }; }; new SimGroup(spawnspheres) { diff --git a/base/missions/Caldera.mis b/base/missions/Caldera.mis index 4f42907..99992a3 100644 --- a/base/missions/Caldera.mis +++ b/base/missions/Caldera.mis @@ -441,6 +441,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + AudioEnvironment = BigRoom; }; }; new StaticShape(Inv5) { diff --git a/base/missions/Casern_Cavite.mis b/base/missions/Casern_Cavite.mis index 6a3b693..fef14d9 100644 --- a/base/missions/Casern_Cavite.mis +++ b/base/missions/Casern_Cavite.mis @@ -616,6 +616,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new InteriorInstance() { position = "-104 96 52.7925"; diff --git a/base/missions/Damnation.mis b/base/missions/Damnation.mis index a7f3364..6c053b3 100644 --- a/base/missions/Damnation.mis +++ b/base/missions/Damnation.mis @@ -261,6 +261,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new InteriorInstance() { position = "-313.981 363.606 86.674"; @@ -288,6 +289,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "-196.748 158.992 172.52"; @@ -308,6 +310,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item() { position = "-420.82 396.034 160.568"; @@ -515,6 +518,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new InteriorInstance() { position = "306.892 -17.224 86.6738"; @@ -542,6 +546,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "208.101 187.045 171.71"; @@ -562,6 +567,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item() { position = "431.93 -49.3341 159.168"; @@ -617,6 +623,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.7"; removeWetEdges = "1"; locked = "true"; + audioEnvironment = Underwater; }; new SimGroup(RandomOrganics) { diff --git a/base/missions/DeathBirdsFly.mis b/base/missions/DeathBirdsFly.mis index d6901fd..385c205 100644 --- a/base/missions/DeathBirdsFly.mis +++ b/base/missions/DeathBirdsFly.mis @@ -34,14 +34,19 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "600"; + high_visibleDistance = "700"; useSkyTextures = "0"; renderBottomTexture = "0"; SkySolidColor = "0.500000 0.500000 0.630000 0.000000"; fogDistance = "400"; + high_fogDistance = "675"; fogColor = "0.600000 0.500000 0.430000 1.000000"; fogVolume1 = "100 0 53"; fogVolume2 = "300 53 58"; fogVolume3 = "1000 58 200"; + high_fogVolume1 = "200 0 53"; + high_fogVolume2 = "500 53 58"; + high_fogVolume3 = "1500 58 200"; materialList = "sky_desert_brown.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -220,6 +225,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new StaticShape() { position = "-506.612 646.525 119.97"; @@ -291,6 +297,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new WayPoint() { position = "224.29 207.998 103.266"; @@ -481,6 +488,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new StaticShape(Team2generatorLarge1) { position = "514.059 -556.669 74.9267"; @@ -576,6 +584,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-347.162 -308.107 65.4496"; diff --git a/base/missions/Desiccator.mis b/base/missions/Desiccator.mis index ae050f7..cdb767e 100644 --- a/base/missions/Desiccator.mis +++ b/base/missions/Desiccator.mis @@ -604,10 +604,12 @@ new SimGroup(MissionGroup) { useSkyTextures = "0"; SkySolidColor = "0.700000 0.600000 0.600000 1.000000"; fogDistance = "200"; + high_fogDistance = "1"; fogColor = "0.800000 0.600000 0.400000 1.000000"; fogVolume1 = "150 0 500"; fogVolume2 = "0 0 0"; fogVolume3 = "0 0 0"; + high_fogVolume1 = "0 0 0"; materialList = "sky_desert_blue.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -670,6 +672,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item(Team1flag1) { position = "-268.079 -26.5093 163.709"; @@ -759,6 +762,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team1SensorLargePulse1) { position = "-331.22 -140.381 200.314"; @@ -840,6 +844,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new SimGroup(ForcefieldE) { @@ -950,6 +955,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team2StationInventory1) { position = "690.544 79.3884 143.29"; @@ -970,6 +976,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "687.395 85.1503 163.213"; @@ -1094,6 +1101,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team2generatorLarge2) { position = "629.774 -231.537 160.12"; diff --git a/base/missions/DustToDust.mis b/base/missions/DustToDust.mis index cbd0ada..2af5971 100644 --- a/base/missions/DustToDust.mis +++ b/base/missions/DustToDust.mis @@ -39,9 +39,11 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "550"; + high_visibleDistance = "800"; useSkyTextures = "1"; SkySolidColor = "0.390000 0.390000 0.390000 0.000000"; fogDistance = "150"; + high_fogDistance = "200"; fogColor = "0.800000 0.700000 0.500000 1.000000"; fogVolume1 = "0 0 0"; fogVolume2 = "0 0 0"; @@ -883,6 +885,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item(Team1flag1) { position = "-38.2426 -191.302 221.824"; @@ -1194,6 +1197,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item(Team2flag1) { position = "111.245 444.67 221.86"; @@ -1522,6 +1526,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk1.dif"; showTerrainInside = "0"; locked = "true"; + audioEnvironment = SmallRoom; }; new Item() { position = "160.305 73.1715 98.508"; diff --git a/base/missions/Equinox.mis b/base/missions/Equinox.mis index ea2120e..2704912 100644 --- a/base/missions/Equinox.mis +++ b/base/missions/Equinox.mis @@ -158,6 +158,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_2"; team = "0"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop1) { position = "-202.397 426.928 88.8532"; @@ -254,6 +255,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_2"; team = "0"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop2) { position = "406.409 361.085 75.5221"; @@ -403,6 +405,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_2"; team = "0"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop4) { position = "-63.9736 -334.333 77.7"; diff --git a/base/missions/Escalade.mis b/base/missions/Escalade.mis index c6fba51..52f0221 100644 --- a/base/missions/Escalade.mis +++ b/base/missions/Escalade.mis @@ -227,6 +227,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new InteriorInstance() { position = "451.421 -31.2098 263.802"; @@ -328,6 +329,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "276.55 111.339 109.719"; @@ -350,6 +352,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "723.228 -68.7276 99.0275"; @@ -420,6 +423,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = BigRoom; }; new StaticShape() { position = "514.363 -263.962 44.4053"; @@ -912,6 +916,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + audioEnvironment = SmallRoom; }; new StaticShape() { position = "36.5001 4.18328 111.115"; diff --git a/base/missions/Flashpoint.mis b/base/missions/Flashpoint.mis index d19cfd9..5ba8975 100644 --- a/base/missions/Flashpoint.mis +++ b/base/missions/Flashpoint.mis @@ -70,10 +70,12 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "350"; + high_visibleDistance = "400"; useSkyTextures = "0"; renderBottomTexture = "0"; SkySolidColor = "0.450000 0.300000 0.250000 1.000000"; fogDistance = "100"; + high_fogDistance = "125"; fogColor = "0.450000 0.300000 0.250000 1.000000"; fogVolume1 = "0 0 0"; fogVolume2 = "0 0 0"; @@ -189,6 +191,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team0SensorLargePulse1) { position = "-95.385 22.91 198.474"; diff --git a/base/missions/Gauntlet.mis b/base/missions/Gauntlet.mis index 004364e..957bafa 100644 --- a/base/missions/Gauntlet.mis +++ b/base/missions/Gauntlet.mis @@ -33,6 +33,7 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "500"; + high_visibleDistance = "700"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.365000 0.390000 0.420000 0.000000"; @@ -142,6 +143,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team2StationInventory4) { position = "102.56 -67.973 67.7742"; @@ -213,6 +215,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; }; new SimGroup(MainPowered) { @@ -237,6 +240,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new SimGroup(field3) { @@ -812,6 +816,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team1StationInventory1) { position = "-158.307 -904.742 53.4643"; diff --git a/base/missions/IceBound.mis b/base/missions/IceBound.mis index 0e7cf2c..f5dc13c 100644 --- a/base/missions/IceBound.mis +++ b/base/missions/IceBound.mis @@ -33,14 +33,18 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "550"; + high_visibleDistance = "750"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.365000 0.390000 0.420000 0.000000"; fogDistance = "100"; + high_fogDistance = "50"; fogColor = "0.500000 0.500000 0.570000 1.000000"; fogVolume1 = "600 0 250"; fogVolume2 = "0 0 0"; fogVolume3 = "0 0 0"; + high_fogVolume1 = "750 0 100"; + high_fogVolume2 = "700 100 250"; materialList = "sky_ice_blue.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -95,6 +99,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0"; removeWetEdges = "1"; locked = "true"; + AudioEnvironment = Underwater; }; new WaterBlock(Water) { position = "-504 40 0"; @@ -169,6 +174,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "528 282.6 70.5"; @@ -178,6 +184,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team2generatorLarge1) { position = "444.673 214.235 47.5003"; @@ -1624,6 +1631,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team1StationInventory5) { position = "-370.385 30.385 121.305"; diff --git a/base/missions/Insalubria.mis b/base/missions/Insalubria.mis index 929b2b0..7318949 100644 --- a/base/missions/Insalubria.mis +++ b/base/missions/Insalubria.mis @@ -33,10 +33,12 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "350"; + high_visibleDistance = "400"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.365000 0.390000 0.420000 0.000000"; fogDistance = "225"; + high_fogDistance = "250"; fogColor = "0.480000 0.480000 0.450000 1.000000"; fogVolume1 = "0 0 0"; fogVolume2 = "0 0 0"; @@ -173,6 +175,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "238.88 -162.983 48.2803"; @@ -326,6 +329,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0FlipFlop2) { position = "175.109 -490.523 52.1532"; @@ -510,6 +514,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0FlipFlop3) { position = "-12.6712 -67.8323 51.6512"; @@ -670,6 +675,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0FlipFlop4) { position = "427.113 -510.85 71.7485"; @@ -855,6 +861,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new WayPoint() { position = "-241.053 -637.641 87.3725"; @@ -2370,6 +2377,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new WayPoint() { position = "602.375 332.008 74.6359"; diff --git a/base/missions/JacobsLadder.mis b/base/missions/JacobsLadder.mis index c3fab3e..3480386 100644 --- a/base/missions/JacobsLadder.mis +++ b/base/missions/JacobsLadder.mis @@ -195,6 +195,7 @@ new SimGroup(MissionGroup) { interiorFile = "bbunk1.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-193.703 -532.218 271.638"; @@ -536,6 +537,7 @@ new SimGroup(MissionGroup) { interiorFile = "bbunk2.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape() { position = "76.9091 -713.73 196.21"; diff --git a/base/missions/Katabatic.mis b/base/missions/Katabatic.mis index a2f5f0f..e8c7fe8 100644 --- a/base/missions/Katabatic.mis +++ b/base/missions/Katabatic.mis @@ -229,6 +229,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "251.987 -242.184 78.1013"; @@ -2302,6 +2303,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-605.436 538.968 77.354"; diff --git a/base/missions/Masada.mis b/base/missions/Masada.mis index 6d3615c..10a9a85 100644 --- a/base/missions/Masada.mis +++ b/base/missions/Masada.mis @@ -14,13 +14,13 @@ //--- OBJECT WRITE BEGIN --- new SimGroup(MissionGroup) { - musicTrack = "desert"; + powerCount = "0"; cdTrack = "6"; Siege_timeLimit = "20"; - powerCount = "0"; + musicTrack = "desert"; new MissionArea(MissionArea) { - area = "-216 -576 848 912"; + area = "-288 -1032 736 1232"; flightCeiling = "2000"; flightCeilingRange = "50"; locked = "true"; @@ -50,17 +50,32 @@ new SimGroup(MissionGroup) { fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000"; fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000"; fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000"; + high_visibleDistance = "-1"; + high_fogDistance = "-1"; + high_fogVolume1 = "-1 3.22439e-42 1.04486e-40"; + high_fogVolume2 = "-1 1.04845e-40 3.26643e-42"; + high_fogVolume3 = "-1 3.28324e-42 1.05581e-40"; cloudSpeed0 = "0.000000 0.000000"; locked = "true"; }; new Sun() { + position = "-1216 -1336 0"; + rotation = "1 0 0 0"; + scale = "1 1 1"; direction = "0.643953 0.643953 -0.413096"; color = "0.600000 0.600000 0.600000 1.000000"; ambient = "0.300000 0.300000 0.300000 1.000000"; - position = "-1216 -1336 0"; + texture[0] = "special/sunFlare"; + texture[1] = "special/sunFlare02"; + texture[2] = "special/LensFlare/flare01"; + texture[3] = "special/LensFlare/flare02"; + texture[4] = "special/LensFlare/flare03"; + lensFlareScale = "0.7"; + lensFlareIntensity = "1"; + frontFlareSize = "300"; + backFlareSize = "450"; + flareColor = "1.000000 1.000000 1.000000 1.000000"; locked = "true"; - rotation = "1 0 0 0"; - scale = "1 1 1"; }; new TerrainBlock(Terrain) { rotation = "1 0 0 0"; @@ -76,21 +91,19 @@ new SimGroup(MissionGroup) { conjoinAngleDev = "45"; cullDensity = "0.3"; customArea = "0 0 0 0"; + position = "0 0 0 1"; + conjoinBowlDev = "20"; + YDimOverSize = "0"; + XDimOverSize = "0"; + rotation = "0 0 0 0"; GraphFile = "Masada.nav"; coverage = "0"; - XDimOverSize = "0"; - position = "0 0 0 1"; - locked = "true"; - YDimOverSize = "0"; - rotation = "0 0 0 0"; scale = "1 1 1"; - conjoinBowlDev = "20"; + locked = "true"; }; new SimGroup(RandomOrganics) { - powerCount = "0"; new SimGroup(Addition1PhoenixPlant2) { - powerCount = "0"; new TSStatic() { position = "118.5 386.5 213.604"; @@ -199,7 +212,6 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(Addition2PhoenixPlant3) { - powerCount = "0"; new TSStatic() { position = "106.5 454.5 223.049"; @@ -301,7 +313,6 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(Addition3PhoenixPlant5) { - powerCount = "0"; new TSStatic() { position = "263.5 -242.5 176.404"; @@ -410,7 +421,6 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(Addition4PhoenixPlant6) { - powerCount = "0"; new TSStatic() { position = "-399.5 -396.5 211.094"; @@ -490,8 +500,8 @@ new SimGroup(MissionGroup) { locked = "true"; }; new TSStatic() { - position = "360.5 151.5 63.1484"; - rotation = "0 0 1 182"; + position = "95.4986 -506.276 49.7484"; + rotation = "0 0 -1 96.0671"; scale = "0.8 0.8 0.8"; shapeName = "porg6.dts"; locked = "true"; @@ -533,7 +543,6 @@ new SimGroup(MissionGroup) { locked = "true"; }; new SimGroup(Addition5PhoenixPlant1) { - powerCount = "0"; new TSStatic() { position = "-791.5 823.5 175.647"; @@ -643,7 +652,6 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(ObserverDropPoints) { - powerCount = "0"; new Camera() { position = "-20.6626 102.72 305.189"; @@ -683,22 +691,19 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(Teams) { - powerCount = "0"; new SimGroup(Team1) { - powerCount = "0"; new SimGroup(spawnspheres) { - powerCount = "0"; new SpawnSphere() { - position = "486.888 89.3748 59.581"; - rotation = "0 0 1 198.999"; + position = "-64.3049 -727.041 59.581"; + rotation = "1 0 0 0"; scale = "1 1 1"; dataBlock = "SpawnSphereMarker"; lockCount = "0"; homingCount = "0"; - radius = "40"; + radius = "60"; sphereWeight = "50"; indoorWeight = "50"; outdoorWeight = "50"; @@ -706,323 +711,201 @@ new SimGroup(MissionGroup) { }; }; new SimGroup(Bases) { - powerCount = "0"; new SimGroup(EBase) { - powerCount = "1"; new InteriorInstance() { - position = "488.016 107.143 51.364"; - rotation = "0 0 1 93.3921"; + position = "-86.4581 -738.743 51.364"; + rotation = "0 0 -1 90"; scale = "1 1 1"; - interiorFile = "pbunk6.dif"; + interiorFile = "ptowr4.dif"; showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; - team = "1"; + AudioEnvironment = "SmallRoom"; locked = "true"; }; new StaticShape(Team1generatorLarge2) { - position = "491.575 100.406 79.429"; - rotation = "1 0 0 0"; + position = "-91.842 -737.388 64.2786"; + rotation = "-1 0 0 89.9544"; scale = "1 1 1"; nameTag = "Assault Base"; dataBlock = "GeneratorLarge"; lockCount = "0"; homingCount = "0"; - Target = "33"; - team = "1"; locked = "true"; }; new StaticShape(Team1StationInventory3) { - position = "486.547 107.142 67.38"; - rotation = "0 0 -1 87.6625"; + position = "-85.8368 -732.493 52.332"; + rotation = "1 0 0 0"; scale = "1 1 1"; nameTag = "Assault Base"; dataBlock = "StationInventory"; lockCount = "0"; homingCount = "0"; - Target = "34"; - team = "1"; locked = "true"; - Trigger = "3432"; }; new StaticShape(Team1StationInventory4) { - position = "492.221 113.632 79.515"; - rotation = "0 0 1 90.5273"; + position = "-85.5846 -744.923 52.323"; + rotation = "0 0 1 180"; scale = "1 1 1"; nameTag = "Assault Base"; dataBlock = "StationInventory"; lockCount = "0"; homingCount = "0"; - Target = "35"; - team = "1"; locked = "true"; - Trigger = "3434"; }; new StaticShape(Team1StationInventory5) { - position = "484.799 113.632 79.515"; - rotation = "0 0 -1 88.2355"; + position = "-80.8688 -743.703 78.363"; + rotation = "0 0 1 141.612"; scale = "1 1 1"; nameTag = "Assault Base"; dataBlock = "StationInventory"; lockCount = "0"; homingCount = "0"; - Target = "36"; - team = "1"; - locked = "true"; - Trigger = "3436"; - }; - new ForceFieldBare() { - position = "486.024 112.327 52.9314"; - rotation = "0 0 1 3.43793"; - scale = "4.41078 0.265478 7.87093"; - dataBlock = "defaultTeamSlowFieldBare"; - Target = "37"; - team = "1"; locked = "true"; }; - new ForceFieldBare() { - position = "485.382 101.815 52.5017"; - rotation = "0 0 1 2.8649"; - scale = "4.66089 0.252535 8.34756"; - dataBlock = "defaultTeamSlowFieldBare"; - Target = "38"; - team = "1"; + new Turret() { + position = "-70.5915 -641.255 66.7685"; + rotation = "1 0 0 0"; + scale = "1 1 1"; + nameTag = "Defense"; + dataBlock = "TurretBaseLarge"; + lockCount = "0"; + homingCount = "0"; + initialBarrel = "PlasmaBarrelLarge"; + originalBarrel = "PlasmaBarrelLarge"; + lastProjectile = "5500"; + locked = "true"; + }; + new Turret() { + position = "94.6284 -683.26 60.4525"; + rotation = "1 0 0 0"; + scale = "1 1 1"; + nameTag = "Defense"; + dataBlock = "TurretBaseLarge"; + lockCount = "0"; + homingCount = "0"; + initialBarrel = "PlasmaBarrelLarge"; + originalBarrel = "PlasmaBarrelLarge"; + lastProjectile = "5502"; locked = "true"; }; new InteriorInstance() { - position = "399.456 103.275 52.7"; - rotation = "0 0 -1 89.9544"; + position = "12.7877 -799.755 51.5"; + rotation = "1 0 0 0"; scale = "1 1 1"; interiorFile = "pvpad.dif"; showTerrainInside = "0"; - team = "1"; locked = "true"; }; new StaticShape() { - position = "408.037 102.282 52.4"; - rotation = "0 0 1 89.9544"; + position = "11.8017 -808.337 51.2"; + rotation = "0 0 1 179.909"; scale = "1 1 1"; dataBlock = "StationVehiclePad"; lockCount = "0"; homingCount = "0"; - Target = "-1"; + Ready = "1"; AssaultVehicle = "Removed"; - team = "1"; - locked = "true"; mobileBaseVehicle = "Removed"; - ready = "1"; - station = "3444"; + locked = "true"; }; - new Turret() { - position = "484.355 117.451 85.3125"; - rotation = "0 0 -1 85.9437"; + new StaticShape(vehicleInv) { + position = "29.1819 -836.211 53.4798"; + rotation = "0 0 1 135"; scale = "1 1 1"; + nameTag = "Vehicle Pad Inventory"; + dataBlock = "StationInventory"; + lockCount = "0"; + homingCount = "0"; + locked = "true"; + }; + new Item() { + position = "-3.39839 -835.722 54.8973"; + rotation = "0 0 1 222.49"; + scale = "1 1 1"; + dataBlock = "RepairPack"; + lockCount = "0"; + homingCount = "0"; + collideable = "0"; + static = "1"; + rotate = "0"; + locked = "true"; + }; + new Item() { + position = "-90.1333 -743.609 80.1698"; + rotation = "0 0 1 220.016"; + scale = "1 1 1"; + dataBlock = "RepairPack"; + lockCount = "0"; + homingCount = "0"; + collideable = "0"; + static = "1"; + rotate = "0"; + locked = "true"; + }; + new ForceFieldBare(MainDoorway) { + position = "-78.3599 -741.795 52.3462"; + rotation = "1 0 0 0"; + scale = "0.785063 6.26642 13.9218"; + dataBlock = "defaultTeamSlowFieldBare"; + lockCount = "0"; + homingCount = "0"; + locked = "true"; + }; + new ForceFieldBare(LeftUpper) { + position = "-88.4751 -749.073 70.3451"; + rotation = "1 0 0 0"; + scale = "6.01818 0.799927 4.8826"; + dataBlock = "defaultTeamSlowFieldBare"; + lockCount = "0"; + homingCount = "0"; + locked = "true"; + }; + new ForceFieldBare(RightUpper) { + position = "-88.4683 -729.359 70.3148"; + rotation = "1 0 0 0"; + scale = "6.01818 0.799927 4.8826"; + dataBlock = "defaultTeamSlowFieldBare"; + lockCount = "0"; + homingCount = "0"; + locked = "true"; + }; + new InteriorInstance() { + position = "-70.5266 -646.285 55.9439"; + rotation = "1 0 0 0"; + scale = "1 1 1"; + interiorFile = "pmisc1.dif"; + showTerrainInside = "0"; + locked = "true"; + }; + new InteriorInstance() { + position = "94.3072 -688.319 49.6392"; + rotation = "1 0 0 0"; + scale = "1 1 1"; + interiorFile = "pmisc1.dif"; + showTerrainInside = "0"; + locked = "true"; + }; + new Turret(Roof) { + position = "-84.0401 -738.78 95.2623"; + rotation = "0 0 1 90"; + scale = "1 1 1"; + nameTag = "Defense"; dataBlock = "TurretBaseLarge"; lockCount = "0"; homingCount = "0"; - initialBarrel = "PlasmaBarrelLarge"; - Target = "40"; - team = "1"; + initialBarrel = "MissileBarrelLarge"; + originalBarrel = "MissileBarrelLarge"; + lastProjectile = "6634"; locked = "true"; - originalBarrel = "PlasmaBarrelLarge"; - lastProjectile = "4424"; }; - new Turret() { - position = "483.229 97.4348 85.3125"; - rotation = "0 0 -1 84.7978"; - scale = "1 1 1"; - dataBlock = "TurretBaseLarge"; - lockCount = "0"; - homingCount = "0"; - initialBarrel = "PlasmaBarrelLarge"; - Target = "41"; - team = "1"; - locked = "true"; - originalBarrel = "PlasmaBarrelLarge"; - lastProjectile = "4425"; - }; - }; - }; - new SimGroup(AIObjectives) { - powerCount = "0"; - - new AIObjective(AIOAttackObject) { - position = "15.4737 82.6144 296.473"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Attack the enemy generator"; - targetObject = "Team2generatorLarge3"; - targetClientId = "-1"; - targetObjectId = "3473"; - location = "15.4737 82.6144 296.473"; - weightLevel1 = "4500"; - weightLevel2 = "3000"; - weightLevel3 = "2000"; - weightLevel4 = "1800"; - offense = "1"; - defense = "0"; - desiredEquipment = "ShieldPack"; - buyEquipmentSet = "MediumShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIOAttackObject) { - position = "15.2334 84.7637 313.495"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Attack the StationInventory"; - targetObject = "Team2StationInventory1"; - targetClientId = "-1"; - targetObjectId = "3465"; - location = "15.2334 84.7637 313.495"; - weightLevel1 = "2900"; - weightLevel2 = "1400"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "1"; - defense = "0"; - desiredEquipment = "ShieldPack"; - buyEquipmentSet = "HeavyAmmoSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - isInvalid = "0"; - }; - new AIObjective(AIOTouchObject) { - position = "-15.3318 -0.0208393 271.993"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Capture the Team2FlipFlop1"; - mode = "TouchFlipFlop"; - targetObject = "Team2FlipFlop1"; - targetClientId = "-1"; - targetObjectId = "3475"; - location = "-15.3318 -0.0208393 271.993"; - weightLevel1 = "3850"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "1"; - defense = "0"; - desiredEquipment = "Light EnergyPack"; - buyEquipmentSet = "LightEnergyDefault"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - isInvalid = "0"; - }; - new AIObjective(AIOAttackObject) { - position = "-10.4499 -44.4111 272.693"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Attack the enemy generator"; - targetObject = "Team2generatorLarge1"; - targetClientId = "-1"; - targetObjectId = "3462"; - location = "-10.4499 -44.4111 272.693"; - weightLevel1 = "4500"; - weightLevel2 = "3000"; - weightLevel3 = "2000"; - weightLevel4 = "1800"; - offense = "1"; - defense = "0"; - desiredEquipment = "ShieldPack"; - buyEquipmentSet = "MediumShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIOAttackObject) { - position = "-3.74753 -44.3354 272.093"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Attack the enemy generator"; - targetObject = "Team2generatorLarge2"; - targetClientId = "-1"; - targetObjectId = "3463"; - location = "-3.74753 -44.3354 272.093"; - weightLevel1 = "4500"; - weightLevel2 = "3000"; - weightLevel3 = "2000"; - weightLevel4 = "1800"; - offense = "1"; - defense = "0"; - desiredEquipment = "ShieldPack"; - buyEquipmentSet = "MediumShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIODefendLocation) { - position = "499.594 108.103 19.5009"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Defend the GeneratorLarge"; - targetObject = "Team1generatorLarge1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "499.594 108.103 19.5009"; - weightLevel1 = "3100"; - weightLevel2 = "1500"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - desiredEquipment = "ShieldPack Plasma PlasmaAmmo"; - buyEquipmentSet = "HeavyShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "1"; - isInvalid = "0"; }; }; }; new SimGroup(Team2) { - powerCount = "0"; new SimGroup(defense) { - powerCount = "3"; new InteriorInstance() { position = "-15.5504 -20.6638 284.652"; @@ -1031,7 +914,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk2.dif"; showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; - team = "2"; + AudioEnvironment = "SmallRoom"; locked = "true"; }; new InteriorInstance() { @@ -1041,7 +924,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk7.dif"; showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; - team = "2"; + AudioEnvironment = "SmallRoom"; locked = "true"; }; new Item() { @@ -1054,8 +937,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new StaticShape(Team2generatorLarge1) { @@ -1066,11 +947,9 @@ new SimGroup(MissionGroup) { dataBlock = "GeneratorLarge"; lockCount = "0"; homingCount = "0"; + needsObjectiveWaypoint = "1"; name = "Bunker"; - Target = "42"; - team = "2"; locked = "true"; - needsObjectiveWaypoint = true; }; new StaticShape(Team2generatorLarge2) { position = "-6.7802 -43.0255 271.588"; @@ -1080,11 +959,9 @@ new SimGroup(MissionGroup) { dataBlock = "GeneratorLarge"; lockCount = "0"; homingCount = "0"; + needsObjectiveWaypoint = "1"; name = "Bunker"; - Target = "43"; - team = "2"; locked = "true"; - needsObjectiveWaypoint = true; }; new Item() { position = "-14.7471 -32.7903 282.27"; @@ -1096,8 +973,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new StaticShape(Team2StationInventory1) { @@ -1108,10 +983,7 @@ new SimGroup(MissionGroup) { dataBlock = "StationInventory"; lockCount = "0"; homingCount = "0"; - Target = "44"; - team = "2"; locked = "true"; - Trigger = "3466"; }; new StaticShape(Team2SensorLargePulse1) { position = "-56.1232 -88.395 305.148"; @@ -1121,8 +993,6 @@ new SimGroup(MissionGroup) { dataBlock = "SensorLargePulse"; lockCount = "0"; homingCount = "0"; - Target = "45"; - team = "2"; locked = "true"; }; new Item() { @@ -1135,8 +1005,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new Item() { @@ -1149,8 +1017,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new Item() { @@ -1163,8 +1029,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new Item() { @@ -1177,8 +1041,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new Item() { @@ -1191,8 +1053,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new StaticShape(Team2generatorLarge3) { @@ -1203,12 +1063,9 @@ new SimGroup(MissionGroup) { dataBlock = "GeneratorLarge"; lockCount = "0"; homingCount = "0"; + needsObjectiveWaypoint = "1"; name = "Tower"; - Target = "46"; - team = "2"; locked = "true"; - damageTimeMS = "652863"; - needsObjectiveWaypoint = true; }; new Item() { position = "-11.0846 -30.0616 297.07"; @@ -1220,8 +1077,6 @@ new SimGroup(MissionGroup) { collideable = "0"; static = "1"; rotate = "0"; - Target = "-1"; - team = "2"; locked = "true"; }; new StaticShape(Team2FlipFlop1) { @@ -1232,24 +1087,20 @@ new SimGroup(MissionGroup) { dataBlock = "FlipFlop"; lockCount = "0"; homingCount = "0"; - Target = "47"; - team = "2"; + needsObjectiveWaypoint = "1"; locked = "true"; - Projector = "0"; - needsObjectiveWaypoint = true; }; new ForceFieldBare() { position = "-15.6484 -12.6499 269.508"; rotation = "1 0 0 0"; scale = "7.42997 0.968412 11.2878"; dataBlock = "defaultTeamSlowFieldBare"; - Target = "48"; - team = "2"; + lockCount = "0"; + homingCount = "0"; locked = "true"; }; }; new SimGroup(spawnspheres) { - powerCount = "0"; new SpawnSphere() { position = "-10.9234 -17.1259 291.099"; @@ -1278,473 +1129,9 @@ new SimGroup(MissionGroup) { locked = "true"; }; }; - new SimGroup(AIObjectives) { - powerCount = "0"; - - new AIObjective(AIORepairObject) { - position = "-10.4499 -44.4111 272.693"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Repair the generator"; - targetObject = "Team2generatorLarge1"; - targetClientId = "-1"; - targetObjectId = "3462"; - location = "-10.4499 -44.4111 272.693"; - weightLevel1 = "3200"; - weightLevel2 = "1600"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "RepairPack"; - buyEquipmentSet = "HeavyRepairSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIODefendLocation) { - position = "-10.4499 -44.4111 272.693"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Defend the generator"; - targetObject = "Team2generatorLarge1"; - targetClientId = "-1"; - targetObjectId = "3462"; - location = "-10.4499 -44.4111 272.693"; - weightLevel1 = "4500"; - weightLevel2 = "2500"; - weightLevel3 = "2000"; - weightLevel4 = "1500"; - offense = "0"; - defense = "1"; - desiredEquipment = "ShieldPack Plasma PlasmaAmmo"; - buyEquipmentSet = "HeavyShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIODefendLocation) { - position = "-15.3318 -0.0208393 271.993"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Defend the FlipFlop"; - targetObject = "Team2FlipFlop1"; - targetClientId = "-1"; - targetObjectId = "3475"; - location = "-15.3318 -0.0208393 271.993"; - weightLevel1 = "3900"; - weightLevel2 = "2000"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - desiredEquipment = "ShieldPack Plasma PlasmaAmmo"; - buyEquipmentSet = "HeavyShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - isInvalid = "0"; - }; - new AIObjective(AIODefendLocation) { - position = "-4.84369 -42.743 273.631"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Defend the GeneratorLarge"; - targetObject = "Team2generatorLarge2"; - targetClientId = "-1"; - targetObjectId = "3463"; - location = "-4.84369 -42.743 273.631"; - weightLevel1 = "3100"; - weightLevel2 = "1500"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - desiredEquipment = "ShieldPack Plasma PlasmaAmmo"; - buyEquipmentSet = "HeavyShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - isInvalid = "0"; - }; - new AIObjective(AIORepairObject) { - position = "15.4737 82.6144 296.473"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Repair the generator"; - targetObject = "Team2generatorLarge3"; - targetClientId = "-1"; - targetObjectId = "3473"; - location = "15.4737 82.6144 296.473"; - weightLevel1 = "3200"; - weightLevel2 = "1600"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "RepairPack"; - buyEquipmentSet = "HeavyRepairSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIODefendLocation) { - position = "15.4737 82.6144 296.473"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Defend the generator"; - targetObject = "Team2generatorLarge3"; - targetClientId = "-1"; - targetObjectId = "3473"; - location = "15.4737 82.6144 296.473"; - weightLevel1 = "4000"; - weightLevel2 = "2500"; - weightLevel3 = "2000"; - weightLevel4 = "1500"; - offense = "0"; - defense = "1"; - desiredEquipment = "ShieldPack Plasma PlasmaAmmo"; - buyEquipmentSet = "HeavyShieldSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - issuingClientId = "-1"; - isInvalid = "0"; - gameType = "all"; - }; - new AIObjective(AIORepairObject) { - position = "-4.84369 -42.743 273.631"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Repair the GeneratorLarge"; - targetObject = "Team2generatorLarge2"; - targetClientId = "-1"; - targetObjectId = "3463"; - location = "-4.84369 -42.743 273.631"; - weightLevel1 = "3200"; - weightLevel2 = "1600"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "RepairPack"; - buyEquipmentSet = "MediumRepairSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - isInvalid = "0"; - }; - new AIObjective(AIORepairObject) { - position = "-56.1386 -88.3853 309.423"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Repair the SensorLargePulse"; - targetObject = "Team2SensorLargePulse1"; - targetClientId = "-1"; - targetObjectId = "3467"; - location = "-56.1386 -88.3853 309.423"; - weightLevel1 = "3100"; - weightLevel2 = "1000"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "RepairPack"; - buyEquipmentSet = "MediumRepairSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - isInvalid = "0"; - }; - new AIObjective(AIORepairObject) { - position = "15.2334 84.7637 313.495"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Repair the StationInventory"; - targetObject = "Team2StationInventory1"; - targetClientId = "-1"; - targetObjectId = "3465"; - location = "15.2334 84.7637 313.495"; - weightLevel1 = "2900"; - weightLevel2 = "1400"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "RepairPack"; - buyEquipmentSet = "MediumRepairSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - isInvalid = "0"; - }; - new SimGroup(deploy) { - clientLevel1 = "3147"; - powerCount = "0"; - - new AIObjective(AIODeployEquipment) { - position = "-21.5883 -10.5368 269.972"; - rotation = "0 0 1 230.329"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy Inventory Station"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "-21.5883 -10.5368 269.972"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "InventoryDeployable"; - buyEquipmentSet = "MediumInventorySet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "-11.4566 -20.5771 271.934"; - rotation = "0 0 1 179.909"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy indoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "-11.4566 -20.5771 271.934"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretIndoorDeployable"; - buyEquipmentSet = "MediumIndoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "18.1197 -23.2996 272.581"; - rotation = "0.00499992 0.00495411 0.999975 90.5287"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy indoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "18.1197 -23.2996 272.581"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretIndoorDeployable"; - buyEquipmentSet = "MediumIndoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "-31.1203 -22.3868 273.377"; - rotation = "0 0 -1 87.845"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy indoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "-31.1203 -22.3868 273.377"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretIndoorDeployable"; - buyEquipmentSet = "MediumIndoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "-22.29 -15.2144 282.106"; - rotation = "0 0 -1 33.8045"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy indoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "-22.29 -15.2144 282.106"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretIndoorDeployable"; - buyEquipmentSet = "MediumIndoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "-3.016 -32.3073 281.965"; - rotation = "0 0 1 133.499"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy indoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "-3.016 -32.3073 281.965"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretIndoorDeployable"; - buyEquipmentSet = "MediumIndoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - new AIObjective(AIODeployEquipment) { - position = "2.46598 36.4512 285.293"; - rotation = "0 0 1 61.8794"; - scale = "1 1 1"; - dataBlock = "AIObjectiveMarker"; - lockCount = "0"; - homingCount = "0"; - description = "Deploy outdoor Turret"; - targetObject = "-1"; - targetClientId = "-1"; - targetObjectId = "-1"; - location = "2.46598 36.4512 285.293"; - weightLevel1 = "4100"; - weightLevel2 = "0"; - weightLevel3 = "0"; - weightLevel4 = "0"; - offense = "0"; - defense = "1"; - equipment = "TurretOutdoorDeployable"; - buyEquipmentSet = "MediumOutdoorTurretSet"; - issuedByHuman = "0"; - issuedByClientId = "-1"; - forceClientId = "-1"; - locked = "1"; - team = "2"; - group = "3491"; - isInvalid = "0"; - }; - }; - }; - }; - new SimGroup(team0) { - powerCount = "0"; - - new SimGroup(AIObjectives) { - powerCount = "0"; - }; }; }; new SimGroup(Ambiance) { - powerCount = "0"; new AudioEmitter() { position = "9.8136 30.4218 291.845"; @@ -1915,13 +1302,5 @@ new SimGroup(MissionGroup) { locked = "true"; }; }; - new ForceFieldBare() { - position = "486.483 118.913 77.2077"; - rotation = "0 0 1 2.8649"; - scale = "4.57986 0.252535 7.56859"; - dataBlock = "defaultTeamSlowFieldBare"; - Target = "49"; - locked = "true"; - }; }; //--- OBJECT WRITE END --- diff --git a/base/missions/Minotaur.mis b/base/missions/Minotaur.mis index f2a5e01..a3d91da 100644 --- a/base/missions/Minotaur.mis +++ b/base/missions/Minotaur.mis @@ -481,6 +481,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new SimGroup(Teams) { diff --git a/base/missions/MyrkWood.mis b/base/missions/MyrkWood.mis index 013ccb6..2b6dda1 100644 --- a/base/missions/MyrkWood.mis +++ b/base/missions/MyrkWood.mis @@ -97,6 +97,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.4"; removeWetEdges = "1"; locked = "true"; + AudioEnvironment = Underwater; }; new SimGroup(ObserverDropPoints) { diff --git a/base/missions/Oasis.mis b/base/missions/Oasis.mis index d8b9f99..ec1f890 100644 --- a/base/missions/Oasis.mis +++ b/base/missions/Oasis.mis @@ -100,6 +100,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.7"; removeWetEdges = "1"; locked = "true"; + AudioEnvironment = Underwater; }; new SimGroup(environment) { @@ -205,6 +206,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-102.796 21.1962 139.043"; @@ -214,6 +216,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-58.1054 -111.149 132.645"; @@ -223,6 +226,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new Item() { position = "-209.9 -44.7356 105.823"; diff --git a/base/missions/Overreach.mis b/base/missions/Overreach.mis index 131ed8a..6cfc8d1 100644 --- a/base/missions/Overreach.mis +++ b/base/missions/Overreach.mis @@ -64,6 +64,7 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "550"; + high_visibleDistance = "700"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.100000 0.100000 0.100000 0.000000"; @@ -72,6 +73,7 @@ new SimGroup(MissionGroup) { fogVolume1 = "450 0 200"; fogVolume2 = "0 0 0"; fogVolume3 = "0 0 0"; + high_fogVolume1 = "800 200 225"; materialList = "sky_ice_starrynight.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -142,6 +144,7 @@ new SimGroup(MissionGroup) { interiorFile = "stowr4.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop1) { position = "-619.073 475.12 69.9208"; @@ -407,6 +410,7 @@ new SimGroup(MissionGroup) { interiorFile = "stowr4.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop2) { position = "-173.384 146.68 68.8115"; @@ -672,6 +676,7 @@ new SimGroup(MissionGroup) { interiorFile = "stowr4.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop3) { position = "378.53 -391.068 70.2383"; @@ -1319,6 +1324,7 @@ new SimGroup(MissionGroup) { interiorFile = "sbunk9.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new WayPoint() { position = "-664.223 -734.181 118.32"; @@ -4710,6 +4716,7 @@ new SimGroup(MissionGroup) { interiorFile = "sbunk9.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new WayPoint() { position = "786.66 703.72 124.973"; diff --git a/base/missions/Pyroclasm.mis b/base/missions/Pyroclasm.mis index 3e9a261..13ea37f 100644 --- a/base/missions/Pyroclasm.mis +++ b/base/missions/Pyroclasm.mis @@ -152,6 +152,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "-183.71 145.54 164.943"; diff --git a/base/missions/Quagmire.mis b/base/missions/Quagmire.mis index 6358db5..b5b99cc 100644 --- a/base/missions/Quagmire.mis +++ b/base/missions/Quagmire.mis @@ -409,6 +409,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "1"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "483.1 -299.94 101.715"; @@ -418,6 +419,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "1"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "341.493 -179.539 78.7793"; @@ -664,6 +666,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new InteriorInstance() { position = "-283.977 18.08 101.25"; @@ -673,6 +676,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new Turret() { position = "-278.451 -103.223 73.0707"; @@ -1068,6 +1072,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.4"; removeWetEdges = "0"; locked = "true"; + AudioEnvironment = Underwater; }; }; //--- OBJECT WRITE END --- diff --git a/base/missions/Rasp.mis b/base/missions/Rasp.mis index 513e53c..949addd 100644 --- a/base/missions/Rasp.mis +++ b/base/missions/Rasp.mis @@ -752,6 +752,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "-466.02 -475.281 93.6964"; diff --git a/base/missions/Recalescence.mis b/base/missions/Recalescence.mis index db064ce..59f553f 100644 --- a/base/missions/Recalescence.mis +++ b/base/missions/Recalescence.mis @@ -36,6 +36,7 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "450"; + high_visibleDistance = "700"; useSkyTextures = "0"; renderBottomTexture = "0"; SkySolidColor = "0.800000 0.360000 0.200000 0.000000"; @@ -44,6 +45,9 @@ new SimGroup(MissionGroup) { fogVolume1 = "80 0 90"; fogVolume2 = "300 90 150"; fogVolume3 = "0 0 0"; + high_fogVolume1 = "750 215 235"; + high_fogVolume2 = "700 235 245"; + high_fogVolume3 = "750 245 255"; materialList = "lava_dark.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -153,6 +157,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new Item() { position = "434.058 319.732 223.559"; @@ -2074,6 +2079,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team2generatorLarge2) { position = "-377.35 -221.62 116.796"; diff --git a/base/missions/Respite.mis b/base/missions/Respite.mis index 0d8fa49..26e5ad4 100644 --- a/base/missions/Respite.mis +++ b/base/missions/Respite.mis @@ -390,6 +390,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; locked = "true"; + AudioEnvironment = SmallRoom; }; new Item() { position = "-209.9 -44.7356 105.823"; @@ -425,6 +426,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team2generatorLarge2) { position = "-101.402 26.1234 142.949"; @@ -478,6 +480,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team2generatorLarge3) { position = "-63.8819 -111.35 135.4"; @@ -751,14 +754,17 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "500"; + high_visibleDistance = "900"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.390000 0.390000 0.390000 0.000000"; fogDistance = "275"; + high_fogDistance = "600"; fogColor = "0.400000 0.400000 0.400000 1.000000"; fogVolume1 = "0 0 0"; fogVolume2 = "0 0 0"; fogVolume3 = "0 0 0"; + high_fogVolume1 = "120 0 100"; materialList = "Lush_l4.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; diff --git a/base/missions/Reversion.mis b/base/missions/Reversion.mis index b05bf37..e2e5a96 100644 --- a/base/missions/Reversion.mis +++ b/base/missions/Reversion.mis @@ -113,6 +113,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.5"; removeWetEdges = "1"; locked = "true"; + AudioEnvironment = Underwater; }; new SimGroup(ObserverDropPoints) { @@ -313,6 +314,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new Turret(Team1TurretBaseLarge2) { position = "-668.312 418.661 64.9914"; @@ -1708,6 +1710,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new Turret(Team2TurretBaseLarge2) { position = "746.016 -466.198 67.3335"; diff --git a/base/missions/Rimehold.mis b/base/missions/Rimehold.mis index 0d34f6a..f3d5d98 100644 --- a/base/missions/Rimehold.mis +++ b/base/missions/Rimehold.mis @@ -302,6 +302,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; locked = "true"; team = "0"; + AudioEnvironment = BigRoom; }; new Item(Nexus) { position = "-23.8753 84.0586 81.555"; diff --git a/base/missions/RiverDance.mis b/base/missions/RiverDance.mis index 8e02198..102545b 100644 --- a/base/missions/RiverDance.mis +++ b/base/missions/RiverDance.mis @@ -38,10 +38,12 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "425"; + high_visibleDistance = "500"; useSkyTextures = "1"; renderBottomTexture = "0"; SkySolidColor = "0.420000 0.420000 0.420000 0.000000"; fogDistance = "200"; + high_fogDistance = "300"; fogColor = "0.420000 0.420000 0.420000 1.000000"; fogVolume1 = "300 0 71"; fogVolume2 = "0 0 0"; @@ -119,6 +121,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.1"; removeWetEdges = "1"; locked = "true"; + AudioEnvironment = Underwater; }; new SimGroup(ObserverDropPoints) { @@ -178,6 +181,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "-251.998 -243.486 142.611"; @@ -895,6 +899,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new SimGroup(AIObjectives) { diff --git a/base/missions/Sanctuary.mis b/base/missions/Sanctuary.mis index 86bb40c..e7452f1 100644 --- a/base/missions/Sanctuary.mis +++ b/base/missions/Sanctuary.mis @@ -67,8 +67,6 @@ new SimGroup(MissionGroup) { visibleDistance = "500"; position = "-1024 -1024 0"; }; - new Terraformer(Terraformer) { - }; new NavigationGraph(NavGraph) { conjoinAngleDev = "70"; cullDensity = "0.3"; @@ -120,6 +118,7 @@ new SimGroup(MissionGroup) { interiorFile = "bbase4cm.dif"; showTerrainInside = "0"; team = "1"; + AudioEnvironment = BigRoom; }; new StaticShape(Team1StationInventory3) { position = "-453.7 -754.041 224.031"; @@ -1025,6 +1024,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; team = "2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team2StationInventory4) { position = "-287.53 344.9 243.663"; @@ -2093,6 +2093,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-120 344 30.339"; @@ -2107,6 +2108,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-104 -120 16.3623"; @@ -2121,6 +2123,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-448 -80 36.8361"; @@ -2135,6 +2138,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-704 -600 -0.359596"; @@ -2149,6 +2153,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-920 -80 35"; @@ -2163,6 +2168,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-16 -440 69"; @@ -2177,6 +2183,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-440 -280 67.038"; @@ -2191,6 +2198,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "104 -192 67.033"; @@ -2205,6 +2213,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-680 120 81.7432"; @@ -2219,6 +2228,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud1"; envMapIntensity = "0.5"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; }; new SimGroup(Sounds) { diff --git a/base/missions/Sirocco.mis b/base/missions/Sirocco.mis index af5be1d..6724642 100644 --- a/base/missions/Sirocco.mis +++ b/base/missions/Sirocco.mis @@ -43,13 +43,18 @@ new SimGroup(MissionGroup) { cloudSpeed2 = "0.0002"; cloudSpeed3 = "0.0003"; visibleDistance = "700"; + high_visibleDistance = "900"; useSkyTextures = "0"; SkySolidColor = "1.000000 0.450000 0.000000 0.000000"; fogDistance = "250"; + high_fogDistance = "350"; fogColor = "0.600000 0.300000 0.000000 1.000000"; fogVolume1 = "250 0 75"; fogVolume2 = "600 75 120"; fogVolume3 = "2000 120 200"; + high_fogVolume1 = "0 0 0"; + high_fogVolume2 = "0 0 0"; + high_fogVolume3 = "0 0 0"; materialList = "sky_desert_brown.dml"; windVelocity = "1 0 0"; windEffectPrecipitation = "0"; @@ -393,6 +398,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0SensorLargePulse1) { position = "24.9351 -517.135 149.95"; @@ -516,6 +522,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop2) { position = "349.119 -221.074 87.0265"; @@ -589,6 +596,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop3) { position = "-354.653 290.212 111.003"; @@ -671,6 +679,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0SensorLargePulse2) { position = "72.965 507.561 146.408"; @@ -794,6 +803,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop5) { position = "349.119 221.074 87.0341"; @@ -867,6 +877,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team0flipflop6) { position = "-342.303 -302.994 110.627"; diff --git a/base/missions/Slapdash.mis b/base/missions/Slapdash.mis index c1e4cfa..92561ac 100644 --- a/base/missions/Slapdash.mis +++ b/base/missions/Slapdash.mis @@ -27,7 +27,7 @@ new SimGroup(MissionGroup) { flightCeilingRange = "20"; locked = "true"; }; - new Sun() { + new Sun(Sun) { direction = "0.622506 0.622506 -0.474313"; color = "0.800000 0.800000 0.800000 1.000000"; ambient = "0.400000 0.400000 0.400000 1.000000"; @@ -35,6 +35,18 @@ new SimGroup(MissionGroup) { locked = "true"; position = "-1024 -1024 0"; rotation = "1 0 0 0"; + + lensFlareScale = 0.7; // size of lens flare circles + lensFlareIntensity = 1.0; // translucency of lens flare + frontFlareSize = 300.0; // size of sun flare + backFlareSize = 450.0; // size of background sun flare + flareColor = "1.0 1.0 1.0 1.0"; + + texture[0] = "special/sunFlare"; + texture[1] = "special/sunFlare02"; + texture[2] = "special/LensFlare/flare01"; + texture[3] = "special/LensFlare/flare02"; + texture[4] = "special/LensFlare/flare03"; }; new TerrainBlock(Terrain) { rotation = "1 0 0 0"; @@ -481,6 +493,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team1StationInventory1) { position = "35.77 -778.125 130.44"; @@ -736,6 +749,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape(Team2StationInventory1) { position = "-435.278 515.64 129.6"; diff --git a/base/missions/Talus.mis b/base/missions/Talus.mis index 421fee7..5aa9a2d 100644 --- a/base/missions/Talus.mis +++ b/base/missions/Talus.mis @@ -558,6 +558,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "86.332 11.529 13.6735"; diff --git a/base/missions/ThinIce.mis b/base/missions/ThinIce.mis index 74dbfed..4d7c905 100644 --- a/base/missions/ThinIce.mis +++ b/base/missions/ThinIce.mis @@ -83,6 +83,7 @@ new SimGroup(MissionGroup) { envMapIntensity = "0.1"; removeWetEdges = "0"; locked = "true"; + AudioEnvironment = Underwater; }; new NavigationGraph(NavGraph) { conjoinAngleDev = "45"; @@ -161,6 +162,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team1StationInventory1) { position = "308.001 684.065 127.448"; @@ -1512,6 +1514,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new InteriorInstance() { position = "-302.112 -814.273 125.202"; diff --git a/base/missions/Tombstone.mis b/base/missions/Tombstone.mis index 20b47df..b46893b 100644 --- a/base/missions/Tombstone.mis +++ b/base/missions/Tombstone.mis @@ -160,6 +160,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk1.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new StaticShape() { position = "-450.816 340.977 169.772"; @@ -178,6 +179,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new WayPoint() { position = "-363.986 -401.484 155.401"; @@ -1232,6 +1234,7 @@ new SimGroup(MissionGroup) { interiorFile = "pbunk1.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new Turret() { position = "221.813 436.197 185.219"; @@ -1295,6 +1298,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new WayPoint() { position = "227.997 449.227 177.42"; diff --git a/base/missions/Training1.mis b/base/missions/Training1.mis index 91006d6..b6f0a61 100644 --- a/base/missions/Training1.mis +++ b/base/missions/Training1.mis @@ -328,6 +328,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_1"; threshold2 = "60"; threshold1 = "330"; + AudioEnvironment = SmallRoom; }; }; new SimGroup(team0) { @@ -2487,6 +2488,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud3"; envMapIntensity = "0.9"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-8 48 95.5"; @@ -2501,6 +2503,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud3"; envMapIntensity = "0.9"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; new WaterBlock() { position = "-272 376 72"; @@ -2515,6 +2518,7 @@ new SimGroup(MissionGroup) { envMapTexture = "lush/skies/lushcloud3"; envMapIntensity = "0.9"; removeWetEdges = "1"; + AudioEnvironment = Underwater; }; }; new SimGroup(Sounds) { diff --git a/base/missions/Training2.mis b/base/missions/Training2.mis index e7c9207..92ee3d1 100644 --- a/base/missions/Training2.mis +++ b/base/missions/Training2.mis @@ -548,6 +548,7 @@ new SimGroup(MissionGroup) { locked = "true"; threshold1 = "240"; threshold2 = "190"; + AudioEnvironment = SmallRoom; }; new InteriorInstance(SensorPlatform) { position = "-164.017 126.239 97.5715"; @@ -654,6 +655,7 @@ new SimGroup(MissionGroup) { locked = "true"; threshold1 = "300"; threshold2 = "250"; + AudioEnvironment = SmallRoom; }; new InteriorInstance(TurretPlatform) { position = "274.154 -351.326 97.6447"; @@ -774,6 +776,7 @@ new SimGroup(MissionGroup) { locked = "true"; threshold1 = "370"; threshold2 = "150"; + AudioEnvironment = SmallRoom; }; new StaticShape(MidwaySensor) { position = "556.144 -411.448 130.704"; diff --git a/base/missions/Training3.mis b/base/missions/Training3.mis index e642a8d..380593c 100644 --- a/base/missions/Training3.mis +++ b/base/missions/Training3.mis @@ -323,6 +323,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(PitInventory) { position = "-187.186 353.598 187.307"; diff --git a/base/missions/Training4.mis b/base/missions/Training4.mis index 8a12cb0..b06d235 100644 --- a/base/missions/Training4.mis +++ b/base/missions/Training4.mis @@ -233,6 +233,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_Pulse_1"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(Team1SensorLargePulse1) { position = "47.9218 143.781 145.73"; diff --git a/base/missions/Training5.mis b/base/missions/Training5.mis index 2494e2f..431de98 100644 --- a/base/missions/Training5.mis +++ b/base/missions/Training5.mis @@ -354,6 +354,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_1"; locked = "false"; + AudioEnvironment = SmallRoom; }; }; }; @@ -371,6 +372,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_3"; locked = "true"; + AudioEnvironment = BigRoom; }; new StaticShape(ObjectiveGen1) { position = "-460.757 -348.913 6.0481"; diff --git a/base/missions/UltimaThule.mis b/base/missions/UltimaThule.mis index cf19770..0aff962 100644 --- a/base/missions/UltimaThule.mis +++ b/base/missions/UltimaThule.mis @@ -94,6 +94,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; locked = "true"; team = "2"; + AudioEnvironment = BigRoom; }; new StaticShape() { position = "41.78 -224.046 45.55"; @@ -489,6 +490,7 @@ new SimGroup(MissionGroup) { AudioProfile = "Universal_Base_2"; locked = "true"; team = "2"; + AudioEnvironment = SmallRoom; }; new SimGroup(FFAlpha) { powerCount = "2"; diff --git a/base/missions/Underhill.mis b/base/missions/Underhill.mis index 74c5f96..60e1908 100644 --- a/base/missions/Underhill.mis +++ b/base/missions/Underhill.mis @@ -643,6 +643,7 @@ new SimGroup(MissionGroup) { showTerrainInside = "0"; AudioProfile = "Universal_Base_2"; locked = "true"; + AudioEnvironment = BigRoom; }; new TSStatic() { position = "-207.892 -225.915 63.64"; diff --git a/base/missions/Whiteout.mis b/base/missions/Whiteout.mis index c40b99d..467f586 100644 --- a/base/missions/Whiteout.mis +++ b/base/missions/Whiteout.mis @@ -399,6 +399,7 @@ new SimGroup(MissionGroup) { interiorFile = "sbunk9.dif"; showTerrainInside = "0"; locked = "true"; + AudioEnvironment = SmallRoom; }; new Item() { position = "-266.535 264.41 110.952"; diff --git a/base/prefs/French Config.cs b/base/prefs/French Config.cs index 25b080d..cacc572 100644 --- a/base/prefs/French Config.cs +++ b/base/prefs/French Config.cs @@ -1,6 +1,5 @@ // Tribes 2 Input Map File -moveMap.delete(); -new ActionMap(moveMap); +moveMap.clearMap(); moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();"); moveMap.bind(keyboard, "alt e", toggleEditor); moveMap.bind(keyboard, "s", moveleft); @@ -88,10 +87,15 @@ moveMap.bind(keyboard, "ctrl-alt numpad9", selectFavorite19); moveMap.bind(keyboard, "ctrl-alt numpad0", selectFavorite20); moveMap.bind(keyboard, "w", toggleFreeLook); moveMap.bind(keyboard, "ctrl z", throwWeapon); +moveMap.bind(keyboard, "ctrl n", toggleNetDisplayHud); moveMap.bind(mouse0, "xaxis", yaw); moveMap.bind(mouse0, "yaxis", pitch); moveMap.bind(mouse0, "button0", mouseFire); moveMap.bind(mouse0, "button1", mouseJet); moveMap.bind(mouse0, "zaxis", cycleWeaponAxis); -if (!isDemo()) - GlobalActionMap.bind(keyboard, "super2", toggleConsole); +observerMap.clearMap(); +observerMap.bind(keyboard, "space", jump); +observerMap.bind(keyboard, "up", moveup); +observerMap.bind(keyboard, "down", movedown); +observerMap.bind(mouse0, "button1", mouseJet); +GlobalActionMap.bind(keyboard, "super2", toggleConsole); diff --git a/base/prefs/German config.cs b/base/prefs/German config.cs index ede5758..0c2c13d 100644 --- a/base/prefs/German config.cs +++ b/base/prefs/German config.cs @@ -1,6 +1,5 @@ // Tribes 2 Input Map File -moveMap.delete(); -new ActionMap(moveMap); +moveMap.clearMap(); moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();"); moveMap.bind(keyboard, "alt e", toggleEditor); moveMap.bind(keyboard, "s", moveleft); @@ -89,10 +88,15 @@ moveMap.bind(keyboard, "right", turnRight); moveMap.bind(keyboard, "up", panUp); moveMap.bind(keyboard, "down", panDown); moveMap.bind(keyboard, "p", resizeChatHud); +moveMap.bind(keyboard, "ctrl n", toggleNetDisplayHud); moveMap.bind(mouse0, "xaxis", yaw); moveMap.bind(mouse0, "yaxis", pitch); moveMap.bind(mouse0, "button0", mouseFire); moveMap.bind(mouse0, "button1", mouseJet); moveMap.bind(mouse0, "zaxis", cycleWeaponAxis); -if (!isDemo()) - GlobalActionMap.bind(keyboard, "^", toggleConsole); +observerMap.clearMap(); +observerMap.bind(keyboard, "space", jump); +observerMap.bind(keyboard, "up", moveup); +observerMap.bind(keyboard, "down", movedown); +observerMap.bind(mouse0, "button1", mouseJet); +GlobalActionMap.bind(keyboard, "^", toggleConsole); diff --git a/base/prefs/Italian Config.cs b/base/prefs/Italian Config.cs index fd1a8b2..effc033 100644 --- a/base/prefs/Italian Config.cs +++ b/base/prefs/Italian Config.cs @@ -1,6 +1,5 @@ // Tribes 2 Input Map File -moveMap.delete(); -new ActionMap(moveMap); +moveMap.clearMap(); moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();"); moveMap.bind(keyboard, "alt e", toggleEditor); moveMap.bind(keyboard, "s", moveleft); @@ -89,10 +88,15 @@ moveMap.bind(keyboard, "right", turnRight); moveMap.bind(keyboard, "up", panUp); moveMap.bind(keyboard, "down", panDown); moveMap.bind(keyboard, "p", resizeChatHud); +moveMap.bind(keyboard, "ctrl n", toggleNetDisplayHud); moveMap.bind(mouse0, "xaxis", yaw); moveMap.bind(mouse0, "yaxis", pitch); moveMap.bind(mouse0, "button0", mouseFire); moveMap.bind(mouse0, "button1", mouseJet); moveMap.bind(mouse0, "zaxis", cycleWeaponAxis); -if (!isDemo()) - GlobalActionMap.bind(keyboard, "backslash", toggleConsole); +observerMap.clearMap(); +observerMap.bind(keyboard, "space", jump); +observerMap.bind(keyboard, "up", moveup); +observerMap.bind(keyboard, "down", movedown); +observerMap.bind(mouse0, "button1", mouseJet); +GlobalActionMap.bind(keyboard, "backslash", toggleConsole); diff --git a/base/prefs/Spanish Config.cs b/base/prefs/Spanish Config.cs index 8bc3f61..1c7eca3 100644 --- a/base/prefs/Spanish Config.cs +++ b/base/prefs/Spanish Config.cs @@ -1,6 +1,5 @@ // Tribes 2 Input Map File -moveMap.delete(); -new ActionMap(moveMap); +moveMap.clearMap(); moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();"); moveMap.bind(keyboard, "alt e", toggleEditor); moveMap.bind(keyboard, "s", moveleft); @@ -88,10 +87,15 @@ moveMap.bind(keyboard, "right", turnRight); moveMap.bind(keyboard, "up", panUp); moveMap.bind(keyboard, "down", panDown); moveMap.bind(keyboard, "p", resizeChatHud); +moveMap.bind(keyboard, "ctrl n", toggleNetDisplayHud); moveMap.bind(mouse0, "xaxis", yaw); moveMap.bind(mouse0, "yaxis", pitch); moveMap.bind(mouse0, "button0", mouseFire); moveMap.bind(mouse0, "button1", mouseJet); moveMap.bind(mouse0, "zaxis", cycleWeaponAxis); -if (!isDemo()) - GlobalActionMap.bind(keyboard, "º", toggleConsole); +observerMap.clearMap(); +observerMap.bind(keyboard, "space", jump); +observerMap.bind(keyboard, "up", moveup); +observerMap.bind(keyboard, "down", movedown); +observerMap.bind(mouse0, "button1", mouseJet); +GlobalActionMap.bind(keyboard, "º", toggleConsole); diff --git a/base/prefs/WASDConfig.cs b/base/prefs/WASDConfig.cs index f203812..07eafbb 100644 --- a/base/prefs/WASDConfig.cs +++ b/base/prefs/WASDConfig.cs @@ -1,6 +1,5 @@ // Tribes 2 Input Map File -moveMap.delete(); -new ActionMap(moveMap); +moveMap.clearMap(); moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();"); moveMap.bind(keyboard, "s", movebackward); moveMap.bind(keyboard, "space", jump); @@ -91,16 +90,15 @@ moveMap.bind(keyboard, "return", fnAcceptTask); moveMap.bind(keyboard, "backspace", fnDeclineTask); moveMap.bind(keyboard, "x", voiceCapture); moveMap.bind(keyboard, "u", resizeChatHud); +moveMap.bind(keyboard, "ctrl n", toggleNetDisplayHud); moveMap.bind(mouse0, "xaxis", yaw); moveMap.bind(mouse0, "yaxis", pitch); moveMap.bind(mouse0, "button0", mouseFire); moveMap.bind(mouse0, "button1", mouseJet); moveMap.bind(mouse0, "zaxis", cycleWeaponAxis); -observerMap.delete(); -new ActionMap(observerMap); +observerMap.clearMap(); observerMap.bind(keyboard, "space", jump); observerMap.bind(keyboard, "e", moveup); observerMap.bind(keyboard, "c", movedown); observerMap.bind(mouse0, "button1", mouseJet); -if (!isDemo()) - GlobalActionMap.bind(keyboard, "grave", toggleConsole); +GlobalActionMap.bind(keyboard, "grave", toggleConsole); diff --git a/base/scripts/BountyGame.cs b/base/scripts/BountyGame.cs index 7e1589c..f7353c2 100644 --- a/base/scripts/BountyGame.cs +++ b/base/scripts/BountyGame.cs @@ -176,6 +176,7 @@ function BountyGame::equip(%game, %player) { for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //%player.setArmor("Light"); %player.setInventory(EnergyPack, 1); diff --git a/base/scripts/CTFGame.cs b/base/scripts/CTFGame.cs index 19b8819..7b02aa8 100644 --- a/base/scripts/CTFGame.cs +++ b/base/scripts/CTFGame.cs @@ -10,14 +10,245 @@ //exec the AI scripts exec("scripts/aiCTF.cs"); +//-- tracking --- +function CTFGame::initGameVars(%game) +{ + + if(isDemo()) + { + %game.SCORE_PER_SUICIDE = -1; + %game.SCORE_PER_TEAMKILL = -1; + %game.SCORE_PER_DEATH = -1; + + %game.SCORE_PER_KILL = 1; + %game.SCORE_PER_PLYR_FLAG_CAP = 3; + %game.SCORE_PER_TEAM_FLAG_CAP = 100; + %game.SCORE_PER_TEAM_FLAG_TOUCH = 1; + %game.SCORE_PER_GEN_DESTROY = 2; + %game.SCORE_PER_ESCORT_ASSIST = 1; + + %game.SCORE_PER_TURRET_KILL = 1; + %game.SCORE_PER_FLAG_DEFEND = 1; + %game.SCORE_PER_CARRIER_KILL = 1; + %game.SCORE_PER_FLAG_RETURN = 1; + %game.SCORE_PER_GEN_DEFEND = 1; + %game.SCORE_PER_GEN_REPAIR = 1; + + %game.FLAG_RETURN_DELAY = 45 * 1000; //45 seconds + + %game.TIME_CONSIDERED_FLAGCARRIER_THREAT = 3 * 1000; //after damaging enemy flag carrier + %game.RADIUS_GEN_DEFENSE = 20; //meters + %game.RADIUS_FLAG_DEFENSE = 20; //meters + + %game.TOUCH_DELAY_MS = 20000; //20 secs + + %game.fadeTimeMS = 2000; + + %game.notifyMineDist = 7.5; + + + %game.stalemate = false; + %game.stalemateObjsVisible = false; + %game.stalemateTimeMS = 60000; + %game.stalemateFreqMS = 15000; + %game.stalemateDurationMS = 6000; + } + if( !isDemo() ) + { + %game.SCORE_PER_SUICIDE = -10; + %game.SCORE_PER_TEAMKILL = -10; + %game.SCORE_PER_DEATH = 0; + + %game.SCORE_PER_KILL = 10; + %game.SCORE_PER_PLYR_FLAG_CAP = 30; + %game.SCORE_PER_PLYR_FLAG_TOUCH = 20; + %game.SCORE_PER_TEAM_FLAG_CAP = 100; + %game.SCORE_PER_TEAM_FLAG_TOUCH = 1; + %game.SCORE_PER_ESCORT_ASSIST = 5; + %game.SCORE_PER_HEADSHOT = 1; + + %game.SCORE_PER_TURRET_KILL = 10; // controlled + %game.SCORE_PER_TURRET_KILL_AUTO = 3; // uncontrolled + %game.SCORE_PER_FLAG_DEFEND = 5; + %game.SCORE_PER_CARRIER_KILL = 5; + %game.SCORE_PER_FLAG_RETURN = 10; + %game.SCORE_PER_STALEMATE_RETURN = 15; + %game.SCORE_PER_GEN_DEFEND = 5; + + %game.SCORE_PER_DESTROY_GEN = 10; + %game.SCORE_PER_DESTROY_SENSOR = 4; + %game.SCORE_PER_DESTROY_TURRET = 5; + %game.SCORE_PER_DESTROY_ISTATION = 2; + %game.SCORE_PER_DESTROY_VSTATION = 5; + %game.SCORE_PER_DESTROY_SOLAR = 5; + %game.SCORE_PER_DESTROY_SENTRY = 4; + %game.SCORE_PER_DESTROY_DEP_SENSOR = 1; + %game.SCORE_PER_DESTROY_DEP_INV = 2; + %game.SCORE_PER_DESTROY_DEP_TUR = 3; + + %game.SCORE_PER_DESTROY_SHRIKE = 5; + %game.SCORE_PER_DESTROY_BOMBER = 8; + %game.SCORE_PER_DESTROY_TRANSPORT = 5; + %game.SCORE_PER_DESTROY_WILDCAT = 5; + %game.SCORE_PER_DESTROY_TANK = 8; + %game.SCORE_PER_DESTROY_MPB = 12; + %game.SCORE_PER_PASSENGER = 2; + + %game.SCORE_PER_REPAIR_GEN = 8; + %game.SCORE_PER_REPAIR_SENSOR = 1; + %game.SCORE_PER_REPAIR_TURRET = 4; + %game.SCORE_PER_REPAIR_ISTATION = 2; + %game.SCORE_PER_REPAIR_VSTATION = 4; + %game.SCORE_PER_REPAIR_SOLAR = 4; + %game.SCORE_PER_REPAIR_SENTRY = 2; + %game.SCORE_PER_REPAIR_DEP_TUR = 3; + %game.SCORE_PER_REPAIR_DEP_INV = 2; + + %game.FLAG_RETURN_DELAY = 45 * 1000; //45 seconds + + %game.TIME_CONSIDERED_FLAGCARRIER_THREAT = 3 * 1000; //after damaging enemy flag carrier + %game.RADIUS_GEN_DEFENSE = 20; //meters + %game.RADIUS_FLAG_DEFENSE = 20; //meters + + %game.TOUCH_DELAY_MS = 20000; //20 secs + + %game.fadeTimeMS = 2000; + + %game.notifyMineDist = 7.5; + + + %game.stalemate = false; + %game.stalemateObjsVisible = false; + %game.stalemateTimeMS = 60000; + %game.stalemateFreqMS = 15000; + %game.stalemateDurationMS = 6000; + } + +} + package CTFGame { -function Generator::onDestroyed(%data, %obj) +function ShapeBaseData::onDestroyed(%data, %obj) { - if (Game.testGenDestroyed(%obj)) - Game.awardScoreGenDestroy(%obj.lastDamagedBy); + %scorer = %obj.lastDamagedBy; + if(!isObject(%scorer)) + return; + + if( (%scorer.getType() & $TypeMasks::GameBaseObjectType) && + %scorer.getDataBlock().catagory $= "Vehicles" ) + { + if(%name $= "BomberFlyer" || %name $= "AssaultVehicle") + %gunnerNode = 1; + else + %gunnerNode = 0; + + if(%scorer.getMountNodeObject(%gunnerNode)) + { + %destroyer = %scorer.getMountNodeObject(%gunnerNode).client; + %scorer = %destroyer; + %damagingTeam = %scorer.team; + } + } + else if(%scorer.getClassName() $= "Turret") + { + if(%scorer.getControllingClient()) + { + //manned turret + %destroyer = %scorer.getControllingClient(); + %scorer = %destroyer; + %damagingTeam = %scorer.team; + } + else return; //unmanned turret + } + + if(!%damagingTeam) + %damagingTeam = %scorer.team; + + if(%damagingTeam == %obj.team) + { + //error("team objects dont score"); + return; + } + + if(%obj.soiledByEnemyRepair) + { + //error(%obj SPC "was once repiared by an enemy. No destruction points."); + return; + } + + %objType = %obj.getDataBlock().getName(); + if(%objType $= "GeneratorLarge") + { + %score = game.awardScoreGenDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "SensorLargePulse" || %objType $= "SensorMediumPulse") + { + %score = game.awardScoreSensorDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "TurretBaseLarge") + { + %score = game.awardScoreTurretDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "StationInventory") + { + %score = game.awardScoreInvDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "StationVehicle") + { + %score = game.awardScoreVehicleStationDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "SolarPanel") + { + %score = game.awardScoreSolarDestroy(%scorer); + game.shareScore(%score, %score); + } + else if(%objType $= "SentryTurret") + { + %score = game.awardScoreSentryDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "DeployedMotionSensor" || %objType $= "DeployedPulseSensor") + { + %score = game.awardScoreDepSensorDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "TurretDeployedWallIndoor" || %objType $= "TurretDeployedFloorIndoor" || + %objType $= "TurretDeployedCeilingIndoor" || %objType $= "TurretDeployedOutdoor") + { + %score = game.awardScoreDepTurretDestroy(%scorer); + game.shareScore(%scorer, %score); + } + else if(%objType $= "DeployedStationInventory") + { + %score = game.awardScoreDepStationDestroy(%scorer); + game.shareScore(%scorer, %score); + } + } +function ShapeBaseData::onDisabled(%data, %obj) +{ + %obj.wasDisabled = true; + Parent::onDisabled(%data, %obj); +} + +function RepairGunImage::onRepair(%this, %obj, %slot) +{ + Parent::onRepair(%this, %obj, %slot); + %target = %obj.repairing; + if(%target && %target.team != %obj.team) + { + //error("Enemy stuff("@%obj@") is being repaired (by "@%target@")"); + %target.soiledByEnemyRepair = true; + } +} + + function Flag::objectiveInit(%data, %flag) { if (!%flag.isTeamSkinned) @@ -26,9 +257,11 @@ function Flag::objectiveInit(%data, %flag) %group = %flag.getGroup(); } %flag.originalPosition = %flag.getTransform(); + $flagPos[%flag.team] = %flag.originalPosition; %flag.isHome = true; %flag.carrier = ""; - setTargetSkin(%flag.getTarget(), $TeamSkin[%flag.team]); + %flag.grabber = ""; + setTargetSkin(%flag.getTarget(), CTFGame::getTeamSkin(CTFGame, %flag.team)); setTargetSensorGroup(%flag.getTarget(), %flag.team); setTargetAlwaysVisMask(%flag.getTarget(), 0x7); setTargetRenderMask(%flag.getTarget(), getTargetRenderMask(%flag.getTarget()) | 0x2); @@ -53,7 +286,7 @@ function Flag::objectiveInit(%data, %flag) } // set the nametag on the target - setTargetName(%flag.getTarget(), $teamName[%flag.team]); + setTargetName(%flag.getTarget(), CTFGame::getTeamName(CTFGame, %flag.team)); // create a marker on this guy %flag.waypoint = new MissionMarker() { @@ -63,59 +296,24 @@ function Flag::objectiveInit(%data, %flag) MissionCleanup.add(%flag.waypoint); // create a target for this (there is no MissionMarker::onAdd script call) - %target = createTarget(%flag.waypoint, $teamName[%flag.team], "", "", 'Base', %flag.team, 0); + %target = createTarget(%flag.waypoint, CTFGame::getTeamName( CTFGame, %flag.team), "", "", 'Base', %flag.team, 0); setTargetAlwaysVisMask(%target, 0xffffffff); //store the flag in an array $TeamFlag[%flag.team] = %flag; } -}; - -//-- tracking --- -// .deaths .kills .genDefends .carrierKills .flagDefends .escortAssists .suicides .teamKills .turretKills .flagCaps -// .flagReturns .genDestroys .genRepairs - -function CTFGame::initGameVars(%game) +function Flag::onEnterLiquid(%data, %obj, %coverage, %type) { - %game.SCORE_PER_SUICIDE = -1; - %game.SCORE_PER_TEAMKILL = -1; - %game.SCORE_PER_DEATH = -1; - - %game.SCORE_PER_KILL = 1; - %game.SCORE_PER_PLYR_FLAG_CAP = 3; - %game.SCORE_PER_TEAM_FLAG_CAP = 100; - %game.SCORE_PER_TEAM_FLAG_TOUCH = 1; - %game.SCORE_PER_GEN_DESTROY = 2; - %game.SCORE_PER_ESCORT_ASSIST = 1; - - %game.SCORE_PER_TURRET_KILL = 1; - %game.SCORE_PER_FLAG_DEFEND = 1; - %game.SCORE_PER_CARRIER_KILL = 1; - %game.SCORE_PER_FLAG_RETURN = 1; - %game.SCORE_PER_GEN_DEFEND = 1; - %game.SCORE_PER_GEN_REPAIR = 1; - - %game.FLAG_RETURN_DELAY = 45 * 1000; //45 seconds - - %game.TIME_CONSIDERED_FLAGCARRIER_THREAT = 3 * 1000; //after damaging enemy flag carrier - %game.RADIUS_GEN_DEFENSE = 20; //meters - %game.RADIUS_FLAG_DEFENSE = 20; //meters - - %game.TOUCH_DELAY_MS = 20000; //20 secs - - %game.fadeTimeMS = 2000; - - %game.notifyMineDist = 7.5; - - - %game.stalemate = false; - %game.stalemateObjsVisible = false; - %game.stalemateTimeMS = 60000; - %game.stalemateFreqMS = 15000; - %game.stalemateDurationMS = 6000; + if(%type > 3) // 1-3 are water, 4+ is lava and quicksand(?) + { + //error("flag("@%obj@") is in liquid type" SPC %type); + game.schedule(3000, flagReturn, %obj); + } } +}; + //-------------------------------------------------------------------------- // need to have this for the corporate maps which could not be fixed function SimObject::clearFlagWaypoints(%this) @@ -135,6 +333,133 @@ function SimGroup::clearFlagWaypoints(%this) %this.getObject(%i).clearFlagWaypoints(); } +function CTFGame::getTeamSkin(%game, %team) +{ + + if(isDemo() || $host::tournamentMode) + { + return $teamSkin[%team]; + } + + else + { + //error("CTFGame::getTeamSkin"); + if(!$host::useCustomSkins) + { + %terrain = MissionGroup.musicTrack; + //error("Terrain type is: " SPC %terrain); + switch$(%terrain) + { + case "lush": + if(%team == 1) + %skin = 'beagle'; + else if(%team == 2) + %skin = 'dsword'; + else %skin = 'base'; + + case "badlands": + if(%team == 1) + %skin = 'swolf'; + else if(%team == 2) + %skin = 'dsword'; + else %skin = 'base'; + + case "ice": + if(%team == 1) + %skin = 'swolf'; + else if(%team == 2) + %skin = 'beagle'; + else %skin = 'base'; + + case "desert": + if(%team == 1) + %skin = 'cotp'; + else if(%team == 2) + %skin = 'beagle'; + else %skin = 'base'; + + case "Volcanic": + if(%team == 1) + %skin = 'dsword'; + else if(%team == 2) + %skin = 'cotp'; + else %skin = 'base'; + + default: + if(%team == 2) + %skin = 'baseb'; + else %skin = 'base'; + } + } + else %skin = $teamSkin[%team]; + + //error("%skin = " SPC getTaggedString(%skin)); + return %skin; +} +} + +function CTFGame::getTeamName(%game, %team) +{ + if ( isDemo() || $host::tournamentMode) + return $TeamName[%team]; + + //error("CTFGame::getTeamName"); + if(!$host::useCustomSkins) + { + %terrain = MissionGroup.musicTrack; + //error("Terrain type is: " SPC %terrain); + switch$(%terrain) + { + case "lush": + if(%team == 1) + %name = 'Blood Eagle'; + else if(%team == 2) + %name = 'Diamond Sword'; + + case "badlands": + if(%team == 1) + %name = 'Starwolf'; + else if(%team == 2) + %name = 'Diamond Sword'; + + case "ice": + if(%team == 1) + %name = 'Starwolf'; + else if(%team == 2) + %name = 'Blood Eagle'; + + case "desert": + if(%team == 1) + %name = 'Phoenix'; + else if(%team == 2) + %name = 'Blood Eagle'; + + case "Volcanic": + if(%team == 1) + %name = 'Diamond Sword'; + else if(%team == 2) + %name = 'Phoenix'; + + default: + if(%team == 2) + %name = 'Inferno'; + else + %name = 'Storm'; + } + + if(%name $= "") + { + //error("No team Name ============================="); + %name = $teamName[%team]; + } + } + else + %name = $TeamName[%team]; + + //error("%name = " SPC getTaggedString(%name)); + return %name; +} + //-------------------------------------------------------------------------- function CTFGame::missionLoadDone(%game) { @@ -150,6 +475,10 @@ function CTFGame::missionLoadDone(%game) //reset some globals, just in case... $dontScoreTimer[1] = false; $dontScoreTimer[2] = false; + + echo( "starting camp thread..." ); + %game.campThread_1 = schedule( 1000, 0, "checkVehicleCamping", 1 ); + %game.campThread_2 = schedule( 1000, 0, "checkVehicleCamping", 2 ); } function CTFGame::playerTouchFlag(%game, %player, %flag) @@ -167,6 +496,7 @@ function CTFGame::playerTouchFlag(%game, %player, %flag) // toggle visibility of the flag setTargetRenderMask(%flag.waypoint.getTarget(), %flag.isHome ? 0 : 1); + } function CTFGame::playerTouchOwnFlag(%game, %player, %flag) @@ -189,7 +519,7 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag) %player.holdingFlag = %flag; //%player has this flag %flag.carrier = %player; //this %flag is carried by %player - %player.mountImage(FlagImage, $FlagSlot, true, $teamSkin[%flag.team]); + %player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team)); %game.playerGotFlagTarget(%player); //only cancel the return timer if the player is in bounds... @@ -213,6 +543,7 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag) if (%startStalemate) %game.stalemateSchedule = %game.schedule(%game.stalemateTimeMS, beginStalemate); + } %flag.hide(true); @@ -222,10 +553,11 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag) %flag.stand.getDataBlock().onFlagTaken(%flag.stand);//animate, if exterior stand $flagStatus[%flag.team] = %client.nameBase; - messageTeamExcept(%client, 'MsgCTFFlagTaken', '\c2Teammate %1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, $teamName[%flag.team], %flag.team, %client.nameBase); + %teamName = %game.getTeamName(%flag.team); + messageTeamExcept(%client, 'MsgCTFFlagTaken', '\c2Teammate %1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase); messageTeam(%flag.team, 'MsgCTFFlagTaken', '\c2Your flag has been taken by %1!~wfx/misc/flag_taken.wav',%client.name, 0, %flag.team, %client.nameBase); - messageTeam(0, 'MsgCTFFlagTaken', '\c2%1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, $teamName[%flag.team], %flag.team, %client.nameBase); - messageClient(%client, 'MsgCTFFlagTaken', '\c2You took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, $teamName[%flag.team], %flag.team, %client.nameBase); + messageTeam(0, 'MsgCTFFlagTaken', '\c2%1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase); + messageClient(%client, 'MsgCTFFlagTaken', '\c2You took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") took team "@%flag.team@" flag"); //call the AI function @@ -268,11 +600,12 @@ function CTFGame::playerDroppedFlag(%game, %player) %player.unMountImage($FlagSlot); %flag.hide(false); //Does the throwItem function handle this? - messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag.~wfx/misc/flag_drop.wav', %client.name, $teamName[%flag.team], %flag.team); + %teamName = %game.getTeamName(%flag.team); + messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag.~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team); messageTeam(%flag.team, 'MsgCTFFlagDropped', '\c2Your flag has been dropped by %1!~wfx/misc/flag_drop.wav', %client.name, 0, %flag.team); - messageTeam(0, 'MsgCTFFlagDropped', '\c2%1 dropped the %2 flag.~wfx/misc/flag_drop.wav', %client.name, $teamName[%flag.team], %flag.team); + messageTeam(0, 'MsgCTFFlagDropped', '\c2%1 dropped the %2 flag.~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team); if(!%player.client.outOfBounds) - messageClient(%client, 'MsgCTFFlagDropped', '\c2You dropped the %2 flag.~wfx/misc/flag_drop.wav', 0, $teamName[%flag.team], %flag.team); + messageClient(%client, 'MsgCTFFlagDropped', '\c2You dropped the %2 flag.~wfx/misc/flag_drop.wav', 0, %teamName, %flag.team); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") dropped team "@%flag.team@" flag"); //don't duplicate the schedule if there's already one in progress... @@ -291,16 +624,17 @@ function CTFGame::flagCap(%game, %player) %game.playerLostFlagTarget(%player); //award points to player and team - messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag!~wfx/misc/flag_capture.wav', %client.name, $teamName[%flag.team], %flag.team, %client.team); + %teamName = %game.getTeamName(%flag.team); + messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag!~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team); messageTeam(%flag.team, 'MsgCTFFlagCapped', '\c2Your flag was captured by %1.~wfx/misc/flag_lost.wav', %client.name, 0, %flag.team, %client.team); - messageTeam(0, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag!~wfx/misc/flag_capture.wav', %client.name, $teamName[%flag.team], %flag.team, %client.team); - messageClient(%client, 'MsgCTFFlagCapped', '\c2You captured the %2 flag!~wfx/misc/flag_capture.wav', 0, $teamName[%flag.team], %flag.team, %client.team); + messageTeam(0, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag!~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team); + messageClient(%client, 'MsgCTFFlagCapped', '\c2You captured the %2 flag!~wfx/misc/flag_capture.wav', 0, %teamName, %flag.team, %client.team); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") capped team "@%client.team@" flag"); %player.holdingFlag = ""; //no longer holding it. %player.unMountImage($FlagSlot); - %game.flagReset(%flag); %game.awardScoreFlagCap(%client, %flag); + %game.flagReset(%flag); //call the AI function %game.AIflagCap(%player, %flag); @@ -308,10 +642,18 @@ function CTFGame::flagCap(%game, %player) //if this cap didn't end the game, play the announcer... if ($missionRunning) { - if ($teamName[%client.team] $= 'Inferno') + if (%game.getTeamName(%client.team) $= 'Inferno') messageAll("", '~wvoice/announcer/ann.infscores.wav'); - else if ($teamName[%client.team] $= 'Storm') + else if (%game.getTeamName(%client.team) $= 'Storm') messageAll("", '~wvoice/announcer/ann.stoscores.wav'); + else if (%game.getTeamName(%client.team) $= 'Phoenix') + messageAll("", '~wvoice/announcer/ann.pxscore.wav'); + else if (%game.getTeamName(%client.team) $= 'Blood Eagle') + messageAll("", '~wvoice/announcer/ann.bescore.wav'); + else if (%game.getTeamName(%client.team) $= 'Diamond Sword') + messageAll("", '~wvoice/announcer/ann.dsscore.wav'); + else if (%game.getTeamName(%client.team) $= 'Starwolf') + messageAll("", '~wvoice/announcer/ann.swscore.wav'); } } @@ -330,25 +672,49 @@ function CTFGame::flagReturn(%game, %flag, %player) %otherTeam = 2; else %otherTeam = 1; + %teamName = %game.getTeamName(%flag.team); if (%player !$= "") { //a player returned it %client = %player.client; messageTeamExcept(%client, 'MsgCTFFlagReturned', '\c2Teammate %1 returned your flag to base.~wfx/misc/flag_return.wav', %client.name, 0, %flag.team); - messageTeam(%otherTeam, 'MsgCTFFlagReturned', '\c2Enemy %1 returned the %2 flag.~wfx/misc/flag_return.wav', %client.name, $teamName[%flag.team], %flag.team); - messageTeam(0, 'MsgCTFFlagReturned', '\c2%1 returned the %2 flag.~wfx/misc/flag_return.wav', %client.name, $teamName[%flag.team], %flag.team); - messageClient(%client, 'MsgCTFFlagReturned', '\c2You returned your flag.~wfx/misc/flag_return.wav', 0, $teamName[%flag.team], %flag.team); + messageTeam(%otherTeam, 'MsgCTFFlagReturned', '\c2Enemy %1 returned the %2 flag.~wfx/misc/flag_return.wav', %client.name, %teamName, %flag.team); + messageTeam(0, 'MsgCTFFlagReturned', '\c2%1 returned the %2 flag.~wfx/misc/flag_return.wav', %client.name, %teamName, %flag.team); + messageClient(%client, 'MsgCTFFlagReturned', '\c2You returned your flag.~wfx/misc/flag_return.wav', 0, %teamName, %flag.team); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") returned team "@%flag.team@" flag"); - %game.awardScoreFlagReturn(%player.client); + + // find out what type of return it is + // stalemate return? + if(!isDemo()) + { + if(%game.stalemate) + { + //error("Stalemate return!!!"); + %game.awardScoreStalemateReturn(%player.client); + } + // regular return + else + { + %enemyFlagDist = vectorDist($flagPos[%flag.team], $flagPos[%otherTeam]); + %dist = vectorDist(%flag.position, %flag.originalPosition); + + %rawRatio = %dist/%enemyFlagDist; + %ratio = %rawRatio < 1 ? %rawRatio : 1; + %percentage = mFloor( (%ratio) * 10 ) * 10; + %game.awardScoreFlagReturn(%player.client, %percentage); + } + } + else %game.awardScoreFlagReturn(%player.client); } else { //returned due to timer - messageTeam(%otherTeam, 'MsgCTFFlagReturned', '\c2The %2 flag was returned to base.~wfx/misc/flag_return.wav', 0, $teamName[%flag.team], %flag.team); //because it was dropped for too long + messageTeam(%otherTeam, 'MsgCTFFlagReturned', '\c2The %2 flag was returned to base.~wfx/misc/flag_return.wav', 0, %teamName, %flag.team); //because it was dropped for too long messageTeam(%flag.team, 'MsgCTFFlagReturned', '\c2Your flag was returned.~wfx/misc/flag_return.wav', 0, 0, %flag.team); - messageTeam(0, 'MsgCTFFlagReturned', '\c2The %2 flag was returned to base.~wfx/misc/flag_return.wav', 0, $teamName[%flag.team], %flag.team); + messageTeam(0, 'MsgCTFFlagReturned', '\c2The %2 flag was returned to base.~wfx/misc/flag_return.wav', 0, %teamName, %flag.team); logEcho("team "@%flag.team@" flag returned (timeout)"); } + %game.flagReset(%flag); } @@ -425,6 +791,7 @@ function CTFGame::flagReset(%game, %flag) %flag.setTransform(%flag.originalPosition); %flag.isHome = true; %flag.carrier = ""; + %flag.grabber = ""; $flagStatus[%flag.team] = ""; %flag.hide(false); if(%flag.stand) @@ -477,14 +844,22 @@ function CTFGame::gameOver(%game) //send the winner message %winner = ""; if ($teamScore[1] > $teamScore[2]) - %winner = $teamName[1]; + %winner = %game.getTeamName(1); else if ($teamScore[2] > $teamScore[1]) - %winner = $teamName[2]; + %winner = %game.getTeamName(2); if (%winner $= 'Storm') messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.stowins.wav" ); else if (%winner $= 'Inferno') messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.infwins.wav" ); + else if (%winner $= 'Starwolf') + messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.swwin.wav" ); + else if (%winner $= 'Blood Eagle') + messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.bewin.wav" ); + else if (%winner $= 'Diamond Sword') + messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.dswin.wav" ); + else if (%winner $= 'Phoenix') + messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.pxwin.wav" ); else messageAll('MsgGameOver', "Match has ended.~wvoice/announcer/ann.gameover.wav" ); @@ -500,6 +875,16 @@ function CTFGame::gameOver(%game) function CTFGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %implement, %damageLoc) { + if(%clVictim.headshot && %damageType == $DamageType::Laser && %clVictim.team != %clAttacker.team) + { + %clAttacker.scoreHeadshot++; + if (%game.SCORE_PER_HEADSHOT != 0) + { + messageClient(%clAttacker, 'msgHeadshot', '\c0You received a %1 point bonus for a successful headshot.', %game.SCORE_PER_HEADSHOT); + } + %game.recalcScore(%clAttacker); + } + //the DefaultGame will set some vars DefaultGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %implement, %damageLoc); @@ -511,6 +896,8 @@ function CTFGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %i cancel(%clAttacker.threatTimer); //restart timer %clAttacker.threatTimer = schedule(%game.TIME_CONSIDERED_FLAGCARRIER_THREAT, %clAttacker.dmgdFlagCarrier = false); } + + } //////////////////////////////////////////////////////////////////////////////////////// @@ -521,7 +908,7 @@ function CTFGame::clientMissionDropReady(%game, %client) for(%i = 1; %i <= %game.numTeams; %i++) { $Teams[%i].score = 0; - messageClient(%client, 'MsgCTFAddTeam', "", %i, $TeamName[%i], $flagStatus[%i], $TeamScore[%i]); + messageClient(%client, 'MsgCTFAddTeam', "", %i, %game.getTeamName(%i), $flagStatus[%i], $TeamScore[%i]); } //%game.populateTeamRankArray(%client); @@ -549,19 +936,62 @@ function CTFGame::recalcScore(%game, %cl) else %killPoints = (%killValue * %killValue) / (%killValue - %deathValue); - %cl.offenseScore = %killPoints + - %cl.suicides * %game.SCORE_PER_SUICIDE + //-1 - %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1 - %cl.teamKills * %game.SCORE_PER_TEAMKILL + // -1 - %cl.flagCaps * %game.SCORE_PER_PLYR_FLAG_CAP + // 3 - %cl.genDestroys * %game.SCORE_PER_GEN_DESTROY; // 2 + if(!isDemo()) + { + %cl.offenseScore = %killPoints + + %cl.suicides * %game.SCORE_PER_SUICIDE + + %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + + %cl.teamKills * %game.SCORE_PER_TEAMKILL + + %cl.scoreHeadshot * %game.SCORE_PER_HEADSHOT + + %cl.flagCaps * %game.SCORE_PER_PLYR_FLAG_CAP + + %cl.flagGrabs * %game.SCORE_PER_PLYR_FLAG_TOUCH + + %cl.genDestroys * %game.SCORE_PER_DESTROY_GEN + + %cl.sensorDestroys * %game.SCORE_PER_DESTROY_SENSOR + + %cl.turretDestroys * %game.SCORE_PER_DESTROY_TURRET + + %cl.iStationDestroys * %game.SCORE_PER_DESTROY_ISTATION + + %cl.vstationDestroys * %game.SCORE_PER_DESTROY_VSTATION + + %cl.solarDestroys * %game.SCORE_PER_DESTROY_SOLAR + + %cl.sentryDestroys * %game.SCORE_PER_DESTROY_SENTRY + + %cl.depSensorDestroys * %game.SCORE_PER_DESTROY_DEP_SENSOR + + %cl.depTurretDestroys * %game.SCORE_PER_DESTROY_DEP_TUR + + %cl.depStationDestroys * %game.SCORE_PER_DESTROY_DEP_INV + + %cl.vehicleScore + %cl.vehicleBonus; - %cl.defenseScore = %cl.genDefends * %game.SCORE_PER_GEN_DEFEND + // 1 - %cl.carrierKills * %game.SCORE_PER_CARRIER_KILL + // 1 - %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1 - %cl.turretKills * %game.SCORE_PER_TURRET_KILL + // 1 - %cl.flagReturns * %game.SCORE_PER_FLAG_RETURN + // 1 - %cl.genRepairs * %game.SCORE_PER_GEN_REPAIR; // 1 + %cl.defenseScore = %cl.genDefends * %game.SCORE_PER_GEN_DEFEND + + %cl.flagDefends * %game.SCORE_PER_FLAG_DEFEND + + %cl.carrierKills * %game.SCORE_PER_CARRIER_KILL + + %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + + %cl.turretKills * %game.SCORE_PER_TURRET_KILL_AUTO + + %cl.mannedturretKills * %game.SCORE_PER_TURRET_KILL + + %cl.genRepairs * %game.SCORE_PER_REPAIR_GEN + + %cl.SensorRepairs * %game.SCORE_PER_REPAIR_SENSOR + + %cl.TurretRepairs * %game.SCORE_PER_REPAIR_TURRET + + %cl.StationRepairs * %game.SCORE_PER_REPAIR_ISTATION + + %cl.VStationRepairs * %game.SCORE_PER_REPAIR_VSTATION + + %cl.solarRepairs * %game.SCORE_PER_REPAIR_SOLAR + + %cl.sentryRepairs * %game.SCORE_PER_REPAIR_SENTRY + + %cl.depInvRepairs * %game.SCORE_PER_REPAIR_DEP_INV + + %cl.depTurretRepairs * %game.SCORE_PER_REPAIR_DEP_TUR + + %cl.returnPts; + } + + if( isDemo() ) + { + %cl.offenseScore = %killPoints + + %cl.flagDefends * %game.SCORE_PER_FLAG_DEFEND + + %cl.suicides * %game.SCORE_PER_SUICIDE + //-1 + %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1 + %cl.teamKills * %game.SCORE_PER_TEAMKILL + // -1 + %cl.flagCaps * %game.SCORE_PER_PLYR_FLAG_CAP + // 3 + %cl.genDestroys * %game.SCORE_PER_GEN_DESTROY; // 2 + + %cl.defenseScore = %cl.genDefends * %game.SCORE_PER_GEN_DEFEND + // 1 + %cl.carrierKills * %game.SCORE_PER_CARRIER_KILL + // 1 + %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1 + %cl.turretKills * %game.SCORE_PER_TURRET_KILL + // 1 + %cl.flagReturns * %game.SCORE_PER_FLAG_RETURN + // 1 + %cl.genRepairs * %game.SCORE_PER_GEN_REPAIR; // 1 + } %cl.score = mFloor(%cl.offenseScore + %cl.defenseScore); @@ -570,11 +1000,23 @@ function CTFGame::recalcScore(%game, %cl) function CTFGame::updateKillScores(%game, %clVictim, %clKiller, %damageType, %implement) { +// is this a vehicle kill rather than a player kill + + // console error message suppression + if( isObject( %implement ) ) + { + if( %implement.getDataBlock().getName() $= "AssaultPlasmaTurret" || %implement.getDataBlock().getName() $= "BomberTurret" ) // gunner + %clKiller = %implement.vehicleMounted.getMountNodeObject(1).client; + else if(%implement.getDataBlock().catagory $= "Vehicles") // pilot + %clKiller = %implement.getMountNodeObject(0).client; + } + if(%game.testTurretKill(%implement)) //check for turretkill before awarded a non client points for a kill - %game.awardScoreTurretKill(%clVictim, %implement); + %game.awardScoreTurretKill(%clVictim, %implement); else if (%game.testKill(%clVictim, %clKiller)) //verify victim was an enemy { - %game.awardScoreKill(%clKiller); + %value = %game.awardScoreKill(%clKiller); + %game.shareScore(%clKiller, %value); %game.awardScoreDeath(%clVictim); if (%game.testGenDefend(%clVictim, %clKiller)) @@ -645,37 +1087,89 @@ function CTFGame::testEscortAssist(%game, %victimID, %killerID) return (%victimID.dmgdFlagCarrier); } -function CTFGame::testGenDestroyed(%game, %obj) -{ - return (%obj.lastDamagedByTeam != %obj.team); -} - function CTFGame::testValidRepair(%game, %obj) { - return ((%obj.lastDamagedByTeam != %obj.team) && (%obj.repairedBy.team == %obj.team)); + if(!%obj.wasDisabled) + { + //error(%obj SPC "was never disabled"); + return false; + } + else if(%obj.lastDamagedByTeam == %obj.team) + { + //error(%obj SPC "was last damaged by a friendly"); + return false; + } + else if(%obj.team != %obj.repairedBy.team) + { + //error(%obj SPC "was repaired by an enemy"); + return false; + } + else + { + if(%obj.soiledByEnemyRepair) + %obj.soiledByEnemyRepair = false; + return true; + } } function CTFGame::awardScoreFlagCap(%game, %cl, %flag) { - %cl.flagCaps++; - $TeamScore[%cl.team] += %game.SCORE_PER_TEAM_FLAG_CAP; - messageAll('MsgTeamScoreIs', "", %cl.team, $TeamScore[%cl.team]); + %cl.flagCaps++; + $TeamScore[%cl.team] += %game.SCORE_PER_TEAM_FLAG_CAP; + messageAll('MsgTeamScoreIs', "", %cl.team, $TeamScore[%cl.team]); - if (%game.SCORE_PER_TEAM_FLAG_CAP > 0) - { - %plural = (%game.SCORE_PER_PLYR_FLAG_CAP != 1 ? 's' : ""); - messageClient(%cl, 'msgCTFFriendCap', '\c0You receive %1 point%2 for capturing the enemy flag!', %game.SCORE_PER_PLYR_FLAG_CAP, %plural); - messageTeamExcept(%cl, 'msgCTFFriendCap', '\c0%1 receives %2 point%3 for capturing the enemy flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); - messageTeam(%flag.team, 'msgCTFEnemyCap', '\c0Enemy %1 received %2 point%3 for capturing your flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); - } - %game.recalcScore(%cl); - %game.checkScoreLimit(%cl.team); + %flag.grabber.flagGrabs++; + + if (%game.SCORE_PER_TEAM_FLAG_CAP > 0) + { + %plural = (%game.SCORE_PER_PLYR_FLAG_CAP != 1 ? 's' : ""); + %plural2 = (%game.SCORE_PER_PLYR_FLAG_TOUCH != 1 ? 's' : ""); + + if(isDemo()) + { + messageTeam(%flag.team, 'msgCTFEnemyCap', '\c0Enemy %1 received %2 point%3 for capturing your flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + messageTeamExcept(%cl, 'msgCTFFriendCap', '\c0Teammate %1 receives %2 point%3 for capturing the enemy flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + messageClient(%cl, 'msgCTFFriendCap', '\c0You receive %1 point%2 for stealing and capturing the enemy flag!', %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + } + + if(!isDemo()) + { + if(%cl == %flag.grabber) + { + messageClient(%cl, 'msgCTFFriendCap', '\c0You receive %1 point%2 for stealing and capturing the enemy flag!', %game.SCORE_PER_PLYR_FLAG_CAP+%game.SCORE_PER_PLYR_FLAG_TOUCH, %plural); + messageTeam(%flag.team, 'msgCTFEnemyCap', '\c0Enemy %1 received %2 point%3 for capturing your flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP+%game.SCORE_PER_PLYR_FLAG_TOUCH, %plural); + messageTeamExcept(%cl, 'msgCTFFriendCap', '\c0Teammate %1 receives %2 point%3 for capturing the enemy flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP+%game.SCORE_PER_PLYR_FLAG_TOUCH, %plural); + } + else + { + if(isObject(%flag.grabber)) // is the grabber still here? + { + messageClient(%cl, 'msgCTFFriendCap', '\c0You receive %1 point%2 for capturing the enemy flag! %3 gets %4 point%5 for the steal assist.', %game.SCORE_PER_PLYR_FLAG_CAP, %plural, %flag.grabber.name, %game.SCORE_PER_PLYR_FLAG_TOUCH, %plural2); + messageClient(%flag.grabber, 'msgCTFFriendCap', '\c0You receive %1 point%2 for stealing a flag that was subsequently capped by %3.', %game.SCORE_PER_PLYR_FLAG_TOUCH, %plural2, %cl.name); + } + else + messageClient(%cl, 'msgCTFFriendCap', '\c0You receive %1 point%2 for capturing the enemy flag!', %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + + messageTeamExcept(%cl, 'msgCTFFriendCap', '\c0Teammate %1 receives %2 point%3 for capturing the enemy flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + messageTeam(%flag.team, 'msgCTFEnemyCap', '\c0Enemy %1 received %2 point%3 for capturing your flag!', %cl.name, %game.SCORE_PER_PLYR_FLAG_CAP, %plural); + } + } + } + + %game.recalcScore(%cl); + + if(isObject(%flag.grabber)) + %game.recalcScore(%flag.grabber); + + %game.checkScoreLimit(%cl.team); } function CTFGame::awardScoreFlagTouch(%game, %cl, %flag) { - %team = %cl.team; + + %flag.grabber = %cl; + %team = %cl.team; if( $DontScoreTimer[%team] ) return; @@ -683,7 +1177,7 @@ function CTFGame::awardScoreFlagTouch(%game, %cl, %flag) //tinman - needed to remove all game calls to "eval" for the PURE server... %game.schedule(%game.TOUCH_DELAY_MS, resetDontScoreTimer, %team); //schedule(%game.TOUCH_DELAY_MS, 0, eval, "$dontScoreTimer["@%team@"] = false;"); - //schedule(%game.TOUCH_DELAY_MS, 0, eval, "$dontScoreTimer["@%team@"] = false;"); + schedule(%game.TOUCH_DELAY_MS, 0, eval, "$dontScoreTimer["@%team@"] = false;"); $TeamScore[%team] += %game.SCORE_PER_TEAM_FLAG_TOUCH; messageAll('MsgTeamScoreIs', "", %team, $TeamScore[%team]); @@ -691,7 +1185,7 @@ function CTFGame::awardScoreFlagTouch(%game, %cl, %flag) { %plural = (%game.SCORE_PER_TEAM_FLAG_TOUCH != 1 ? 's' : ""); messageTeam(%team, 'msgCTFFriendFlagTouch', '\c0Your team receives %1 point%2 for grabbing the enemy flag!', %game.SCORE_PER_TEAM_FLAG_TOUCH, %plural); - messageTeam(%flag.team, 'msgCTFEnemyFlagTouch', '\c0Enemy team %1 receives %2 point%3 for grabbing your flag!', %cl.name, %game.SCORE_PER_TEAM_FLAG_TOUCH, %plural); + messageTeam(%flag.team, 'msgCTFEnemyFlagTouch', '\c0Enemy %1 receives %2 point%3 for grabbing your flag!', %cl.name, %game.SCORE_PER_TEAM_FLAG_TOUCH, %plural); } %game.recalcScore(%cl); %game.checkScoreLimit(%team); @@ -712,37 +1206,166 @@ function CTFGame::checkScoreLimit(%game, %team) %game.scoreLimitReached(); } -function CTFGame::awardScoreFlagReturn(%game, %cl) +function CTFGame::awardScoreFlagReturn(%game, %cl, %perc) { - %cl.flagReturns++; - if (%game.SCORE_PER_FLAG_RETURN != 0) + if(isDemo()) { - messageClient(%cl, 'scoreFlaRetMsg', '\c0You received a %1 point bonus for returning your flag.', %game.SCORE_PER_FLAG_RETURN); - messageTeamExcept(%cl, 'scoreFlaRetMsg', '\c0Teammate %1 received a %2 point bonus for returning your flag.', %cl.name, %game.SCORE_PER_FLAG_RETURN); + %cl.flagReturns++; + if (%game.SCORE_PER_FLAG_RETURN != 0) + { + messageClient(%cl, 'scoreFlaRetMsg', '\c0You received a %1 point bonus for returning your flag.', %game.SCORE_PER_FLAG_RETURN); + //messageTeamExcept(%cl, 'scoreFlaRetMsg', '\c0Teammate %1 received a %2 point bonus for returning your flag.', %cl.name, %game.SCORE_PER_FLAG_RETURN); + } + %game.recalcScore(%cl); } - %game.recalcScore(%cl); + else + { + if (%game.SCORE_PER_FLAG_RETURN != 0) + { + %pts = mfloor( %game.SCORE_PER_FLAG_RETURN * (%perc/100) ); + if(%perc == 100) + messageClient(%cl, 'scoreFlaRetMsg', 'Flag return - exceeded capping distance - %1 point bonus.', %pts, %perc); + else if(%perc == 0) + messageClient(%cl, 'scoreFlaRetMsg', 'You gently place the flag back on the stand.', %pts, %perc); + else + messageClient(%cl, 'scoreFlaRetMsg', '\c0Flag return from %2%% of capping distance - %1 point bonus.', %pts, %perc); + %cl.returnPts += %pts; + } + %game.recalcScore(%cl); + return %game.SCORE_PER_FLAG_RETURN; + } } +function CTFGame::awardScoreStalemateReturn(%game, %cl) +{ + if (%game.SCORE_PER_STALEMATE_RETURN != 0) + { + messageClient(%cl, 'scoreStaleRetMsg', '\c0You received a %1 point bonus for a stalemate-breaking, flag return.', %game.SCORE_PER_STALEMATE_RETURN); + %cl.returnPts += %game.SCORE_PER_STALEMATE_RETURN; + } + %game.recalcScore(%cl); + return %game.SCORE_PER_STALEMATE_RETURN; +} + +// Asset Destruction scoring function CTFGame::awardScoreGenDestroy(%game,%cl) { %cl.genDestroys++; - if (%game.SCORE_PER_GEN_DESTROY != 0) + if (%game.SCORE_PER_DESTROY_GEN != 0) { - messageClient(%cl, 'msgGenDes', '\c0You received a %1 point bonus for destroying an enemy generator.', %game.SCORE_PER_GEN_DESTROY); - messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + messageClient(%cl, 'msgGenDes', '\c0You received a %1 point bonus for destroying an enemy generator.', %game.SCORE_PER_DESTROY_GEN); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); } %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_GEN; } -function CTFGame::awardScoreGenRepair(%game, %cl) +function CTFGame::awardScoreSensorDestroy(%game,%cl) { - %cl.genRepairs++; - if (%game.SCORE_PER_GEN_REPAIR != 0) - { - messageClient(%cl, 'msgGenRep', '\c0You received a %1 point bonus for repairing a generator.', %game.SCORE_PER_GEN_REPAIR); - messageTeamExcept(%cl, 'msgGenRep', '\c0Teammate %1 received a %2 point bonus for repairing a generator.', %cl.name, %game.SCORE_PER_GEN_REPAIR); - } - %game.recalcScore(%cl); + %cl.sensorDestroys++; + if (%game.SCORE_PER_DESTROY_SENSOR != 0) + { + messageClient(%cl, 'msgSensorDes', '\c0You received a %1 point bonus for destroying an enemy sensor.', %game.SCORE_PER_DESTROY_SENSOR); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_SENSOR; +} + +function CTFGame::awardScoreTurretDestroy(%game,%cl) +{ + %cl.turretDestroys++; + if (%game.SCORE_PER_DESTROY_TURRET != 0) + { + messageClient(%cl, 'msgTurretDes', '\c0You received a %1 point bonus for destroying an enemy turret.', %game.SCORE_PER_DESTROY_TURRET); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_TURRET; +} + +function CTFGame::awardScoreInvDestroy(%game,%cl) +{ + %cl.IStationDestroys++; + if (%game.SCORE_PER_DESTROY_ISTATION != 0) + { + messageClient(%cl, 'msgInvDes', '\c0You received a %1 point bonus for destroying an enemy inventory station.', %game.SCORE_PER_DESTROY_ISTATION); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_ISTATION; +} + +function CTFGame::awardScoreVehicleStationDestroy(%game,%cl) +{ + %cl.VStationDestroys++; + if (%game.SCORE_PER_DESTROY_VSTATION != 0) + { + messageClient(%cl, 'msgVSDes', '\c0You received a %1 point bonus for destroying an enemy vehicle station.', %game.SCORE_PER_DESTROY_VSTATION); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_VSTATION; +} + +function CTFGame::awardScoreSolarDestroy(%game,%cl) +{ + %cl.SolarDestroys++; + if (%game.SCORE_PER_DESTROY_SOLAR != 0) + { + messageClient(%cl, 'msgSolarDes', '\c0You received a %1 point bonus for destroying an enemy solar panel.', %game.SCORE_PER_DESTROY_SOLAR); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_SOLAR; +} + +function CTFGame::awardScoreSentryDestroy(%game,%cl) +{ + %cl.sentryDestroys++; + if (%game.SCORE_PER_DESTROY_SENTRY != 0) + { + messageClient(%cl, 'msgSentryDes', '\c0You received a %1 point bonus for destroying an enemy sentry turret.', %game.SCORE_PER_DESTROY_SENTRY); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_SENTRY; +} + +function CTFGame::awardScoreDepSensorDestroy(%game,%cl) +{ + %cl.depSensorDestroys++; + if (%game.SCORE_PER_DESTROY_DEP_SENSOR != 0) + { + messageClient(%cl, 'msgDepSensorDes', '\c0You received a %1 point bonus for destroying an enemy deployable.', %game.SCORE_PER_DESTROY_DEP_SENSOR); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_DEP_SENSOR; +} + +function CTFGame::awardScoreDepTurretDestroy(%game,%cl) +{ + %cl.depTurretDestroys++; + if (%game.SCORE_PER_DESTROY_DEP_TUR != 0) + { + messageClient(%cl, 'msgDepTurDes', '\c0You received a %1 point bonus for destroying an enemy deployed turret.', %game.SCORE_PER_DESTROY_DEP_TUR); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_DEP_TUR; +} + +function CTFGame::awardScoreDepStationDestroy(%game,%cl) +{ + %cl.depStationDestroys++; + if (%game.SCORE_PER_DESTROY_DEP_INV != 0) + { + messageClient(%cl, 'msgDepInvDes', '\c0You received a %1 point bonus for destroying an enemy deployed station.', %game.SCORE_PER_DESTROY_DEP_INV); + //messageTeamExcept(%cl, 'msgGenDes', '\c0Teammate %1 received a %2 point bonus for destroying an enemy generator.', %cl.name, %game.SCORE_PER_GEN_DESTROY); + } + %game.recalcScore(%cl); + return %game.SCORE_PER_DESTROY_DEP_INV; } function CTFGame::awardScoreGenDefend(%game, %killerID) @@ -751,9 +1374,10 @@ function CTFGame::awardScoreGenDefend(%game, %killerID) if (%game.SCORE_PER_GEN_DEFEND != 0) { messageClient(%killerID, 'msgGenDef', '\c0You received a %1 point bonus for defending a generator.', %game.SCORE_PER_GEN_DEFEND); - messageTeamExcept(%killerID, 'msgGenDef', '\c0Teammate %1 received a %2 point bonus for defending a generator.', %killerID.name, %game.SCORE_PER_GEN_DEFEND); + //messageTeamExcept(%killerID, 'msgGenDef', '\c0Teammate %1 received a %2 point bonus for defending a generator.', %killerID.name, %game.SCORE_PER_GEN_DEFEND); } %game.recalcScore(%cl); + return %game.SCORE_PER_GEN_DEFEND; } function CTFGame::awardScoreCarrierKill(%game, %killerID) @@ -762,9 +1386,10 @@ function CTFGame::awardScoreCarrierKill(%game, %killerID) if (%game.SCORE_PER_CARRIER_KILL != 0) { messageClient(%killerID, 'msgCarKill', '\c0You received a %1 point bonus for stopping the enemy flag carrier!', %game.SCORE_PER_CARRIER_KILL); - messageTeamExcept(%killerID, 'msgCarKill', '\c0Teammate %1 received a %2 point bonus for stopping the enemy flag carrier!', %killerID.name, %game.SCORE_PER_CARRIER_KILL); + //messageTeamExcept(%killerID, 'msgCarKill', '\c0Teammate %1 received a %2 point bonus for stopping the enemy flag carrier!', %killerID.name, %game.SCORE_PER_CARRIER_KILL); } %game.recalcScore(%killerID); + return %game.SCORE_PER_CARRIER_KILL; } function CTFGame::awardScoreFlagDefend(%game, %killerID) @@ -773,9 +1398,10 @@ function CTFGame::awardScoreFlagDefend(%game, %killerID) if (%game.SCORE_PER_FLAG_DEFEND != 0) { messageClient(%killerID, 'msgFlagDef', '\c0You received a %1 point bonus for defending your flag!', %game.SCORE_PER_FLAG_DEFEND); - messageTeamExcept(%killerID, 'msgFlagDef', '\c0Teammate %1 received a %2 point bonus for defending your flag!', %killerID.name, %game.SCORE_PER_FLAG_DEFEND); + //messageTeamExcept(%killerID, 'msgFlagDef', '\c0Teammate %1 received a %2 point bonus for defending your flag!', %killerID.name, %game.SCORE_PER_FLAG_DEFEND); } %game.recalcScore(%killerID); + return %game.SCORE_PER_FLAG_DEFEND; } function CTFGame::awardScoreEscortAssist(%game, %killerID) @@ -784,9 +1410,10 @@ function CTFGame::awardScoreEscortAssist(%game, %killerID) if (%game.SCORE_PER_ESCORT_ASSIST != 0) { messageClient(%killerID, 'msgEscAsst', '\c0You received a %1 point bonus for protecting the flag carrier!', %game.SCORE_PER_ESCORT_ASSIST); - messageTeamExcept(%killerID, 'msgEscAsst', '\c0Teammate %1 received a %2 point bonus for protecting the flag carrier!', %killerID.name, %game.SCORE_PER_ESCORT_ASSIST); + //messageTeamExcept(%killerID, 'msgEscAsst', '\c0Teammate %1 received a %2 point bonus for protecting the flag carrier!', %killerID.name, %game.SCORE_PER_ESCORT_ASSIST); } %game.recalcScore(%killerID); + return %game.SCORE_PER_ESCORT_ASSIST; } function CTFGame::resetScore(%game, %client) @@ -798,27 +1425,81 @@ function CTFGame::resetScore(%game, %client) %client.escortAssists = 0; %client.teamKills = 0; %client.flagCaps = 0; + %client.flagGrabs = 0; %client.genDestroys = 0; + %client.sensorDestroys = 0; + %client.turretDestroys = 0; + %client.iStationDestroys = 0; + %client.vstationDestroys = 0; + %client.solarDestroys = 0; + %client.sentryDestroys = 0; + %client.depSensorDestroys = 0; + %client.depTurretDestroys = 0; + %client.depStationDestroys = 0; + %client.vehicleScore = 0; + %client.vehicleBonus = 0; + %client.flagDefends = 0; %client.defenseScore = 0; %client.genDefends = 0; %client.carrierKills = 0; %client.escortAssists = 0; %client.turretKills = 0; + %client.mannedTurretKills = 0; %client.flagReturns = 0; %client.genRepairs = 0; - - + %client.SensorRepairs =0; + %client.TurretRepairs =0; + %client.StationRepairs =0; + %client.VStationRepairs =0; + %client.solarRepairs =0; + %client.sentryRepairs =0; + %client.depInvRepairs =0; + %client.depTurretRepairs=0; + %client.returnPts = 0; %client.score = 0; } +function CTFGame::objectRepaired(%game, %obj, %objName) +{ + %item = %obj.getDataBlock().getName(); + switch$ (%item) + { + case generatorLarge : + %game.genOnRepaired(%obj, %objName); + case sensorMediumPulse : + %game.sensorOnRepaired(%obj, %objName); + case sensorLargePulse : + %game.sensorOnRepaired(%obj, %objName); + case stationInventory : + %game.stationOnRepaired(%obj, %objName); + case turretBaseLarge : + %game.turretOnRepaired(%obj, %objName); + case stationVehicle : + %game.vStationOnRepaired(%obj, %objName); + case solarPanel : + %game.solarPanelOnRepaired(%obj, %objName); + case sentryTurret : + %game.sentryTurretOnRepaired(%obj, %objName); + case TurretDeployedWallIndoor: + %game.depTurretOnRepaired(%obj, %objName); + case TurretDeployedFloorIndoor: + %game.depTurretOnRepaired(%obj, %objName); + case TurretDeployedCeilingIndoor: + %game.depTurretOnRepaired(%obj, %objName); + case TurretDeployedOutdoor: + %game.depTurretOnRepaired(%obj, %objName); + } + %obj.wasDisabled = false; +} + function CTFGame::genOnRepaired(%game, %obj, %objName) { if (%game.testValidRepair(%obj)) { %repairman = %obj.repairedBy; - messageTeam(%repairman.team, 'msgGenRepaired', '\c0%1 repaired the %2 Generator!', %repairman.name, %obj.nameTag); + teamRepairMessage(%repairman, 'msgGenRepaired', '\c0%1 repaired the %2 Generator!', %repairman.name, %obj.nameTag); %game.awardScoreGenRepair(%obj.repairedBy); } } @@ -828,7 +1509,8 @@ function CTFGame::stationOnRepaired(%game, %obj, %objName) if (%game.testValidRepair(%obj)) { %repairman = %obj.repairedBy; - messageTeam(%repairman.team, 'msgStationRepaired', '\c0%1 repaired the %2 Inventory Station!', %repairman.name, %obj.nameTag); + teamRepairMessage(%repairman, 'msgStationRepaired', '\c0%1 repaired the %2 Inventory Station!', %repairman.name, %obj.nameTag); + %game.awardScoreStationRepair(%obj.repairedBy); } } @@ -837,7 +1519,8 @@ function CTFGame::sensorOnRepaired(%game, %obj, %objName) if (%game.testValidRepair(%obj)) { %repairman = %obj.repairedBy; - messageTeam(%repairman.team, 'msgSensorRepaired', '\c0%1 repaired the %2 Pulse Sensor!', %repairman.name, %obj.nameTag); + teamRepairMessage(%repairman, 'msgSensorRepaired', '\c0%1 repaired the %2 Pulse Sensor!', %repairman.name, %obj.nameTag); + %game.awardScoreSensorRepair(%obj.repairedBy); } } @@ -846,7 +1529,8 @@ function CTFGame::turretOnRepaired(%game, %obj, %objName) if (%game.testValidRepair(%obj)) { %repairman = %obj.repairedBy; - messageTeam(%repairman.team, 'msgTurretRepaired', '\c0%1 repaired the %2 Turret!', %repairman.name, %obj.nameTag); + teamRepairMessage(%repairman, 'msgTurretRepaired', '\c0%1 repaired the %2 Turret!', %repairman.name, %obj.nameTag); + %game.awardScoreTurretRepair(%obj.repairedBy); } } @@ -855,16 +1539,144 @@ function CTFGame::vStationOnRepaired(%game, %obj, %objName) if (%game.testValidRepair(%obj)) { %repairman = %obj.repairedBy; - messageTeam(%repairman.team, 'msgTurretRepaired', '\c0%1 repaired the %2 Vehicle Station!', %repairman.name, %obj.nameTag); + teamRepairMessage(%repairman, 'msgvstationRepaired', '\c0%1 repaired the Vehicle Station!', %repairman.name); + %game.awardScoreVStationRepair(%obj.repairedBy); } } +function CTFGame::solarPanelOnRepaired(%game, %obj, %objName) +{ + if (%game.testValidRepair(%obj)) + { + %repairman = %obj.repairedBy; + teamRepairMessage(%repairman, 'msgsolarRepaired', '\c0%1 repaired the %2 Solar Panel!', %repairman.name, %obj.nameTag); + %game.awardScoreSolarRepair(%obj.repairedBy); + } +} + +function CTFGame::sentryTurretOnRepaired(%game, %obj, %objName) +{ + if (%game.testValidRepair(%obj)) + { + %repairman = %obj.repairedBy; + teamRepairMessage(%repairman, 'msgsentryTurretRepaired', '\c0%1 repaired the %2 Sentry Turret!', %repairman.name, %obj.nameTag); + %game.awardScoreSentryRepair(%obj.repairedBy); + } +} + +function CTFGame::depTurretOnRepaired(%game, %obj, %objName) +{ + if (%game.testValidRepair(%obj)) + { + %repairman = %obj.repairedBy; + %game.awardScoreDepTurretRepair(%obj.repairedBy); + } +} + +function CTFGame::depInvOnRepaired(%game, %obj, %objName) +{ + if (%game.testValidRepair(%obj)) + { + %repairman = %obj.repairedBy; + %game.awardScoreDepInvRepair(%obj.repairedBy); + } +} + +function CTFGame::awardScoreGenRepair(%game, %cl) +{ + %cl.genRepairs++; + if (%game.SCORE_PER_REPAIR_GEN != 0) + { + messageClient(%cl, 'msgGenRep', '\c0You received a %1 point bonus for repairing a generator.', %game.SCORE_PER_REPAIR_GEN); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreStationRepair(%game, %cl) +{ + %cl.stationRepairs++; + if (%game.SCORE_PER_REPAIR_ISTATION != 0) + { + messageClient(%cl, 'msgIStationRep', '\c0You received a %1 point bonus for repairing a inventory station.', %game.SCORE_PER_REPAIR_ISTATION); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreSensorRepair(%game, %cl) +{ + %cl.sensorRepairs++; + if (%game.SCORE_PER_REPAIR_SENSOR != 0) + { + messageClient(%cl, 'msgSensorRep', '\c0You received a %1 point bonus for repairing a sensor.', %game.SCORE_PER_REPAIR_SENSOR); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreTurretRepair(%game, %cl) +{ + %cl.TurretRepairs++; + if (%game.SCORE_PER_REPAIR_TURRET != 0) + { + messageClient(%cl, 'msgTurretRep', '\c0You received a %1 point bonus for repairing a base turret.', %game.SCORE_PER_REPAIR_TURRET); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreVStationRepair(%game, %cl) +{ + %cl.VStationRepairs++; + if (%game.SCORE_PER_REPAIR_VSTATION != 0) + { + messageClient(%cl, 'msgVStationRep', '\c0You received a %1 point bonus for repairing a vehicle station.', %game.SCORE_PER_REPAIR_VSTATION); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreSolarRepair(%game, %cl) +{ + %cl.solarRepairs++; + if (%game.SCORE_PER_REPAIR_SOLAR != 0) + { + messageClient(%cl, 'msgsolarRep', '\c0You received a %1 point bonus for repairing a solar panel.', %game.SCORE_PER_REPAIR_SOLAR); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreSentryRepair(%game, %cl) +{ + %cl.sentryRepairs++; + if (%game.SCORE_PER_REPAIR_SENTRY != 0) + { + messageClient(%cl, 'msgSentryRep', '\c0You received a %1 point bonus for repairing a sentry turret.', %game.SCORE_PER_REPAIR_SENTRY); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreDepTurretRepair(%game, %cl) +{ + %cl.depTurretRepairs++; + if (%game.SCORE_PER_REPAIR_DEP_TUR != 0) + { + messageClient(%cl, 'msgDepTurretRep', '\c0You received a %1 point bonus for repairing a deployed turret.', %game.SCORE_PER_REPAIR_DEP_TUR); + } + %game.recalcScore(%cl); +} + +function CTFGame::awardScoreDepInvRepair(%game, %cl) +{ + %cl.depInvRepairs++; + if (%game.SCORE_PER_REPAIR_DEP_INV != 0) + { + messageClient(%cl, 'msgDepInvRep', '\c0You received a %1 point bonus for repairing a deployed station.', %game.SCORE_PER_REPAIR_DEP_INV); + } + %game.recalcScore(%cl); +} + function CTFGame::enterMissionArea(%game, %playerData, %player) { - if(%player.getState() $= "Dead") - return; - - %player.client.outOfBounds = false; + if(%player.getState() $= "Dead") + return; + %player.client.outOfBounds = false; messageClient(%player.client, 'EnterMissionArea', '\c1You are back in the mission area.'); logEcho(%player.client.nameBase@" (pl "@%player@"/cl "@%player.client@") entered mission area"); @@ -878,9 +1690,8 @@ function CTFGame::enterMissionArea(%game, %playerData, %player) function CTFGame::leaveMissionArea(%game, %playerData, %player) { - if(%player.getState() $= "Dead") - return; - + if(%player.getState() $= "Dead") + return; // maybe we'll do this just in case %player.client.outOfBounds = true; // if the player is holding a flag, strip it and throw it back into the mission area @@ -952,15 +1763,27 @@ function CTFGame::vehicleDestroyed(%game, %vehicle, %destroyer) %vehicleType = getTaggedString(%data.targetTypeTag); if(%vehicleType !$= "MPB") %vehicleType = strlwr(%vehicleType); - %pref = (%vehicleType $= "Assault Tank") ? "an" : "a"; %enemyTeam = ( %destroyer.team == 1 ) ? 2 : 1; + %scorer = 0; + %multiplier = 1; + + %passengers = 0; + for(%i = 0; %i < %data.numMountPoints; %i++) + if(%vehicle.getMountNodeObject(%i)) + %passengers++; + //what destroyed this vehicle if(%destroyer.client) { //it was a player, or his mine, satchel, whatever... %destroyer = %destroyer.client; + %scorer = %destroyer; + + // determine if the object used was a mine + if(%vehicle.lastDamageType == $DamageType::Mine) + %multiplier = 2; } else if(%destroyer.getClassName() $= "Turret") { @@ -968,10 +1791,12 @@ function CTFGame::vehicleDestroyed(%game, %vehicle, %destroyer) { //manned turret %destroyer = %destroyer.getControllingClient(); + %scorer = %destroyer; } else { %destroyerName = "A turret"; + %multiplier = 0; } } else if(%destroyer.getDataBlock().catagory $= "Vehicles") @@ -983,7 +1808,11 @@ function CTFGame::vehicleDestroyed(%game, %vehicle, %destroyer) %gunnerNode = 0; if(%destroyer.getMountNodeObject(%gunnerNode)) - %destroyer = %destroyer.getMountNodeObject(gunnerNode).client; + { + %destroyer = %destroyer.getMountNodeObject(%gunnerNode).client; + %scorer = %destroyer; + } + %multiplier = 3; } else // Is there anything else we care about? return; @@ -992,13 +1821,169 @@ function CTFGame::vehicleDestroyed(%game, %vehicle, %destroyer) if(%destroyerName $= "") %destroyerName = %destroyer.name; - if(%vehicle.team == %destroyer.team) // team kill + if(%vehicle.team == %destroyer.team) // team kill + { + %pref = (%vehicleType $= "Assault Tank") ? "an" : "a"; messageAll( 'msgVehicleTeamDestroy', '\c0%1 TEAMKILLED %3 %2!', %destroyerName, %vehicleType, %pref); + } else // legit kill { messageTeamExcept(%destroyer, 'msgVehicleDestroy', '\c0%1 destroyed an enemy %2.', %destroyerName, %vehicleType); messageTeam(%enemyTeam, 'msgVehicleDestroy', '\c0%1 destroyed your team\'s %2.', %destroyerName, %vehicleType); - messageClient(%destroyer, 'msgVehicleDestroy', '\c0You destroyed an enemy %1.', %vehicleType); + //messageClient(%destroyer, 'msgVehicleDestroy', '\c0You destroyed an enemy %1.', %vehicleType); + + if(%scorer) + { + %value = %game.awardScoreVehicleDestroyed(%scorer, %vehicleType, %multiplier, %passengers); + %game.shareScore(%value); + } } -} \ No newline at end of file +} + +function CTFGame::awardScoreVehicleDestroyed(%game, %client, %vehicleType, %mult, %passengers) +{ + if(isDemo()) + return 0; + + if(%vehicleType $= "Grav Cycle") + %base = %game.SCORE_PER_DESTROY_WILDCAT; + else if(%vehicleType $= "Assault Tank") + %base = %game.SCORE_PER_DESTROY_TANK; + else if(%vehicleType $= "MPB") + %base = %game.SCORE_PER_DESTROY_MPB; + else if(%vehicleType $= "Turbograv") + %base = %game.SCORE_PER_DESTROY_SHRIKE; + else if(%vehicleType $= "Bomber") + %base = %game.SCORE_PER_DESTROY_BOMBER; + else if(%vehicleType $= "Heavy Transport") + %base = %game.SCORE_PER_DESTROY_TRANSPORT; + + %total = ( %base * %mult ) + ( %passengers * %game.SCORE_PER_PASSENGER ); + + %client.vehicleScore += %total; + + messageClient(%client, 'msgVehicleScore', '\c0You received a %1 point bonus for destroying an enemy %2.', %total, %vehicleType); + %game.recalcScore(%client); + return %total; +} + +function CTFGame::shareScore(%game, %client, %amount) +{ + if(isDemo()) + return 0; + + //error("share score of"SPC %amount SPC "from client:" SPC %client); + // all of the player in the bomber and tank share the points + // gained from any of the others + %vehicle = %client.vehicleMounted; + if(!%vehicle) + return 0; + %vehicleType = getTaggedString(%vehicle.getDataBlock().targetTypeTag); + if(%vehicleType $= "Bomber" || %vehicleType $= "Assault Tank") + { + for(%i = 0; %i < %vehicle.getDataBlock().numMountPoints; %i++) + { + %occupant = %vehicle.getMountNodeObject(%i); + if(%occupant) + { + %occCl = %occupant.client; + if(%occCl != %client && %occCl.team == %client.team) + { + // the vehicle has a valid teammate at this node + // share the score with them + %occCl.vehicleBonus += %amount; + %game.recalcScore(%occCl); + } + } + } + + } +} + +function CTFGame::awardScoreTurretKill(%game, %victimID, %implement) +{ + if ((%killer = %implement.getControllingClient()) != 0) //award whoever might be controlling the turret + { + if (%killer == %victimID) + %game.awardScoreSuicide(%victimID); + else if (%killer.team == %victimID.team) //player controlling a turret killed a teammate + { + %killer.teamKills++; + %game.awardScoreTurretTeamKill(%victimID, %killer); + %game.awardScoreDeath(%victimID); + } + else + { + %killer.mannedturretKills++; + %game.recalcScore(%killer); + %game.awardScoreDeath(%victimID); + } + } + else if ((%killer = %implement.owner) != 0) //if it isn't controlled, award score to whoever deployed it + { + if (%killer.team == %victimID.team) + { + %game.awardScoreDeath(%victimID); + } + else + { + %killer.turretKills++; + %game.recalcScore(%killer); + %game.awardScoreDeath(%victimID); + } + } + //default is, no one was controlling it, no one owned it. No score given. +} + +function CTFGame::testKill(%game, %victimID, %killerID) +{ + return ((%killerID !=0) && (%victimID.team != %killerID.team)); +} + +function CTFGame::awardScoreKill(%game, %killerID) +{ + %killerID.kills++; + %game.recalcScore(%killerID); + return %game.SCORE_PER_KILL; +} + + +function checkVehicleCamping( %team ) +{ + %position = $flagPos[%team]; + %radius = 5; + InitContainerRadiusSearch(%position, %radius, $TypeMasks::VehicleObjectType ); + + while ((%vehicle = containerSearchNext()) != 0) + { + %dist = containerSearchCurrRadDamageDist(); + + if (%dist > %radius) + continue; + else + { + //if( %vehicle.team == %team ) + applyVehicleCampDamage( %vehicle ); + } + } + + if( %team == 1 ) + Game.campThread_1 = schedule( 1000, 0, "checkVehicleCamping", 1 ); + else + Game.campThread_2 = schedule( 1000, 0, "checkVehicleCamping", 2 ); +} + +function applyVehicleCampDamage( %vehicle ) +{ + if( !isObject( %vehicle ) ) + return; + + if( %vehicle.getDamageState() $= "Destroyed" ) + return; + + %client = %vehicle.getMountNodeObject(0).client; // grab the pilot + + messageClient( %client, 'serverMessage', "Can't park vehicles in flag zones!" ); + %vehicle.getDataBlock().damageObject( %vehicle, 0, "0 0 0", 0.5, 0); +} diff --git a/base/scripts/ChatGui.cs b/base/scripts/ChatGui.cs index 5c22da2..0ed1db6 100644 --- a/base/scripts/ChatGui.cs +++ b/base/scripts/ChatGui.cs @@ -7,13 +7,16 @@ $CHANNEL_STATUS = "STATUS"; $VERSION_STRING = "Dynamix IRC Chat 1.2.0"; $ESCAPE_SEQ = "_-_"; + $IRCClient::serverList = GetIRCServerList(0); $IRCClient::serverCount = getRecordCount($IRCClient::serverList); $IRCClient::retries = 0; + if ($IRCClient::serverCount > 1) $IRCClient::serverIndex = getRandom($IRCClient::serverCount-1)-1; else $IRCClient::serverIndex = -1; + $IRCClient::serverAttempt = 0; $AWAY_TIMEOUT = 5 * 60 * 1000; @@ -135,9 +138,7 @@ function ChatGui::onAdd(%this) function ChatGui::onWake(%this) { Canvas.pushDialog(LaunchToolbarDlg); - - ChatTabView.addSet(1,"gui/shll_horztabbuttonB","5 5 5","50 50 0","5 5 5"); - +// ChatTabView.addSet(1,"gui/shll_horztabbuttonB","5 5 5","50 50 0","5 5 5"); ChatGui.awake = true; ChatTabView.setSelected($IRCClient::currentChannel); ChatGuiScroll.scrollToBottom(); @@ -152,19 +153,69 @@ function ChatGui::setKey(%this,%ignore) //------------------------------------------------------------------------------ function ChatTabView::onAdd(%this) { - if ($LaunchMode $= "Normal") - %this.addTab($IRCClient::channels.getObject(0),"STATUS"); + // Don't Forget, it needs to be on add unless you have a VERY GOOD REASON, right Brad?. + ChatTabView.addSet(1,"gui/shll_horztabbuttonB","5 5 5","50 50 0","5 5 5"); + if ($LaunchMode $= "Normal") +// %this.addTab(0,"WELCOME"); + %this.addTab($IRCClient::channels.getObject(0),"WELCOME"); } //------------------------------------------------------------------------------ function ChatTabView::onSelect(%this,%obj,%name) { + if (%name $= "WELCOME") + { + %indentSpace = ""; + WelcomeHeadlines.clear(); + WelcomeText.clear(); + %obj.topic = "Welcome to the Tribes 2 Chat Area!"; + + %topic[0] = "Welcome To Tribes 2 Chat"; + %topic[1] = "Public Channels"; + %topic[2] = "Private Channels"; + %topic[3] = "Chat Options"; + %topic[4] = "ShazBot"; + %topic[5] = "Channel Ops"; + %topic[6] = "Private Channel Conduct"; + %topic[7] = "Right Click Mute"; + %topic[8] = "/me, /action, channels"; + %topic[9] = "Tab Complete"; + + %atxt[0] = "Welcome to the Tribes 2 Chat. Tribes has the distinction of having the largest and most devoted player base of any massivly multi-player game. To support this base we have included the Chat area to make it easier to recruit, get help, meet other players and organize games. Tribes 2 Chat is a secure IRC based chat network that requires an authenticated Tribes 2 game client to join, this means that third party IRC clients like mIRC cannot be used."; + %atxt[1] = "When you access the CHANNELS list, you are seeing a listing of all the available chat rooms. The chat rooms colored \"white\" are general rooms that anyone can access. These are usually the most populated rooms and are \"Tribes 2\" where general gameplay is discussed, \"Recruiting\" where people go to try and find teams, or to recruit players onto their teams, and \"Help\" which is an area to go and speak with other players about technical issues you're having with your system."; + %atxt[2] = "There are also Private Chat channels that you will see IF you are a member of a Tribe. If that's the case, then there will be a private chat channel visible for each tribe you belong to and you can enter those rooms to speak with other Tribe members. Players that do not belong to those tribes will not be able to enter that room."; + %atxt[3] = "There are CHAT OPTIONS (use the button at the top of this page to access those options) that allow you to customize your \"away\" message and a few other messages."; + %atxt[4] = "When you're in a chat channel, beware the Mighty and Powerful SHAZBOT. Shazbot is an automated spam and cursing filter that runs in the general rooms. If you curse a lot, or repeat the same messages too often, or even if you just spam a whole bunch of different nonsense lines in a row, the Mighty and Powerful SHAZBOT will throw you out of the room to think about your transgressions. These kicks are temporary and you can come back later, but if you get kicked enough times, you may be banned entirely, so think before you type and the world will be rosy. (Shazbot doesn't like all-caps messages either...so be careful. No shouting around him...he's sensitive.)"; + %atxt[5] = "There are human Operators (Ops) in each channel also. These Ops are not automated. They are people. If you respect them, then they will be kind and considerate in return. However, if you badmouth them or otherwise annoy them, they may kick or ban you from a channel. Just be civil and all things will be good. (NOTE: In Private channels, the Ops are all Tribe members and there are no cursing or spamming rules...unless those Ops make those rules.)"; + %atxt[6] = "Private channels are completely deregulated. Dynamix/Sierra/Vivendi-Universal neither care, nor want to know, what you talk about in those channels. They are yours. Warning to anyone who goes to those channels: If you go there, and you do not like what you hear, then leave. Don't expect Dynamix/Sierra/Vivendi-Universal to do anything about private channels. We only review the public channels."; + %atxt[7] = "When in a public channel, if someone is being annoying, then simply use the MUTE functionality to ignore him completely. This is much easier than trying to get an Op to kick him and is usually easier and faster."; + %atxt[8] = "If you see someone typing in a different color, they are probably using a \"/me\" or \"/action\" command. This allows you to emote an action in chat. For instance, if you type /me is away from the keyboard right now, then you'll see \" is away from the keyboard right now\" and it will be a different color than normal chat. Channel links are usually green and are created by putting a pound sign \"#\" before the channel name."; + %atxt[9] = "There is a nifty Tab Complete feature that makes it easier to type names. If there is a player named \"MrMyxlpytlk\" in the room, you may have a tough time typing that out normally. But if you type \"MrMy\" and then hit TAB, the name will auto-complete instantly, allowing you to respond quickly to screwy names."; + + for (%i = 0; %i < 10; %i++) + { + %text = %text @ "" @ %topic[%i] @ + "\n\n" @ %atxt[%i] @ "\n\n\n"; + WelcomeHeadlines.addRow( %i, %topic[%i] ); + } + + ChatPanel.setVisible(false); + WelcomePanel.setVisible(true); + WelcomeText.setValue(%text); + WelcomeHeadlines.setSelectedRow(0); + } + else + { + ChatPanel.setVisible(true); + WelcomePanel.setVisible(false); + } + ChatTabFrame.setAltColor(%obj.private); %i = %obj.findMember($IRCClient::people.getObject(0)); ChatEditChannelBtn.setVisible(%obj.getFlags(%i) & $PERSON_OPERATOR); //is this the status window? do we need the options button - %vis = (%name $= "STATUS" ? true : false); + %vis = (%name $= "WELCOME" ? true : false); ChatEditOptionsBtn.setVisible(%vis); ChatChannelTopic.setValue(%obj.topic); @@ -172,6 +223,7 @@ function ChatTabView::onSelect(%this,%obj,%name) { if ($IRCClient::currentChannel == $IRCClient::attachedChannel) ChatGuiMessageVector.detach(); + ChatGuiMessageVector.attach(%obj); //ChatGuiMessageVector.scrollToBottom(); $IRCClient::attachedChannel = %obj; @@ -469,6 +521,7 @@ function ChatRoomMemberList::onRightMouseDown(%this,%column,%row,%mousePos) ChatMemberPopup.add("Mute",6); ChatMemberPopup.add( "--------------------",-1); +// ChatMemberPopup.add( "Instant Message", 9 ); ChatMemberPopup.add( "TMail", 10 ); ChatMemberPopup.add( "Add To Buddylist",11); @@ -526,6 +579,8 @@ function ChatMemberPopup::onSelect(%this,%id,%text) IRCClient::ignore(ChatMemberPopup.member,!(ChatMemberPopup.member.flags & $PERSON_IGNORE)); case 7: // go to webbrowser page LinkBrowser(%member,"warrior"); +// case 9: // Instant Message +// IRCClient::instant(ChatMemberPopup.member,0); case 10: // TMail LinkEMail(%member); case 11: // Add To Buddylist @@ -828,9 +883,11 @@ function IRCClient::notify(%event) { switch$ ( $IRCClient::channelNames[%i] ) { - case "#Tribes2": %temp = 3; - case "#Tribes2-recruiting": %temp = 2; - case "#Help": %temp = 1; + case "#Tribes2": %temp = 5; + case "#Tribes2-Recruiting": %temp = 4; + case "#Help": %temp = 3; + case "#Scripting": %temp = 2; + case "#Mapping": %temp = 1; default: %temp = 0; } JoinChatList.addRow(%i, IRCClient::displayChannel( $IRCClient::channelNames[%i]) TAB $IRCClient::channelUsers[%i] TAB %temp ); @@ -870,6 +927,8 @@ function IRCClient::notify(%event) $IRCClient::nextChannel = 0; } ChatTabView.removeTab($IRCClient::deletedChannel); +// case IDIRC_INSTANT: +// MessageBoxOK("Message", "You have been instant Messaged by " @ $IRCClient::inviteperson); case IDIRC_INVITED: //invited to join existing channel. //MessageBoxOKCancel("Invite", "You have been invited to channel " @ IRCClient::displayChannel($IRCClient::invitechannel) @ " by " @ $IRCClient::inviteperson @ ".", "IRCClient::join($IRCClient::invitechannel);"); IRCClient::newMessage($IRCClient::CurrentChannel, "You have been invited to channel " @ $IRCClient::invitechannel @ " by " @ $IRCClient::inviteperson @ "."); @@ -1562,6 +1621,8 @@ function IRCClient::dispatch(%prefix,%command,%params) IRCClient::onVersion(%prefix,%params); case "ACTION": IRCClient::onAction(%prefix,%params); + case "INSTANT": + IRCClient::onInstantMsg(%prefix,%params); case "INVITE": IRCClient::onInvite(%prefix,%params); case "301": @@ -3005,7 +3066,30 @@ function IRCClient::nickHighLight(%message) } return %message; } +//------------------------------------------------------------------------------ +function IRCClient::onInstantMsg(%prefix,%params) +{ + // Find or create the person (should never be NULL) + %p = IRCClient::findPerson2(%prefix,true); + if (%p) + { + %params = nextToken(%params,channel,":"); + %channel = %params; + // Only bother the user if they aren't ignoring this person + if (!(%person.flags & $PERSON_IGNORE)) + { + // Set vars and notify the responder + $IRCClient::inviteperson = IRCClient::displayNick(%p); + IRCClient::notify(IDIRC_INSTANT); + } + } +} +//------------------------------------------------------------------------------ +function IRCClient::instant(%p,%c) +{ + IRCClient::send("INSTANT" SPC %p.displayName SPC 0); +} //------------------------------------------------------------------------------ function IRCClient::part(%params) { @@ -3180,6 +3264,10 @@ function IRCClient::ignore(%p,%tf) } IRCClient::notify(IDIRC_SORT); } + else + { + echo("not P:" @ %p TAB %tf); + } } //------------------------------------------------------------------------------ @@ -3282,8 +3370,11 @@ function IRCClient::onJoinServer(%mission,%server,%address,%mayprequire,%prequir } //------------------------------------------------------------------------------ - function IRCClient::onJoinGame(%address, %desc) +function IRCClient::onJoinGame(%address, %desc) { + if(!isObject($IRCClient::tcp)) + return; + //error("IRCClient::onJoinGame( "@ %address @", "@ %desc @" )"); //IRCClient::away("joined a game."); @@ -3326,3 +3417,9 @@ if ($LaunchMode $= "Normal") IRCClient::init(); IRCClient::connect(); } + +//------------------------------------------------------------------------------ +function WelcomeHeadlines::onSelect( %this, %id, %text ) +{ + WelcomeText.scrollToTag( %id ); +} diff --git a/base/scripts/CnHGame.cs b/base/scripts/CnHGame.cs index 43744b8..303cbb1 100644 --- a/base/scripts/CnHGame.cs +++ b/base/scripts/CnHGame.cs @@ -216,6 +216,7 @@ function CnHGame::equip(%game, %player) { for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //%player.setArmor("Light"); %player.setInventory(Blaster,1); @@ -314,7 +315,7 @@ function CnHGame::awardScorePlayerFFDefend(%game, %cl, %flipflop) if (%game.SCORE_PER_FLIPFLOP_DEFEND != 0) { messageClient(%cl, 'msgFFDef', '\c0You received a %1 point bonus for defending %2.', %game.SCORE_PER_FLIPFLOP_DEFEND, %game.cleanWord(%flipflop.name)); - messageTeamExcept(%cl, 'msgFFDef', '\c0Teammate %1 received a %2 point bonus for defending %3', %cl.name, %game.SCORE_PER_FLIPFLOP_DEFEND, %game.cleanWord(%flipflop.name)); +// messageTeamExcept(%cl, 'msgFFDef', '\c0Teammate %1 received a %2 point bonus for defending %3', %cl.name, %game.SCORE_PER_FLIPFLOP_DEFEND, %game.cleanWord(%flipflop.name)); } %game.recalcScore(%cl); } @@ -328,7 +329,7 @@ function CnHGame::awardScorePlayerFFCap(%game, %cl, %this) if (%game.SCORE_PER_PLYR_FLIPFLOP_CAP != 0) { messageClient(%cl, 'msgFFDef', '\c0You received a %1 point bonus for holding the %2.', %game.SCORE_PER_PLYR_FLIPFLOP_CAP, %game.cleanWord(%this.name)); - messageTeamExcept(%cl, 'msgFFDef', '\c0Teammate %1 received a %2 point bonus for holding the %3', %cl.name, %game.SCORE_PER_PLYR_FLIPFLOP_CAP, %game.cleanWord(%this.name)); +// messageTeamExcept(%cl, 'msgFFDef', '\c0Teammate %1 received a %2 point bonus for holding the %3', %cl.name, %game.SCORE_PER_PLYR_FLIPFLOP_CAP, %game.cleanWord(%this.name)); } %game.recalcScore(%cl); } diff --git a/base/scripts/DMGame.cs b/base/scripts/DMGame.cs index f213815..76d573a 100644 --- a/base/scripts/DMGame.cs +++ b/base/scripts/DMGame.cs @@ -87,6 +87,7 @@ function DMGame::equip(%game, %player) { for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //%player.setArmor("Light"); %player.setInventory(RepairKit, 1); diff --git a/base/scripts/DemoEndGui.cs b/base/scripts/DemoEndGui.cs new file mode 100644 index 0000000..64e7b3a --- /dev/null +++ b/base/scripts/DemoEndGui.cs @@ -0,0 +1,29 @@ +$DemoCycleDelay = 6000; + +function DemoEndGui::onWake(%this) +{ + %this.index = 1; + new ActionMap( DemoEndMap ); + DemoEndMap.bindCmd( mouse, button0, "DemoEndGui.forceBitmapCycle();", "" ); + DemoEndMap.bindCmd( keyboard, space, "DemoEndGui.forceBitmapCycle();", "" ); + DemoEndMap.push(); + %this.cycleTimer = %this.schedule($DemoCycleDelay, cycleBitmaps); +} + +function DemoEndGui::cycleBitmaps(%this) +{ + if (%this.index == 3) + quit(); + else + { + %this.index++; + %this.setBitmap("gui/bg_DemoEnd" @ %this.index); + %this.cycleTimer = %this.schedule( $DemoCycleDelay, cycleBitmaps ); + } +} + +function DemoEndGui::forceBitmapCycle( %this ) +{ + cancel( %this.cycleTimer ); + %this.cycleBitmaps(); +} diff --git a/base/scripts/GameGui.cs b/base/scripts/GameGui.cs index ad95740..3450fff 100644 --- a/base/scripts/GameGui.cs +++ b/base/scripts/GameGui.cs @@ -18,7 +18,7 @@ function GameGui::onWake( %this ) { Canvas.pushDialog( LaunchToolbarDlg ); - if ( isDemo() || isDemoServer() || $PlayingOnline ) + if ( isDemo() || $PlayingOnline ) GM_Frame.setTitle( "GAME" ); else GM_Frame.setTitle( "LAN GAME" ); @@ -29,12 +29,8 @@ function GameGui::onWake( %this ) if ( isDemo() ) { GM_TabView.addTab( 1, "JOIN" ); - %this.pane = "Join"; - } - else if ( isDemoServer() ) - { GM_TabView.addTab( 2, "HOST" ); - %this.pane = "Host"; + %this.pane = "Join"; } else { @@ -125,7 +121,7 @@ function GM_JoinPane::onActivate( %this ) GMJ_StopBtn.setActive( false ); %this.onceOnly = 1; - if ( isDemo() || isDemoServer() ) + if ( isDemo() ) GMJ_Browser.lastQuery = "Demo"; else GMJ_Browser.lastQuery = $PlayingOnline ? "Master" : "LanServers"; @@ -207,6 +203,9 @@ if ( !isDemo() ) $BrowserColumnRange[10] = "25 200"; $BrowserColumnCount++; } +$BrowserColumnName[11] = "Visibility"; +$BrowserColumnRange[11] = "25 120"; +$BrowserColumnCount++; //------------------------------------------------------------------------------ function GMJ_Browser::onAdd( %this ) @@ -747,13 +746,16 @@ function GM_HostPane::onActivate( %this ) $HostGameType = $PlayingOnline ? "Online" : "LAN"; buildMissionTypePopup( GMH_MissionType ); - GMH_BotMinSlider.setValue( $Host::MinBotDifficulty ); - GMH_BotMaxSlider.setValue( $Host::MaxBotDifficulty ); - GMH_BotsEnabledTgl.setValue( $Host::BotsEnabled ); - GMH_BotsEnabledTgl.onAction(); + if ( !isDemo() ) + { + GMH_BotMinSlider.setValue( $Host::MinBotDifficulty ); + GMH_BotMaxSlider.setValue( $Host::MaxBotDifficulty ); + GMH_BotsEnabledTgl.setValue( $Host::BotsEnabled ); + GMH_BotsEnabledTgl.onAction(); - //clamp and set the bot count slider - setBotCountSlider(); + //clamp and set the bot count slider + setBotCountSlider(); + } // Select the saved-off prefs: if ( $Host::MissionType !$= "" ) @@ -992,22 +994,25 @@ function GMH_MissionType::onSelect( %this, %id, %text ) GMH_MissionList.setSelectedById( %lastAdded ); $Host::MissionType = $HostTypeName[%id]; - // Disable all non bot-enabled maps if bots are enabled: - if ( GMH_BotsEnabledTgl.getValue() ) - GMH_BotsEnabledTgl.onAction(); + if ( !isDemo() ) + { + // Disable all non bot-enabled maps if bots are enabled: + if ( GMH_BotsEnabledTgl.getValue() ) + GMH_BotsEnabledTgl.onAction(); + } } //------------------------------------------------------------------------------ function GMH_MissionList::onSelect( %this, %id, %text ) { - if ( GMH_BotsEnabledTgl.getValue() ) + if ( !isDemo() && GMH_BotsEnabledTgl.getValue() ) GMH_StartGameBtn.setActive( $BotEnabled[%id] ); } //------------------------------------------------------------------------------ function tryToStartHostedGame() { - if ( GMH_BotsEnabledTgl.getValue() ) + if ( !isDemo() && GMH_BotsEnabledTgl.getValue() ) { %selId = GMH_MissionList.getSelectedId(); if ( !$BotEnabled[%selId] ) @@ -1023,7 +1028,7 @@ function StartHostedGame() %selId = GMH_MissionList.getSelectedId(); %misFile = $HostMissionFile[%selId]; - if ( $Host::BotsEnabled ) + if ( !isDemo() && $Host::BotsEnabled ) { validateMaxPlayers(); $HostGameBotCount = $Host::BotCount; @@ -1071,7 +1076,10 @@ function StartHostedGame() //------------------------------------------------------------------------------ function tryToLaunchDedicatedServer( %pure ) { - %numBots = $Host::BotsEnabled ? $Host::BotCount : 0; + if ( isDemo() ) + %numBots = 0; + else + %numBots = $Host::BotsEnabled ? $Host::BotCount : 0; if ( launchDedicatedServer( $Host::MissionType, $Host::Map, %numBots, %pure ) ) quit(); else @@ -1170,8 +1178,11 @@ function validateMaxPlayers() //reset the value back into the TE GMH_MaxPlayersTE.setValue(%maxPlayers); - //and make sure the bot sliders reflect the changes.. - setBotCountSlider(); + if ( !isDemo() ) + { + //and make sure the bot sliders reflect the changes.. + setBotCountSlider(); + } } function setBotCountSlider() @@ -1207,8 +1218,13 @@ function AdvancedHostDlg::onWake( %this ) { // Set all of the controls to the current pref states: AH_HostPort.setText( $Host::Port ); + if ( $Host::HiVisibility ) + AH_HiVisibilityRdo.setValue( true ); + else + AH_HiFPSRdo.setValue( true ); AH_DedicatedTgl.setValue( $Host::Dedicated ); AH_DedicatedTgl.onAction(); + AH_TeamDamageTgl.setValue( $Host::TeamDamageOn ); AH_TournamentTgl.setValue( $Host::TournamentMode ); AH_AdminVoteTgl.setValue( $Host::allowAdminPlayerVotes ); AH_AllowSmurfTgl.setValue( !$Host::NoSmurfs ); @@ -1226,9 +1242,11 @@ function AdvancedHostDlg::accept( %this ) { // Apply all of the changes: $Host::Port = AH_HostPort.getValue(); + $Host::HiVisibility = AH_HiVisibilityRdo.getValue(); $Host::Dedicated = AH_DedicatedTgl.getValue(); if ( $Host::Dedicated ) $Host::PureServer = AH_PureServerTgl.getValue(); + $Host::TeamDamageOn = AH_TeamDamageTgl.getValue(); $Host::TournamentMode = AH_TournamentTgl.getValue(); $Host::allowAdminPlayerVotes = AH_AdminVoteTgl.getValue(); $Host::NoSmurfs = !AH_AllowSmurfTgl.getValue(); @@ -1326,8 +1344,9 @@ function GM_WarriorPane::onActivate( %this ) } } - // Fill the race/gender list: + // Fill the static menus: GMW_RaceGenderPopup.fillList(); + GMW_SkinPrefPopup.fillList(); // Select the current player: GMW_WarriorPopup.setSelected( $pref::Player::Current ); @@ -1450,11 +1469,14 @@ function GMW_WarriorPopup::onSelect( %this, %id, %text ) %selId = 0; GMW_RaceGenderPopup.setSelected( %selId ); - GMW_SkinPopup.fillList( %selId ); GMW_VoicePopup.fillList( %selId ); // Select the skin: %skin = getField( $pref::Player[%id], 2 ); + %baseSkin = isDynamixSkin( %skin ); + GMW_SkinPrefPopup.setSelected( !%baseSkin ); + GMW_SkinPopup.fillList( %selId ); + %selId = -1; for ( %i = 0; %i < GMW_SkinPopup.size(); %i++ ) { @@ -1489,7 +1511,9 @@ function GMW_WarriorPopup::onSelect( %this, %id, %text ) //------------------------------------------------------------------------------ function GMW_RaceGenderPopup::fillList( %this ) { - %this.clear(); + if ( %this.size() ) + return; + %this.add( "Human Male", 0 ); %this.add( "Human Female", 1 ); %this.add( "Bioderm", 2 ); @@ -1521,6 +1545,32 @@ function GMW_RaceGenderPopup::onSelect( %this, %id, %text ) GMW_VoicePopup.onSelect( %selId, "" ); } +//------------------------------------------------------------------------------ +function GMW_SkinPrefPopup::fillList( %this ) +{ + if ( %this.size() ) + return; + + %this.add( "Dynamix Skins", 0 ); + %this.add( "Custom Skins", 1 ); +} + +//------------------------------------------------------------------------------ +function GMW_SkinPrefPopup::onSelect( %this, %id, %text ) +{ + %curSkin = GMW_SkinPopup.getText(); + GMW_SkinPopup.fillList( GMW_RaceGenderPopup.getSelected() ); + %selId = GMW_SkinPopup.findText( %curSkin ); + if ( %selId == -1 ) + %selId = 0; + + if ( GMW_SkinPopup.size() ) + { + GMW_SkinPopup.setSelected( %selId ); + GMW_SkinPopup.onSelect( %selId, GMW_SkinPopup.getTextById( %selId ) ); + } +} + //------------------------------------------------------------------------------ $SkinCount = 0; $Skin[$SkinCount, name] = "Blood Eagle"; @@ -1545,6 +1595,18 @@ $Skin[$SkinCount, name] = "Horde"; $Skin[$SkinCount, code] = "horde"; $SkinCount++; +//------------------------------------------------------------------------------ +function isDynamixSkin( %skin ) +{ + for ( %i = 0; %i < $SkinCount; %i++ ) + { + if ( %skin $= $Skin[%i, code] ) + return( true ); + } + + return( false ); +} + //------------------------------------------------------------------------------ function GMW_SkinPopup::fillList( %this, %raceGender ) { @@ -1563,6 +1625,7 @@ function GMW_SkinPopup::fillList( %this, %raceGender ) %pattern = ".lbioderm.png"; } + %customSkins = GMW_SkinPrefPopup.getSelected(); %count = 0; for ( %file = findFirstFile( %path @ "*" @ %pattern ); %file !$= ""; %file = findNextFile( %path @ "*" @ %pattern ) ) { @@ -1572,18 +1635,24 @@ function GMW_SkinPopup::fillList( %this, %raceGender ) if ( %skin !$= "basebot" && %skin !$= "basebbot" ) { // See if this skin has an alias: + %baseSkin = false; for ( %i = 0; %i < $SkinCount; %i++ ) { if ( %skin $= $Skin[%i, code] ) { + %baseSkin = true; %skin = $Skin[%i, name]; - %this.realSkin[%count] = $Skin[%i, code]; break; } } - %this.add( %skin, %count ); - %count++; + if ( %customSkins != %baseSkin ) + { + if ( %baseSkin ) + %this.realSkin[%count] = $Skin[%i, code]; + %this.add( %skin, %count ); + %count++; + } } } diff --git a/base/scripts/HuntersGame.cs b/base/scripts/HuntersGame.cs index 33a9068..059a5ad 100644 --- a/base/scripts/HuntersGame.cs +++ b/base/scripts/HuntersGame.cs @@ -48,13 +48,22 @@ $InvBanList[Hunters, "AABarrelPack"] = 1; $InvBanList[Hunters, "MissileBarrelPack"] = 1; $InvBanList[Hunters, "Mine"] = 1; +datablock EffectProfile(HuntersFlagPickupEffect) +{ + effectname = "misc/hunters_flag_snatch"; + minDistance = 2.5; + maxDistance = 5.0; +}; + datablock AudioProfile(HuntersFlagPickupSound) { filename = "fx/misc/hunters_flag_snatch.wav"; description = AudioClose3d; + effect = HuntersFlagPickupEffect; preload = true; }; + //exec the AI script exec("scripts/aiHunters.cs"); @@ -84,13 +93,13 @@ function HuntersGame::initGameVars(%game) %game.teamMode = false; - if (!isDemo() && !isDemoServer()) + if (!isDemo()) %game.greedMode = $Host::HuntersGreedMode; else %game.greedMode = false; %game.greedMinFlags = 8; //min number of flags you must have before you can cap - if (!isDemo() && !isDemoServer()) + if (!isDemo()) %game.hoardMode = $Host::HuntersHoardMode; else %game.hoardMode = false; @@ -473,6 +482,7 @@ function HuntersGame::equip(%game, %player) { for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //%player.setArmor("Light"); %player.setInventory(RepairKit,1); @@ -1056,7 +1066,7 @@ function HuntersGame::sendGameVoteMenu( %game, %client, %key ) // First send the common options: DefaultGame::sendGameVoteMenu( %game, %client, %key ); - if (!isDemo() && !isDemoServer()) + if (!isDemo()) { if(!%client.isAdmin) { diff --git a/base/scripts/LaunchLanGui.cs b/base/scripts/LaunchLanGui.cs index 48034c3..80240e5 100644 --- a/base/scripts/LaunchLanGui.cs +++ b/base/scripts/LaunchLanGui.cs @@ -62,10 +62,11 @@ function LaunchToolbarMenu::onSelect(%this, %id, %text) LaunchBrowser(); case 7: // Options Canvas.pushDialog(OptionsDlg); - //case 8: // Play Recording - // Canvas.pushDialog(RecordingsDlg); + case 8: // Play Recording + Canvas.pushDialog(RecordingsDlg); case 9: // Quit - IRCClient::quit(); + if(isObject($IRCClient.tcp)) + IRCClient::quit(); LaunchTabView.closeAllTabs(); if (!isDemo()) quit(); @@ -86,8 +87,8 @@ function LaunchToolbarMenu::onSelect(%this, %id, %text) function LaunchToolbarDlg::onWake(%this) { // Play the shell hum: - if ( $HudHandle['shellScreen'] $= "" ) - $HudHandle['shellScreen'] = alxPlay( ShellScreenHumSound, 0, 0, 0 ); + if ( $HudHandle[shellScreen] $= "" ) + $HudHandle[shellScreen] = alxPlay( ShellScreenHumSound, 0, 0, 0 ); LaunchToolbarMenu.clear(); @@ -97,10 +98,6 @@ function LaunchToolbarDlg::onWake(%this) LaunchToolbarMenu.add( 0, "GAME" ); LaunchToolbarMenu.add( 2, "NEWS" ); } - else if ( isDemoServer() ) - { - LaunchToolbarMenu.add( 0, "GAME" ); - } else if ( $PlayingOnline ) { LaunchToolbarMenu.add( 0, "GAME" ); @@ -118,15 +115,11 @@ function LaunchToolbarDlg::onWake(%this) LaunchToolbarMenu.addSeparator(); LaunchToolbarMenu.add( 7, "SETTINGS" ); -// LaunchToolbarMenu.add( 8, "RECORDINGS" ); + if ( !isDemo() ) + LaunchToolbarMenu.add( 8, "RECORDINGS" ); LaunchToolbarMenu.add( 12, "CREDITS" ); LaunchToolbarMenu.addSeparator(); - -// if ( $PlayingOnline ) -// LaunchToolbarMenu.add( 10, "LOG OFF" ); -// else -// LaunchToolbarMenu.add( 11, "LOG ON" ); LaunchToolbarMenu.add( 9, "QUIT" ); %on = false; @@ -162,12 +155,7 @@ function OpenLaunchTabs( %gotoWarriorSetup ) LaunchTabView.addLaunchTab( "EMAIL", "", true ); LaunchTabView.addLaunchTab( "CHAT", "", true ); LaunchTabView.addLaunchTab( "BROWSER", "", true ); - %launchGui = GameGui; - } - else if ( isDemoServer() ) - { - LaunchTabView.addLaunchTab( "GAME", GameGui ); - %launchGui = GameGui; + %launchGui = NewsGui; } else if ( $PlayingOnline ) { @@ -199,6 +187,12 @@ function OpenLaunchTabs( %gotoWarriorSetup ) LaunchGame( "WARRIOR" ); else LaunchTabView.viewTab( "", %launchGui, 0 ); + + if ( $IssueVoodooWarning && !$pref::SawVoodooWarning ) + { + $pref::SawVoodooWarning = 1; + schedule( 0, 0, MessageBoxOK, "WARNING", "A Voodoo card has been detected. If you experience any graphical oddities, you should try the WickedGl drivers available at www.wicked3d.com" ); + } } //-------------------------------------------------------- @@ -328,7 +322,7 @@ function LaunchGui::onWake(%this) if ( !$FirstLaunch ) LaunchTabView.viewLastTab(); - if ( !isDemo() && !isDemoServer() ) + if ( !isDemo() ) checkNamesAndAliases(); else OpenLaunchTabs(); diff --git a/base/scripts/LobbyGui.cs b/base/scripts/LobbyGui.cs index 9c01094..fa19348 100644 --- a/base/scripts/LobbyGui.cs +++ b/base/scripts/LobbyGui.cs @@ -526,8 +526,9 @@ function lobbyVote() return; case "ChooseTeam": - fillLobbyTeamMenu(); - return; + commandToServer( 'ClientJoinTeam', -1, true ); + schedule( 100, 0, lobbyReturnToGame ); + return; case "VoteTournamentMode": LobbyVoteMenu.tourneyChoose = 1; diff --git a/base/scripts/OptionsDlg.cs b/base/scripts/OptionsDlg.cs index 76760a9..f6b35c4 100644 --- a/base/scripts/OptionsDlg.cs +++ b/base/scripts/OptionsDlg.cs @@ -11,9 +11,6 @@ $max_TSDetailAdjust = 1.0; //------------------------------------------------------------------------------ function OptionsDlg::onWake( %this ) { - $enableDirectInput = "1"; - activateDirectInput(); - OP_VideoPane.setVisible( false ); OP_GraphicsPane.setVisible( false ); OP_TexturesPane.setVisible( false ); @@ -59,6 +56,8 @@ function OptionsDlg::onWake( %this ) OP_BPPMenu.setActive( false ); OP_GammaSlider.setValue( $pref::OpenGL::gammaCorrection ); + OP_GammaSlider.setActive( $Video::setGammaCorrectionSupported ); + OP_TerrainSlider.setValue( $max_screenerror - $pref::Terrain::screenError ); OP_ShapeSlider.setValue( ( $max_TSScreenError - $pref::TS::screenError ) / ( $max_TSScreenError - $min_TSScreenError ) ); OP_ShadowSlider.setValue( $pref::Shadows ); @@ -92,7 +91,9 @@ function OptionsDlg::onWake( %this ) OP_ShapeTexSlider.setValue( (5 - $pref::OpenGL::mipReduction) / %mipRange ); OP_BuildingTexSlider.setValue( (5 - $pref::OpenGL::interiorMipReduction) / %mipRange ); OP_SkyTexSlider.setValue( (5 - $pref::OpenGL::skyMipReduction) / %mipRange ); - + if ( !isDemo() ) + OP_HiResSkinTgl.setValue( $pref::use512PlayerSkins ); + // Initialize the Sound Options controls: // provider menu %count = alxGetContexti(ALC_PROVIDER_COUNT); @@ -102,8 +103,12 @@ function OptionsDlg::onWake( %this ) OP_AudioProviderMenu.setSelected(%selId); OP_AudioResetProvider.setActive(false); - %active = audioIsEnvironmentProvider(alxGetContextstr(ALC_PROVIDER_NAME, %selId)); - OP_AudioEnvironmentTgl.setActive(%active); + // environment provider: disable and uncheck if not an environment provider + %envProvider = audioIsEnvironmentProvider(alxGetContextstr(ALC_PROVIDER_NAME, %selId)); + + if(!%envProvider) + OP_AudioEnvironmentTgl.setValue(false); + OP_AudioEnvironmentTgl.setActive(%envProvider); // speaker menu %count = alxGetContexti(ALC_SPEAKER_COUNT); @@ -121,16 +126,23 @@ function OptionsDlg::onWake( %this ) %active = !isObject(ServerConnection); OP_AudioFrequencyMenu.setActive(%active); // Changing these audio settings doesn't help Linux performance - if ( $platform $= "linux" ) { + if ( $platform $= "linux" ) + { OP_AudioBitRateMenu.setActive(false); OP_AudioChannelsMenu.setActive(false); - } else { + } + else + { OP_AudioBitRateMenu.setActive(%active); OP_AudioChannelsMenu.setActive(%active); } - OP_AudioProviderMenu.setActive(%active); + + // only allow for disable + if(!%active) OP_AudioEnvironmentTgl.setActive(%active); - OP_AudioSpeakerMenu.setActive(%active); + + OP_AudioProviderMenu.setActive(%active); + OP_AudioSpeakerMenu.setActive(%active); OP_MasterVolumeSlider.setValue( $pref::Audio::masterVolume ); OP_EffectsVolumeSlider.setValue( $pref::Audio::effectsVolume ); @@ -150,8 +162,7 @@ function OptionsDlg::onWake( %this ) // Initialize the Control Options controls: OP_ControlGroupMenu.init(); - - // JOYSTICK SUPPORT WILL BE RE-ENABLED IN THE PATCH + if ( isJoystickDetected() ) { OP_JoystickTgl.setValue( $pref::Input::JoystickEnabled ); @@ -222,17 +233,25 @@ function OptionsDlg::deviceDependent( %this ) OP_VSyncTgl.setActive( false ); } - OP_TexQualityMenu.init(); - if ( $pref::OpenGL::forcePalettedTexture ) + if ( isDemo() ) { - $pref::OpenGL::force16bittexture = false; - %selId = 1; + OP_TexQualityMenu.setText( "Palletized" ); + OP_TexQualityMenu.setActive( false ); } - else if ( $pref::OpenGL::force16bittexture ) - %selId = 2; else - %selId = 3; - OP_TexQualityMenu.setSelected( %selId ); + { + OP_TexQualityMenu.init(); + if ( $pref::OpenGL::forcePalettedTexture ) + { + $pref::OpenGL::force16bittexture = false; + %selId = 1; + } + else if ( $pref::OpenGL::force16bittexture ) + %selId = 2; + else + %selId = 3; + OP_TexQualityMenu.setSelected( %selId ); + } OP_CompressMenu.init(); if ( $TextureCompressionSupported && !$pref::OpenGL::disableARBTextureCompression ) @@ -286,9 +305,6 @@ function OptionsDlg::deviceDependent( %this ) //------------------------------------------------------------------------------ function OptionsDlg::onSleep( %this ) { - $enableDirectInput = "0"; - deactivateDirectInput(); - OP_VideoDriverMenu.clear(); OP_ResMenu.clear(); OP_BPPMenu.clear(); @@ -304,10 +320,10 @@ function OptionsDlg::onSleep( %this ) %this.resetAudio = ""; // Play the shell hum: (all sources are gone) - if($HudHandle['shellScreen'] $= "") - alxStop($HudHandle['shellScreen']); + if($HudHandle[shellScreen] $= "") + alxStop($HudHandle[shellScreen]); - $HudHandle['shellScreen'] = alxPlay(ShellScreenHumSound, 0, 0, 0); + $HudHandle[shellScreen] = alxPlay(ShellScreenHumSound, 0, 0, 0); } if ( isObject( ServerConnection ) && isTextureFlushRequired() ) @@ -342,19 +358,22 @@ function isTextureFlushRequired() if ( $AnisotropySupported && $pref::OpenGL::anisotropy != OP_AnisotropySlider.getValue() ) return( true ); - %id = OP_TexQualityMenu.getSelected(); - if ( $pref::OpenGL::forcePalettedTexture ) + if ( !isDemo() ) { - if ( %id != 1 ) + %id = OP_TexQualityMenu.getSelected(); + if ( $pref::OpenGL::forcePalettedTexture ) + { + if ( %id != 1 ) + return( true ); + } + else if ( $pref::OpenGL::force16bittexture ) + { + if ( %id != 2 ) + return( true ); + } + else if ( %id != 3 ) return( true ); - } - else if ( $pref::OpenGL::force16bittexture ) - { - if ( %id != 2 ) - return( true ); - } - else if ( %id != 3 ) - return( true ); + } if ( $TextureCompressionSupported && !$pref::OpenGL::disableARBTextureCompression ) { @@ -423,31 +442,34 @@ function OptionsDlg::saveSettings( %this ) $pref::Player::renderMyPlayer = %temp & 1; $pref::Player::renderMyItems = %temp & 2; - switch ( OP_TexQualityMenu.getSelected() ) + if ( !isDemo() ) { - case 1: // 8-bit - if ( !$pref::OpenGL::forcePalettedTexture || $pref::OpenGL::force16bittexture ) - { - $pref::OpenGL::forcePalettedTexture = true; - $pref::OpenGL::force16bittexture = false; - %flushTextures = true; - } - case 2: // 16-bit - if ( $pref::OpenGL::forcePalettedTexture || !$pref::OpenGL::force16bittexture ) - { - $pref::OpenGL::forcePalettedTexture = false; - $pref::OpenGL::force16bittexture = true; - %flushTextures = true; - } - case 3: // 32-bit - if ( $pref::OpenGL::forcePalettedTexture || $pref::OpenGL::force16bittexture ) - { - $pref::OpenGL::forcePalettedTexture = false; - $pref::OpenGL::force16bittexture = false; - %flushTextures = true; - } + switch ( OP_TexQualityMenu.getSelected() ) + { + case 1: // 8-bit + if ( !$pref::OpenGL::forcePalettedTexture || $pref::OpenGL::force16bittexture ) + { + $pref::OpenGL::forcePalettedTexture = true; + $pref::OpenGL::force16bittexture = false; + %flushTextures = true; + } + case 2: // 16-bit + if ( $pref::OpenGL::forcePalettedTexture || !$pref::OpenGL::force16bittexture ) + { + $pref::OpenGL::forcePalettedTexture = false; + $pref::OpenGL::force16bittexture = true; + %flushTextures = true; + } + case 3: // 32-bit + if ( $pref::OpenGL::forcePalettedTexture || $pref::OpenGL::force16bittexture ) + { + $pref::OpenGL::forcePalettedTexture = false; + $pref::OpenGL::force16bittexture = false; + %flushTextures = true; + } + } + OP_TexQualityMenu.clear(); } - OP_TexQualityMenu.clear(); $pref::Terrain::texDetail = 6 - mFloor( OP_TerrainTexSlider.getValue() ); @@ -532,6 +554,16 @@ function OptionsDlg::saveSettings( %this ) %flushTextures = true; } } + + if ( !isDemo() ) + { + if ( OP_HiResSkinTgl.getValue() != $pref::use512PlayerSkins ) + { + $pref::use512PlayerSkins = OP_HiResSkinTgl.getValue(); + if ( Canvas.getContent() == GameGui.getId() && GM_WarriorPane.isVisible() ) + GMW_PlayerModel.update(); + } + } $pref::Terrain::screenError = $max_screenerror - mFloor( OP_TerrainSlider.getValue() ); $pref::TS::screenError = $max_TSScreenError - mFloor( OP_ShapeSlider.getValue() * ( $max_TSScreenError - $min_TSScreenError ) ); @@ -929,6 +961,10 @@ function setAudioProvider(%idx) $pref::Audio::provider = alxGetContextstr(ALC_PROVIDER_NAME, %idx); %active = audioIsEnvironmentProvider($pref::Audio::provider); + + // unset tgl if cannot be environment provider + if(!%active) + OP_AudioEnvironmentTgl.setValue(false); OP_AudioEnvironmentTgl.setActive(%active); audioUpdateProvider($pref::Audio::provider); @@ -1566,12 +1602,15 @@ $RemapCount++; $RemapName[$RemapCount] = "Toggle Commands"; $RemapCmd[$RemapCount] = "toggleHudCommands"; $RemapCount++; -// $RemapName[$RemapCount] = "Start Demo Record"; -// $RemapCmd[$RemapCount] = "startRecordingDemo"; -// $RemapCount++; -// $RemapName[$RemapCount] = "Stop Demo Record"; -// $RemapCmd[$RemapCount] = "stopRecordingDemo"; -// $RemapCount++; +if ( !isDemo() ) +{ + $RemapName[$RemapCount] = "Start Demo Record"; + $RemapCmd[$RemapCount] = "startRecordingDemo"; + $RemapCount++; + $RemapName[$RemapCount] = "Stop Demo Record"; + $RemapCmd[$RemapCount] = "stopRecordingDemo"; + $RemapCount++; +} $RemapName[$RemapCount] = "Chat Page Up"; $RemapCmd[$RemapCount] = "pageMessageHudUp"; $RemapCount++; @@ -1632,7 +1671,11 @@ function isMapFile( %file ) //------------------------------------------------------------------------------ function isValidMapFileSaveName( %file ) { - if ( !isWriteableFileName( "base/" @ %file ) ) + if (isDemo()) + %basePath = "demo_base/"; + else + %basePath = "base/"; + if ( !isWriteableFileName( %basePath @ %file ) ) return( false ); if ( isFile( %file ) ) @@ -1661,8 +1704,19 @@ function saveActiveMapFile() //------------------------------------------------------------------------------ function saveMapFile( %filename ) { + if ( strcspn( %filename, "\\/?*\"\'<>|" ) < strlen( %filename ) ) + { + MessageBoxOK( "SAVE FAILED", "Filenames may not contain any of the following characters:" NL "\\ / ? * < > \" \' |", + "ShellGetSaveFilename( \"SAVE CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"saveMapFile\", $pref::Input::ActiveConfig );" ); + return; + } + + if (isDemo()) + %basePath = "demo_base/"; + else + %basePath = "base/"; %mapFile = "prefs/" @ %filename @ ".cs"; - if ( !isWriteableFileName( "base/" @ %mapFile ) ) + if ( !isWriteableFileName( %basePath @ %mapFile ) ) { MessageBoxOK( "SAVE FAILED", "That is not a writeable file name. Please choose another file name.", "ShellGetSaveFilename( \"SAVE CONTROL CONFIG\", \"prefs/*.cs\", \"isMapFile\", \"saveMapFile\", $pref::Input::ActiveConfig );" ); @@ -1685,8 +1739,11 @@ function saveMapFile( %filename ) if ( %fObject.openForAppend( %mapFile ) ) { %bind = GlobalActionMap.getBinding( "toggleConsole" ); - %fObject.writeLine( "GlobalActionMap.bind(keyboard, \"" @ getField( %bind, 1 ) @ "\", toggleConsole);" ); - %fObject.close(); + if ( %bind !$= "" ) + { + %fObject.writeLine( "GlobalActionMap.bind(keyboard, \"" @ getField( %bind, 1 ) @ "\", toggleConsole);" ); + %fObject.close(); + } } %fObject.delete(); @@ -1860,12 +1917,22 @@ function OP_ConsoleKeyBtn::doRemap( %this ) //------------------------------------------------------------------------------ function RemapDlg::onWake( %this ) { + $enableDirectInput = "1"; + activateDirectInput(); + if ( RemapInputCtrl.mode $= "consoleKey" ) RemapText.setText( "Press a key to assign it to this action" NL "or Esc to cancel..." ); else RemapText.setText( "Press a key or button to assign it to this action" NL "or Esc to cancel..." ); } +//------------------------------------------------------------------------------ +function RemapDlg::onSleep( %this ) +{ + $enableDirectInput = "1"; + deactivateDirectInput(); +} + //------------------------------------------------------------------------------ function findRemapCmdIndex( %command ) { @@ -2144,6 +2211,7 @@ function JoystickConfigDlg::onWake( %this ) case "U": %tabName = "U Axis"; %tabType = "ryaxis"; case "V": %tabName = "V Axis"; %tabType = "rzaxis"; case "S": %tabName = "Slider"; %tabType = "slider"; + case "L": %tabName = "Slider 2"; %tabType = "slider2"; default: %tabName = ""; } @@ -2233,7 +2301,7 @@ function JoystickConfigDlg::setPane( %this, %pane ) else DeadZoneSlider.setValue( abs( firstWord( %deadZone ) ) / %scale ); InvertJoyAxisTgl.setValue( moveMap.isInverted( "joystick", %axisType ) ); - JoyAxisRelativeTgl.setValue( moveMap.isRelativeAxis( "joystick", %axisType ) ); + //JoyAxisRelativeTgl.setValue( moveMap.isRelativeAxis( "joystick", %axisType ) ); } else { @@ -2242,7 +2310,7 @@ function JoystickConfigDlg::setPane( %this, %pane ) JoyAxisSlider.setValue( 0.5 ); DeadZoneSlider.setValue( 0.0 ); InvertJoyAxisTgl.setValue( false ); - JoyAxisRelativeTgl.setValue( %axisType $= "slider" ); + //JoyAxisRelativeTgl.setValue( %axisType $= "slider" ); } } @@ -2255,7 +2323,7 @@ function JoyAxisActionMenu::onSelect( %this, %id, %text ) DeadZoneSlider.setActive( %on ); DeadZoneText.setVisible( %on ); InvertJoyAxisTgl.setActive( %on ); - JoyAxisRelativeTgl.setActive( %on ); + //JoyAxisRelativeTgl.setActive( %on ); } //------------------------------------------------------------------------------ @@ -2293,8 +2361,8 @@ function bindJoystickAxis( %axisIndex, %cmdIndex ) %flags = "S"; if ( InvertJoyAxisTgl.getValue() ) %flags = %flags @ "I"; - if ( JoyAxisRelativeTgl.getValue() ) - %flags = %flags @ "L"; +// if ( JoyAxisRelativeTgl.getValue() ) +// %flags = %flags @ "L"; if ( %delta > 0 ) { %deadZone = "-" @ %delta SPC %delta; @@ -2544,9 +2612,35 @@ function OP_LaunchScreenMenu::init( %this ) %this.add( "Browser", 6 ); } +//------------------------------------------------------------------------------ +function toggleInvertYAxis() +{ + // Catch the case where this is toggled in-game while in a vehicle: + if ( isObject( passengerKeys ) ) + { + %bind = passengerKeys.getBinding( pitch ); + if ( %bind !$= "" ) + { + %device = getField( %bind, 0 ); + %action = getField( %bind, 1 ); + %flags = $pref::Vehicle::InvertYAxis ? "SDI" : "SD"; + %deadZone = passengerKeys.getDeadZone( %device, %action ); + %scale = passengerKeys.getScale( %device, %action ); + passengerKeys.bind( %device, %action, %flags, %deadZone, %scale, pitch ); + } + } +} + //------------------------------------------------------------------------------ function toggleImmersion() { MessageBoxOK( "Force Feedback", "This will take effect the next time you start Tribes 2." ); } +//------------------------------------------------------------------------------ +function toggleVehicleTeleportPref() +{ + // If we are in a game, let the server know we've changed; + if ( isObject( ServerConnection ) ) + commandToServer( 'EnableVehicleTeleport', $pref::Vehicle::pilotTeleport ); +} diff --git a/base/scripts/SiegeGame.cs b/base/scripts/SiegeGame.cs index 69b54f3..3d97da4 100644 --- a/base/scripts/SiegeGame.cs +++ b/base/scripts/SiegeGame.cs @@ -53,7 +53,8 @@ function FlipFlop::playerTouch(%data, %flipflop, %player) if(%player.team != Game.offenseTeam) return; - %defTeam = %game.offenseTeam == 1 ? 2 : 1; + %defTeam = Game.offenseTeam == 1 ? 2 : 1; + Game.capPlayer[Game.offenseTeam] = stripChars( getTaggedString( %player.client.name ), "\cp\co\c6\c7\c8\c9" ); // Let the observers know: messageTeam( 0, 'MsgSiegeTouchFlipFlop', '\c2%1 captured the %2 base!~wfx/misc/flipflop_taken.wav', %player.client.name, $TeamName[%defTeam] ); @@ -108,6 +109,9 @@ function SiegeGame::claimFlipflopResources(%game, %flipflop, %team) function SiegeGame::missionLoadDone(%game) { + if( $Host::timeLimit == 0 ) + $Host::timeLimit = 999; + //default version sets up teams - must be called first... DefaultGame::missionLoadDone(%game); @@ -128,7 +132,7 @@ function SiegeGame::missionLoadDone(%game) } //send the message - messageAll('MsgSiegeStart', '\c2%1 is starting on offense', $teamName[%game.offenseTeam]); + messageAll('MsgSiegeStart', '\c2Team %1 is starting on offense', $teamName[%game.offenseTeam]); //if the first offense team is team2, switch the object team designation if (%game.offenseTeam == 2) @@ -153,6 +157,8 @@ function SiegeGame::missionLoadDone(%game) %game.firstHalf = true; %game.timeLimitMS = $Host::TimeLimit * 60 * 1000; %game.secondHalfCountDown = false; + %game.capPlayer[1] = ""; + %game.capPlayer[2] = ""; // save off turret bases' original barrels %game.checkTurretBases(); @@ -222,6 +228,16 @@ function SiegeGame::startMatch(%game) %game.timeThread = %game.schedule( %game.timeLimitMS, "timeLimitReached"); //updateClientTimes(%game.timeLimitMS); messageAll('MsgSystemClock', "", $Host::TimeLimit, %game.timeLimitMS); + +// %count = ClientGroup.getCount(); +// for ( %i = 0; %i < %count; %i++ ) +// { +// %cl = ClientGroup.getObject( %i ); +// if ( %cl.team == %game.offenseTeam ) +// centerPrint( %cl, "\nTouch the enemy control switch to capture their base!", 5, 3 ); +// else +// centerPrint( %cl, "\nPrevent the enemy from touching your control switch!", 5, 3 ); +// } //make sure the AI is started AISystemEnabled(true); @@ -235,7 +251,7 @@ function SiegeGame::allObjectivesCompleted(%game) //store the elapsed time in the teamScore array... $teamScore[%game.offenseTeam] = getSimTime() - %game.startTimeMS; - messageAll('MsgSiegeCaptured', '\c2%1 captured the base in %2!', $teamName[%game.offenseTeam], %game.formatTime($teamScore[%game.offenseTeam], true)); + messageAll('MsgSiegeCaptured', '\c2Team %1 captured the base in %2!', $teamName[%game.offenseTeam], %game.formatTime($teamScore[%game.offenseTeam], true)); //set the new timelimit %game.timeLimitMS = $teamScore[%game.offenseTeam]; @@ -243,8 +259,7 @@ function SiegeGame::allObjectivesCompleted(%game) if (%game.firstHalf) { // it's halftime, let everyone know - messageAll('MsgSiegeSwitchSides', ""); - CenterPrintAll( "Switching Sides", 3 ); + messageAll( 'MsgSiegeHalftime' ); } else { @@ -265,18 +280,19 @@ function SiegeGame::timeLimitReached(%game) // if time has run out, the offense team gets no score (note, %game.timeLimitMS doesn't change) $teamScore[%game.offenseTeam] = 0; - messageAll('MsgSiegeFailed', '\c2%1 failed to capture the base.', $teamName[%game.offenseTeam]); + messageAll('MsgSiegeFailed', '\c2Team %1 failed to capture the base.', $teamName[%game.offenseTeam]); if (%game.firstHalf) { // it's halftime, let everyone know - CenterPrintAll( "Switching Sides", 3 ); + messageAll( 'MsgSiegeHalftime' ); } else { // game is over messageAll('MsgSiegeMisDone', '\c2Mission complete.'); } + logEcho("time limit reached"); %game.halftime('time'); } @@ -342,6 +358,10 @@ function SiegeGame::startSecondHalf(%game) %cl.observerMode = ""; %cl.setControlObject( %cl.player ); commandToClient(%cl, 'setHudMode', 'Standard'); +// if ( %client.team == %game.offenseTeam ) +// centerPrint( %cl, "\nTouch the enemy control switch to capture their base!", 5, 3 ); +// else +// centerPrint( %cl, "\nPrevent the enemy from touching your control switch!", 5, 3 ); } } @@ -362,13 +382,14 @@ function SiegeGame::halftime(%game, %reason) { //switch the game variables %game.firstHalf = false; + %oldOffenseTeam = %game.offenseTeam; if (%game.offenseTeam == 1) %game.offenseTeam = 2; else %game.offenseTeam = 1; //send the message - messageAll('MsgSiegeRolesSwitched', '\c2%1 is now on offense.', $teamName[%game.offenseTeam], %game.offenseTeam); + messageAll('MsgSiegeRolesSwitched', '\c2Team %1 is now on offense.', $teamName[%game.offenseTeam], %game.offenseTeam); //reset stations and vehicles that players were using %game.resetPlayers(); @@ -398,22 +419,62 @@ function SiegeGame::halftime(%game, %reason) %client = ClientGroup.getObject(%cl); if( !%client.isAIControlled() ) { + // Put everybody in observer mode: + %client.camera.getDataBlock().setMode( %client.camera, "observerStaticNoNext" ); + %client.setControlObject( %client.camera ); + + // Send the halftime result info: + if ( %client.team == %oldOffenseTeam ) + { + if ( $teamScore[%oldOffenseTeam] > 0 ) + messageClient( %client, 'MsgSiegeResult', "", '%1 captured the %2 base in %3!', %game.capPlayer[%oldOffenseTeam], $teamName[%game.offenseTeam], %game.formatTime( $teamScore[%oldOffenseTeam], true ) ); + else + messageClient( %client, 'MsgSiegeResult', "", 'Your team failed to capture the %1 base.', $teamName[%game.offenseTeam] ); + } + else if ( $teamScore[%oldOffenseTeam] > 0 ) + messageClient( %client, 'MsgSiegeResult', "", '%1 captured your base in %3!', %game.capPlayer[%oldOffenseTeam], %game.formatTime( $teamScore[%oldOffenseTeam], true ) ); + else + messageClient( %client, 'MsgSiegeResult', "", 'Your team successfully held off team %1!', $teamName[%oldOffenseTeam] ); + + // List out the team rosters: + messageClient( %client, 'MsgSiegeAddLine', "", '%1%2', $TeamName[1], $TeamName[2] ); + %max = $TeamRank[1, count] > $TeamRank[2, count] ? $TeamRank[1, count] : $TeamRank[2, count]; + for ( %line = 0; %line < %max; %line++ ) + { + %plyr1 = $TeamRank[1, %line] $= "" ? "" : $TeamRank[1, %line].name; + %plyr2 = $TeamRank[2, %line] $= "" ? "" : $TeamRank[2, %line].name; + messageClient( %client, 'MsgSiegeAddLine', "", ' %1 %2', %plyr1, %plyr2 ); + } + + // Show observers: + %header = false; + for ( %i = 0; %i < %count; %i++ ) + { + %obs = ClientGroup.getObject( %i ); + if ( %obs.team <= 0 ) + { + if ( !%header ) + { + messageClient( %client, 'MsgSiegeAddLine', "", '\nOBSERVERS' ); + %header = true; + } + + messageClient( %client, 'MsgSiegeAddLine', "", ' %1', %obs.name ); + } + } + + commandToClient( %client, 'SetHalftimeClock', $Host::Siege::Halftime / 60000 ); + + // Get the HUDs right: + commandToClient( %client, 'setHudMode', 'SiegeHalftime' ); + commandToClient( %client, 'ControlObjectReset' ); + clientResetTargets(%client, true); %client.notReady = true; } } - - // drop all players into mission - %game.dropPlayers(); - - //setup the AI for the second half - %game.aiHalfTime(); - // start the mission again (release players) - %game.halfTimeCountDown($Host::warmupTime); - - //redo the objective waypoints - %game.findObjectiveWaypoints(); + %game.schedule( $Host::Siege::Halftime, halftimeOver ); } else { @@ -423,6 +484,21 @@ function SiegeGame::halftime(%game, %reason) } } +function SiegeGame::halftimeOver( %game ) +{ + // drop all players into mission + %game.dropPlayers(); + + //setup the AI for the second half + %game.aiHalfTime(); + + // start the mission again (release players) + %game.halfTimeCountDown( $Host::warmupTime ); + + //redo the objective waypoints + %game.findObjectiveWaypoints(); +} + function SiegeGame::dropPlayers( %game ) { %count = ClientGroup.getCount(); @@ -709,8 +785,13 @@ function siegeGame::findObjectiveWaypoints(%game, %group) function siegeGame::initializeWaypointAtObjective(%game, %object) { // out with the old...jic - if(%object.waypoint) - %object.waypoint.delete(); + if ( %object.waypoint ) + { + if ( isObject( %object.waypoint ) ) + %object.waypoint.delete(); + else + %object.waypoint = ""; + } if(%object.team == %game.offenseTeam) %team = %game.offenseTeam; @@ -731,7 +812,7 @@ function siegeGame::initializeWaypointAtObjective(%game, %object) scale = "1 1 1"; dataBlock = "WayPointMarker"; team = %team; - name = %object.nameTag SPC %append; + name = getTaggedString(%object.nameTag) SPC %append; }; MissionCleanup.add(%object.waypoint); } @@ -745,7 +826,6 @@ function siegeGame::switchWaypoint(%game, %waypoint) } - function SiegeGame::gameOver(%game) { //call the default @@ -795,21 +875,21 @@ function SiegeGame::sendDebriefing( %game, %client ) if (%winner == 1) { if ($teamScore[2] == 0) - messageClient(%client, 'MsgDebriefResult', "", '%1 wins!', $TeamName[1]); + messageClient(%client, 'MsgDebriefResult', "", 'Team %1 wins!', $TeamName[1]); else { %timeDiffMS = $teamScore[2] - $teamScore[1]; - messageClient(%client, 'MsgDebriefResult', "", '%1 won by capturing the base %2 faster!', $TeamName[1], %game.formatTime(%timeDiffMS, true)); + messageClient(%client, 'MsgDebriefResult', "", 'Team %1 won by capturing the base %2 faster!', $TeamName[1], %game.formatTime(%timeDiffMS, true)); } } else { if ($teamScore[1] == 0) - messageClient(%client, 'MsgDebriefResult', "", '%1 wins!', $TeamName[2]); + messageClient(%client, 'MsgDebriefResult', "", 'Team %1 wins!', $TeamName[2]); else { %timeDiffMS = $teamScore[1] - $teamScore[2]; - messageClient(%client, 'MsgDebriefResult', "", '%1 won by capturing the base %2 faster!', $TeamName[2], %game.formatTime(%timeDiffMS, true)); + messageClient(%client, 'MsgDebriefResult', "", 'Team %1 won by capturing the base %2 faster!', $TeamName[2], %game.formatTime(%timeDiffMS, true)); } } } @@ -818,24 +898,26 @@ function SiegeGame::sendDebriefing( %game, %client ) // Game summary: messageClient( %client, 'MsgDebriefAddLine', "", 'SUMMARY:' ); - if ( $teamScore[1] > 0 ) + %team1 = %game.offenseTeam == 1 ? 2 : 1; + %team2 = %game.offenseTeam; + if ( $teamScore[%team1] > 0 ) { - %timeStr = %game.formatTime($teamScore[1], true); - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 captured the base in %2.', $TeamName[1], %timeStr); + %timeStr = %game.formatTime($teamScore[%team1], true); + messageClient( %client, 'MsgDebriefAddLine', "", '%1 captured the %2 base for Team %3 in %4.', %game.capPlayer[%team1], $TeamName[%team2], $TeamName[%team1], %timeStr); } else - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 failed to capture the base.', $TeamName[1]); + messageClient( %client, 'MsgDebriefAddLine', "", 'Team %1 failed to capture the base.', $TeamName[%team1]); - if ( $teamScore[2] > 0 ) + if ( $teamScore[%team2] > 0 ) { - %timeStr = %game.formatTime($teamScore[2], true); - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 captured the base in %2.', $TeamName[2], %timeStr); + %timeStr = %game.formatTime($teamScore[%team2], true); + messageClient( %client, 'MsgDebriefAddLine', "", '%1 captured the %2 base for Team %3 in %4.', %game.capPlayer[%team2], $TeamName[%team1], $TeamName[%team2], %timeStr); } else - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 failed to capture the base.', $TeamName[2]); + messageClient( %client, 'MsgDebriefAddLine', "", 'Team %1 failed to capture the base.', $TeamName[%team2]); // List out the team rosters: - messageClient( %client, 'MsgDebriefAddLine', "", '\n%1%2', $TeamName[1], $TeamName[2] ); + messageClient( %client, 'MsgDebriefAddLine', "", '\n%1%2', $TeamName[1], $TeamName[2] ); %max = $TeamRank[1, count] > $TeamRank[2, count] ? $TeamRank[1, count] : $TeamRank[2, count]; for ( %line = 0; %line < %max; %line++ ) { @@ -880,6 +962,7 @@ function SiegeGame::clientMissionDropReady(%game, %client) function SiegeGame::assignClientTeam(%game, %client, %respawn) { DefaultGame::assignClientTeam(%game, %client, %respawn); + // if player's team is not on top of objective hud, switch lines messageClient(%client, 'MsgCheckTeamLines', "", %client.team); } @@ -1038,10 +1121,10 @@ function SiegeGame::updateScoreHud(%game, %client, %tag) // Send header: if (%game.firstHalf) - messageClient( %client, 'SetScoreHudHeader', "", '%1 has %2 to capture the base.', + messageClient( %client, 'SetScoreHudHeader', "", 'Team %1 has %2 to capture the base.', $teamName[%game.offenseTeam], %curTimeLeftStr ); else - messageClient( %client, 'SetScoreHudHeader', "", '%1 must capture the base within %2 to win.', + messageClient( %client, 'SetScoreHudHeader', "", 'Team %1 must capture the base within %2 to win.', $teamName[%game.offenseTeam], %curTimeLeftStr ); // Send subheader: @@ -1127,4 +1210,4 @@ function SiegeGame::updateScoreHud(%game, %client, %tag) //clear the rest of Hud so we don't get old lines hanging around... messageClient( %client, 'ClearHud', "", %tag, %index ); -} +} \ No newline at end of file diff --git a/base/scripts/SinglePlayerGame.cs b/base/scripts/SinglePlayerGame.cs index a97b7b2..4fba7a6 100644 --- a/base/scripts/SinglePlayerGame.cs +++ b/base/scripts/SinglePlayerGame.cs @@ -1,10 +1,17 @@ // Training Script //echo("Running Training Script"); +datablock EffectProfile(TrainingHudUpdateEffect) +{ + effectname = "gui/objective_notification"; + minDistance = 10; +}; + datablock AudioProfile(TrainingHudUpdateSound) { filename = "gui/objective_notification.wav"; description = AudioDefault3d; + effect = TrainingHudUpdateEffect; preload = true; }; @@ -289,9 +296,9 @@ function spawnWaveTimer(%wave, %reset) if(%reset) { cancel(game.spawnWaveTimer); - %timeForAction = 60000 * 5; //5 min + %timeForAction = 60000 * 2; //2 min } - else %timeForAction = 60000 * 5; //5 min + else %timeForAction = 60000 * 4; //4 min game.spawnWaveTimer = schedule(%timeForAction, game, destroyWave, %wave); } @@ -451,6 +458,7 @@ function SinglePlayerGame::clientMissionDropReady(%game, %client) $player.team = $playerTeam; $player.setTeam($playerTeam); setTargetSkin($teammate[%i].target, $teamSkin[$playerTeam]); + $player.clearBackpackIcon(); createText($player); HUDMessageVector.clear(); @@ -522,7 +530,6 @@ function setFlipFlopSkins(%group) function singlePlayerGame::gameOver(%game) { - moveMap.push(); ServerConnection.setBlackOut(false, 0); @@ -532,8 +539,9 @@ function singlePlayerGame::gameOver(%game) game.missionOver = true; // clear the inventory and weapons hud - error("clearing Inv HUD"); - $player.SetInventoryHudClearAll(); + // BH: This doesn't actually DO anything... + //error("clearing Inv HUD for client " @ $player); + //$player.SetInventoryHudClearAll(); // im gonna try dropping all the clients %count = clientGroup.getCount(); @@ -598,7 +606,7 @@ function doText(%name, %extraTime, %priority) else addToQueueEnd(%name); $player.text[%name, extraTime] = %extraTime; - processText(); + processText(false); } function processText(%cont) @@ -606,7 +614,7 @@ function processText(%cont) //we may need to fudge everysound to get it timed right %universalSoundFudgingConstant = 400; - if($currentlyPlaying && !%cont) + if(isEventPending($currentlyPlaying) && !%cont) return; %name = $player.Textque0; @@ -615,7 +623,12 @@ function processText(%cont) //echo("processing: "@%name); if($player.Text[%name, eval] !$= "") - eval($player.text[%name, eval]); + { + if (!isPureServer()) + eval($player.text[%name, eval]); + else + processTextEval($player.text[%name, eval]); + } if($player.Text[%name, text] !$= "") { // the old way: messageClient($player, 0, '\c2%1: %2',$trainerName, $player.Text[%name, line]); messageClient($player, 0, "\c5"@$player.Text[%name, text]); @@ -630,16 +643,131 @@ function processText(%cont) removeFromQueue(); %wavLen = alxGetWaveLen($player.text[%name, wav]); - //echo("got wave length of: "@%wavLen); //if(%wavLen < 400) // %wavLen = 400; // you cant go back in time, vge - %time = %wavLen + $player.text[%name, extraTime] + %universalSoundFudgingConstant; - //echo("total delay time of"@%time); - $currentlyPlaying = schedule(%time , $player.player, processText, true); - schedule(%time, 0, eval, "$currentlyPlaying = false;"); + %time = %wavLen + $player.text[%name, extraTime] + %universalSoundFudgingConstant; + //echo("total delay time of"@%time); + + $currentlyPlaying = schedule(%time, $player.player, processText, true); + //if (!isPureServer()) + // schedule(%time, 0, eval, "$currentlyPlaying = false;"); + //else + // schedule(%time, 0, SPUnsetCurrentlyPlaying); } +function SPUnsetCurrentlyPlaying() +{ + $currentlyPlaying = ""; +error(getSimTime() SPC "DEBUG setting currentlyPlaying null"); +} + +function processTextEval(%evalStmt) +{ + switch$ (%evalStmt) + { + case "singlePlayerPlayGuiCheck();": + singlePlayerPlayGuiCheck(); + + case "schedule(3000, 0, disconnect);": + schedule(3000, 0, disconnect); + + case "lockArmorHack();autoToggleHelpHud(true);": + lockArmorHack();autoToggleHelpHud(true); + + case "flashMessage();": + flashMessage(); + + case "flashObjective();": + flashObjective(); + + case "flashCompass();": + flashCompass(); + + case "flashHealth();": + flashHealth(); + + case "flashEnergy();": + flashEnergy(); + + case "flashInventory();": + flashInventory(); + + case "flashSensor();": + flashSensor(); + + case "autoToggleHelpHud(false);": + autoToggleHelpHud(false); + + case "setWaypointAt(\"-287.5 393.1 76.2\", \"Health Patches\");movemap.push();$player.player.setMoveState(false);": + setWaypointAt("-287.5 393.1 76.2", "Health Patches");movemap.push();$player.player.setMoveState(false); + + case "$player.hurryUp = schedule(40000, 0, hurryPlayerUp); endOpeningSpiel(); updateTrainingObjectiveHud(obj8);": + $player.hurryUp = schedule(40000, 0, hurryPlayerUp); endOpeningSpiel(); updateTrainingObjectiveHud(obj8); + + case "updateTrainingObjectiveHud(obj7);": + updateTrainingObjectiveHud(obj7); + + case "flashWeapon(0);": + flashWeapon(0); + + case "flashWeapon(2);": + flashWeapon(2); + + case "flashWeapon(3); ": + flashWeapon(3); + + case "flashWeaponsHud();": + flashWeaponsHud(); + + case "use(Blaster);": + use(Blaster); + + case "queEnemySet(0); activatePackage(singlePlayerMissionAreaEnforce);": + queEnemySet(0); activatePackage(singlePlayerMissionAreaEnforce); + + case "setWaypointat(nameToId(Tower).position, \"BE Tower\"); updateTrainingObjectiveHud(obj4);": + setWaypointat(nameToId(Tower).position, "BE Tower"); updateTrainingObjectiveHud(obj4); + + case "flashPack();": + flashPack(); + + case "updateTrainingObjectiveHud(obj3);": + updateTrainingObjectiveHud(obj3); + + case "setWaypointAt(\"-8.82616 -131.779 119.756\", \"Control Switch\");": + setWaypointAt("-8.82616 -131.779 119.756", "Control Switch"); + + case "setWaypointAt(nameToId(InitialPulseSensor).position, \"Sensor\");": + setWaypointAt(nameToId(InitialPulseSensor).position, "Sensor"); + + case "setWaypointAt(\"-8.82616 -131.779 119.756\", \"Tower\");": + setWaypointAt("-8.82616 -131.779 119.756", "Tower"); + + case "setWaypointAt(\"380.262 -298.625 98.9719\", \"Tower\");": + setWaypointAt("380.262 -298.625 98.9719", "Tower"); + + case "firstPersonQuickPan();": + firstPersonQuickPan(); + + case "ThreeAEval();": + ThreeAEval(); + + case "game.ExpectiongSupportButton = true;": + game.ExpectiongSupportButton = true; + + case "game.expectingRepairOrder = true;": + game.expectingRepairOrder = true; + + case "$random = getRandom(20,40);schedule($random, 0, doText, T4_TipDefense06);": + $random = getRandom(20,40);schedule($random, 0, doText, T4_TipDefense06); + + case "training5addSafeDistance();": + training5addSafeDistance(); + } +} + + function removeFromQueue() { %i = 1; @@ -716,7 +844,11 @@ function updateTrainingObjectiveHud( %objectiveNum ) //sound objectiveHud.setVisible(false); - schedule(400, game, eval, "objectiveHud.setVisible(true);"); + if (!isPureServer()) + schedule(400, game, eval, "objectiveHud.setVisible(true);"); + else + schedule(400, game, setObjHudVisible); + serverPlay2d(TrainingHudUpdateSound); //clear old text @@ -735,6 +867,11 @@ function updateTrainingObjectiveHud( %objectiveNum ) messageClient($player, 'MsgSPCurrentObjective2', "", %newObjectiveLine2); } +function setObjHudVisible() +{ + objectiveHud.setVisible(true); +} + // Misc/Overwrites //======================================================================================= @@ -867,6 +1004,8 @@ function missionFailed(%text) MessageBoxYesNo("Failure", %text, "reloadMission();", "forceFinish();"); //AI stop + cancel($Player.T1OpeningSpielSchedule); + cancel($Player.distanceCheckSchedule); clearQueue(); AIMissionEnd(); $objectiveQ[$enemyTeam].clear(); @@ -876,6 +1015,7 @@ function reloadMission() { cancel($player.endMission); Game.gameOver(); + Canvas.setContent( LoadingGui ); loadMission($currentMission, singlePlayer); debriefContinue(); } diff --git a/base/scripts/TeamHuntersGame.cs b/base/scripts/TeamHuntersGame.cs index 22f0d98..3b96dde 100644 --- a/base/scripts/TeamHuntersGame.cs +++ b/base/scripts/TeamHuntersGame.cs @@ -277,12 +277,6 @@ function TeamHuntersGame::onClientKilled(%game, %clVictim, %clKiller, %damageTyp messageClient(%clVictim, 'MsgHuntYouHaveFlags', "", 0); } -function TeamHuntersGame::onAIFriendlyFire(%game, %clVictim, %clAttacker, %damageType, %implement) -{ - if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim) - AIMessageThread("Sorry", %clAttacker, %clVictim); -} - function TeamHuntersGame::updateKillScores(%game, %clVictim, %clKiller, %damageType, %implement) { if (%game.testKill(%clVictim, %clKiller)) //verify victim was an enemy diff --git a/base/scripts/Training1.cs b/base/scripts/Training1.cs index b101122..837ba60 100644 --- a/base/scripts/Training1.cs +++ b/base/scripts/Training1.cs @@ -11,12 +11,19 @@ activatePackage(Training1); addMessageCallback('MsgWeaponMount', playerMountWeapon); +datablock EffectProfile(HudFlashEffect) +{ + effectname = "gui/buttonOver"; + minDistance = 10; +}; + // additional mission Audio datablock AudioProfile(HudFlashSound) { filename = "gui/buttonover.wav"; description = AudioDefault3d; preload = true; + effect = HudFlashEffect; }; // additional mission Audio @@ -37,9 +44,6 @@ $missionBotSkill[1] = 0.0; $missionBotSkill[2] = 0.4; $missionBotSkill[3] = 0.7; -game.pilotName = "McWatt"; -game.bombardierName = "Yossarian"; - //------------------------------------------------------------------------------ function getTeammateGlobals() { @@ -56,9 +60,6 @@ function getTeammateGlobals() $teammateGender1 = Male; } -game.tower = nameToId("Tower"); -game.tower.threshold1 = 330; -game.tower.threshold2 = 80; $victimSet[1] = "0 7 10 11"; $victimSet[2] = "1 8 12"; @@ -69,6 +70,17 @@ package Training1 { //------------------------------------------------------------------------------ +function SinglePlayerGame::initGameVars(%game) +{ + echo("initializing training1 game vars"); + %game.pilotName = "McWatt"; + %game.bombardierName = "Yossarian"; + + %game.tower = nameToId("Tower"); + %game.tower.threshold1 = 330; + %game.tower.threshold2 = 80; +} + //scriptlet //we have to jump through a lot of hoops to get those dead bodies in training1 function deadArmor::onAdd(%this, %obj) @@ -104,7 +116,29 @@ function toggleScoreScreen(%val) function toggleCommanderMap(%val) { if ( %val ) - messageClient($player, 0, $player.miscMsg[noCC]); + messageClient($player, 0, $player.miscMsg[noCC]); +} + +function toggleTaskListDlg( %val ) +{ + if ( %val ) + messageClient( $player, 0, $player.miscMsg[noTaskListDlg] ); +} + +function toggleInventoryHud( %val ) +{ + if ( %val ) + messageClient( $player, 0, $player.miscMsg[noInventoryHUD] ); +} + +function toggleNetDisplayHud( %val ) +{ + // Hello, McFly? This is training! There's no net in training! +} + +function voiceCapture( %val ) +{ + // Uh, who do you think you are talking to? } function giveall() @@ -145,6 +179,7 @@ function SinglePlayerGame::equip(%game, %player) %player.clearInventory(); for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); %set = %player.client.equipment; //error("equping Player "@%player@" with set"@%set); @@ -153,9 +188,6 @@ function SinglePlayerGame::equip(%game, %player) case 0: echo("using default equipment"); - for(%i =0; %i<$InventoryHudCount; %i++) - %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); - %player.setArmor("Light"); %player.setInventory(RepairKit,1); %player.setInventory(Blaster,1); @@ -163,16 +195,13 @@ function SinglePlayerGame::equip(%game, %player) %player.setInventory(Chaingun, 1); %player.setInventory(ChaingunAmmo, 100); %player.setInventory(DiscAmmo, 20); + %player.weaponCount = 3; %player.use(Disc); - %player.weaponCount = 3; case 1: echo("using case 1 equipment"); - for(%i =0; %i<$InventoryHudCount; %i++) - %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); - %player.setArmor("Light"); %player.setInventory(RepairKit,1); %player.setInventory(Blaster,1); @@ -181,7 +210,6 @@ function SinglePlayerGame::equip(%game, %player) %player.setInventory(ChaingunAmmo, 100); %player.setInventory(DiscAmmo, 20); %player.setInventory(EnergyPack, 1); - %player.weaponCount = 3; case 2: @@ -201,6 +229,7 @@ function SinglePlayerGame::equip(%game, %player) %player.setInventory(MissileLauncherAmmo, 10); %player.setInventory(TargetingLaser, 1); %player.weaponCount = 4; + %player.use(Disc); } } @@ -417,7 +446,6 @@ function singlePlayerGame::onAIRespawn(%game, %client) function missionClientKilled(%victim, %killer) { // this is just a bit messy as I added the training difficulty stuff late - %skill = $pref::trainingDifficulty; if(%victim == $player) { @@ -513,6 +541,7 @@ function findVictimSet(%victim) } } } + return 0; } // hokay...we have gone away from the default ai so we have to keep our forced-task @@ -538,7 +567,16 @@ function singlePlayerGame::playerSpawned(%game, %player) //------------------------------------------------------------------------------ function singlePlayerGame::gameOver(%game) { + //enable the voice chat menu again... + if (isObject(training1BlockMap)) + { + training1BlockMap.pop(); + training1BlockMap.delete(); + } + //moveMap.bindCmd( keyboard, "backspace", "", game.returnBinding ); + //allow the observer cam to move again... + $Camera::movementSpeed = 40; $AIDisableChatResponse = ""; cancel($Training1Blackout); cancel($Training1HitGround); @@ -711,134 +749,266 @@ function flashEnergy() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "energyHud.setVisible(false);" ); - - schedule(%time*%i + %time/2, $player.player, "eval", "energyHud.setVisible(true);" ); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "energyHud.setVisible(false);" ); + schedule(%time*%i + %time/2, $player.player, "eval", "energyHud.setVisible(true);" ); + } + else + { + schedule(%time*%i, $player.player, toggleEnergyHudVis, false); + schedule(%time*%i + %time/2, $player.player, toggleEnergyHudVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleEnergyHudVis(%value) +{ + energyHud.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashHealth() { %time = 900; %num = 5; - for(%i=0; %i<%num; %i++) { - schedule( %time*%i, $player.player, "eval", "damageHud.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "damageHud.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule( %time*%i, $player.player, "eval", "damageHud.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "damageHud.setVisible(true);"); + } + else + { + schedule( %time*%i, $player.player, toggleDamageHudVis, false); + schedule(%time*%i + %time/2, $player.player, toggleDamageHudVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleDamageHudVis(%value) +{ + damageHud.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashWeapon(%slot) { schedule(300, $player.player, use, $WeaponNames[%slot]); %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "weaponsHud.setActiveWeapon(-1);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "weaponsHud.setActiveWeapon("@%slot@");"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "weaponsHud.setActiveWeapon(-1);"); + schedule(%time*%i + %time/2, $player.player, "eval", "weaponsHud.setActiveWeapon("@%slot@");"); + } + else + { + schedule(%time*%i, $player.player, toggleWeaponSlot, -1); + schedule(%time*%i + %time/2, $player.player, toggleWeaponSlot, %slot); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleWeaponSlot(%slot) +{ + weaponsHud.setActiveWeapon(%slot); +} + //------------------------------------------------------------------------------ function flashWeaponsHud() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule( %time*%i, $player.player, "eval", "weaponsHud.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "weaponsHud.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule( %time*%i, $player.player, "eval", "weaponsHud.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "weaponsHud.setVisible(true);"); + } + else + { + schedule( %time*%i, $player.player, toggleWeaponHudVis, false); + schedule(%time*%i + %time/2, $player.player, toggleWeaponHudVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleWeaponHudVis(%value) +{ + weaponsHud.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashCompass() { %time = 900; %num = 5; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "HudCompassBack.setVisible(false);"); - schedule(%time*%i, $player.player, "eval", "compass.setVisible(false);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "HudCompassBack.setVisible(false);"); + schedule(%time*%i, $player.player, "eval", "compass.setVisible(false);"); - schedule(%time*%i + %time/2, $player.player, "eval", "HudCompassBack.setVisible(true);"); - schedule(%time*%i + %time/2, $player.player, "eval", "compass.setVisible(true);"); + schedule(%time*%i + %time/2, $player.player, "eval", "HudCompassBack.setVisible(true);"); + schedule(%time*%i + %time/2, $player.player, "eval", "compass.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, toggleCompassVis, false); + schedule(%time*%i + %time/2, $player.player, toggleCompassVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleCompassVis(%value) +{ + HudCompassBack.setVisible(%value); + compass.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashInventory() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "inventoryHud.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "inventoryHud.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "inventoryHud.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "inventoryHud.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, toggleInvVis, false); + schedule(%time*%i + %time/2, $player.player, toggleInvVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleInvVis(%value) +{ + inventoryHud.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashPack() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "backPackFrame.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "backPackFrame.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "backPackFrame.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "backPackFrame.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, togglePackVis, false); + schedule(%time*%i + %time/2, $player.player, togglePackVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function togglePackVis(%value) +{ + backPackFrame.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashSensor() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "sensorHudBack.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "sensorHudBack.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "sensorHudBack.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "sensorHudBack.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, toggleSensorVis, false); + schedule(%time*%i + %time/2, $player.player, toggleSensorVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleSensorVis(%value) +{ + sensorHudBack.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashMessage() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "outerChatHud.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "outerChatHud.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "outerChatHud.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "outerChatHud.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, toggleMessageVis, false); + schedule(%time*%i + %time/2, $player.player, toggleMessageVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleMessageVis(%value) +{ + outerChatHud.setVisible(%value); +} + //------------------------------------------------------------------------------ function flashObjective() { %time = 1000; %num = 6; - for(%i=0; %i<%num; %i++) { - schedule(%time*%i, $player.player, "eval", "objectiveHud.setVisible(false);"); - - schedule(%time*%i + %time/2, $player.player, "eval", "objectiveHud.setVisible(true);"); + for(%i=0; %i<%num; %i++) + { + if (!isPureServer()) + { + schedule(%time*%i, $player.player, "eval", "objectiveHud.setVisible(false);"); + schedule(%time*%i + %time/2, $player.player, "eval", "objectiveHud.setVisible(true);"); + } + else + { + schedule(%time*%i, $player.player, toggleObjectiveHudVis, false); + schedule(%time*%i + %time/2, $player.player, toggleObjectiveHudVis, true); + } $player.schedule(%time*%i, "play2d", HudFlashSound); } } +function toggleObjectiveHudVis(%value) +{ + objectiveHud.setVisible(%value); +} + //------------------------------------------------------------------------------ // function playCinematicSound(%sound) // { @@ -885,7 +1055,6 @@ function setTeammatesCMapInvisible(%on) setTargetNeverVisMask(nameToId(MPB).getTarget(), %arg); setTargetNeverVisMask($teammate0.player.getTarget(), %arg); setTargetNeverVisMask($teammate1.player.getTarget(), %arg); - } @@ -897,7 +1066,17 @@ function beginTraining1Intro() //messageClient($player, 0, $player.miscMsg[skip]); //moveMap.bindCmd( keyboard, "backspace", "", "skipIntroCinematic();" ); + //block the voice chat + if (isObject(training1BlockMap)) + training1BlockMap.delete(); + new ActionMap(training1BlockMap); + training1BlockMap.blockBind(moveMap, toggleMessageHud); + training1BlockMap.blockBind(moveMap, TeamMessageHud); + training1BlockMap.blockBind(moveMap, activateChatMenuHud); + training1BlockMap.push(); + //set the intro started bools + $Camera::movementSpeed = 0; $AIDisableChatResponse = true; game.playedIntro = true; game.trainingIntro = true; @@ -982,11 +1161,20 @@ function beginTraining1Intro() //------------------------------------------------------------------------------ function trainingIntroFlightEnd() { + //enable the voice chat menu again... + if (isObject(training1BlockMap)) + { + training1BlockMap.pop(); + training1BlockMap.delete(); + } + //put the player back in his body, give him control back, //a little dramatic flash, start the rest of the mission + $Camera::movementSpeed = 40; $AIDisableChatResponse = ""; game.trainingIntro = false; $player.player.invincible = false; + $player.player.setDamageLevel(0.3); serverConnection.setBlackout(false, 5000); $player.player.setActionThread(cel1); $player.player.schedule(2000, use, Disc); @@ -999,11 +1187,12 @@ function trainingIntroFlightEnd() if(!$firstPerson) toggleFirstPerson($player); + $player.player.setMoveState( false ); $player.player.setVelocity("0 0 0"); $player.player.setTransform(nameToId(DP).getTransform()); moveMap.push(); //$player.player.setDamageLevel(0.3); - schedule(10000, game, openingspiel); + $player.T1OpeningSpielSchedule = schedule(10000, game, openingspiel); objectiveDistanceChecks(); //moveMap.bindCmd( keyboard, "backspace", "", "skipFlashingHud();" ); @@ -1016,7 +1205,6 @@ function trainingIntroFlightEnd() function ClientCmdSetHudMode(%mode, %type, %node) { parent::ClientCmdSetHudMode(%mode, %type, %node); - //TrainingMap.push(); getTrainingPacifistMap(); if(game.trainingIntro) trainingPacifistMap.push(); @@ -1042,7 +1230,6 @@ function checkForTraining1Intro() beginTraining1Intro(); else { -error("DEBUG checkForTraining1Intro() failed!!!"); schedule(50, game, checkForTraining1Intro); } } @@ -1163,10 +1350,10 @@ function forcedCinematicPlayerDismount() %velX = getWord(%velocity, 0); %velY = getWord(%velocity, 1); $player.player.setVelocity(%velX SPC %velY SPC "20"); + $player.player.setMoveState( true ); $player.player.schedule(300, setDamageFlash, 0.3); playTargetAudio( $player.target, 'avo.deathCry_01', AudioClose3d, false ); $player.player.setActionThread(Death1, true); - $player.player.setDamageLevel(0.3); //$player.flyer.pilot.player.setActionThread(Death10, true); //$player.flyer.bombardier.player.setActionThread(Death11, true); @@ -1176,7 +1363,7 @@ function forcedCinematicPlayerDismount() LightMaleHumanArmor.minImpactSpeed = 10000; trainingPlayerHitGround(); Game.playGrunt = true; - game.expectingImpact = true; + //game.expectingImpact = true; } function MissileDudeAimAtTarget(%client, %percent) @@ -1210,10 +1397,13 @@ function MissileDudeFireMissile(%Client) %client.clearStep(); %client.setEngageTarget(-1); %client.setTargetObject($player.flyer, 300, "Missile"); - + + if (isDemo()) + %wav = "fx/misc/derm2.woohoo.WAV"; + else %wav = "voice/derm2/gbl.woohoo.WAV"; - %audio = alxCreateSource( AudioChat, %wav ); - alxPlay( %audio ); + %audio = alxCreateSource( AudioChat, %wav ); + alxPlay( %audio ); schedule(4000, 0, cinematicEvent, 7); diff --git a/base/scripts/Training2.cs b/base/scripts/Training2.cs index 3dbb84e..00cad30 100644 --- a/base/scripts/Training2.cs +++ b/base/scripts/Training2.cs @@ -62,25 +62,28 @@ addMessageCallback('msgEnterInvStation', StationInvEnter); //addMessageCallback('MsgShieldPackOn', playerTurnsOnShield); -// for many of the objectives we are going to periodically -// check the players distance vs some object -// you could do this much prettier but its going to be very specific -// so a cut and paste eyesore will be fine -game.sensor = nameToID("MissionGroup/Teams/team2/base1/initialPulseSensor"); -game.base1 = nameToID("MissionGroup/Teams/team2/base1/base"); -game.base1.threshold1 = 240; -game.base1.threshold2 = 190; -game.base2 = nameToID("MissionGroup/Teams/team2/base2/base"); -game.base2.threshold1 = 300; -game.base2.threshold2 = 250; -game.base3 = nameToID("MissionGroup/Teams/team2/base3/base"); -game.base3.threshold1 = 330; -game.base3.threshold2 = 130; - - package training2 { //--Training2 package begin ----------------------------------------------------------------- +function SinglePlayerGame::initGameVars(%game) +{ + // for many of the objectives we are going to periodically + // check the players distance vs some object + // you could do this much prettier but its going to be very specific + // so a cut and paste eyesore will be fine + echo("initializing training2 game vars"); + %game.sensor = nameToID("MissionGroup/Teams/team2/base1/initialPulseSensor"); + %game.base1 = nameToID("MissionGroup/Teams/team2/base1/base"); + %game.base1.threshold1 = 240; + %game.base1.threshold2 = 190; + %game.base2 = nameToID("MissionGroup/Teams/team2/base2/base"); + %game.base2.threshold1 = 300; + %game.base2.threshold2 = 250; + %game.base3 = nameToID("MissionGroup/Teams/team2/base3/base"); + %game.base3.threshold1 = 330; + %game.base3.threshold2 = 130; +} + function toggleScoreScreen(%val) { if ( %val ) @@ -94,6 +97,22 @@ function toggleCommanderMap(%val) messageClient($player, 0, $player.miscMsg[noCC]); } +function toggleTaskListDlg( %val ) +{ + if ( %val ) + messageClient( $player, 0, $player.miscMsg[noTaskListDlg] ); +} + +function toggleNetDisplayHud( %val ) +{ + // Hello, McFly? This is training! There's no net in training! +} + +function voiceCapture( %val ) +{ + // Uh, who do you think you are talking to? +} + function MP3Audio::play(%this) { //too bad...no mp3 in training @@ -206,7 +225,10 @@ function getTeammateGlobals() { $TeammateWarnom0 = "Dogkiller"; $teammateskill0 = 0.7; - $teammateVoice0 = Male5; + if ( isDemo() ) + $teammateVoice0 = Male1; + else + $teammateVoice0 = Male5; $teammateEquipment0 = 2; $teammateGender0 = Male; } @@ -228,6 +250,7 @@ function SinglePlayerGame::equip(%game, %player) for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); %set = %player.client.equipment; //error("equping Player "@%player@" with set"@%set); diff --git a/base/scripts/Training3.cs b/base/scripts/Training3.cs index c55289d..161d30f 100644 --- a/base/scripts/Training3.cs +++ b/base/scripts/Training3.cs @@ -29,19 +29,25 @@ $Shrike = nameToId("Ride"); $Shrike.playThread($ActivateThread, "activate"); // for the distance checking -game.base = nameToId("Shield"); -game.baseLocation = game.base.getTransform(); -game.base.threshold = 400; -game.end = nameToId("PlayerDropPoint"); -game.endLocation = game.end.getTransform(); - addMessageCallback('MsgWeaponMount', playerMountWeapon); - - package training3 { //===============================================begin the training 3 package stuff==== +function SinglePlayerGame::initGameVars(%game) +{ + // for many of the objectives we are going to periodically + // check the players distance vs some object + // you could do this much prettier but its going to be very specific + // so a cut and paste eyesore will be fine + echo("initializing training3 game vars"); + %game.base = nameToId("Shield"); + %game.baseLocation = game.base.getTransform(); + %game.base.threshold = 400; + %game.end = nameToId("PlayerDropPoint"); + %game.endLocation = game.end.getTransform(); +} + function MP3Audio::play(%this) { //too bad...no mp3 in training @@ -65,7 +71,6 @@ function singlePlayerGame::onAIRespawn(%game, %client) } } - // error("Forcing AI Scope!!!!!!!!!!!!!"); // %client.player.scopeToClient($player); @@ -90,6 +95,22 @@ function toggleCommanderMap(%val) messageClient($player, 0, $player.miscMsg[noCC]); } +function toggleTaskListDlg( %val ) +{ + if ( %val ) + messageClient( $player, 0, $player.miscMsg[noTaskListDlg] ); +} + +function toggleNetDisplayHud( %val ) +{ + // Hello, McFly? This is training! There's no net in training! +} + +function voiceCapture( %val ) +{ + // Uh, who do you think you are talking to? +} + function giveall() { error("When the going gets tough...wussies like you start cheating!"); @@ -161,27 +182,27 @@ function SinglePlayerGame::equip(%game, %player) for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); - //echo("Light Assassin Config"); + //echo("Light Assassin Config"); - %player.setArmor("Light"); - - %player.setInventory(CloakingPack, 1); - - %player.setInventory(RepairKit,1); - %player.setInventory(FlashGrenade,5); - %player.setInventory(Mine,3); + %player.setArmor("Light"); + + %player.setInventory(CloakingPack, 1); + + %player.setInventory(RepairKit,1); + %player.setInventory(FlashGrenade,5); + %player.setInventory(Mine,3); - %player.setInventory(Plasma, 1); - %player.setInventory(PlasmaAmmo, 20); - %player.setInventory(Disc,1); - %player.setInventory(DiscAmmo, 15); - %player.setInventory(TargetingLaser, 1); - %player.setInventory(ShockLance,1); + %player.setInventory(Plasma, 1); + %player.setInventory(PlasmaAmmo, 20); + %player.setInventory(Disc,1); + %player.setInventory(DiscAmmo, 15); + %player.setInventory(TargetingLaser, 1); + %player.setInventory(ShockLance,1); + %player.weaponCount = 3; - %player.use("Disc"); - - %player.weaponCount = 3; + %player.use("Disc"); } // ============================================================================ diff --git a/base/scripts/Training4.cs b/base/scripts/Training4.cs index 2f81955..c4cf300 100644 --- a/base/scripts/Training4.cs +++ b/base/scripts/Training4.cs @@ -145,6 +145,16 @@ function toggleScoreScreen(%val) messageClient($player, 0, $player.miscMsg[noScoreScreen]); } +function toggleNetDisplayHud( %val ) +{ + // Hello, McFly? This is training! There's no net in training! +} + +function voiceCapture( %val ) +{ + // Uh, who do you think you are talking to? +} + function singlePlayerGame::pickTeamSpawn(%game, %client) { if(%client.team == $player.team) @@ -560,6 +570,7 @@ function SinglePlayerGame::equip(%game, %player, %set) for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //error("equping Player "@%player@" with set"@%set); switch (%set) diff --git a/base/scripts/Training5.cs b/base/scripts/Training5.cs index a9213d0..b8ac992 100644 --- a/base/scripts/Training5.cs +++ b/base/scripts/Training5.cs @@ -37,21 +37,27 @@ $bridgeTime[1] = 30; $bridgeTime[2] = 20; $bridgeTime[3] = 5; - -game.targetObject1 = nameToId("ObjectiveGen1"); -game.targetObject2 = nameToId("ObjectiveGen2"); -game.tower = nameToId("MissionGroup/Teams/Team2/tower/tower"); -game.base = nameToId("DBase2"); -game.minimumSafeDistance = 500; -game.West = nameToId(WestBridgeGen); -game.East = nameToId(EastBridgeGen); -game.North = nameToId(NorthBridgeGen); -game.South = nameToId(SouthBridgeGen); - - package Training5 { //Training5 package functions begin======================================================= +function SinglePlayerGame::initGameVars(%game) +{ + // for many of the objectives we are going to periodically + // check the players distance vs some object + // you could do this much prettier but its going to be very specific + // so a cut and paste eyesore will be fine + echo("initializing training5 game vars"); + %game.targetObject1 = nameToId("ObjectiveGen1"); + %game.targetObject2 = nameToId("ObjectiveGen2"); + %game.tower = nameToId("MissionGroup/Teams/Team2/tower/tower"); + %game.base = nameToId("DBase2"); + %game.minimumSafeDistance = 500; + %game.West = nameToId(WestBridgeGen); + %game.East = nameToId(EastBridgeGen); + %game.North = nameToId(NorthBridgeGen); + %game.South = nameToId(SouthBridgeGen); +} + function MP3Audio::play(%this) { //too bad...no mp3 in training @@ -65,6 +71,16 @@ function toggleScoreScreen(%val) messageClient($player, 0, $player.miscMsg[noScoreScreen]); } +function toggleNetDisplayHud( %val ) +{ + // Hello, McFly? This is training! There's no net in training! +} + +function voiceCapture( %val ) +{ + // Uh, who do you think you are talking to? +} + function ClientCmdSetHudMode(%mode, %type, %node) { parent::ClientCmdSetHudMode(%mode, %type, %node); @@ -322,7 +338,7 @@ function SinglePlayerGame::equip(%game, %player, %set) for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); - + %player.client.clearBackpackIcon(); %player.setArmor("Medium"); @@ -345,7 +361,6 @@ function SinglePlayerGame::equip(%game, %player, %set) %player.use("Disc"); %player.weaponCount = 4; - } diff --git a/base/scripts/TrainingGui.cs b/base/scripts/TrainingGui.cs index caf488f..6b2a275 100644 --- a/base/scripts/TrainingGui.cs +++ b/base/scripts/TrainingGui.cs @@ -158,7 +158,7 @@ function TrainingMissionList::onSelect( %this, %id, %text ) else error( "Failed to open Single Player mission file " @ %fileName @ "!" ); - if (!isDemo() && !isDemoServer()) + if (!isDemo()) %bmp = "gui/" @ %briefPic @ ".png"; else %bmp = "gui/" @ %briefPic @ ".bm8"; diff --git a/base/scripts/admin.cs b/base/scripts/admin.cs index 3996c63..7911ef2 100644 --- a/base/scripts/admin.cs +++ b/base/scripts/admin.cs @@ -17,7 +17,7 @@ $VoteMessage["VoteHoardMode", 1] = "disable Greed Mode"; function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote) { //DEMO VERSION - only voteKickPlayer is allowed - if ((isDemo() || isDemoServer()) && %typeName !$= "VoteKickPlayer") + if ((isDemo()) && %typeName !$= "VoteKickPlayer") { messageClient(%client, '', "All voting options except to kick a player are disabled in the DEMO VERSION."); return; diff --git a/base/scripts/aiBotProfiles.cs b/base/scripts/aiBotProfiles.cs index e02e939..a30a8a2 100644 --- a/base/scripts/aiBotProfiles.cs +++ b/base/scripts/aiBotProfiles.cs @@ -272,7 +272,7 @@ $BotProfile[10, name] = "HexaBOTic"; $BotProfile[10, skill] = 0.99; $BotProfile[10, offense] = true; $BotProfile[10, voicePitch] = 0.895; -$BotProfile[11, name] = "Sne/\kBOT"; +$BotProfile[11, name] = "Sne/\\kBOT"; $BotProfile[11, skill] = 0.99; $BotProfile[11, offense] = true; $BotProfile[11, voicePitch] = 0.885; diff --git a/base/scripts/aiCTF.cs b/base/scripts/aiCTF.cs index 5ff0297..2adc6ca 100644 --- a/base/scripts/aiCTF.cs +++ b/base/scripts/aiCTF.cs @@ -88,6 +88,10 @@ function CTFGame::onAIKilled(%game, %clVictim, %clAttacker, %damageType, %implem function CTFGame::onAIFriendlyFire(%game, %clVictim, %clAttacker, %damageType, %implement) { - if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim) - AIMessageThread("Sorry", %clAttacker, %clVictim); + if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim && !%clVictim.isAIControlled()) + { + // The Bot is only a little sorry: + if ( getRandom() > 0.9 ) + AIMessageThread("ChatSorry", %clAttacker, %clVictim); + } } diff --git a/base/scripts/aiChat.cs b/base/scripts/aiChat.cs index d0103cd..0e5dafa 100644 --- a/base/scripts/aiChat.cs +++ b/base/scripts/aiChat.cs @@ -39,7 +39,9 @@ function AIProcessMessageTable(%threadId) else { //play the msg, schedule the next msg, and increment the index - serverCmdCannedChat(%speaker, addTaggedString(%msg), true); + %tag = addTaggedString( %msg ); + serverCmdCannedChat(%speaker, %tag, true); + removeTaggedString( %tag ); schedule(%delay, 0, "AIProcessMessageTable", %threadId); $AIMsgThreadDelay = %delay; $AIMsgThreadIndex++; @@ -93,7 +95,7 @@ function AIMessageThreadTemplate(%type, %msg, %clSpeaker, %clListener) else if (%randNum < 0.66) $AIMsgThreadTable[%index++] = %clListener @ " ChatCmdDefendReinforce " @ 1500; else - $AIMsgThreadTable[%index++] = %clListener @ " ChatCmdDefend " @ 1250; + $AIMsgThreadTable[%index++] = %clListener @ " ChatCmdDefendEntrances " @ 1250; //do we acknowledge the command first? if (getRandom() < 0.5) @@ -354,8 +356,10 @@ function AIMessageThread(%msg, %clSpeaker, %clListener, %force, %index, %threadI // schedule("AIEndMessageThread(" @ $AIMsgThreadId @ ");", 1000); default: - serverCmdCannedChat(%clSpeaker, addTaggedString(%msg), true); - schedule(1500, 0, "AIEndMessageThread", $AIMsgThreadId); + %tag = addTaggedString( %msg ); + serverCmdCannedChat( %clSpeaker, %tag, true ); + removeTaggedString( %tag ); // Don't keep incrementing the string ref count... + schedule( 1500, 0, "AIEndMessageThread", $AIMsgThreadId ); } } diff --git a/base/scripts/aiCnH.cs b/base/scripts/aiCnH.cs index 94a8c0f..1484ee2 100644 --- a/base/scripts/aiCnH.cs +++ b/base/scripts/aiCnH.cs @@ -63,8 +63,12 @@ function CnHGame::onAIKilled(%game, %clVictim, %clAttacker, %damageType, %implem function CnHGame::onAIFriendlyFire(%game, %clVictim, %clAttacker, %damageType, %implement) { - if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim) - AIMessageThread("Sorry", %clAttacker, %clVictim); + if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim && !%clVictim.isAIControlled()) + { + // The Bot is only a little sorry: + if ( getRandom() > 0.9 ) + AIMessageThread("ChatSorry", %clAttacker, %clVictim); + } } function CnHGame::AIplayerCaptureFlipFlop(%game, %player, %flipFlop) diff --git a/base/scripts/aiSiege.cs b/base/scripts/aiSiege.cs index 05b30d5..897b703 100644 --- a/base/scripts/aiSiege.cs +++ b/base/scripts/aiSiege.cs @@ -80,6 +80,10 @@ function SiegeGame::onAIKilledClient(%game, %clVictim, %clAttacker, %damageType, function SiegeGame::onAIFriendlyFire(%game, %clVictim, %clAttacker, %damageType, %implement) { - if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim) - AIMessageThread("Sorry", %clAttacker, %clVictim); + if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim && !%clVictim.isAIControlled()) + { + // The Bot is only a little sorry: + if ( getRandom() > 0.9 ) + AIMessageThread("ChatSorry", %clAttacker, %clVictim); + } } diff --git a/base/scripts/aiTeamHunters.cs b/base/scripts/aiTeamHunters.cs index 832219a..59622a5 100644 --- a/base/scripts/aiTeamHunters.cs +++ b/base/scripts/aiTeamHunters.cs @@ -38,4 +38,14 @@ function TeamHuntersGame::onAIDamaged(%game, %clVictim, %clAttacker, %damageType } } +function TeamHuntersGame::onAIFriendlyFire(%game, %clVictim, %clAttacker, %damageType, %implement) +{ + if (%clAttacker && %clAttacker.team == %clVictim.team && %clAttacker != %clVictim && !%clVictim.isAIControlled()) + { + // The Bot is only a little sorry: + if ( getRandom() > 0.9 ) + AIMessageThread("ChatSorry", %clAttacker, %clVictim); + } +} + diff --git a/base/textures/badlands/badlandsPropMap.cs b/base/scripts/badlandsPropMap.cs similarity index 54% rename from base/textures/badlands/badlandsPropMap.cs rename to base/scripts/badlandsPropMap.cs index 64a6872..e021f2e 100644 --- a/base/textures/badlands/badlandsPropMap.cs +++ b/base/scripts/badlandsPropMap.cs @@ -4,22 +4,14 @@ addMaterialMapping("badlands/bd_ichute01", "environment: special/chuteTexture 0 addMaterialMapping("badlands/bd_ichute02a", "environment: special/chuteTexture 0.25"); //"Color: red green blue startAlpha endAlpha" -addMaterialMapping("terrain/BadLands.DirtBumpy", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.DirtChipped", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.DirtYellow", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.DirtYellowCracked", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.RockBrown", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.RockChipped", "color: 0.5 0.36 0.16 0.4 0.0"); -addMaterialMapping("terrain/BadLands.RockCracked", "color: 0.5 0.36 0.16 0.4 0.0"); - //Soft sound = 0 //Hard sound = 1 //Metal sound = 2 //Snow sound = 3 -addMaterialMapping("terrain/BadLands.DirtBumpy", "sound: 0"); -addMaterialMapping("terrain/BadLands.DirtChipped", "sound: 0"); -addMaterialMapping("terrain/BadLands.DirtYellow", "sound: 0"); -addMaterialMapping("terrain/BadLands.DirtYellowCracked", "sound: 0"); -addMaterialMapping("terrain/BadLands.RockBrown", "sound: 0"); -addMaterialMapping("terrain/BadLands.RockChipped", "sound: 0"); -addMaterialMapping("terrain/BadLands.RockCracked", "sound: 0"); +addMaterialMapping("terrain/BadLands.DirtBumpy", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.DirtChipped", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.DirtYellow", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.DirtYellowCracked", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.RockBrown", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.RockChipped", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/BadLands.RockCracked", "color: 0.5 0.36 0.16 0.4 0.0", "sound: 0"); diff --git a/base/scripts/camera.cs b/base/scripts/camera.cs index a039d8e..d88ef26 100644 --- a/base/scripts/camera.cs +++ b/base/scripts/camera.cs @@ -39,9 +39,9 @@ function Observer::onTrigger(%data,%obj,%trigger,%state) switch$ (%obj.mode) { case "justJoined": - if ( isDemoServer() ) - clearCenterPrint( %client ); - + if (isDemo()) + clearCenterPrint(%client); + //press FIRE if (%trigger == 0) { @@ -190,6 +190,9 @@ function Observer::onTrigger(%data,%obj,%trigger,%state) %transform = %markerObj.getTransform(); %obj.setTransform(%transform); %obj.setFlyMode(); + + case "observerStaticNoNext": + // Non-moving, non-cycling observer camera case "observerTimeout": // Player didn't respawn quickly enough @@ -376,7 +379,7 @@ function Observer::setMode(%data, %obj, %mode, %targetObj) %obj.setTransform(%transform); %obj.setFlyMode(); - case "observerStatic": + case "observerStatic" or "observerStaticNoNext": // Non-moving observer camera %markerObj = Game.pickObserverSpawn(%client, true); %transform = %markerObj.getTransform(); diff --git a/base/scripts/client.cs b/base/scripts/client.cs index 5066ad2..625f84d 100644 --- a/base/scripts/client.cs +++ b/base/scripts/client.cs @@ -34,6 +34,8 @@ function clientCmdSetPlayContent() { if ( $LaunchMode $= "InteriorView" ) Canvas.setContent( interiorPreviewGui ); + else if ( $LaunchMode $= "TSShow" ) + Canvas.setContent( TSShowGui ); else Canvas.setContent( Playgui ); } @@ -41,8 +43,8 @@ function clientCmdSetPlayContent() function clientCmdPickTeamMenu( %teamA, %teamB ) { ClientCmdSetHudMode("PickTeam"); - PickTeamAButton.text = %teamA; - PickTeamBButton.text = %teamB; + PickTeamAButton.text = getTaggedString( %teamA ); + PickTeamBButton.text = getTaggedString( %teamB ); PickTeamFrame.setTitle( "Pick Team" ); Canvas.pushDialog( PickTeamDlg ); @@ -220,10 +222,10 @@ function toggleNetDisplayHud(%val) function PlayGui::onWake(%this) { // Make sure the shell hum is off: - if ( $HudHandle['shellScreen'] !$= "" ) + if ( $HudHandle[shellScreen] !$= "" ) { - alxStop( $HudHandle['shellScreen'] ); - $HudHandle['shellScreen'] = ""; + alxStop( $HudHandle[shellScreen] ); + $HudHandle[shellScreen] = ""; } $enableDirectInput = "1"; @@ -1404,7 +1406,7 @@ function clientCmdShowVehicleGauges(%vehType, %node) profile = "GuiDashBoxProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "10 11"; + position = "40 11"; extent = "80 44"; minExtent = "8 8"; visible = "1"; @@ -1415,7 +1417,7 @@ function clientCmdShowVehicleGauges(%vehType, %node) profile = "GuiDashBoxProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "103 11"; + position = "118 11"; extent = "80 44"; minExtent = "8 8"; visible = "0"; @@ -1695,6 +1697,13 @@ addMessageCallback( 'msgPackIconOff', clientPackIconOff ); addMessageCallback( 'MsgForceObserver', HandleForceObserver ); addMessageCallback( 'MsgPlayerMuted', handlePlayerMuted ); +//------------------------------------------------------------------------------ +// Siege-specific callbacks: +addMessageCallback( 'MsgSiegeHalftime', handleSiegeHalftimeMessage ); +addMessageCallback( 'MsgSiegeResult', handleSiegeResultMessage ); +addMessageCallback( 'MsgSiegeAddLine', handleSiegeLineMessage ); +//------------------------------------------------------------------------------ + function HandleForceObserver( %msgType, %msgString ) { @@ -1931,6 +1940,7 @@ function sceneLightingComplete() clientCmdResetHud(); commandToServer('SetVoiceInfo', $pref::Audio::voiceChannels, $pref::Audio::decodingMask, $pref::Audio::encodingLevel); + commandToServer('EnableVehicleTeleport', $pref::Vehicle::pilotTeleport ); commandToServer('MissionStartPhase3Done', $MSeq); } @@ -2034,6 +2044,12 @@ function GameConnection::initialControlSet(%this) return; } + if( $LaunchMode $= "TSShow" ) + { + Canvas.setContent( TSShowGui ); + return; + } + if( Canvas.getContent() != PlayGui.getId() ) { Canvas.setContent( PlayGui ); @@ -2042,4 +2058,50 @@ function GameConnection::initialControlSet(%this) } } +//------------------------------------------------------------------------------ +// Siege-specific client functions: +//------------------------------------------------------------------------------ +function handleSiegeHalftimeMessage( %msgType, %msgString ) +{ + alxPlay( SiegeSwitchSides, 0, 0, 0 ); + showTaskHudDlg( false ); + SiegeHalftimeText.setText( "" ); +} + +//------------------------------------------------------------------------------ +function handleSiegeResultMessage( %msgType, %msgString, %result ) +{ + SiegeHalftimeHeaderText.setText( "" @ detag( %result ) ); +} + +//------------------------------------------------------------------------------ +function handleSiegeLineMessage( %msgType, %msgString, %line ) +{ + %text = SiegeHalftimeText.getText(); + if ( %text $= "" ) + %newText = detag( %line ); + else + %newText = %text NL detag( %line ); + SiegeHalftimeText.setText( %newText ); +} + +//------------------------------------------------------------------------------ +function clientCmdSetHalftimeClock( %time ) +{ + SiegeHalftimeClock.setTime( %time ); +} + +//------------------------------------------------------------------------------ +function SiegeHalftimeHeaderText::onResize( %this, %width, %height ) +{ + %w = firstWord( SiegeHalftimeHeader.getExtent() ); + SiegeHalftimeHeader.setExtent( %w, %height + 6 ); + %paneHeight = getWord( siegeHalftimeHud.getExtent(), 1 ); + %x = firstWord( SiegeHalftimeScroll.getPosition() ); + %y = %height + 40; + %w = firstWord( SiegeHalftimeScroll.getExtent() ); + %h = %paneHeight - %height - 59; + SiegeHalftimeScroll.resize( %x, %y, %w, %h ); +} + diff --git a/base/scripts/clientAudio.cs b/base/scripts/clientAudio.cs index 742d6c2..89f9e23 100644 --- a/base/scripts/clientAudio.cs +++ b/base/scripts/clientAudio.cs @@ -4,6 +4,13 @@ // //-------------------------------------------------------------------------- +datablock EffectProfile(BountyBellEffect) +{ + effectname = "misc/bounty_bonus"; + minDistance = 2.5; + maxDistance = 5.0; +}; + // ordered list of providers $AudioProviders[0, name] = "Creative Labs EAX 2 (TM)"; $AudioProviders[0, isHardware] = true; @@ -54,7 +61,7 @@ function audioUpdateProvider(%provider) if($AudioProviders[%i, isHardware]) { alxDisableOuterFalloffs(true); - alxSetInnerFalloffScale($Audio::innerFalloffScale); + alxSetInnerFalloffScale(0.4); } // environment @@ -124,6 +131,9 @@ function MP3Audio::stop(%this) function getRandomTrack() { + if ( isDemo() ) + return( "desert" ); + %val = mFloor(getRandom(0, 4)); switch(%val) { @@ -151,7 +161,12 @@ function MP3Audio::playTrack(%this, %trackName) { %this.currentTrack = %trackName; if($pref::Audio::musicEnabled) - alxPlayMusic("base\\music\\" @ %trackName @ ".mp3"); + { + if ( isDemo() ) + alxPlayMusic("demo_base\\music\\" @ %trackName @ ".mp3"); + else + alxPlayMusic("base\\music\\" @ %trackName @ ".mp3"); + } } function finishedMusicStream(%stopped) @@ -177,6 +192,19 @@ function clientCmdStopMusic() //-------------------------------------- // Audio Profiles // + +new EffectProfile(eButtonDown) +{ + effectname = "gui/buttonDown"; + minDistance = 10; +}; + +new EffectProfile(eButtonOver) +{ + effectname = "gui/buttonOver"; + minDistance = 10; +}; + new AudioDescription(AudioGui) { volume = 1.0; @@ -205,14 +233,16 @@ new AudioProfile(sButtonDown) { filename = "gui/buttonDown.wav"; description = "audioGui"; - preload = true; + preload = true; + effect = eButtonDown; }; new AudioProfile(sButtonOver) { filename = "gui/buttonOver.wav"; description = "audioGui"; - preload = true; + preload = true; + effect = eButtonOver; }; new AudioProfile(sGotMail) @@ -222,18 +252,26 @@ new AudioProfile(sGotMail) preload = true; }; +new EffectProfile(eLaunchMenuOpen) +{ + effectname = "gui/launchMenuOpen"; + minDistance = 10; +}; + new AudioProfile(sLaunchMenuOpen) { filename = "gui/launchMenuOpen.wav"; description = "audioGui"; - preload = true; + preload = true; + effect = eLaunchMenuOpen; }; new AudioProfile(sLaunchMenuOver) { filename = "gui/buttonOver.wav"; description = "audioGui"; - preload = true; + preload = true; + effect = eButtonOver; }; new AudioProfile(VoteForSound) @@ -319,25 +357,40 @@ new AudioProfile(sMissileHomingWarningTone) }; //-------------------------------------------------------------------------- + new AudioProfile(HudInventoryHumSound) { filename = "gui/inventory_hum.wav"; description = "AudioGuiLoop"; - preload = true; + preload = true; +}; + +new EffectProfile(HudInventoryActivateEffect) +{ + effectname = "gui/inventory_on"; + minDistance = 10; }; new AudioProfile(HudInventoryActivateSound) { filename = "gui/inventory_on.wav"; description = "AudioGui"; - preload = true; + preload = true; + effect = HudInventoryActivateEffect; +}; + +new EffectProfile(HudInventoryDeactivateEffect) +{ + effectname = "gui/inventory_off"; + minDistance = 10; }; new AudioProfile(HudInventoryDeactivateSound) { filename = "gui/inventory_off.wav"; description = "AudioGui"; - preload = true; + preload = true; + effect = HudInventoryDeactivateEffect; }; new AudioProfile(CommandMapHumSound) @@ -347,18 +400,32 @@ new AudioProfile(CommandMapHumSound) preload = true; }; +new EffectProfile(CommandMapActivateEffect) +{ + effectname = "gui/command_on"; + minDistance = 10; +}; + new AudioProfile(CommandMapActivateSound) { filename = "gui/command_on.wav"; description = "AudioGui"; - preload = true; + effect = CommandMapActivateEffect; + preload = true; +}; + +new EffectProfile(CommandMapDeactivateEffect) +{ + effectname = "gui/command_off"; + minDistance = 10; }; new AudioProfile(CommandMapDeactivateSound) { filename = "gui/command_off.wav"; description = "AudioGui"; - preload = true; + preload = true; + effect = CommandMapDeactivateEffect; }; new AudioProfile(ShellScreenHumSound) @@ -386,21 +453,21 @@ new AudioProfile(VoteNotPassSound) { filename = "fx/misc/vote_fails.wav"; description = "AudioGui"; - preload = true; + preload = true; }; new AudioProfile(AdminForceSound) { filename = "fx/misc/bounty_completed.wav"; description = "AudioGui"; - preload = true; + preload = true; }; new AudioProfile(VoteInitiatedSound) { filename = "fx/misc/vote_initiated.wav"; description = "AudioGui"; - preload = true; + preload = true; }; // Tinman - not being used anymore... @@ -415,20 +482,27 @@ new AudioProfile(BountyBellSound) { filename = "fx/misc/bounty_bonus.wav"; description = "AudioGui"; - preload = true; + preload = true; }; new AudioProfile(SiegeSwitchSides) { filename = "fx/misc/siege_switching.wav"; description = "AudioGui"; - preload = true; + preload = true; +}; + +new EffectProfile(ObjectiveCompletedEffect) +{ + effectname = "misc/bounty_bonus"; + minDistance = 10; }; new AudioProfile(ObjectiveCompleted) { filename = "fx/misc/bounty_bonus.wav"; description = "AudioGui"; - preload = true; + effect = ObjectiveCompletedEffect; + preload = true; }; diff --git a/base/scripts/clientDefaults.cs b/base/scripts/clientDefaults.cs index 1e95684..915cb1b 100644 --- a/base/scripts/clientDefaults.cs +++ b/base/scripts/clientDefaults.cs @@ -37,8 +37,8 @@ $pref::Email::ComposeWindowExtent = "500 408"; $pref::Email::SortColumnKey = 3; $pref::Email::SortInc = 1; $pref::EnableBadWordFilter = 1; -$pref::FavNames0 = "SCOUT ASSASSIN"; -$pref::FavNames1 = "SCOUT SNIPER"; +$pref::FavNames0 = "SCOUT SNIPER"; +$pref::FavNames1 = "SCOUT ASSASSIN"; $pref::FavNames2 = "SCOUT DEFENSE"; $pref::FavNames3 = "ASSAULT OFFENSE"; $pref::FavNames4 = "ASSAULT DEPLOYER"; @@ -57,8 +57,8 @@ $pref::FavNames16 = "DECOY"; $pref::FavNames17 = "HEAVY LOVE"; $pref::FavNames18 = "FLAG DEFENDER"; $pref::FavNames19 = "INFILTRATOR"; -$pref::Favorite0 = "armor\tScout\tweapon\tPlasma Rifle\tweapon\tChaingun\tweapon\tShocklance\tpack\tCloak Pack\tGrenade\tWhiteout Grenade\tMine\tMine"; -$pref::Favorite1 = "armor\tScout\tweapon\tLaser Rifle\tweapon\tSpinfusor\tweapon\tGrenade Launcher\tpack\tEnergy Pack\tGrenade\tFlare Grenade\tMine\tMine"; +$pref::Favorite0 = "armor\tScout\tweapon\tLaser Rifle\tweapon\tSpinfusor\tweapon\tGrenade Launcher\tpack\tEnergy Pack\tGrenade\tFlare Grenade\tMine\tMine"; +$pref::Favorite1 = "armor\tScout\tweapon\tPlasma Rifle\tweapon\tChaingun\tweapon\tShocklance\tpack\tCloak Pack\tGrenade\tWhiteout Grenade\tMine\tMine"; $pref::Favorite2 = "armor\tScout\tweapon\tBlaster\tweapon\tSpinfusor\tweapon\tPlasma Rifle\tpack\tShield Pack\tGrenade\tGrenade\tMine\tMine"; $pref::Favorite3 = "armor\tAssault\tweapon\tPlasma Rifle\tweapon\tSpinfusor\tweapon\tGrenade Launcher\tweapon\tChaingun\tpack\tShield Pack\tGrenade\tGrenade\tMine\tMine"; $pref::Favorite4 = "armor\tAssault\tweapon\tPlasma Rifle\tweapon\tBlaster\tweapon\tSpinfusor\tweapon\tMissile Launcher\tpack\tInventory Station\tGrenade\tDeployable Camera\tMine\tMine"; @@ -127,24 +127,27 @@ $pref::sceneLighting::cacheLighting = 1; $pref::sceneLighting::terrainGenerateLevel = 1; $pref::ServerBrowser::activeFilter = 0; $pref::ServerBrowser::Column0 = "0 183"; -$pref::ServerBrowser::Column1 = "1 30"; +$pref::ServerBrowser::Column1 = "1 60"; $pref::ServerBrowser::Column2 = "2 30"; $pref::ServerBrowser::Column3 = "3 45"; -$pref::ServerBrowser::Column4 = "5 143"; -$pref::ServerBrowser::Column5 = "7 56"; -$pref::ServerBrowser::Column6 = "8 56"; -$pref::ServerBrowser::Column7 = "9 155"; -$pref::ServerBrowser::Column8 = "4 89"; -$pref::ServerBrowser::Column9 = "6 74"; +$pref::ServerBrowser::Column4 = "4 120"; +$pref::ServerBrowser::Column5 = "5 140"; +$pref::ServerBrowser::Column6 = "7 80"; +$pref::ServerBrowser::Column7 = "8 80"; +$pref::ServerBrowser::Column8 = "9 170"; if ( !isDemo() ) +{ + $pref::ServerBrowser::Column9 = "6 74"; $pref::ServerBrowser::Column10 = "10 70"; + $pref::ServerBrowser::Column11 = "11 100"; +} $pref::ServerBrowser::FavoriteCount = 0; -$pref::ServerBrowser::SortColumnKey = 0; +$pref::ServerBrowser::SortColumnKey = 3; $pref::ServerBrowser::SortInc = 1; $pref::ServerBrowser::InfoWindowOpen = 0; $pref::ServerBrowser::InfoWindowPos = "145 105"; $pref::ServerBrowser::InfoWindowExtent = "350 270"; -$pref::ServerBrowser::IgnoreCase = "1"; +$pref::ServerBrowser::IgnoreCase = 1; $pref::Shell::lastBackground = 0; $pref::Terrain::DynamicLights = 1; $pref::toggleVehicleView = 0; @@ -157,15 +160,15 @@ $pref::Topics::SortInc = 0; $pref::Video::displayDevice = "OpenGL"; $pref::chatHudLength = 1; $pref::useImmersion = 1; -if ( isDemo() ) - $pref::Video::fullScreen = 1; +$pref::Video::fullScreen = 1; $pref::Video::allowOpenGL = 1; $pref::Video::allowD3D = 1; $pref::Video::preferOpenGL = 1; $pref::Video::appliedPref = 0; $pref::Video::disableVerticalSync = 1; $pref::VisibleDistanceMod = 1.0; -$pref::OpenGL::force16BitTexture = "0"; -$pref::OpenGL::forcePalettedTexture = "1"; +$pref::OpenGL::force16BitTexture = 0; +$pref::OpenGL::forcePalettedTexture = 1; $pref::OpenGL::maxHardwareLights = 3; -$pref::OpenGL::allowTexGen = "1"; +$pref::OpenGL::allowTexGen = 1; +$pref::Vehicle::pilotTeleport = 1; diff --git a/base/scripts/commanderMap.cs b/base/scripts/commanderMap.cs index 86672d9..7ae31a5 100644 --- a/base/scripts/commanderMap.cs +++ b/base/scripts/commanderMap.cs @@ -66,7 +66,7 @@ function createCommanderKeyMap() CommanderKeyMap.copyBind( moveMap, startRecordingDemo ); CommanderKeyMap.copyBind( moveMap, stopRecordingDemo ); CommanderKeyMap.copyBind( moveMap, voiceCapture ); - CommanderKeyMap.bindCmd( keyboard, escape, "", "escapeFromGame();" ); + CommanderKeyMap.bindCmd( keyboard, escape, "", "toggleCommanderMap( true );" ); // grab help key from movemap if(!bindAction( moveMap, toggleHelpGui, false, toggleCmdMapHelpGui )) @@ -157,7 +157,21 @@ function clientCmdResetCommandMap() { CommanderMapGui.reset(); } - + +function clientCmdScopeCommanderMap(%scope) +{ + if(!isPlayingDemo()) + return; + + if(%scope) + { + CommanderMap.openAllCategories(); + CommanderMapGui.open(); + } + else + CommanderMapGui.close(); +} + function CommanderMapGui::onWake(%this) { clientCmdControlObjectReset(); @@ -167,10 +181,10 @@ function CommanderMapGui::onWake(%this) createCommanderKeyMap(); CommanderKeyMap.push(); - if ( $HudHandle['CommandScreen'] ) - alxStop( $HudHandle['CommandScreen'] ); + if ( $HudHandle[CommandScreen] ) + alxStop( $HudHandle[CommandScreen] ); alxPlay(CommandMapActivateSound, 0, 0, 0); - $HudHandle['CommandScreen'] = alxPlay(CommandMapHumSound, 0, 0, 0); + $HudHandle[CommandScreen] = alxPlay(CommandMapHumSound, 0, 0, 0); CMDTextButton.setValue(CommanderMap.renderText); @@ -204,9 +218,9 @@ function CommanderMapGui::onSleep(%this) CommanderKeyMap.pop(); Canvas.popDialog(MainChatHud); - alxStop($HudHandle['CommandScreen']); + alxStop($HudHandle[CommandScreen]); alxPlay(CommandMapDeactivateSound, 0, 0, 0); - $HudHandle['CommandScreen'] = ""; + $HudHandle[CommandScreen] = ""; // will reset the control object on this client.. should only be sent // if this gui is being removed outside of CommanderMapGui::close() @@ -299,9 +313,13 @@ function CommanderMapGui::reset(%this) // reset waypoints if(isObject($ClientWaypoints)) $ClientWaypoints.delete(); - - $ClientWaypoints = new SimGroup(); - ServerConnection.add($ClientWaypoints); + + // this can be called when not connected to a server + if(isObject(ServerConnection)) + { + $ClientWaypoints = new SimGroup(); + ServerConnection.add($ClientWaypoints); + } %this.firstWake = true; CommanderTree.currentWaypointID = 0; diff --git a/base/scripts/commonDialogs.cs b/base/scripts/commonDialogs.cs index 9098dff..238690f 100644 --- a/base/scripts/commonDialogs.cs +++ b/base/scripts/commonDialogs.cs @@ -11,7 +11,8 @@ function MessageBoxOK( %title, %message, %callback ) { MBOKFrame.setTitle( %title ); MBOKText.setText( "" @ %message ); - MessageBoxOKDlg.callback = %callback; + //MessageBoxOKDlg.callback = %callback; + MBOKButton.command = %callback SPC "Canvas.popDialog(MessageBoxOKDlg);"; Canvas.pushDialog( MessageBoxOKDlg ); } @@ -33,8 +34,11 @@ function MessageBoxOKCancel( %title, %message, %callback, %cancelCallback ) { MBOKCancelFrame.setTitle( %title ); MBOKCancelText.setText( "" @ %message ); - MessageBoxOKCancelDlg.callback = %callback; - MessageBoxOKCancelDlg.cancelCallback = %cancelCallback; + //MessageBoxOKCancelDlg.callback = %callback; + //MessageBoxOKCancelDlg.cancelCallback = %cancelCallback; + MBOKCancelButtonOK.command = %callback SPC "Canvas.popDialog(MessageBoxOKCancelDlg);"; + MBOKCancelButtonCancel.command = %cancelCallback SPC "Canvas.popDialog(MessageBoxOKCancelDlg);"; + Canvas.pushDialog( MessageBoxOKCancelDlg ); } @@ -56,8 +60,11 @@ function MessageBoxYesNo( %title, %message, %yesCallback, %noCallback ) { MBYesNoFrame.setTitle( %title ); MBYesNoText.setText( "" @ %message ); - MessageBoxYesNoDlg.yesCallBack = %yesCallback; - MessageBoxYesNoDlg.noCallback = %noCallBack; + + //MessageBoxYesNoDlg.yesCallBack = %yesCallback; + //MessageBoxYesNoDlg.noCallback = %noCallBack; + MBYesNoButtonYes.command = %yesCallback SPC "Canvas.popDialog(MessageBoxYesNoDlg);"; + MBYesNoButtonNo.command = %noCallback SPC "Canvas.popDialog(MessageBoxYesNoDlg);"; Canvas.pushDialog( MessageBoxYesNoDlg ); } @@ -112,6 +119,9 @@ function PickTeamDlg::onSleep( %this ) function ShellGetLoadFilename( %title, %fileSpec, %validate, %callback ) { $loadFileCommand = %callback @ "( getField( LOAD_FileList.getValue(), 0 ) );"; + LOAD_FileList.altCommand = $loadFileCommand SPC "Canvas.popDialog(ShellLoadFileDlg);"; + LOAD_LoadBtn.command = $loadFileCommand SPC "Canvas.popDialog(ShellLoadFileDlg);"; + if ( %title $= "" ) LOAD_Title.setTitle( "LOAD FILE" ); else @@ -157,6 +167,9 @@ function ShellGetSaveFilename( %title, %fileSpec, %validate, %callback, %current { SAVE_FileName.setValue( %current ); $saveFileCommand = "if ( SAVE_FileName.getValue() !$= \"\" ) " @ %callback @ "( SAVE_FileName.getValue() );"; + SAVE_FileName.altCommand = $saveFileCommand SPC "Canvas.popDialog(ShellSaveFileDlg);"; + SAVE_SaveBtn.command = $saveFileCommand SPC "Canvas.popDialog(ShellSaveFileDlg);"; + if ( %title $= "" ) SAVE_Title.setTitle( "SAVE FILE" ); else @@ -181,6 +194,7 @@ function SAVE_FileList::onDoubleClick( %this ) %id = %this.getSelectedId(); if ( %this.isRowActive( %id ) ) { + error("D'oh - double clicking is broken for PURE/DEMO executables"); eval( $saveFileCommand ); Canvas.popDialog( ShellSaveFileDlg ); } diff --git a/base/scripts/controlDefaults.cs b/base/scripts/controlDefaults.cs index 940739a..e3995d3 100644 --- a/base/scripts/controlDefaults.cs +++ b/base/scripts/controlDefaults.cs @@ -914,20 +914,21 @@ moveMap.bind( keyboard, F2, toggleScoreScreen ); // DEMO RECORD FUNCTIONS: function startRecordingDemo( %val ) { -// if ( %val ) -// beginDemoRecord(); - error( "** This function has temporarily been disabled! **" ); + if ( %val ) + beginDemoRecord(); } function stopRecordingDemo( %val ) { -// if ( %val ) -// stopRecord(); - error( "** This function has temporarily been disabled! **" ); + if ( %val ) + stopDemoRecord(); } -//moveMap.bind( keyboard, F3, startRecordingDemo ); -//moveMap.bind( keyboard, F4, stopRecordingDemo ); +if ( !isDemo() ) +{ + moveMap.bind( keyboard, F3, startRecordingDemo ); + moveMap.bind( keyboard, F4, stopRecordingDemo ); +} //------------------------------------------------------------------------------ // NAV HUD DISPLAY FUNCTIONS: @@ -1033,6 +1034,11 @@ observerMap.bind( keyboard, space, jump ); observerMap.bind( mouse, button0, mouseFire ); observerMap.bind( mouse, button1, mouseJet ); +if(!isDemo()) +{ + observerMap.copyBind(moveMap, startRecordingDemo); + observerMap.copyBind(moveMap, stopRecordingDemo); +} /////////////////////// // Vehicle Keys @@ -1170,6 +1176,10 @@ function clientCmdSetDefaultVehicleKeys(%inVehicle) passengerKeys.copyBind( moveMap, fnDeclineTask ); passengerKeys.copyBind( moveMap, fnTaskCompleted ); passengerKeys.copyBind( moveMap, fnResetTaskList ); + + // grab the demo recorder binds + passengerKeys.copyBind( moveMap, startRecordingDemo ); + passengerKeys.copyBind( moveMap, stopRecordingDemo ); } else if ( isObject( passengerKeys ) ) { diff --git a/base/scripts/creditsGui.cs b/base/scripts/creditsGui.cs index 4c6673b..9e0da72 100644 --- a/base/scripts/creditsGui.cs +++ b/base/scripts/creditsGui.cs @@ -40,7 +40,7 @@ function CreditsGui::onWake(%this) //build the ML text ctrl... exec("scripts/creditsText.cs"); - if (!isDemo() && !isDemoServer()) + if (!isDemo()) { $CreditsPicIndex = 1; CREDITS_Pic.setBitmap("gui/Cred_" @ $CreditsPicIndex @ ".png"); diff --git a/base/scripts/creditsText.cs b/base/scripts/creditsText.cs index 77d875e..463ea55 100644 --- a/base/scripts/creditsText.cs +++ b/base/scripts/creditsText.cs @@ -338,6 +338,7 @@ addCreditsLine("Bart \"=DB=Seven\" Smith"); addCreditsLine("Ben \"Diox\" May"); addCreditsLine("Ben \"Hypn0tik\" Tamler"); addCreditsLine("Ben \"Stan\" Gray"); +addCreditsLine("Bobby \"Mogart\" Rider"); addCreditsLine("Bodhi \"Heliometus Max\" Daher"); addCreditsLine("Brad \"Bort\" Klann"); addCreditsLine("Bret D. \"Bacchus\" Wilson"); @@ -1563,116 +1564,11 @@ addCreditsLine("Greg \"Satan\" Romaszka"); addCreditsLine("Steve \"Cpt.Wussie!!!\" Snow"); addCreditsLine(""); addCreditsLine(""); -addCreditsLine("Credits Screen By"); -addCreditsLine("Kidney Thief :)", true); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +addCreditsLine(""); +addCreditsLine(""); +addCreditsLine(""); +addCreditsLine(""); +addCreditsLine(""); +addCreditsLine(""); +addCreditsLine("So Long, and Thanks For All The Fish."); +addCreditsLine("Tribes2 Development Team", true); diff --git a/base/scripts/damageTypes.cs b/base/scripts/damageTypes.cs index 503184b..7efb446 100644 --- a/base/scripts/damageTypes.cs +++ b/base/scripts/damageTypes.cs @@ -372,11 +372,11 @@ datablock SimDataBlock(TankDamageProfile) shieldDamageScale[$DamageType::Grenade] = 0.8; shieldDamageScale[$DamageType::Mine] = 3.25; shieldDamageScale[$DamageType::Missile] = 2.0; - shieldDamageScale[$DamageType::Mortar] = 0.8; + shieldDamageScale[$DamageType::Mortar] = 1.7; shieldDamageScale[$DamageType::Plasma] = 1.0; shieldDamageScale[$DamageType::BomberBombs] = 1.5; shieldDamageScale[$DamageType::TankChaingun] = 1.5; - shieldDamageScale[$DamageType::TankMortar] = 1.4; + shieldDamageScale[$DamageType::TankMortar] = 1.8; shieldDamageScale[$DamageType::MissileTurret] = 1.25; shieldDamageScale[$DamageType::MortarTurret] = 1.0; shieldDamageScale[$DamageType::PlasmaTurret] = 1.25; @@ -401,11 +401,11 @@ datablock SimDataBlock(TankDamageProfile) damageScale[$DamageType::Grenade] = 1.0; damageScale[$DamageType::Mine] = 2.25; damageScale[$DamageType::Missile] = 1.25; - damageScale[$DamageType::Mortar] = 1.0; + damageScale[$DamageType::Mortar] = 1.4; damageScale[$DamageType::Plasma] = 0.5; damageScale[$DamageType::BomberBombs] = 1.0; damageScale[$DamageType::TankChaingun] = 0.75; - damageScale[$DamageType::TankMortar] = 1.0; + damageScale[$DamageType::TankMortar] = 1.6; damageScale[$DamageType::MissileTurret] = 1.25; damageScale[$DamageType::MortarTurret] = 1.0; damageScale[$DamageType::PlasmaTurret] = 1.0; @@ -633,7 +633,7 @@ datablock SimDataBlock(LightPlayerDamageProfile) damageScale[$DamageType::SentryTurret] = 1.0; damageScale[$DamageType::Disc] = 1.0; damageScale[$DamageType::Grenade] = 1.2; - damageScale[$DamageType::Mine] = 1.2; + damageScale[$DamageType::Mine] = 1.0; damageScale[$DamageType::Missile] = 1.0; damageScale[$DamageType::Mortar] = 1.3; damageScale[$DamageType::Plasma] = 1.0; @@ -647,7 +647,7 @@ datablock SimDataBlock(LightPlayerDamageProfile) damageScale[$DamageType::Default] = 1.0; damageScale[$DamageType::Impact] = 1.2; damageScale[$DamageType::Ground] = 1.0; - damageScale[$DamageType::Explosion] = 1.2; + damageScale[$DamageType::Explosion] = 1.0; damageScale[$DamageType::Lightning] = 1.0; }; @@ -666,7 +666,7 @@ datablock SimDataBlock(MediumPlayerDamageProfile) damageScale[$DamageType::SentryTurret] = 1.0; damageScale[$DamageType::Disc] = 0.8; damageScale[$DamageType::Grenade] = 1.0; - damageScale[$DamageType::Mine] = 1.0; + damageScale[$DamageType::Mine] = 0.9; damageScale[$DamageType::Missile] = 0.8; damageScale[$DamageType::Mortar] = 1.0; damageScale[$DamageType::Plasma] = 0.65; @@ -680,7 +680,7 @@ datablock SimDataBlock(MediumPlayerDamageProfile) damageScale[$DamageType::Default] = 1.0; damageScale[$DamageType::Impact] = 1.0; damageScale[$DamageType::Ground] = 1.0; - damageScale[$DamageType::Explosion] = 1.0; + damageScale[$DamageType::Explosion] = 0.8; damageScale[$DamageType::Lightning] = 1.2; }; diff --git a/base/scripts/deathMessages.cs b/base/scripts/deathMessages.cs index 91936b6..be31bb2 100644 --- a/base/scripts/deathMessages.cs +++ b/base/scripts/deathMessages.cs @@ -208,6 +208,18 @@ $DeathMessageVehicle[2] = '\c0%4 transforms %1 into tribal roadkill.'; $DeathMessageVehicle[3] = '\c0%1 makes a painfully close examination of %4\'s front bumper.'; $DeathMessageVehicle[4] = '\c0%1\'s messy death leaves a mark on %4\'s vehicle finish.'; +$DeathMessageVehicleCrashCount = 5; +$DeathMessageVehicleCrash[ $DamageType::Crash, 0 ] = '\c0%1 fails to eject in time.'; +$DeathMessageVehicleCrash[ $DamageType::Crash, 1 ] = '\c0%1 becomes one with his vehicle dashboard.'; +$DeathMessageVehicleCrash[ $DamageType::Crash, 2 ] = '\c0%1 drives under the influence of death.'; +$DeathMessageVehicleCrash[ $DamageType::Crash, 3 ] = '\c0%1 makes a perfect three hundred point landing.'; +$DeathMessageVehicleCrash[ $DamageType::Crash, 4 ] = '\c0%1 heroically pilots his vehicle into something really, really hard.'; + +$DeathMessageVehicleFriendlyCount = 3; +$DeathMessageVehicleFriendly[0] = '\c0%1 gets in the way of a friendly vehicle.'; +$DeathMessageVehicleFriendly[1] = '\c0Sadly, a friendly vehicle turns %1 into roadkill.'; +$DeathMessageVehicleFriendly[2] = '\c0%1 becomes an unsightly ornament on a team vehicle\'s hood.'; + $DeathMessageVehicleUnmannedCount = 3; $DeathMessageVehicleUnmanned[0] = '\c0%1 gets in the way of a runaway vehicle.'; $DeathMessageVehicleUnmanned[1] = '\c0An unmanned vehicle kills the pathetic %1.'; diff --git a/base/scripts/defaultGame.cs b/base/scripts/defaultGame.cs index 18874c8..f2430c9 100644 --- a/base/scripts/defaultGame.cs +++ b/base/scripts/defaultGame.cs @@ -72,18 +72,19 @@ function FlipFlop::playerTouch(%data, %flipflop, %player) if(%flipTeam == %client.team) return false; + %teamName = game.getTeamName(%client.team); // Let the observers know: - messageTeam( 0, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_taken.wav', %client.name, Game.cleanWord( %flipflop.name ), $TeamName[%client.team] ); + messageTeam( 0, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_taken.wav', %client.name, Game.cleanWord( %flipflop.name ), %teamName ); // Let the teammates know: - messageTeam( %client.team, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_taken.wav', %client.name, Game.cleanWord( %flipflop.name ), $TeamName[%client.team] ); + messageTeam( %client.team, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_taken.wav', %client.name, Game.cleanWord( %flipflop.name ), %teamName ); // Let the other team know: %losers = %client.team == 1 ? 2 : 1; - messageTeam( %losers, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_lost.wav', %client.name, Game.cleanWord( %flipflop.name ), $TeamName[%client.team] ); + messageTeam( %losers, 'MsgClaimFlipFlop', '\c2%1 claimed %2 for %3.~wfx/misc/flipflop_lost.wav', %client.name, Game.cleanWord( %flipflop.name ), %teamName ); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") claimed flipflop "@%flipflop@" for team "@%client.team); //change the skin on the switch to claiming team's logo - setTargetSkin(%flipflop.getTarget(), $teamSkin[%player.team]); + setTargetSkin(%flipflop.getTarget(), game.getTeamSkin(%player.team)); setTargetSensorGroup(%flipflop.getTarget(), %player.team); // if there is a "projector" associated with this flipflop, put the claiming team's logo there @@ -93,7 +94,8 @@ function FlipFlop::playerTouch(%data, %flipflop, %player) // axe the old projected holo, if one exists if(%projector.holo > 0) %projector.holo.delete(); - %newHolo = $holoName[%client.team] @ "Logo"; + + %newHolo = getTaggedString(game.getTeamSkin(%client.team)) @ "Logo"; %projTransform = %projector.getTransform(); // below two functions are from deployables.cs @@ -387,6 +389,7 @@ function DefaultGame::equip(%game, %player) { for(%i =0; %i<$InventoryHudCount; %i++) %player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1); + %player.client.clearBackpackIcon(); //%player.setArmor("Light"); %player.setInventory(RepairKit,1); @@ -583,6 +586,10 @@ function DefaultGame::gameOver( %game ) messageClient( %client, 'SetScoreHudHeader', "", "" ); messageClient( %client, 'SetScoreHudSubheader', "", ""); messageClient( %client, 'ClearHud', "", 'scoreScreen', 0 ); + + // clean up the players' HUDs: + %client.setWeaponsHudClearAll(); + %client.setInventoryHudClearAll(); } } @@ -640,9 +647,9 @@ function DefaultGame::sendDebriefing( %game, %client ) // Mission result: if ( %topCount == 1 ) - messageClient( %client, 'MsgDebriefResult', "", 'Team %1 wins!', $TeamName[%firstTeam] ); + messageClient( %client, 'MsgDebriefResult', "", 'Team %1 wins!', %game.getTeamName(%firstTeam) ); else if ( %topCount == 2 ) - messageClient( %client, 'MsgDebriefResult', "", 'Team %1 and Team %2 tie!', $TeamName[%firstTeam], $TeamName[%secondTeam] ); + messageClient( %client, 'MsgDebriefResult', "", 'Team %1 and Team %2 tie!', %game.getTeamName(%firstTeam), %game.getTeamName(%secondTeam) ); else messageClient( %client, 'MsgDebriefResult', "", 'The mission ended in a tie.' ); @@ -654,7 +661,7 @@ function DefaultGame::sendDebriefing( %game, %client ) %score = 0; else %score = $TeamScore[%team]; - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 %2', $TeamName[%team], %score ); + messageClient( %client, 'MsgDebriefAddLine', "", ' %1 %2', %game.getTeamName(%team), %score ); } // Player scores: @@ -680,7 +687,7 @@ function DefaultGame::sendDebriefing( %game, %client ) %cl = $TeamRank[%highTeam, %count[%highTeam]]; %score = %cl.score $= "" ? 0 : %cl.score; %kills = %cl.kills $= "" ? 0 : %cl.kills; - messageClient( %client, 'MsgDebriefAddLine', "", ' %1 %2 %3 %4', %cl.name, $TeamName[%cl.team], %score, %kills ); + messageClient( %client, 'MsgDebriefAddLine', "", ' %1 %2 %3 %4', %cl.name, %game.getTeamName(%cl.team), %score, %kills ); %count[%highTeam]++; %notDone = false; @@ -983,13 +990,13 @@ function DefaultGame::forceObserver( %game, %client, %reason ) { case "playerChoose": %client.camera.getDataBlock().setMode( %client.camera, "observerFly" ); - messageClient(%client, 'MsgClientJoinTeam', '\c2You have become an observer.', %client.name, $teamName[0], %client, 0 ); + messageClient(%client, 'MsgClientJoinTeam', '\c2You have become an observer.', %client.name, %game.getTeamName(0), %client, 0 ); logEcho(%client.nameBase@" (cl "@%client@") entered observer mode"); %client.lastTeam = %client.team; case "AdminForce": %client.camera.getDataBlock().setMode( %client.camera, "observerFly" ); - messageClient(%client, 'MsgClientJoinTeam', '\c2You have been forced into observer mode by the admin.', %client.name, $teamName[0], %client, 0 ); + messageClient(%client, 'MsgClientJoinTeam', '\c2You have been forced into observer mode by the admin.', %client.name, %game.getTeamName(0), %client, 0 ); logEcho(%client.nameBase@" (cl "@%client@") was forced into observer mode by admin"); %client.lastTeam = %client.team; %adminForce = 1; @@ -1013,7 +1020,7 @@ function DefaultGame::forceObserver( %game, %client, %reason ) case "spawnTimeout": %client.camera.getDataBlock().setMode( %client.camera, "observerTimeout" ); - messageClient(%client, 'MsgClientJoinTeam', '\c2You have been placed in observer mode due to delay in respawning.', %client.name, $teamName[0], %client, 0 ); + messageClient(%client, 'MsgClientJoinTeam', '\c2You have been placed in observer mode due to delay in respawning.', %client.name, %game.getTeamName(0), %client, 0 ); logEcho(%client.nameBase@" (cl "@%client@") was placed in observer mode due to spawn delay"); // save the team the player was on - only if this was a delay in respawning %client.lastTeam = %client.team; @@ -1036,9 +1043,9 @@ function DefaultGame::forceObserver( %game, %client, %reason ) // message everyone about this event if( !%adminForce ) - messageAllExcept(%client, -1, 'MsgClientJoinTeam', '\c2%1 has become an observer.', %client.name, $teamName[0], %client, 0 ); + messageAllExcept(%client, -1, 'MsgClientJoinTeam', '\c2%1 has become an observer.', %client.name, %game.getTeamName(0), %client, 0 ); else - messageAllExcept(%client, -1, 'MsgClientJoinTeam', '\c2The admin has forced %1 to become an observer.', %client.name, $teamName[0], %client, 0 ); + messageAllExcept(%client, -1, 'MsgClientJoinTeam', '\c2The admin has forced %1 to become an observer.', %client.name, %game.getTeamName(0), %client, 0 ); updateCanListenState( %client ); @@ -1192,6 +1199,7 @@ function DefaultGame::displayDeathMessages(%game, %clVictim, %clKiller, %damageT function DefaultGame::assignClientTeam(%game, %client, %respawn ) { +//error("DefaultGame::assignClientTeam"); // this function is overwritten in non-team mission types (e.g. DM) // so these lines won't do anything //if(!%game.numTeams) @@ -1246,22 +1254,39 @@ function DefaultGame::assignClientTeam(%game, %client, %respawn ) } } else - setTargetSkin( %client.target, $teamSkin[%client.team] ); + setTargetSkin( %client.target, %game.getTeamSkin(%client.team) ); //setTargetSkin( %client.target, %client.skin ); // might as well standardize the messages //messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, $teamName[%leastTeam], %client, %leastTeam ); //messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', $client.name, $teamName[%client.team], %client, %client.team ); - messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, $teamName[%client.team], %client, %client.team ); - messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', %client.name, $teamName[%client.team], %client, %client.team ); + messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); + messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); updateCanListenState( %client ); logEcho(%client.nameBase@" (cl "@%client@") joined team "@%client.team); } +function DefaultGame::getTeamSkin(%game, %team) +{ + //error("DefaultGame::getTeamSkin"); + %skin = $teamSkin[%team]; + //error("%skin = " SPC getTaggedString(%skin)); + return %skin; +} + +function DefaultGame::getTeamName(%game, %team) +{ + //error("DefaultGame::getTeamName"); + %name = $teamName[%team]; + //error("name = " SPC getTaggedString(%name)); + return %name; +} + function DefaultGame::clientJoinTeam( %game, %client, %team, %respawn ) { +//error("DefaultGame::clientJoinTeam"); if ( %team < 1 || %team > %game.numTeams ) return; @@ -1270,15 +1295,15 @@ function DefaultGame::clientJoinTeam( %game, %client, %team, %respawn ) %client.team = %team; %client.lastTeam = %team; - setTargetSkin( %client.target, $teamSkin[%team] ); + setTargetSkin( %client.target, %game.getTeamSkin(%team) ); setTargetSensorGroup( %client.target, %team ); %client.setSensorGroup( %team ); // Spawn the player: %game.spawnPlayer( %client, %respawn ); - messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, $teamName[%team], %client, %team ); - messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', $client.name, $teamName[%client.team], %client, %client.team ); + messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, %game.getTeamName(%team), %client, %team ); + messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', $client.name, %game.getTeamName(%client.team), %client, %client.team ); updateCanListenState( %client ); @@ -1334,11 +1359,12 @@ function DefaultGame::AIChangeTeam(%game, %client, %newTeam) } } - messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1bot %1 has switched to team %2.', %client.name, $teamName[%client.team], %client, %client.team ); + messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1bot %1 has switched to team %2.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); } function DefaultGame::clientChangeTeam(%game, %client, %team, %fromObs) { +//error("DefaultGame::clientChangeTeam"); //first, remove the client from the team rank array //the player will be added to the new team array as soon as he respawns... %game.removeFromTeamRankArray(%client); @@ -1367,7 +1393,7 @@ function DefaultGame::clientChangeTeam(%game, %client, %team, %fromObs) // Set the client's skin: if (!%client.isAIControlled()) - setTargetSkin( %client.target, $teamSkin[%client.team] ); + setTargetSkin( %client.target, %game.getTeamSkin(%client.team) ); setTargetSensorGroup( %client.target, %client.team ); %client.setSensorGroup( %client.team ); @@ -1389,13 +1415,13 @@ function DefaultGame::clientChangeTeam(%game, %client, %team, %fromObs) if(%fromObs $= "" || !%fromObs) { - messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 switched to team %2.', %client.name, $teamName[%client.team], %client, %client.team ); - messageClient( %client, 'MsgClientJoinTeam', '\c1You switched to team %2.', $client.name, $teamName[%client.team], %client, %client.team ); + messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 switched to team %2.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); + messageClient( %client, 'MsgClientJoinTeam', '\c1You switched to team %2.', $client.name, %game.getTeamName(%client.team), %client, %client.team ); } else { - messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined team %2.', %client.name, $teamName[%team], %client, %team ); - messageClient( %client, 'MsgClientJoinTeam', '\c1You joined team %2.', $client.name, $teamName[%client.team], %client, %client.team ); + messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined team %2.', %client.name, %game.getTeamName(%client.team), %client, %team ); + messageClient( %client, 'MsgClientJoinTeam', '\c1You joined team %2.', $client.name, %game.getTeamName(%client.team), %client, %client.team ); } updateCanListenState( %client ); @@ -1565,7 +1591,7 @@ function DefaultGame::clientMissionDropReady(%game, %client) %client.matchStartReady = true; echo("Client" SPC %client SPC "is ready."); - if ( isDemoServer() ) + if ( isDemo() ) { if ( %client.demoJustJoined ) { @@ -1584,7 +1610,7 @@ function DefaultGame::sendClientTeamList(%game, %client) if ( %i > 0 ) %teamList = %teamList @ "\n"; - %teamList = %teamList @ detag( getTaggedString( $teamName[%i + 1] ) ); + %teamList = %teamList @ detag( getTaggedString( %game.getTeamName(%i + 1) ) ); } messageClient( %client, 'MsgTeamList', "", %teamCount, %teamList ); } @@ -1595,7 +1621,11 @@ function DefaultGame::setupClientHuds(%game, %client) for(%i =0; %i<$WeaponsHudCount; %i++) %client.setWeaponsHudBitmap(%i, $WeaponsHudData[%i, itemDataName], $WeaponsHudData[%i, bitmapName]); for(%i =0; %i<$InventoryHudCount; %i++) - %client.setInventoryHudBitmap($InventoryHudData[%i, slot], $InventoryHudData[%i, itemDataName], $InventoryHudData[%i, bitmapName]); + { + if ( $InventoryHudData[%i, slot] != 0 ) + %client.setInventoryHudBitmap($InventoryHudData[%i, slot], $InventoryHudData[%i, itemDataName], $InventoryHudData[%i, bitmapName]); + } + %client.setInventoryHudBitmap( 0, "", "gui/hud_handgren" ); %client.setWeaponsHudBackGroundBmp("gui/hud_new_panel"); %client.setWeaponsHudHighLightBmp("gui/hud_new_weaponselect"); @@ -1792,8 +1822,12 @@ function SimGroup::setTeam(%this, %team) { // eeck.. please go away when scripts get cleaned... if(%obj.getDataBlock().getName() $= "StationVehiclePad") + { + %team = %obj.team; %obj = %obj.station; - + %obj.team = %team; + //%obj.teleporter.team = %team; + } %target = %obj.getTarget(); if(%target != -1) setTargetSensorGroup(%target, %team); @@ -1967,12 +2001,6 @@ function listplayers() } } -function logEcho(%msg) -{ - if($LogEchoEnabled) - echo("LOG: " @ %msg); -} - function DefaultGame::clearTeamRankArray(%game, %team) { %count = $TeamRank[%team, count]; @@ -2041,8 +2069,9 @@ function DefaultGame::removeFromTeamRankArray(%game, %client) $TeamRank[%team, %j - 1] = %cl; messageClient(%cl, 'MsgYourRankIs', "", %j); } + $TeamRank[%team, %count - 1] = ""; - //now decriment the team rank array count, and break + //now decrement the team rank array count, and break $TeamRank[%team, count] = $TeamRank[%team, count] - 1; break; } @@ -2412,7 +2441,7 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k else if ( %client.isAdmin ) %outrankTarget = !%targetClient.isAdmin; - if( %client.isSuperAdmin && %targetClient.guid != 0 && !isDemo() && !isDemoServer()) + if( %client.isSuperAdmin && %targetClient.guid != 0 && !isDemo() ) { messageClient( %client, 'MsgPlayerPopupItem', "", %key, "addAdmin", "", 'Add to Server Admin List', 10); messageClient( %client, 'MsgPlayerPopupItem', "", %key, "addSuperAdmin", "", 'Add to Server SuperAdmin List', 11); @@ -2441,7 +2470,7 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k // regular vote options on players if ( %game.scheduleVote $= "" && !%isAdmin && !%isTargetAdmin ) { - if ( $Host::allowAdminPlayerVotes && !%isTargetBot && !isDemo() && !isDemoServer()) + if ( $Host::allowAdminPlayerVotes && !%isTargetBot && !isDemo() ) messageClient( %client, 'MsgPlayerPopupItem', "", %key, "AdminPlayer", "", 'Vote to Make Admin', 2 ); if ( !%isTargetSelf ) @@ -2452,7 +2481,7 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k // Admin only options on players: - else if ( %isAdmin && !isDemo() && !isDemoServer()) + else if ( %isAdmin && !isDemo() ) { if ( !%isTargetBot && !%isTargetAdmin ) messageClient( %client, 'MsgPlayerPopupItem', "", %key, "AdminPlayer", "", 'Make Admin', 2 ); @@ -2479,8 +2508,8 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k if ( %isTargetObserver ) { %action = %isTargetSelf ? "Join " : "Change to "; - %str1 = %action @ getTaggedString( $TeamName[1] ); - %str2 = %action @ getTaggedString( $TeamName[2] ); + %str1 = %action @ getTaggedString( %game.getTeamName(1) ); + %str2 = %action @ getTaggedString( %game.getTeamName(2) ); messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ChangeTeam", "", %str1, 6 ); messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ChangeTeam", "", %str2, 7 ); @@ -2488,7 +2517,7 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k else { %changeTo = %targetClient.team == 1 ? 2 : 1; - %str = "Switch to " @ getTaggedString( $TeamName[%changeTo] ); + %str = "Switch to " @ getTaggedString( %game.getTeamName(%changeTo) ); %caseId = 5 + %changeTo; messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ChangeTeam", "", %str, %caseId ); @@ -2534,7 +2563,7 @@ function DefaultGame::sendGameVoteMenu( %game, %client, %key ) if( !%client.canVote && !%isAdmin ) return; - if (isDemo() || isDemoServer()) + if (isDemo()) return; if ( %game.scheduleVote $= "" ) @@ -2612,7 +2641,7 @@ function DefaultGame::sendGameTeamList( %game, %client, %key ) } for ( %team = 1; %team - 1 < %teamCount; %team++ ) - messageClient( %client, 'MsgVoteItem', "", %key, %team, "", detag( getTaggedString( $teamName[%team] ) ) ); + messageClient( %client, 'MsgVoteItem', "", %key, %team, "", detag( getTaggedString( %game.getTeamName(%team) ) ) ); } //------------------------------------------------------------------------------ @@ -2625,7 +2654,7 @@ function DefaultGame::sendTimeLimitList( %game, %client, %key ) messageClient( %client, 'MsgVoteItem', "", %key, 30, "", '30 minutes' ); messageClient( %client, 'MsgVoteItem', "", %key, 45, "", '45 minutes' ); messageClient( %client, 'MsgVoteItem', "", %key, 60, "", '60 minutes' ); - messageClient( %client, 'MsgVoteItem', "", %key, 999, "", 'No time limit' ); + messageClient( %client, 'MsgVoteItem', "", %key, 200, "", 'No time limit' ); } //------------------------------------------------------------------------------ @@ -2874,10 +2903,15 @@ function DefaultGame::voteFFAMode( %game, %admin, %client ) //------------------------------------------------------------------------------ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit ) { + if( %newLimit == 999 ) + %display = "unlimited"; + else + %display = %newLimit; + %cause = ""; if ( %admin ) { - messageAll( 'MsgAdminForce', '\c2The Admin changed the mission time limit to %1 minutes.', %newLimit ); + messageAll( 'MsgAdminForce', '\c2The Admin changed the mission time limit to %1 minutes.', %display ); $Host::TimeLimit = %newLimit; %cause = "(admin)"; } @@ -2886,7 +2920,7 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit ) %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount)) > ($Host::VotePasspercent / 100)) { - messageAll('MsgVotePassed', '\c2The mission time limit was set to %1 minutes by vote.', %newLimit); + messageAll('MsgVotePassed', '\c2The mission time limit was set to %1 minutes by vote.', %display); $Host::TimeLimit = %newLimit; %cause = "(vote)"; } @@ -2897,7 +2931,7 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit ) //if the time limit was actually changed... if(%cause !$= "") { - logEcho("time limit set to "@%newLimit SPC %cause); + logEcho("time limit set to "@%display SPC %cause); //if the match has been started, reset the end of match countdown if ($matchStarted) @@ -2905,9 +2939,10 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit ) //schedule the end of match countdown %elapsedTimeMS = getSimTime() - $missionStartTime; %curTimeLeftMS = ($Host::TimeLimit * 60 * 1000) - %elapsedTimeMS; - //error("time limit="@$Host::TimeLimit@", elapsed="@(%elapsedTimeMS / 60000)@", curtimeleftms="@%curTimeLeftMS); + error("time limit="@$Host::TimeLimit@", elapsed="@(%elapsedTimeMS / 60000)@", curtimeleftms="@%curTimeLeftMS); CancelEndCountdown(); EndCountdown(%curTimeLeftMS); + cancel(%game.timeSync); %game.checkTimeLimit(true); } } @@ -2952,7 +2987,7 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client) } else { - //%team = %client.team; + %team = %client.team; %totalVotes = %game.votesFor[%game.kickTeam] + %game.votesAgainst[%game.kickTeam]; if(%totalVotes > 0 && (%game.votesFor[%game.kickTeam] / %totalVotes) > ($Host::VotePasspercent / 100)) { @@ -2960,7 +2995,15 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client) %cause = "(vote)"; } else - messageAll('MsgVoteFailed', '\c2Kick player vote did not pass'); + { + for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ ) + { + %cl = ClientGroup.getObject( %idx ); + + if (%cl.team == %game.kickTeam && !%cl.isAIControlled()) + messageClient( %cl, 'MsgVoteFailed', '\c2Kick player vote did not pass' ); + } + } } %game.kickTeam = ""; @@ -3021,8 +3064,13 @@ function DefaultGame::processGameLink(%game, %client, %arg1, %arg2, %arg3, %arg4 if ((%client.team == 0) && isObject(%targetClient) && (%targetClient.team != 0)) { %prevObsClient = %client.observeClient; + + // update the observer list for this client + observerFollowUpdate( %client, %targetClient, %prevObsClient !$= "" ); + serverCmdObserveClient(%client, %targetClient); displayObserverHud(%client, %targetClient); + if (%targetClient != %prevObsClient) { messageClient(%targetClient, 'Observer', '\c1%1 is now observing you.', %client.name); @@ -3039,7 +3087,7 @@ function DefaultGame::updateScoreHud(%game, %client, %tag) { // Send header: messageClient( %client, 'SetScoreHudHeader', "", '\t%1%2\t%3%4', - $TeamName[1], $TeamScore[1], $TeamName[2], $TeamScore[2] ); + %game.getTeamName(1), $TeamScore[1], %game.getTeamName(2), $TeamScore[2] ); // Send subheader: messageClient( %client, 'SetScoreHudSubheader', "", '\tPLAYERS (%1)SCORE\tPLAYERS (%2)SCORE', @@ -3048,27 +3096,46 @@ function DefaultGame::updateScoreHud(%game, %client, %tag) %index = 0; while ( true ) { - if ( %index >= $TeamRank[1, count] && %index >= $TeamRank[2, count] ) + if ( %index >= $TeamRank[1, count]+2 && %index >= $TeamRank[2, count]+2 ) break; //get the team1 client info %team1Client = ""; %team1ClientScore = ""; + %col1Style = ""; if ( %index < $TeamRank[1, count] ) { %team1Client = $TeamRank[1, %index]; %team1ClientScore = %team1Client.score $= "" ? 0 : %team1Client.score; %col1Style = %team1Client == %client ? "" : ""; + %team1playersTotalScore += %team1Client.score; + } + else if( %index == $teamRank[1, count] && $teamRank[1, count] != 0 && !isDemo() && %game.class $= "CTFGame") + { + %team1ClientScore = "--------------"; + } + else if( %index == $teamRank[1, count]+1 && $teamRank[1, count] != 0 && !isDemo() && %game.class $= "CTFGame") + { + %team1ClientScore = %team1playersTotalScore != 0 ? %team1playersTotalScore : 0; } - //get the team2 client info %team2Client = ""; %team2ClientScore = ""; + %col2Style = ""; if ( %index < $TeamRank[2, count] ) { %team2Client = $TeamRank[2, %index]; %team2ClientScore = %team2Client.score $= "" ? 0 : %team2Client.score; %col2Style = %team2Client == %client ? "" : ""; + %team2playersTotalScore += %team2Client.score; + } + else if( %index == $teamRank[2, count] && $teamRank[2, count] != 0 && !isDemo() && %game.class $= "CTFGame") + { + %team2ClientScore = "--------------"; + } + else if( %index == $teamRank[2, count]+1 && $teamRank[2, count] != 0 && !isDemo() && %game.class $= "CTFGame") + { + %team2ClientScore = %team2playersTotalScore != 0 ? %team2playersTotalScore : 0; } //if the client is not an observer, send the message @@ -3276,7 +3343,7 @@ function DefaultGame::getServerStatusString(%game) for ( %team = 1; %team - 1 < %game.numTeams; %team++ ) { %score = isObject( $teamScore[%team] ) ? $teamScore[%team] : 0; - %teamStr = getTaggedString( $teamName[%team] ) TAB %score; + %teamStr = getTaggedString( %game.getTeamName(%team) ) TAB %score; %status = %status NL %teamStr; } @@ -3285,7 +3352,7 @@ function DefaultGame::getServerStatusString(%game) { %cl = ClientGroup.getObject( %i ); %score = %cl.score $= "" ? 0 : %cl.score; - %playerStr = getTaggedString( %cl.name ) TAB getTaggedString( $teamName[%cl.team] ) TAB %score; + %playerStr = getTaggedString( %cl.name ) TAB getTaggedString( %game.getTeamName(%cl.team) ) TAB %score; %status = %status NL %playerStr; } return( %status ); @@ -3297,3 +3364,7 @@ function DefaultGame::OptionsDlgSleep( %game ) // ignore in the default game... } +//------------------------------------------------------------------------------ +function DefaultGame::endMission( %game ) +{ +} diff --git a/base/scripts/deployables.cs b/base/scripts/deployables.cs index 6bf5793..0d2836d 100644 --- a/base/scripts/deployables.cs +++ b/base/scripts/deployables.cs @@ -38,6 +38,37 @@ $NotDeployableReason::InventoryTooClose = 11; $MinDeployableDistance = 2.5; $MaxDeployableDistance = 5.0; //meters from body +// -------------------------------------------- +// effect datablocks +// -------------------------------------------- + +datablock EffectProfile(TurretDeployEffect) +{ + effectname = "packs/generic_deploy"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(SensorDeployEffect) +{ + effectname = "powered/sensor_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(MotionSensorDeployEffect) +{ + effectname = "powered/motion_sensor_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(StationDeployEffect) +{ + effectname = "packs/inventory_deploy"; + minDistance = 2.5; + maxDistance = 5.0; +}; // -------------------------------------------- // sound datablocks @@ -48,6 +79,7 @@ datablock AudioProfile(TurretDeploySound) fileName = "fx/packs/turret_place.wav"; description = AudioClose3d; preload = true; + effect = TurretDeployEffect; }; datablock AudioProfile(SensorDeploySound) @@ -55,6 +87,8 @@ datablock AudioProfile(SensorDeploySound) fileName = "fx/powered/sensor_activate.wav"; description = AudioClose3d; preload = true; + effect = SensorDeployEffect; + effect = MotionSensorDeployEffect; }; datablock AudioProfile(MotionSensorDeploySound) @@ -69,6 +103,7 @@ datablock AudioProfile(StationDeploySound) fileName = "fx/packs/inventory_deploy.wav"; description = AudioClose3d; preload = true; + effect = StationDeployEffect; }; // -------------------------------------------- @@ -562,12 +597,13 @@ function ShapeBaseImageData::testSelfTooClose(%item, %plyr) //------------------------------------------------- function ShapeBaseImageData::testObjectTooClose(%item) { - InitContainerRadiusSearch( %item.surfacePt, $MinDeployDistance, - $TypeMasks::VehicleObjectType | $TypeMasks::MoveableObjectType | - $TypeMasks::StaticShapeObjectType | $TypeMasks::StaticTSObjectType | + %mask = ($TypeMasks::VehicleObjectType | $TypeMasks::MoveableObjectType | + $TypeMasks::StaticShapeObjectType | $TypeMasks::ForceFieldObjectType | $TypeMasks::ItemObjectType | $TypeMasks::PlayerObjectType | $TypeMasks::TurretObjectType); - + + InitContainerRadiusSearch( %item.surfacePt, $MinDeployDistance, %mask ); + %test = containerSearchNext(); return %test; } diff --git a/base/textures/desert/desertPropMap.cs b/base/scripts/desertPropMap.cs similarity index 54% rename from base/textures/desert/desertPropMap.cs rename to base/scripts/desertPropMap.cs index 3815edb..b5545e6 100644 --- a/base/textures/desert/desertPropMap.cs +++ b/base/scripts/desertPropMap.cs @@ -4,22 +4,14 @@ addMaterialMapping("desert/cp_ichute01", "environment: special/chuteTexture 0.25 addMaterialMapping("desert/cp_ichute02", "environment: special/chuteTexture 0.25"); //"Color: red green blue startAlpha endAlpha" -addMaterialMapping("terrain/DesertWorld.RockFractured", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.RockSmooth", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.Sand", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.SandBrun", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.SandDark", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.SandOrange", "color: 0.35 0.2 0.05 0.7 0.0"); -addMaterialMapping("terrain/DesertWorld.SandOxidized", "color: 0.35 0.2 0.05 0.7 0.0"); - //Soft sound = 0 //Hard sound = 1 //Metal sound = 2 //Snow sound = 3 -addMaterialMapping("terrain/DesertWorld.RockFractured", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.RockSmooth", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.Sand", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.SandBrun", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.SandDark", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.SandOrange", "sound: 0"); -addMaterialMapping("terrain/DesertWorld.SandOxidized", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.RockFractured", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.RockSmooth", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.Sand", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.SandBrun", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.SandDark", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.SandOrange", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/DesertWorld.SandOxidized", "color: 0.35 0.2 0.05 0.7 0.0", "sound: 0"); diff --git a/base/scripts/gameBase.cs b/base/scripts/gameBase.cs index 215ea4c..b538462 100644 --- a/base/scripts/gameBase.cs +++ b/base/scripts/gameBase.cs @@ -2,7 +2,18 @@ function GameBaseData::onAdd(%data, %obj) { if(%data.targetTypeTag !$= "") - %obj.target = createTarget(%obj, %data.targetNameTag, "", "", %data.targetTypeTag, 0, 0); + { + // use the name given to the object in the mission file + if(%obj.nameTag !$= "") + { + %obj.nameTag = addTaggedString(%obj.nameTag); + %nameTag = %obj.nameTag; + } + else + %nameTag = %data.targetNameTag; + + %obj.target = createTarget(%obj, %nameTag, "", "", %data.targetTypeTag, 0, 0); + } else %obj.target = -1; } @@ -13,7 +24,11 @@ function GameBaseData::onRemove(%data, %obj) // first 32 targets are team targets if(%target >= 32) + { + if(%obj.nameTag !$= "") + removeTaggedString(%obj.nameTag); freeTarget(%target); + } } function InteriorInstance::damage() diff --git a/base/scripts/hud.cs b/base/scripts/hud.cs index 9049167..4b54935 100644 --- a/base/scripts/hud.cs +++ b/base/scripts/hud.cs @@ -1,84 +1,3 @@ -// function createObserverMoveMap() -// { -// if ( isObject( flyingCameraMove ) ) -// flyingCameraMove.delete(); -// -// new ActionMap( flyingCameraMove ); -// flyingCameraMove.bind( keyboard, s, moveleft ); -// flyingCameraMove.bind( keyboard, f, moveright ); -// flyingCameraMove.bind( keyboard, e, moveforward ); -// flyingCameraMove.bind( keyboard, d, movebackward ); -// flyingCameraMove.bind( keyboard, t, moveup ); -// flyingCameraMove.bind( keyboard, b, movedown ); -// -// // allow hud activation -// flyingCameraMove.copyBind( moveMap, toggleScoreScreen ); -// flyingCameraMove.copyBind( moveMap, toggleCommanderMap ); -// flyingCameraMove.copyBind( moveMap, TeamMessageHud ); -// flyingCameraMove.copyBind( moveMap, toggleMessageHud ); -// flyingCameraMove.copyBind( moveMap, toggleInventoryHud ); -// flyingCameraMove.copyBind( moveMap, voteYes ); -// flyingCameraMove.copyBind( moveMap, voteNo ); -// flyingCameraMove.copyBind( moveMap, activateChatMenuHud ); -// -// // Bind the command assignment/response keys as well: -// flyingCameraMove.copyBind( moveMap, toggleTaskListDlg ); -// flyingCameraMove.copyBind( moveMap, fnAcceptTask ); -// flyingCameraMove.copyBind( moveMap, fnDeclineTask ); -// flyingCameraMove.copyBind( moveMap, fnTaskCompleted ); -// flyingCameraMove.copyBind( moveMap, fnResetTaskList ); -// -// // misc -// flyingCameraMove.copyBind( moveMap, voiceCapture ); -// -// // inventory binds -// flyingCameraMove.copyBind( moveMap, toggleInventoryHud ); -// flyingCameraMove.copyBind( moveMap, selectFavorite1 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite2 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite3 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite4 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite5 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite6 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite7 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite8 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite9 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite10 ); -// -// flyingCameraMove.copyBind( moveMap, selectFavorite11 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite12 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite13 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite14 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite15 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite16 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite17 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite18 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite19 ); -// flyingCameraMove.copyBind( moveMap, selectFavorite20 ); -// -// flyingCameraMove.copyBind( moveMap, quickPackEnergyPack ); -// flyingCameraMove.copyBind( moveMap, quickPackRepairPack ); -// flyingCameraMove.copyBind( moveMap, quickPackShieldPack ); -// flyingCameraMove.copyBind( moveMap, quickPackCloakPack ); -// flyingCameraMove.copyBind( moveMap, quickPackJammerPack ); -// flyingCameraMove.copyBind( moveMap, quickPackAmmoPack ); -// flyingCameraMove.copyBind( moveMap, quickPackSatchelCharge ); -// flyingCameraMove.copyBind( moveMap, quickPackDeployableStation ); -// flyingCameraMove.copyBind( moveMap, quickPackIndoorTurret ); -// flyingCameraMove.copyBind( moveMap, quickPackOutdoorTurret ); -// flyingCameraMove.copyBind( moveMap, quickPackMotionSensor ); -// flyingCameraMove.copyBind( moveMap, quickPackPulse ); -// -// //preserve the fire, jump, and jet buttons -// flyingCameraMove.copyBind( moveMap, mouseFire ); -// flyingCameraMove.copyBind( moveMap, mouseJet ); -// flyingCameraMove.copyBind( moveMap, jump ); -// flyingCameraMove.copyBind( moveMap, yaw ); -// flyingCameraMove.copyBind( moveMap, pitch ); -// -// flyingCameraMove.bindCmd( keyboard, escape, "", "escapeFromGame();" ); -// } -// createObserverMoveMap(); - //-------------------------------------------------------------------------- function GameConnection::sensorPing(%this, %ping) { @@ -121,17 +40,6 @@ function clientCmdResetHud() sensorHud.update(); } -//-------------------------------------------------------------------------- -function GameConnection::syncHudClock(%client, %time) -{ - commandToClient(%client, 'syncHudClock', %time); -} - -function clientCmdSyncHudClock(%time) -{ - clockHud.setTime(%time); -} - //-------------------------------------------------------------------------- $vehicleReticle[AssaultVehicle, 1, bitmap] = "gui/hud_ret_tankchaingun"; $vehicleReticle[AssaultVehicle, 1, frame] = true; @@ -377,11 +285,6 @@ function clientCmdSetWeaponsHudClearAll() weaponsHud.clearAll(); } -function GameConnection::clearBackpackIcon(%client) -{ - commandToClient(%client, 'setBackpackHudItem', 0, 0); -} - //---------------------------------------------------------------------------- // Ammo Hud //---------------------------------------------------------------------------- @@ -439,8 +342,15 @@ $BackpackHudData[16, itemDataName] = "ELFBarrelPack"; $BackpackHudData[16, bitmapName] = "gui/hud_new_packturret"; $BackpackHudData[17, itemDataName] = "MortarBarrelPack"; $BackpackHudData[17, bitmapName] = "gui/hud_new_packturret"; +$BackpackHudData[18, itemDataName] = "SatchelUnarmed"; +$BackpackHudData[18, bitmapName] = "gui/hud_satchel_unarmed"; -$BackpackHudCount = 18; +$BackpackHudCount = 20; + +function GameConnection::clearBackpackIcon(%client) +{ + commandToClient(%client, 'setBackpackHudItem', 0, 0); +} function GameConnection::setBackpackHudItem(%client, %name, %addItem) { @@ -456,7 +366,7 @@ function clientCmdSetBackpackHudItem(%num, %addItem) backpackIcon.setBitmap($BackpackHudData[%num, bitmapName]); backpackFrame.setVisible(true); backpackIcon.setVisible(true); - backpackFrame.pack = true; + backpackFrame.pack = true; } else { @@ -464,7 +374,7 @@ function clientCmdSetBackpackHudItem(%num, %addItem) backpackFrame.setVisible(false); backpackText.setValue(""); backpackText.setVisible(false); - backpackFrame.pack = false; + backpackFrame.pack = false; } } @@ -482,6 +392,53 @@ function clientCmdUpdatePackText(%num) backpackText.setVisible(true); } +// Pack Icons Activate / Deactivate +function clientCmdSetSatchelArmed() +{ + backpackIcon.setBitmap( "gui/hud_satchel_armed" ); +} + +function clientCmdsetCloakIconOn() +{ + backpackIcon.setBitmap( "gui/hud_new_packcloak_armed" ); +} + +function clientCmdsetCloakIconOff() +{ + backpackIcon.setBitmap( "gui/hud_new_packcloak" ); +} + +function clientCmdsetRepairPackIconOn() +{ + backpackIcon.setBitmap( "gui/hud_new_packrepair_armed" ); +} + +function clientCmdsetRepairPackIconOff() +{ + backpackIcon.setBitmap( "gui/hud_new_packrepair" ); +} + +function clientCmdsetShieldIconOn() +{ + backpackIcon.setBitmap( "gui/hud_new_packshield_armed" ); +} + +function clientCmdsetShieldIconOff() +{ + backpackIcon.setBitmap( "gui/hud_new_packshield" ); +} + +function clientCmdsetSenJamIconOn() +{ + backpackIcon.setBitmap( "gui/hud_new_packsensjam_armed" ); +} + +function clientCmdsetSenJamIconOff() +{ + backpackIcon.setBitmap( "gui/hud_new_packsensjam" ); +} + + //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $InventoryHudData[0, bitmapName] = "gui/hud_handgren"; @@ -496,11 +453,11 @@ $InventoryHudData[2, bitmapName] = "gui/hud_medpack"; $InventoryHudData[2, itemDataName] = RepairKit; $InventoryHudData[2, ammoDataName] = RepairKit; $InventoryHudData[2, slot] = 3; -$InventoryHudData[3, bitmapName] = "gui/hud_handgren"; +$InventoryHudData[3, bitmapName] = "gui/hud_whiteout_gren"; $InventoryHudData[3, itemDataName] = FlashGrenade; $InventoryHudData[3, ammoDataName] = FlashGrenade; $InventoryHudData[3, slot] = 0; -$InventoryHudData[4, bitmapName] = "gui/hud_handgren"; +$InventoryHudData[4, bitmapName] = "gui/hud_concuss_gren"; $InventoryHudData[4, itemDataName] = ConcussionGrenade; $InventoryHudData[4, ammoDataName] = ConcussionGrenade; $InventoryHudData[4, slot] = 0; @@ -519,6 +476,7 @@ $InventoryHudData[7, slot] = 2; $InventoryHudCount = 8; + //---------------------------------------------------------------------------- // Inventory Hud //---------------------------------------------------------------------------- @@ -596,11 +554,13 @@ function GameConnection::setInventoryHudClearAll(%client) function clientCmdSetInventoryHudClearAll() { inventoryHud.clearAll(); - backpackIcon.setBitmap(""); - backpackFrame.setVisible(false); + backpackIcon.setBitmap( "" ); + backpackFrame.setVisible( false ); + backpackText.setValue( "" ); + backpackText.setVisible(false); + backpackFrame.pack = false; } - //---------------------------------------------------------------------------- // MessageHud function MessageHud::open(%this) @@ -924,9 +884,9 @@ function setControlObjectReticle(%type) function updateActionMaps() { //pop the action maps... - if (isObject(moveMap)) + if ( isObject( moveMap ) ) moveMap.pop(); - if (isObject(passengerKeys)) + if ( isObject( passengerKeys ) ) passengerKeys.pop(); if ( isObject( observerBlockMap ) ) observerBlockMap.pop(); @@ -934,6 +894,8 @@ function updateActionMaps() observerMap.pop(); if ( isObject( pickTeamMap ) ) pickTeamMap.pop(); + if ( isObject( halftimeMap ) ) + halftimeMap.delete(); //if (isObject(flyingCameraMove)) // flyingCameraMove.pop(); @@ -978,6 +940,18 @@ function updateActionMaps() new ActionMap( pickTeamMap ); pickTeamMap.copyBind( moveMap, toggleMessageHud ); pickTeamMap.push(); + + case "SiegeHalftime": + new ActionMap( halftimeMap ); + halftimeMap.bindCmd( keyboard, escape, "", "escapeFromGame();" ); + halftimeMap.copyBind( moveMap, toggleMessageHud ); + halftimeMap.copyBind( moveMap, teamMessageHud ); + halftimeMap.copyBind( moveMap, activateChatMenuHud ); + halftimeMap.copyBind( moveMap, resizeChatHud ); + halftimeMap.copyBind( moveMap, pageMessageHudUp ); + halftimeMap.copyBind( moveMap, pageMessageHudDown ); + halftimeMap.copyBind( moveMap, voiceCapture ); + halftimeMap.push(); //case 'Standard': default: @@ -993,10 +967,10 @@ function ClientCmdDisplayHuds() // only update action maps if playGui is current content %content = Canvas.getContent(); - if(isObject(%content) && (%content.getName() $= "PlayGui")) - { + %PlayGuiActive = isObject(%content) && ( %content.getName() $= "PlayGui" ); + if ( %PlayGuiActive ) updateActionMaps(); - } + ammoHud.setVisible(false); objectiveHud.setVisible(false); inventoryHud.setVisible(false); @@ -1007,13 +981,17 @@ function ClientCmdDisplayHuds() outerChatHud.setVisible(false); clockHud.setVisible(false); controlObjectText.setVisible(false); + siegeHalftimeHud.setVisible(false); clientCmdToggleDashHud(false); + %hideCursor = true; switch$ ($HudMode) { case "Pilot": clientCmdShowVehicleGauges($HudModeType, $HudModeNode); clientCmdToggleDashHud(true); + objectiveHud.setVisible(true); + dashBoardHud.setposition(0, 0); retCenterHud.setVisible(true); HudClusterBack.setVisible(true); outerChatHud.setVisible(true); @@ -1022,6 +1000,8 @@ function ClientCmdDisplayHuds() case "Passenger": clientCmdShowVehicleGauges($HudModeType, $HudModeNode); clientCmdToggleDashHud(true); + objectiveHud.setVisible(true); + dashBoardHud.setPosition(0, 0); ammoHud.setVisible(true); objectiveHud.setVisible(true); inventoryHud.setVisible(true); @@ -1048,6 +1028,15 @@ function ClientCmdDisplayHuds() outerChatHud.setVisible(true); clockHud.setVisible(true); + case "SiegeHalftime": + closeHud( "", "", 'scoreScreen' ); + closeHud( "", "", 'inventoryScreen' ); + closeHud( "", "", 'vehicleHud' ); + objectiveHud.setVisible(true); + outerChatHud.setVisible(true); + siegeHalftimeHud.setVisible(true); + %hideCursor = false; + case "PickTeam": ammoHud.setVisible(false); objectiveHud.setVisible(false); @@ -1079,6 +1068,53 @@ function ClientCmdDisplayHuds() mainVoteHud.setVisible(0); } + + if ( PlayGui.hideCursor != %hideCursor ) + { + PlayGui.hideCursor = %hideCursor; + if ( %PlayGuiActive ) + Canvas.updateCursorState(); + } +} + +function dashboardHud::onResize(%this, %width, %height) +{ + %currentWidth = getWord(dashboardHud.getPosition(), 0); + %currentHeight = getWord(dashboardHud.getPosition(), 1); + + %screenWidth = getWord(getResolution(), 0); + %screenHeight = getWord(getResolution(), 1); + + switch$ ($HudMode) + { + case "Pilot": + if(%screenHeight <= 480) + { + if($HudModeNode == 0) + { %xVal = 0; %yVal = 339; } + else + { %xVal = 0; %yVal = 320; } + } + else if(%screenHeight <= 600) + { + if($HudModeNode == 0) + { %xVal = 80; %yVal = 455; } + else + { %xVal = 80; %yVal = 440; } + } + else + { + %xVal = (%screenWidth - 640) / 2; + %yVal = (%screenheight - 480) + 360; + } + + case "Passenger": + %xVal = (%screenWidth - 640) / 2; + %yVal = (%screenheight - 480) + 360; + } + + if(%currentWidth != %xVal || %currentHeight != %yVal) + dashBoardHud.setPosition(%xVal, %yVal); } function clientcmdTogglePlayHuds(%val) @@ -1232,16 +1268,19 @@ function clearHud(%msgType, %msgString, %tag, %a0) %height = 0; %guiCtrl = $Hud[%tag].childGui; - //set the new extent to be the position + extent of the last element... - %height = 0; - if (%guiCtrl.getCount() > 0) + if(isObject(%guiCtrl)) { - %lastCtrl = %guiCtrl.getObject(%guiCtrl.getCount() - 1); - %height = getWord(%lastCtrl.position, 1) + getWord(%lastCtrl.extent, 1); - } + //set the new extent to be the position + extent of the last element... + %height = 0; + if (%guiCtrl.getCount() > 0) + { + %lastCtrl = %guiCtrl.getObject(%guiCtrl.getCount() - 1); + %height = getWord(%lastCtrl.position, 1) + getWord(%lastCtrl.extent, 1); + } - //now reset the extent - %guiCtrl.resize(getWord(%guiCtrl.position, 0), getWord(%guiCtrl.position, 1), getWord(%guiCtrl.extent, 0), %height); + //now reset the extent + %guiCtrl.resize(getWord(%guiCtrl.position, 0), getWord(%guiCtrl.position, 1), getWord(%guiCtrl.extent, 0), %height); + } } } diff --git a/base/textures/ice/icePropMap.cs b/base/scripts/icePropMap.cs similarity index 62% rename from base/textures/ice/icePropMap.cs rename to base/scripts/icePropMap.cs index 07e19ce..510c68d 100644 --- a/base/textures/ice/icePropMap.cs +++ b/base/scripts/icePropMap.cs @@ -4,18 +4,12 @@ addMaterialMapping("ice/sw_ichute01", "environment: special/chuteTexture 0.25"); addMaterialMapping("ice/sw_ichute02", "environment: special/chuteTexture 0.25"); //"Color: red green blue startAlpha endAlpha" -addMaterialMapping("terrain/IceWorld.Ice", "color: 0.9 0.9 0.9 0.4 0.0"); -addMaterialMapping("terrain/IceWorld.RockBlue", "color: 0.9 0.9 0.9 0.4 0.0"); -addMaterialMapping("terrain/IceWorld.Snow", "color: 0.9 0.9 0.9 0.4 0.0"); -addMaterialMapping("terrain/IceWorld.SnowIce", "color: 0.9 0.9 0.9 0.4 0.0"); -addMaterialMapping("terrain/IceWorld.SnowRock", "color: 0.9 0.9 0.9 0.4 0.0"); - //Soft sound = 0 //Hard sound = 1 //Metal sound = 2 //Snow sound = 3 -addMaterialMapping("terrain/IceWorld.Ice", "sound: 3"); -addMaterialMapping("terrain/IceWorld.RockBlue", "sound: 3"); -addMaterialMapping("terrain/IceWorld.Snow", "sound: 3"); -addMaterialMapping("terrain/IceWorld.SnowIce", "sound: 3"); -addMaterialMapping("terrain/IceWorld.SnowRock", "sound: 3"); +addMaterialMapping("terrain/IceWorld.Ice", "color: 0.9 0.9 0.9 0.4 0.0", "sound: 3"); +addMaterialMapping("terrain/IceWorld.RockBlue", "color: 0.9 0.9 0.9 0.4 0.0", "sound: 3"); +addMaterialMapping("terrain/IceWorld.Snow", "color: 0.9 0.9 0.9 0.4 0.0", "sound: 3"); +addMaterialMapping("terrain/IceWorld.SnowIce", "color: 0.9 0.9 0.9 0.4 0.0", "sound: 3"); +addMaterialMapping("terrain/IceWorld.SnowRock", "color: 0.9 0.9 0.9 0.4 0.0", "sound: 3"); diff --git a/base/scripts/inventory.cs b/base/scripts/inventory.cs index 6115e96..e3ce901 100644 --- a/base/scripts/inventory.cs +++ b/base/scripts/inventory.cs @@ -125,6 +125,9 @@ function ShapeBase::throwPack(%this) function ShapeBase::throw(%this,%data) { + if(!isObject(%data)) + return false; + if (%this.inv[%data.getName()] > 0) { // save off the ammo count on this item diff --git a/base/scripts/inventoryHud.cs b/base/scripts/inventoryHud.cs index 3cb7c80..c325fe1 100644 --- a/base/scripts/inventoryHud.cs +++ b/base/scripts/inventoryHud.cs @@ -507,6 +507,7 @@ function buyFavorites(%client) %client.player.setDamageLevel(%curDmgPct * %newArmor.maxDamage); %weaponCount = 0; + // weapons for(%i = 0; %i < getFieldCount( %client.weaponIndex ); %i++) { @@ -565,7 +566,12 @@ function buyFavorites(%client) // grenades for ( %i = 0; %i < getFieldCount( %client.grenadeIndex ); %i++ ) - %client.player.setInventory( $NameToInv[%client.favorites[getField( %client.grenadeIndex,%i )]], 30 ); + { + if ( !($InvBanList[%cmt, $NameToInv[%client.favorites[getField( %client.grenadeIndex, %i )]]]) ) + %client.player.setInventory( $NameToInv[%client.favorites[getField( %client.grenadeIndex,%i )]], 30 ); + } + + %client.player.lastGrenade = $NameToInv[%client.favorites[getField( %client.grenadeIndex,%i )]]; // if player is buying cameras, show how many are already deployed if(%client.favorites[%client.grenadeIndex] $= "Deployable Camera") @@ -640,8 +646,10 @@ function buyDeployableFavorites(%client) for ( %i = 0; %i < getFieldCount( %client.grenadeIndex ); %i++) { %GInv = $NameToInv[%client.favorites[getField( %client.grenadeIndex, %i )]]; + %client.player.lastGrenade = %GInv; if ( !($InvBanList[DeployInv, %GInv]) ) %player.setInventory( %GInv, 30 ); + } // if player is buying cameras, show how many are already deployed @@ -706,6 +714,81 @@ function buyDeployableFavorites(%client) invAmmoPackPass(%client); } +//------------------------------------------------------------------------------------- +function getAmmoStationLovin(%client) +{ + //error("Much ammo station lovin applied"); + %cmt = $CurrentMissionType; + + // weapons + for(%i = 0; %i < %client.player.weaponSlotCount; %i++) + { + %weapon = %client.player.weaponSlot[%i]; + switch$ ( %weapon ) + { + case Plasma: + %client.player.setInventory( PlasmaAmmo, 400 ); + case Disc: + %client.player.setInventory( DiscAmmo, 400 ); + case GrenadeLauncher: + %client.player.setInventory( GrenadeLauncherAmmo, 400 ); + case Mortar: + %client.player.setInventory( MortarAmmo, 400 ); + case MissileLauncher: + %client.player.setInventory( MissileLauncherAmmo, 400 ); + case Chaingun: + %client.player.setInventory( ChaingunAmmo, 400 ); + } + } + + // miscellaneous stuff -- Repair Kit, Beacons, Targeting Laser + if ( !($InvBanList[%cmt, RepairKit]) ) + %client.player.setInventory( RepairKit, 1 ); + if ( !($InvBanList[%cmt, Beacon]) ) + %client.player.setInventory( Beacon, 400 ); + if ( !($InvBanList[%cmt, TargetingLaser]) ) + %client.player.setInventory( TargetingLaser, 1 ); + // Do we want to allow mines? Ammo stations in T1 didnt dispense mines. +// if ( !($InvBanList[%cmt, Mine]) ) +// %client.player.setInventory( Mine, 400 ); + + // grenades + // we need to get rid of any grenades the player may have picked up + %client.player.setInventory( Grenade, 0 ); + %client.player.setInventory( ConcussionGrenade, 0 ); + %client.player.setInventory( CameraGrenade, 0 ); + %client.player.setInventory( FlashGrenade, 0 ); + %client.player.setInventory( FlareGrenade, 0 ); + + // player should get the last type they purchased + %grenType = %client.player.lastGrenade; + + // if the player hasnt been to a station they get regular grenades + if(%grenType $= "") + { + //error("no gren type, using default..."); + %grenType = Grenade; + } + if ( !($InvBanList[%cmt, %grenType]) ) + %client.player.setInventory( %grenType, 30 ); + + // if player is buying cameras, show how many are already deployed + if(%grenType $= "Deployable Camera") + { + %maxDep = $TeamDeployableMax[DeployedCamera]; + %depSoFar = $TeamDeployedCount[%client.player.team, DeployedCamera]; + if(Game.numTeams > 1) + %msTxt = "Your team has "@%depSoFar@" of "@%maxDep@" Deployable Cameras placed."; + else + %msTxt = "You have placed "@%depSoFar@" of "@%maxDep@" Deployable Cameras."; + messageClient(%client, 'MsgTeamDepObjCount', %msTxt); + } + + if( %client.player.getMountedImage($BackpackSlot) $= "AmmoPack" ) + invAmmoPackPass(%client); +} + + function invAmmoPackPass(%client) { // "normal" ammo stuff (everything but mines and grenades) @@ -944,10 +1027,10 @@ function getArmorDatablock(%client, %size) //------------------------------------------------------------------------------ function InventoryScreen::onWake(%this) { - if ( $HudHandle['inventoryScreen'] !$= "" ) - alxStop( $HudHandle['inventoryScreen'] ); + if ( $HudHandle[inventoryScreen] !$= "" ) + alxStop( $HudHandle[inventoryScreen] ); alxPlay(HudInventoryActivateSound, 0, 0, 0); - $HudHandle['inventoryScreen'] = alxPlay(HudInventoryHumSound, 0, 0, 0); + $HudHandle[inventoryScreen] = alxPlay(HudInventoryHumSound, 0, 0, 0); if ( isObject( hudMap ) ) { @@ -966,9 +1049,9 @@ function InventoryScreen::onSleep() { hudMap.pop(); hudMap.delete(); - alxStop($HudHandle['inventoryScreen']); + alxStop($HudHandle[inventoryScreen]); alxPlay(HudInventoryDeactivateSound, 0, 0, 0); - $HudHandle['inventoryScreen'] = ""; + $HudHandle[inventoryScreen] = ""; } //------------------------------------------------------------------------------ diff --git a/base/scripts/item.cs b/base/scripts/item.cs index 8818e25..be45e7a 100644 --- a/base/scripts/item.cs +++ b/base/scripts/item.cs @@ -79,10 +79,18 @@ datablock AudioProfile(ItemPickupSound) preload = true; }; +datablock EffectProfile(ItemThrowEffect) +{ + effectname = "packs/packs.throwpack"; + minDistance = 2.5; + maxDistance = 2.5; +}; + datablock AudioProfile(ItemThrowSound) { filename = "fx/packs/packs.throwpack.wav"; description = AudioClosest3d; + effect = ItemThrowEffect; preload = true; }; @@ -540,21 +548,6 @@ function getVector(%string, %num) // explosion datablock // -------------------------------------------- -datablock EffectProfile(DeployableExplosionEffect) -{ - effectname = "explosions/explosion.xpl10"; - minDistance = 10; - maxDistance = 50; -}; - -datablock AudioProfile(DeployablesExplosionSound) -{ - filename = "fx/explosions/deployables_explosion.wav"; - description = AudioExplosion3d; - preload = true; - effect = DeployableExplosionEffect; -}; - datablock ExplosionData(DeployablesExplosion) { soundProfile = DeployablesExplosionSound; @@ -590,7 +583,6 @@ datablock StaticShapeData(DeployedBeacon) : StaticShapeDamageProfile maxDamage = 0.45; disabledLevel = 0.45; destroyedLevel = 0.45; - beacon = true; targetNameTag = 'beacon'; deployedObject = true; @@ -603,7 +595,7 @@ datablock StaticShapeData(DeployedBeacon) : StaticShapeDamageProfile function DeployedBeacon::onDestroyed(%data, %obj, %prevState) { - if(%obj.isBeaconType(friend)) + if(%obj.getBeaconType() $= "friend") %bType = "MarkerBeacon"; else %bType = "TargetBeacon"; @@ -668,7 +660,7 @@ function Beacon::onUse(%data, %obj) %rotation = %rotAxis @ " " @ %intAngle; %obj.decInventory(%data, 1); - %depBeac = new ScopeAlwaysShape() { + %depBeac = new BeaconObject() { dataBlock = "DeployedBeacon"; position = VectorAdd(%terrPt, VectorScale(%terrNrm, 0.05)); rotation = %rotation; @@ -686,7 +678,7 @@ function Beacon::onUse(%data, %obj) function switchBeaconType(%beacon) { - if(%beacon.isBeaconType(friend)) + if(%beacon.getBeaconType() $= "friend") { // switch from marker beacon to target beacon if($TeamDeployedCount[%beacon.team, TargetBeacon] >= $TeamDeployableMax[TargetBeacon]) diff --git a/base/textures/lava/lavaPropMap.cs b/base/scripts/lavaPropMap.cs similarity index 68% rename from base/textures/lava/lavaPropMap.cs rename to base/scripts/lavaPropMap.cs index 038e32e..29bc495 100644 --- a/base/textures/lava/lavaPropMap.cs +++ b/base/scripts/lavaPropMap.cs @@ -6,16 +6,11 @@ addMaterialMapping("lava/ds_jet01", "environment: special/lavareflect 0.3"); addMaterialMapping("lava/ds_jet02", "environment: special/lavareflect 0.3"); //"Color: red green blue startAlpha endAlpha" -addMaterialMapping("terrain/LavaWorld.Crust", "color: 0.0 0.0 0.0 0.7 0.0"); -addMaterialMapping("terrain/LavaWorld.LavaRockHot", "color: 0.0 0.0 0.0 0.7 0.0"); -addMaterialMapping("terrain/LavaWorld.MuddyAsh", "color: 0.0 0.0 0.0 0.7 0.0"); -addMaterialMapping("terrain/LavaWorld.RockBlack", "color: 0.0 0.0 0.0 0.7 0.0"); - //Soft sound = 0 //Hard sound = 1 //Metal sound = 2 //Snow sound = 3 -addMaterialMapping("terrain/LavaWorld.Crust", "sound: 0"); -addMaterialMapping("terrain/LavaWorld.LavaRockHot", "sound: 0"); -addMaterialMapping("terrain/LavaWorld.MuddyAsh", "sound: 0"); -addMaterialMapping("terrain/LavaWorld.RockBlack", "sound: 0"); +addMaterialMapping("terrain/LavaWorld.Crust", "color: 0.0 0.0 0.0 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/LavaWorld.LavaRockHot", "color: 0.0 0.0 0.0 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/LavaWorld.MuddyAsh", "color: 0.0 0.0 0.0 0.7 0.0", "sound: 0"); +addMaterialMapping("terrain/LavaWorld.RockBlack", "color: 0.0 0.0 0.0 0.7 0.0", "sound: 0"); diff --git a/base/scripts/loadingGui.cs b/base/scripts/loadingGui.cs index 031d99a..faded35 100644 --- a/base/scripts/loadingGui.cs +++ b/base/scripts/loadingGui.cs @@ -13,12 +13,12 @@ function LoadingGui::onAdd(%this) //------------------------------------------------------------------------------ function LoadingGui::onWake(%this) { - if ( $HudHandle['shellScreen'] !$= "" ) + if ( $HudHandle[shellScreen] !$= "" ) { - alxStop($HudHandle['shellScreen']); - $HudHandle['shellScreen'] = ""; + alxStop($HudHandle[shellScreen]); + $HudHandle[shellScreen] = ""; } - $HudHandle['loadingScreen'] = alxPlay(LoadingScreenSound, 0, 0, 0); + $HudHandle[loadingScreen] = alxPlay(LoadingScreenSound, 0, 0, 0); CloseMessagePopup(); } @@ -41,7 +41,7 @@ function LoadingGui::onSleep(%this) LOAD_GameText.setText( "" ); LoadingProgress.setValue( 0 ); - alxStop($HudHandle['loadingScreen']); + alxStop($HudHandle[loadingScreen]); } //------------------------------------------------------------------------------ @@ -279,7 +279,7 @@ function handleLoadInfoMessage( %msgType, %msgString, %bitmapName, %mapName, %mi LobbyGui.objLine[%line] = ""; LobbyGui.objLineCount = 0; - if (!isDemo() && !isDemoServer()) + if (!isDemo()) %loadBmp = "gui/load_" @ %bitmapName @ ".png"; else %loadBmp = "gui/load_" @ %bitmapName @ ".bm8"; diff --git a/base/textures/lush/lushPropMap.cs b/base/scripts/lushPropMap.cs similarity index 56% rename from base/textures/lush/lushPropMap.cs rename to base/scripts/lushPropMap.cs index ca54ef7..286eebc 100644 --- a/base/textures/lush/lushPropMap.cs +++ b/base/scripts/lushPropMap.cs @@ -4,23 +4,14 @@ addMaterialMapping("lush/be_ichute01", "environment: special/chuteTexture 0.25") addMaterialMapping("lush/be_ichute02", "environment: special/chuteTexture 0.25"); //"Color: red green blue startAlpha endAlpha" -addMaterialMapping("terrain/LushWorld.DirtMossy", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.GrassDark", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.GrassLight", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.GrassMixed", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.LakeBed", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.RockLight", "color: 0.46 0.36 0.26 0.4 0.0"); -addMaterialMapping("terrain/LushWorld.RockMossy", "color: 0.46 0.36 0.26 0.4 0.0"); - //Soft sound = 0 //Hard sound = 1 //Metal sound = 2 //Snow sound = 3 -addMaterialMapping("terrain/LushWorld.DirtMossy", "sound: 0"); -addMaterialMapping("terrain/LushWorld.GrassDark", "sound: 0"); -addMaterialMapping("terrain/LushWorld.GrassLight", "sound: 0"); -addMaterialMapping("terrain/LushWorld.GrassMixed", "sound: 0"); -addMaterialMapping("terrain/LushWorld.LakeBed", "sound: 0"); -addMaterialMapping("terrain/LushWorld.RockLight", "sound: 0"); -addMaterialMapping("terrain/LushWorld.RockMossy", "sound: 0"); - +addMaterialMapping("terrain/LushWorld.DirtMossy", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.GrassDark", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.GrassLight", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.GrassMixed", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.LakeBed", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.RockLight", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); +addMaterialMapping("terrain/LushWorld.RockMossy", "color: 0.46 0.36 0.26 0.4 0.0", "sound: 0"); diff --git a/base/scripts/message.cs b/base/scripts/message.cs index f68ad05..20e151e 100644 --- a/base/scripts/message.cs +++ b/base/scripts/message.cs @@ -294,7 +294,7 @@ function chatMessageAll( %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, else { // message sender is an observer -- only send message to other observers - if(%obj.team == %sender.team) + if(%obj.team == %sender.team || %obj.isAdmin || %obj.isSuperAdmin) chatMessageClient( %obj, %sender, %sender.voiceTag, %sender.voicePitch, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 ); } } @@ -362,41 +362,24 @@ function messageAllExcept(%client, %team, %msgtype, %msgString, %a1, %a2, %a3, % } } -//##################################################### -////--------------------------------------------------------------------------- -//// Command Message -////--------------------------------------------------------------------------- -// -//function clientCmdServerCommandMessage(%msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10) -//{ -// commandMsgHud.addLine(detag(%msgString)); -//} -// -//function commandMessageClient(%client, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10) -//{ -// commandToClient(%client, 'ServerCommandMessage', %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10); -//} -// -//function commandMessageTeam(%team, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10) -//{ -// %count = ClientGroup.getCount(); -// for(%cl= 0; %cl < %count; %cl++) -// { -// %recipient = ClientGroup.getObject(%cl); -// if(%recipient.team == %team) -// commandMessageClient(%recipient, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10); -// } -//} -// -//function commandMessageTeamExcept(%client, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10) -//{ -// %team = %client.team; -// %count = ClientGroup.getCount(); -// for(%cl= 0; %cl < %count; %cl++) -// { -// %recipient = ClientGroup.getObject(%cl); -// if((%recipient.team == %team) && (%recipient != %client)) -// commandMessageClient(%recipient, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10); -// } -//} -//##################################################### +//--------------------------------------------------------------------------- +// functions to support repair messaging +//--------------------------------------------------------------------------- +function clientCmdTeamRepairMessage(%msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6) +{ + if(!$pref::ignoreTeamRepairMessages) + clientCmdServerMessage(%msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6); +} + +function teamRepairMessage(%client, %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6) +{ + %team = %client.team; + + %count = ClientGroup.getCount(); + for(%i = 0; %i < %count; %i++) + { + %recipient = ClientGroup.getObject(%cl); + if((%recipient.team == %team) && (%recipient != %client)) + commandToClient(%client, 'TeamRepairMessage', %msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6); + } +} diff --git a/base/scripts/objectiveHud.cs b/base/scripts/objectiveHud.cs index b7cef9d..7d253d2 100644 --- a/base/scripts/objectiveHud.cs +++ b/base/scripts/objectiveHud.cs @@ -25,6 +25,7 @@ function clearObjHudMSG(%msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6) function setupObjHud(%gameType) { + objectiveHud.gameType = %gameType; switch$ (%gameType) { case BountyGame: @@ -162,7 +163,7 @@ function setupObjHud(%gameType) case CTFGame: // set separators - objectiveHud.setSeparators("72 97 130"); + objectiveHud.setSeparators("75 100 133"); objectiveHud.enableHorzSeparator(); // Team names @@ -171,7 +172,7 @@ function setupObjHud(%gameType) horizSizing = "right"; vertSizing = "bottom"; position = "4 3"; - extent = "65 16"; + extent = "68 16"; visible = "1"; }; objectiveHud.teamName[2] = new GuiTextCtrl() { @@ -179,7 +180,7 @@ function setupObjHud(%gameType) horizSizing = "right"; vertSizing = "bottom"; position = "4 19"; - extent = "65 16"; + extent = "68 16"; visible = "1"; }; // Team scores @@ -187,16 +188,16 @@ function setupObjHud(%gameType) profile = "GuiTextObjGreenCenterProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "75 3"; - extent = "20 16"; + position = "78 3"; + extent = "22 16"; visible = "1"; }; objectiveHud.teamScore[2] = new GuiTextCtrl() { profile = "GuiTextObjHudCenterProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "75 19"; - extent = "20 16"; + position = "78 19"; + extent = "22 16"; visible = "1"; }; // Flag label ("FLAG") @@ -204,7 +205,7 @@ function setupObjHud(%gameType) profile = "GuiTextObjGreenCenterProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "100 3"; + position = "103 3"; extent = "30 16"; visible = "1"; text = "FLAG"; @@ -213,7 +214,7 @@ function setupObjHud(%gameType) profile = "GuiTextObjHudCenterProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "100 19"; + position = "103 19"; extent = "30 16"; visible = "1"; text = "FLAG"; @@ -223,16 +224,16 @@ function setupObjHud(%gameType) profile = "GuiTextObjGreenLeftProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "135 3"; - extent = "105 16"; + position = "138 3"; + extent = "102 16"; visible = "1"; }; objectiveHud.flagLocation[2] = new GuiTextCtrl() { profile = "GuiTextObjHudLeftProfile"; horizSizing = "right"; vertSizing = "bottom"; - position = "135 19"; - extent = "105 16"; + position = "138 19"; + extent = "102 16"; visible = "1"; }; @@ -991,13 +992,6 @@ function siegeRolesSwitched(%msgType, %msgString, %a1, %a2, %a3, %a4, %a5, %a6) //objectiveHud.objectives[%newOff].setValue("0"); } -addMessageCallback('MsgSiegeSwitchSides', siegeSwitchSides); - -function siegeSwitchSides(%msgType, %msgString, %a1, %a2) -{ - alxPlay( SiegeSwitchSides, 0, 0, 0); -} - ///////////////////////////////////////////////////////////////////////////////////////// // DnD - Hud Messages ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/base/scripts/pack.cs b/base/scripts/pack.cs index 4f8e7fa..c2ec4b3 100644 --- a/base/scripts/pack.cs +++ b/base/scripts/pack.cs @@ -1,15 +1,32 @@ //---------------------------------------------------------------------------- +datablock EffectProfile(TurretPackActivateEffect) +{ + effectname = "packs/generic_deploy"; + minDistance = 2.5; + maxDistance = 2.5; +}; + datablock AudioProfile(TurretPackActivateSound) { filename = "fx/packs/turret_place.wav"; description = AudioClose3D; preload = true; + effect = TurretPackActivateEffect; }; //---------------------------------------------------------------------------- +function Pack::onCollision(%data, %obj, %col) +{ + // Don't pick up a new pack if you have a satchel charge deployed: + if ( %col.thrownChargeId > 0 ) + return; + + ItemData::onCollision(%data, %obj, %col); +} + function Pack::onUse(%data,%obj) { if (%obj.getMountedImage($BackpackSlot) != %data.image.getId()) @@ -43,8 +60,13 @@ function Pack::onInventory(%data,%obj,%amount) %obj.mountImage(%data.image,$BackpackSlot); %obj.client.setBackpackHudItem(%data.getName(), 1); } - if(%amount == 0) - %obj.client.setBackpackHudItem(%data.getName(), 0); + if(%amount == 0 ) + { + if ( %data.getName() $= "SatchelCharge" ) + %obj.client.setBackpackHudItem( "SatchelUnarmed", 1 ); + else + %obj.client.setBackpackHudItem(%data.getName(), 0); + } ItemData::onInventory(%data,%obj,%amount); } diff --git a/base/scripts/packs/ammopack.cs b/base/scripts/packs/ammopack.cs index 3d53437..ad72064 100644 --- a/base/scripts/packs/ammopack.cs +++ b/base/scripts/packs/ammopack.cs @@ -62,7 +62,8 @@ datablock ItemData(AmmoPack) max[ConcussionGrenade] = 10; max[FlashGrenade] = 10; max[FlareGrenade] = 10; - max[Mine] = 5; + max[CameraGrenade] = 0; + max[Mine] = 5; max[RepairKit] = 1; }; diff --git a/base/scripts/packs/cloakingpack.cs b/base/scripts/packs/cloakingpack.cs index ecc14a1..20bd161 100644 --- a/base/scripts/packs/cloakingpack.cs +++ b/base/scripts/packs/cloakingpack.cs @@ -11,12 +11,19 @@ // //Only light armors may equip with this item. +datablock EffectProfile(CloakingPackActivateEffect) +{ + effectname = "packs/cloak_on"; + minDistance = 2.5; + maxDistance = 2.5; +}; datablock AudioProfile(CloakingPackActivateSound) { filename = "fx/packs/cloak_on.wav"; description = CloseLooping3d; preload = true; + effect = CloakingPackActivateEffect; }; datablock ShapeBaseImageData(CloakingPackImage) @@ -91,6 +98,8 @@ function CloakingPackImage::onActivate(%data, %obj, %slot) { messageClient(%obj.client, 'MsgCloakingPackOn', '\c2Cloaking pack on.'); %obj.setCloaked(true); + if ( !isDemo() ) + commandToClient( %obj.client, 'setCloakIconOn' ); } else { @@ -121,6 +130,8 @@ function CloakingPackImage::onDeactivate(%data, %obj, %slot) %obj.setCloaked(false); %obj.setImageTrigger(%slot, false); + if ( !isDemo() ) + commandToClient( %obj.client, 'setCloakIconOff' ); } function CloakingPack::onPickup(%this, %obj, %shape, %amount) diff --git a/base/scripts/packs/repairpack.cs b/base/scripts/packs/repairpack.cs index a290f61..24875cf 100644 --- a/base/scripts/packs/repairpack.cs +++ b/base/scripts/packs/repairpack.cs @@ -6,13 +6,28 @@ // range for the repair gun, the user is repaired. //-------------------------------------------------------------------------- -// Sounds +// Sounds & feedback effects + +datablock EffectProfile(RepairPackActivateEffect) +{ + effectname = "packs/packs.repairPackOn"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(RepairPackFireEffect) +{ + effectname = "packs/repair_use"; + minDistance = 2.5; + maxDistance = 5.0; +}; datablock AudioProfile(RepairPackActivateSound) { filename = "fx/packs/packs.repairPackOn.wav"; description = AudioClosest3d; preload = true; + effect = RepairPackActivateEffect; }; datablock AudioProfile(RepairPackFireSound) @@ -20,6 +35,7 @@ datablock AudioProfile(RepairPackFireSound) filename = "fx/packs/repair_use.wav"; description = CloseLooping3d; preload = true; + effect = RepairPackFireEffect; }; //-------------------------------------------------------------------------- @@ -205,6 +221,8 @@ function RepairPackImage::onDeactivate(%data, %obj, %slot) function RepairGunImage::onMount(%this,%obj,%slot) { %obj.setImageAmmo(%slot,true); + if ( !isDemo() ) + commandToClient( %obj.client, 'setRepairPackIconOn' ); } function RepairGunImage::onUnmount(%this,%obj,%slot) @@ -219,6 +237,8 @@ function RepairGunImage::onUnmount(%this,%obj,%slot) // "turn off" the repair pack -- player needs to hit the "pack" key to // activate the repair gun again %obj.setImageTrigger($BackpackSlot, false); + if ( !isDemo() ) + commandToClient( %obj.client, 'setRepairPackIconOff' ); } function RepairGunImage::onActivateReady(%this,%obj,%slot) @@ -263,7 +283,20 @@ function RepairGunImage::onValidate(%this,%obj,%slot) // a target in range was found %repTgt = firstWord(%scanTarg); // is the prospective target damaged? - if(%repTgt.getDamageLevel()) + if(%repTgt.notRepairable) + { + // this is an object that cant be repaired at all + // -- mission specific flag set on the object + if(!%obj.errMsgSent) + { + messageClient(%obj.client, 'MsgRepairPackIrrepairable', '\c2Target is not repairable.', %repTgt); + %obj.errMsgSent = true; + } + // if player was repairing something, stop the repairs -- we're done + if(%obj.repairing) + stopRepairing(%obj); + } + else if(%repTgt.getDamageLevel()) { // yes, it's damaged if(%repTgt != %obj.repairing) diff --git a/base/scripts/packs/satchelCharge.cs b/base/scripts/packs/satchelCharge.cs index 14158dd..f116642 100644 --- a/base/scripts/packs/satchelCharge.cs +++ b/base/scripts/packs/satchelCharge.cs @@ -7,11 +7,33 @@ //-------------------------------------------------------------------------- // Sounds +datablock EffectProfile(SatchelChargeActivateEffect) +{ + effectname = "packs/satchel_pack_activate"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(SatchelChargeExplosionEffect) +{ + effectname = "packs/satchel_pack_detonate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(SatchelChargePreExplosionEffect) +{ + effectname = "explosions/explosion.xpl03"; + minDistance = 10.0; + maxDistance = 30.0; +}; + datablock AudioProfile(SatchelChargeActivateSound) { filename = "fx/packs/satchel_pack_activate.wav"; description = AudioClose3d; preload = true; + effect = SatchelChargeActivateEffect; }; datablock AudioProfile(SatchelChargeExplosionSound) @@ -19,6 +41,7 @@ datablock AudioProfile(SatchelChargeExplosionSound) filename = "fx/packs/satchel_pack_detonate.wav"; description = AudioBIGExplosion3d; preload = true; + effect = SatchelChargeExplosionEffect; }; datablock AudioProfile(SatchelChargePreExplosionSound) @@ -26,6 +49,7 @@ datablock AudioProfile(SatchelChargePreExplosionSound) filename = "fx/explosions/explosion.xpl03.wav"; description = AudioBIGExplosion3d; preload = true; + effect = SatchelChargePreExplosionEffect; }; datablock AudioProfile(UnderwaterSatchelChargeExplosionSound) @@ -33,9 +57,9 @@ datablock AudioProfile(UnderwaterSatchelChargeExplosionSound) filename = "fx/weapons/mortar_explode_UW.wav"; description = AudioBIGExplosion3d; preload = true; + effect = SatchelChargeExplosionEffect; }; - //---------------------------------------------------------------------------- // Satchel Debris //---------------------------------------------------------------------------- @@ -121,6 +145,7 @@ datablock ParticleData(SatchelBubbleParticle) times[1] = 0.8; times[2] = 1.0; }; + datablock ParticleEmitterData(SatchelBubbleEmitter) { ejectionPeriodMS = 10; @@ -165,7 +190,6 @@ datablock ParticleData(SatchelExplosionSmoke) times[0] = 0.0; times[1] = 0.4; times[2] = 1.0; - }; datablock ParticleEmitterData(SatchelExplosionSmokeEmitter) @@ -212,7 +236,6 @@ datablock ParticleData(UnderwaterSatchelExplosionSmoke) times[0] = 0.0; times[1] = 0.2; times[2] = 1.0; - }; datablock ParticleEmitterData(UnderwaterSatchelExplosionSmokeEmitter) @@ -588,6 +611,7 @@ function initArmSatchelCharge(%satchel) function armSatchelCharge(%satchel) { %satchel.armed = true; + commandToClient( %satchel.sourceObject.client, 'setSatchelArmed' ); } function detonateSatchelCharge(%player) @@ -600,10 +624,16 @@ function detonateSatchelCharge(%player) //error("Detonating satchel charge #" @ %satchelCharge @ " for player #" @ %player); if(%satchelCharge.getDamageState() !$= Destroyed) + { %satchelCharge.setDamageState(Destroyed); - + %satchelCharge.blowup(); + } + if(isObject(%player)) %player.thrownChargeId = 0; + + // Clear the player's HUD: + %player.client.clearBackpackIcon(); } function SatchelChargeThrown::onEnterLiquid(%data, %obj, %coverage, %type) @@ -648,6 +678,7 @@ function SatchelChargeThrown::onDestroyed(%this, %object, %lastState) // than detonated. A less damaging explosion, but visually the same scale. if(%object.thwart) { + messageClient(%object.sourceObject.client, 'msgSatchelChargeDetonate', "\c2Satchel charge destroyed."); %dmgRadius = 10; %dmgMod = 0.3; %expImpulse = 1000; @@ -665,12 +696,13 @@ function SatchelChargeThrown::onDestroyed(%this, %object, %lastState) %object.blowingUp = true; RadiusExplosion(%object, %object.getPosition(), %dmgRadius, %dmgMod, %expImpulse, %object.sourceObject, %dmgType); - %object.schedule(500, "delete"); + %object.schedule(1000, "delete"); } } function SatchelChargeThrown::onCollision(%data,%obj,%col) { + // Do nothing... } function SatchelChargeThrown::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType) @@ -681,9 +713,13 @@ function SatchelChargeThrown::damageObject(%data, %targetObject, %sourceObject, if(%targetObject.damaged >= %targetObject.getDataBlock().maxDamage && %targetObject.getDamageState() !$= Destroyed) - { + { %targetObject.thwart = true; %targetObject.setDamageState(Destroyed); + %targetObject.blowup(); + + // clear the player's HUD: + %targetObject.sourceObject.client.clearBackPackIcon(); } } } diff --git a/base/scripts/packs/sensorjammerpack.cs b/base/scripts/packs/sensorjammerpack.cs index e0c122e..9e5415e 100644 --- a/base/scripts/packs/sensorjammerpack.cs +++ b/base/scripts/packs/sensorjammerpack.cs @@ -7,13 +7,19 @@ // // When not activated, the pack has no effect. // - +datablock EffectProfile(SensorJammerPackActivateEffect) +{ + effectname = "packs/cloak_on"; + minDistance = 2.5; + maxDistance = 2.5; +}; datablock AudioProfile(SensorJammerActivateSound) { filename = "fx/packs/sensorjammerpack_on.wav"; description = ClosestLooping3d; - preload = true; + preload = true; + effect = SensorJammerPackActivateEffect; }; datablock ShapeBaseImageData(SensorJammerPackImage) @@ -58,7 +64,25 @@ datablock ItemData(SensorJammerPack) computeCRC = true; }; -datablock SensorData(JammerSensorObject) +// datablock SensorData(JammerSensorObjectPassive) +// { +// // same detection info as 'PlayerObject' sensorData +// detects = true; +// detectsUsingLOS = true; +// detectsPassiveJammed = true; +// detectRadius = 2000; +// detectionPings = false; +// detectsFOVOnly = true; +// detectFOVPercent = 1.3; +// useObjectFOV = true; +// +// jams = true; +// jamsOnlyGroup = true; +// jamsUsingLOS = true; +// jamRadius = 0; +// }; + +datablock SensorData(JammerSensorObjectActive) { // same detection info as 'PlayerObject' sensorData detects = true; @@ -78,21 +102,29 @@ datablock SensorData(JammerSensorObject) function SensorJammerPackImage::onUnmount(%data, %obj, %slot) { - setTargetSensorData(%obj.client.target, PlayerSensor); - %obj.setImageTrigger(%slot, false); + setTargetSensorData(%obj.client.target, PlayerSensor); + %obj.setImageTrigger(%slot, false); } function SensorJammerPackImage::onActivate(%data, %obj, %slot) { messageClient(%obj.client, 'MsgSensorJammerPackOn', '\c2Sensor jammer pack on.'); - setTargetSensorData(%obj.client.target, JammerSensorObject); + setTargetSensorData(%obj.client.target, JammerSensorObjectActive); + if ( !isDemo() ) + commandToClient( %obj.client, 'setSenJamIconOn' ); + + %obj.setJammerFX( true ); } function SensorJammerPackImage::onDeactivate(%data, %obj, %slot) { messageClient(%obj.client, 'MsgSensorJammerPackOff', '\c2Sensor jammer pack off.'); - setTargetSensorData(%obj.client.target, PlayerSensor); %obj.setImageTrigger(%slot, false); + setTargetSensorData(%obj.client.target, PlayerSensor); + if ( !isDemo() ) + commandToClient( %obj.client, 'setSenJamIconOff' ); + + %obj.setJammerFX( false ); } function SensorJammerPack::onPickup(%this, %obj, %shape, %amount) diff --git a/base/scripts/packs/shieldpack.cs b/base/scripts/packs/shieldpack.cs index ae80f6c..6941085 100644 --- a/base/scripts/packs/shieldpack.cs +++ b/base/scripts/packs/shieldpack.cs @@ -3,11 +3,19 @@ // can be used by any armor type // while activated, absorbs damage at cost of energy +datablock EffectProfile(ShieldPackActivateEffect) +{ + effectname = "packs/shield_on"; + minDistance = 2.5; + maxDistance = 2.5; +}; + datablock AudioProfile(ShieldPackActivateSound) { filename = "fx/packs/shield_on.wav"; description = ClosestLooping3d; - preload = true; + preload = true; + effect = ShieldPackActivateEffect; }; datablock ShapeBaseImageData(ShieldPackImage) @@ -66,6 +74,8 @@ function ShieldPackImage::onActivate(%data, %obj, %slot) { messageClient(%obj.client, 'MsgShieldPackOn', '\c2Shield pack on.'); %obj.isShielded = true; + if ( !isDemo() ) + commandToClient( %obj.client, 'setShieldIconOn' ); } function ShieldPackImage::onDeactivate(%data, %obj, %slot) @@ -73,6 +83,8 @@ function ShieldPackImage::onDeactivate(%data, %obj, %slot) messageClient(%obj.client, 'MsgShieldPackOff', '\c2Shield pack off.'); %obj.setImageTrigger(%slot,false); %obj.isShielded = ""; + if ( !isDemo() ) + commandToClient( %obj.client, 'setShieldIconOff' ); } function ShieldPack::onPickup(%this, %obj, %shape, %amount) diff --git a/base/scripts/player.cs b/base/scripts/player.cs index 81b9404..a338c5e 100644 --- a/base/scripts/player.cs +++ b/base/scripts/player.cs @@ -84,35 +84,72 @@ datablock EffectProfile(CorpseLootingEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MountVehicleEffect) { effectname = "vehicles/mount_dis"; - minDistance = 20; + minDistance = 5; + maxDistance = 20; }; datablock EffectProfile(UnmountVehicleEffect) { effectname = "weapons/generic_switch"; - minDistance = 20; + minDistance = 5; + maxDistance = 20; +}; + +datablock EffectProfile(GenericPainEffect) +{ + effectname = "misc/generic_pain"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(GenericDeathEffect) +{ + effectname = "misc/generic_death"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(ImpactHeavyWaterEasyEffect) +{ + effectname = "armor/general_water_smallsplash"; + minDistance = 5; + maxDistance = 15; +}; + +datablock EffectProfile(ImpactHeavyMediumWaterEffect) +{ + effectname = "armor/general_water_medsplash"; + minDistance = 5; + maxDistance = 15; +}; + +datablock EffectProfile(ImpactHeavyWaterHardEffect) +{ + effectname = "armor/general_water_bigsplash"; + minDistance = 5; + maxDistance = 15; }; //---------------------------------------------------------------------------- - -datablock AudioProfile( DeathCrySound ) -{ - fileName = ""; - description = AudioClose3d; - preload = true; -}; - -datablock AudioProfile( PainCrySound ) -{ - fileName = ""; - description = AudioClose3d; - preload = true; -}; +//datablock AudioProfile( DeathCrySound ) +//{ +// fileName = ""; +// description = AudioClose3d; +// preload = true; +//}; +// +//datablock AudioProfile( PainCrySound ) +//{ +// fileName = ""; +// description = AudioClose3d; +// preload = true; +//}; datablock AudioProfile(ArmorJetSound) { @@ -1202,12 +1239,12 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile aiAvoidThis = true; - minLookAngle = -1.4; - maxLookAngle = 1.4; + minLookAngle = -1.5; + maxLookAngle = 1.5; maxFreelookAngle = 3.0; mass = 90; - drag = 0.3; + drag = 0.275; maxdrag = 0.4; density = 10; maxDamage = 0.66; @@ -1216,24 +1253,24 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile energyPerDamagePoint = 75.0; // shield energy required to block one point of damage rechargeRate = 0.256; - jetForce = 27.51 * 90; - underwaterJetForce = 27.51 * 90 * 2.0; + jetForce = 26.21 * 90; + underwaterJetForce = 26.21 * 90 * 1.5; underwaterVertJetFactor = 1.5; jetEnergyDrain = 0.8; - underwaterJetEnergyDrain = 0.5; + underwaterJetEnergyDrain = 0.6; minJetEnergy = 1; maxJetHorizontalPercentage = 0.8; runForce = 55.20 * 90; runEnergyDrain = 0; minRunEnergy = 0; - maxForwardSpeed = 14; + maxForwardSpeed = 15; maxBackwardSpeed = 13; maxSideSpeed = 13; - maxUnderwaterForwardSpeed = 8.4; - maxUnderwaterBackwardSpeed = 7.8; - maxUnderwaterSideSpeed = 7.8; + maxUnderwaterForwardSpeed = 11; + maxUnderwaterBackwardSpeed = 10; + maxUnderwaterSideSpeed = 10; jumpForce = 8.3 * 90; @@ -1304,7 +1341,7 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile upResistFactor = 0.3; // heat inc'ers and dec'ers - heatDecayPerSec = 1.0 / 3.0; // takes 3 seconds to clear heat sig. + heatDecayPerSec = 1.0 / 4.0; // takes 4 seconds to clear heat sig. heatIncreasePerSec = 1.0 / 3.0; // takes 3.0 seconds of constant jet to get full heat sig. footstepSplashHeight = 0.35; @@ -1379,9 +1416,6 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile max[RepairPack] = 1; max[ShieldPack] = 1; max[AmmoPack] = 1; - //max[ReflectionPack] = 1; - //max[RepulsorPack] = 1; - //max[EnvironmentPack] = 1; max[SatchelCharge] = 1; max[MortarBarrelPack] = 0; max[MissileBarrelPack] = 0; @@ -1389,23 +1423,18 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile max[PlasmaBarrelPack] = 0; max[ELFBarrelPack] = 0; max[InventoryDeployable]= 0; - //max[AmmoDeployable] = 0; max[MotionSensorDeployable] = 1; max[PulseSensorDeployable] = 1; max[TurretOutdoorDeployable] = 0; max[TurretIndoorDeployable] = 0; - //max[MineAir] = 3; - //max[MineLand] = 3; - //max[MineSticky] = 3; max[FlashGrenade] = 5; max[ConcussionGrenade] = 5; max[FlareGrenade] = 5; max[TargetingLaser] = 1; max[ELFGun] = 1; max[ShockLance] = 1; - max[CameraGrenade] = 5; + max[CameraGrenade] = 2; max[Beacon] = 3; - //max[Rock] = 1; observeParameters = "0.5 4.5 4.5"; @@ -1460,12 +1489,12 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile aiAvoidThis = true; - minLookAngle = -1.4; - maxLookAngle = 1.4; + minLookAngle = -1.5; + maxLookAngle = 1.5; maxFreelookAngle = 3.0; mass = 130; - drag = 0.4; + drag = 0.3; maxdrag = 0.5; density = 10; maxDamage = 1.1; @@ -1474,30 +1503,30 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile energyPerDamagePoint = 75.0; // shield energy required to block one point of damage rechargeRate = 0.256; - jetForce = 25.83 * 130; - underwaterJetForce = 25.83 * 130 * 2.0; + jetForce = 25.22 * 130; + underwaterJetForce = 25.22 * 130 * 1.5; underwaterVertJetFactor = 1.5; jetEnergyDrain = 1.0; - underwaterJetEnergyDrain = 0.5; + underwaterJetEnergyDrain = 0.6; minJetEnergy = 1; maxJetHorizontalPercentage = 0.8; runForce = 46 * 130; runEnergyDrain = 0; minRunEnergy = 0; - maxForwardSpeed = 11; + maxForwardSpeed = 12; maxBackwardSpeed = 10; maxSideSpeed = 10; - maxUnderwaterForwardSpeed = 6.6; - maxUnderwaterBackwardSpeed = 6; - maxUnderwaterSideSpeed = 6; + maxUnderwaterForwardSpeed = 8.5; + maxUnderwaterBackwardSpeed = 7.5; + maxUnderwaterSideSpeed = 7.5; recoverDelay = 9; recoverRunForceScale = 1.2; // heat inc'ers and dec'ers - heatDecayPerSec = 1.0 / 3.0; // takes 3 seconds to clear heat sig. + heatDecayPerSec = 1.0 / 4.0; // takes 4 seconds to clear heat sig. heatIncreasePerSec = 1.0 / 3.0; // takes 3.0 seconds of constant jet to get full heat sig. jumpForce = 8.3 * 130; @@ -1637,9 +1666,6 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile max[RepairPack] = 1; max[ShieldPack] = 1; max[AmmoPack] = 1; - //max[ReflectionPack] = 1; - //max[RepulsorPack] = 1; - //max[EnvironmentPack] = 1; max[SatchelCharge] = 1; max[MortarBarrelPack] = 1; max[MissileBarrelPack] = 1; @@ -1647,23 +1673,18 @@ datablock PlayerData(MediumMaleHumanArmor) : MediumPlayerDamageProfile max[PlasmaBarrelPack] = 1; max[ELFBarrelPack] = 1; max[InventoryDeployable]= 1; - //max[AmmoDeployable] = 1; max[MotionSensorDeployable] = 1; max[PulseSensorDeployable] = 1; max[TurretOutdoorDeployable] = 1; max[TurretIndoorDeployable] = 1; - //max[MineAir] = 3; - //max[MineLand] = 3; - //max[MineSticky] = 3; max[FlashGrenade] = 6; max[ConcussionGrenade] = 6; max[FlareGrenade] = 6; max[TargetingLaser] = 1; max[ELFGun] = 1; max[ShockLance] = 1; - max[CameraGrenade] = 6; + max[CameraGrenade] = 3; max[Beacon] = 3; - //max[Rock] = 1; observeParameters = "0.5 4.5 4.5"; @@ -1716,12 +1737,12 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile aiAvoidThis = true; - minLookAngle = -1.4; - maxLookAngle = 1.4; + minLookAngle = -1.5; + maxLookAngle = 1.5; maxFreelookAngle = 3.0; mass = 180; - drag = 0.5; + drag = 0.33; maxdrag = 0.6; density = 10; maxDamage = 1.32; @@ -1731,21 +1752,21 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile rechargeRate = 0.256; jetForce = 22.47 * 180; - underwaterJetForce = 22.47 * 180 * 2.0; + underwaterJetForce = 22.47 * 180 * 1.5; underwaterVertJetFactor = 1.5; jetEnergyDrain = 1.1; - underwaterJetEnergyDrain = 0.55; + underwaterJetEnergyDrain = 0.65; minJetEnergy = 1; maxJetHorizontalPercentage = 0.8; runForce = 40.25 * 180; runEnergyDrain = 0; minRunEnergy = 0; - maxForwardSpeed = 6.5; + maxForwardSpeed = 7; maxBackwardSpeed = 5; maxSideSpeed = 5; - maxUnderwaterForwardSpeed = 3.9; + maxUnderwaterForwardSpeed = 4.5; maxUnderwaterBackwardSpeed = 3; maxUnderwaterSideSpeed = 3; @@ -1758,7 +1779,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile jumpDelay = 0; // heat inc'ers and dec'ers - heatDecayPerSec = 1.0 / 3.0; // takes 3 seconds to clear heat sig. + heatDecayPerSec = 1.0 / 4.0; // takes 4 seconds to clear heat sig. heatIncreasePerSec = 1.0 / 3.0; // takes 3.0 seconds of constant jet to get full heat sig. // Controls over slope of runnable/jumpable surfaces @@ -1890,9 +1911,6 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile max[RepairPack] = 1; max[ShieldPack] = 1; max[AmmoPack] = 1; - //max[ReflectionPack] = 1; - //max[RepulsorPack] = 1; - //max[EnvironmentPack] = 1; max[SatchelCharge] = 1; max[MortarBarrelPack] = 1; max[MissileBarrelPack] = 1; @@ -1900,23 +1918,18 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile max[PlasmaBarrelPack] = 1; max[ELFBarrelPack] = 1; max[InventoryDeployable]= 1; - //max[AmmoDeployable] = 1; max[MotionSensorDeployable] = 1; max[PulseSensorDeployable] = 1; max[TurretOutdoorDeployable] = 1; max[TurretIndoorDeployable] = 1; - //max[MineAir] = 3; - //max[MineLand] = 3; - //max[MineSticky] = 3; max[FlashGrenade] = 8; max[ConcussionGrenade] = 8; max[FlareGrenade] = 8; max[TargetingLaser] = 1; max[ELFGun] = 1; max[ShockLance] = 1; - max[CameraGrenade] = 8; + max[CameraGrenade] = 3; max[Beacon] = 3; - //max[Rock] = 1; observeParameters = "0.5 4.5 4.5"; @@ -2101,7 +2114,11 @@ function Armor::onMount(%this,%obj,%vehicle,%node) // update the vehicle's team if((%vehicle.getTarget() != -1) && %vehicle.getDatablock().cantTeamSwitch $= "") + { setTargetSensorGroup(%vehicle.getTarget(), %obj.client.getSensorGroup()); + if( %vehicle.turretObject > 0 ) + setTargetSensorGroup(%vehicle.turretObject.getTarget(), %obj.client.getSensorGroup()); + } // Send a message to the client so they can decide if they want to change view or not: commandToClient( %obj.client, 'VehicleMount' ); diff --git a/base/scripts/projectiles.cs b/base/scripts/projectiles.cs index 276d88e..aaf7f0d 100644 --- a/base/scripts/projectiles.cs +++ b/base/scripts/projectiles.cs @@ -62,6 +62,12 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot) } } } + + if( %obj.client > 0 ) + { + %obj.setInvincibleMode(0 ,0.00); + %obj.setInvincible( false ); // fire your weapon and your invincibility goes away. + } %vehicle = 0; if(%data.usesEnergy) @@ -391,9 +397,6 @@ function ELFProjectileData::zapTarget(%data, %projectile, %target, %targeter) %target.teamDamageStateOnZap = $teamDamage; %teammates = %target.client.team == %targeter.client.team; - echo("targeter team: " @ %targeter.team ); - echo("target team: " @ %target.team ); - if( %target.teamDamageStateOnZap || !%teammates ) %target.setRechargeRate(%oldERate - %data.drainEnergy); else @@ -528,7 +531,7 @@ function RadiusExplosion(%explosionSource, %position, %radius, %damage, %impulse continue; //if ( $splashTest ) - %amount = (1.0 - ((%dist / %radius) * 0.75)) * %coverage * %damage; + %amount = (1.0 - ((%dist / %radius) * 0.88)) * %coverage * %damage; //else //%amount = (1.0 - (%dist / %radius)) * %coverage * %damage; diff --git a/base/scripts/recordings.cs b/base/scripts/recordings.cs index da91508..abd450e 100644 --- a/base/scripts/recordings.cs +++ b/base/scripts/recordings.cs @@ -1,53 +1,623 @@ function RecordingsDlg::onWake(%gui) { + %gui.fillRecordingsList(); + updateRecordingButtons(); +} + +function msToMinSec(%time) +{ + %sec = mFloor(%time / 1000); + %min = mFloor(%sec / 60); + %sec -= %min * 60; + + // pad it + if(%min < 10) + %min = "0" @ %min; + if(%sec < 10) + %sec = "0" @ %sec; + + return(%min @ ":" @ %sec); +} + +function RecordingsDlg::fillRecordingsList(%gui) +{ + // setup the ctrl + if(!%gui.initialized) + { + RecordingsDlgList.setSortColumn(0); + RecordingsDlgList.setSortIncreasing(true); + + RecordingsDlgList.addStyle(1, $ShellFont, $ShellFontSize, "80 220 200", "30 255 225", "10 60 40" ); + RecordingsDlgList.addStyle(2, $ShellFont, $ShellFontSize, "120 120 120", "120 120 120", "120 120 120" ); + + // add the columns + RecordingsDlgList.addColumn(0, "Recording", 200, 100, 300); + RecordingsDlgList.addColumn(1, "Time", 140, 60, 180, "filetime center"); + RecordingsDlgList.addColumn(2, "Length (min:sec)", 40, 40, 80, "center"); + + %gui.initialized = true; + } + RecordingsDlgList.clear(); + RecordingsDlgList.clearList(); + + // process all the recordings %search = "recordings/*.rec"; %ct = 0; + %demoVersion = getDemoVersion(); + for(%file = findFirstFile(%search); %file !$= ""; %file = findNextFile(%search)) { %fileName = fileBase(%file); - RecordingsDlgList.addRow(%ct++, %fileName); - } - RecordingsDlgList.sort(0); - if ( RecordingsDlgList.rowCount() == 0 ) - { - PR_StartDemoBtn.setActive( false ); - PR_CancelBtn.makeFirstResponder( 1 ); - } - else - { - RecordingsDlgList.setSelectedById( 1 ); - PR_StartDemoBtn.setActive( true ); - PR_StartDemoBtn.makeFirstResponder( 1 ); - } + // query the version/length of the recording + %val = getDemoVersionLength(%file); + %version = getField(%val, 0); + + // unknown version + if(%version == -1) + { + %version = "???"; + %length = "???"; + } + else + %length = msToMinSec(getField(%val, 1)); + + %fileTime = getFileModifyTime(%file); + RecordingsDlgList.addRow(%ct, %fileName TAB %fileTime TAB %length); + RecordingsDlgList.setRowStyle(%ct, (%version == %demoVersion) ? 1 : 2); + + %ct++; + } + + RecordingsDlgList.sort(0, true); + RecordingsDlgList.setSelectedRow(0); +} + +function updateRecordingButtons() +{ + %active = RecordingsDlgList.rowCount() != 0; + PR_StartDemoBtn.setActive(%active); + PR_DeleteDemoBtn.setActive(%active); + PR_RenameDemoBtn.setActive(%active); + + if(%active) + PR_StartDemoBtn.makeFirstResponder(1); + else + PR_CancelBtn.makeFirstResponder(1); +} + +//------------------------------------------------------------------------- +// functions to handle the progress bar for loading demo +function DemoLoadProgressDlg::onWake(%this) +{ + DemoLoadProgressCtrl.setValue(0.0); +} + +function demoUpdateDatablockProgress(%count, %total) +{ + DemoLoadProgressCtrl.setValue(%count / %total); +} + +//------------------------------------------------------------------------- +// sequential variables named $DemoValue[?] will be stored in the demo stream +// and accessable right after the demo has been loaded +function saveDemoSettings() +{ + $DemoValueIdx = 0; + + getState(MISC); + + // store the playergroup + getState(PLAYERLIST); + + // get the states for all the gui's of interest + getState(RETICLE); + getState(BACKPACK); + getState(WEAPON); + getState(INVENTORY); + getState(SCORE); + getState(CLOCK); + getState(CHAT); +} + +function resetGameState() +{ + $timeScale = 1; + + // reset some state + HudMessageVector.clear(); + if(isObject(PlayerListGroup)) + PlayerListGroup.delete(); + + // stop all sound + alxStopAll(); + + // clean up voting + voteHud.voting = false; + mainVoteHud.setvisible(0); + + // clear all print messages + clientCmdclearBottomPrint(); + clientCmdClearCenterPrint(); + + clientCmdResetCommandMap(); + + // clear the inventory and weapons hud + weaponsHud.reset(); + inventoryHud.reset(); + + // reset the objective hud + objectiveHud.setSeparators(""); + objectiveHud.disableHorzSeparator(); + while(objectiveHud.getCount() > 0) + objectiveHud.getObject(0).delete(); +} + +function loadDemoSettings() +{ + $DemoValueIdx = 0; + + setState(MISC); + + // restore the playergroup + setState(PLAYERLIST); + + // set the states for all the gui's of interest + setState(RETICLE); + setState(BACKPACK); + setState(WEAPON); + setState(INVENTORY); + setState(SCORE); + setState(CLOCK); + setState(CHAT); +} + +function addDemoValue(%val) +{ + // make sure variables get saved + if(%val $= "") + %val = ""; + + $DemoValue[$DemoValueIdx] = %val; + $DemoValueIdx++; +} + +function getDemoValue() +{ + %val = $DemoValue[$DemoValueIdx]; + $DemoValueIdx++; + + if(%val $= "") + %val = ""; + + return(%val); +} + +//------------------------------------------------------------------------- +// get/setState +// - strings max of 255 chars +function getState(%type) +{ + switch$(%type) + { + case MISC: + addDemoValue( $HudMode TAB $HudModeType TAB $HudModeNode TAB voteHud.voting TAB isObject(passengerKeys) TAB musicPlayer.currentTrack ); + + case PLAYERLIST: + + %count = PlayerListGroup.getCount(); + addDemoValue(%count); + for(%i = 0; %i < %count; %i++) + { + %obj = PlayerListGroup.getObject(%i); + addDemoValue( %obj.name TAB + %obj.guid TAB + %obj.clientId TAB + %obj.targetId TAB + %obj.teamId TAB + %obj.score TAB + %obj.ping TAB + %obj.packetLoss TAB + %obj.chatMuted TAB + %obj.canListen TAB + %obj.voiceEnabled TAB + %obj.isListening TAB + %obj.isBot TAB + %obj.isAdmin TAB + %obj.isSuperAdmin TAB + %obj.isSmurf ); + } + + case RETICLE: + addDemoValue( reticleHud.bitmap TAB + reticleHud.isVisible() TAB + retCenterHud.isVisible() TAB + ammoHud.isVisible() TAB + ammoHud.getValue() TAB + deploySensor.isVisible() TAB + reticleFrameHud.isVisible() ); + + case BACKPACK: + addDemoValue( backpackIcon.bitmap TAB backpackFrame.isVisible() TAB backpackText.getValue() TAB backpackText.isVisible TAB backpackFrame.pack ); + + case WEAPON: + %count = weaponsHud.getNumItems(); + %slotCount = weaponsHud.getNumSlots(); + %active = weaponsHud.getActiveItem(); + + // visible/bitmaps(3)/count/slotcount/active + addDemoValue( weaponsHud.isVisible() TAB weaponsHud.getBackgroundBitmap() TAB weaponsHud.getHighLightBitmap() TAB weaponsHud.getInfiniteBitmap() TAB %count TAB %slotCount TAB %active ); + + // images + for(%i = 0; %i < %count; %i++) + addDemoValue( $WeaponNames[%i] TAB weaponsHud.getItemBitmap(%i) ); + + // items + for(%i = 0; %i < %slotCount; %i++) + addDemoValue( weaponsHud.getSlotId(%i) TAB weaponsHud.getSlotCount(%i) ); + + case INVENTORY: + // count/active + %count = inventoryHud.getNumItems(); + %slotCount = inventoryHud.getNumSlots(); + %active = inventoryHud.getActiveItem(); + + // visible/bitmaps(3)/count/slotCount/active + addDemoValue( inventoryHud.isVisible() TAB inventoryHud.getBackgroundBitmap() TAB inventoryHud.getHighLightBitmap() TAB inventoryHud.getInfiniteBitmap() TAB %count TAB %slotCount TAB %active ); + + // images + for(%i = 0; %i < %count; %i++) + addDemoValue( inventoryHud.getItemBitmap(%i) ); + + // items + for(%i = 0; %i < %slotCount; %i++) + addDemoValue( inventoryHud.getSlotId(%i) TAB inventoryHud.getSlotCount(%i) ); + + case SCORE: + %objCount = objectiveHud.getCount(); + + // visible/gametype/numobjects + addDemoValue( objectiveHud.isVisible() TAB objectiveHud.gameType TAB %objCount ); + + // only text ctrls exist in this thing.. so just dump the strings + for(%i = 0; %i < %objCount; %i++) + addDemoValue(objectiveHud.getObject(%i).getValue()); + + case CLOCK: + addDemoValue( clockHud.isVisible() TAB clockHud.getTime() ); + + case CHAT: + + // store last 10 messages + %numLines = HudMessageVector.getNumLines(); + for(%i = (%numLines - 10); %i < %numLines; %i++) + { + if(%i < 0) + addDemoValue(""); + else + addDemoValue(HudMessageVector.getLineText(%i)); + } + } +} + +function setState(%type) +{ + switch$(%type) + { + case MISC: + %val = getDemoValue(); + $HudMode = getField(%val, 0); + $HudModeType = getField(%val, 1); + $HudModeNode = getField(%val, 2); + voteHud.voting = getField(%val, 3); + + clientCmdSetDefaultVehicleKeys(getField(%val, 4)); + clientCmdPlayMusic(getField(%val, 5)); + + ClientCmdDisplayHuds(); + + case PLAYERLIST: + new SimGroup("PlayerListGroup"); + %count = getDemoValue(); + for(%i = 0; %i < %count; %i++) + { + %val = getDemoValue(); + + %player = new ScriptObject() + { + className = "PlayerRep"; + name = getField(%val, 0); + guid = getField(%val, 1); + clientId = getField(%val, 2); + targetId = getField(%val, 3); + teamId = getField(%val, 4); + score = getField(%val, 5); + ping = getField(%val, 6); + packetLoss = getField(%val, 7); + chatMuted = getField(%val, 8); + canListen = getField(%val, 9); + voiceEnabled = getField(%val, 10); + isListening = getField(%val, 11); + isBot = getField(%val, 12); + isAdmin = getField(%val, 13); + isSuperAdmin = getField(%val, 14); + isSmurf = getField(%val, 15); + }; + + PlayerListGroup.add(%player); + $PlayerList[%player.clientId] = %player; + + lobbyUpdatePlayer(%player.clientId); + } + + case RETICLE: + %val = getDemoValue(); + reticleHud.setBitmap(getField(%val, 0)); + reticleHud.setVisible(getField(%val, 1)); + retCenterHud.setVisible(getField(%val, 2)); + ammoHud.setVisible(getField(%val, 3)); + ammoHud.setValue(getField(%val, 4)); + deploySensor.setVisible(getField(%val, 5)); + reticleFrameHud.setVisible(getField(%val, 6)); + + case BACKPACK: + %val = getDemoValue(); + backpackIcon.setBitmap(getField(%val, 0)); + backpackFrame.setVisible(getField(%val, 1)); + backpackText.setValue(getField(%val, 2)); + backpackText.setVisible(getField(%val, 3)); + backpackFrame.pack = getField(%val, 4); + + case WEAPON: + %val = getDemoValue(); + + // visible + weaponsHud.reset(); + weaponsHud.setVisible(getField(%val, 0)); + + // bitmaps + weaponsHud.setBackgroundBitmap(getField(%val, 1)); + weaponsHud.setHighLightBitmap(getField(%val, 2)); + weaponsHud.setInfiniteAmmoBitmap(getField(%val, 3)); + + // count/slotCount/active + %count = getField(%val, 4); + %slotCount = getField(%val, 5); + %active = getField(%val, 6); + + // bitmaps + for(%i = 0; %i < %count; %i++) + { + %val = getDemoValue(); + $WeaponNames[%i] = getField(%val, 0); + weaponsHud.setWeaponBitmap(%i, getField(%val, 1)); + } + + // items + for(%i = 0; %i < %slotCount; %i++) + { + %val = getDemoValue(); + weaponsHud.addWeapon(getField(%val, 0), getField(%val, 1)); + } + + // active + weaponsHud.setActiveWeapon(%active); + + case INVENTORY: + %val = getDemoValue(); + + // visible + inventoryHud.reset(); + inventoryHud.setVisible(getField(%val, 0)); + + // bitmaps + inventoryHud.setBackgroundBitmap(getField(%val, 1)); + inventoryHud.setHighLightBitmap(getField(%val, 2)); + inventoryHud.setInfiniteAmountBitmap(getField(%val, 3)); + + // count/slotCount/active + %count = getField(%val, 4); + %slotCount = getField(%val, 5); + %active = getField(%val, 6); + + // images + for(%i = 0; %i < %count; %i++) + { + %val = getDemoValue(); + inventoryHud.setInventoryBitmap(%i, %val); + } + + // items + for(%i = 0; %i < %slotCount; %i++) + { + %val = getDemoValue(); + inventoryHud.addInventory(getField(%val, 0), getField(%val, 1)); + } + + // active + inventoryHud.setActiveInventory(%active); + + case SCORE: + %val = getDemoValue(); + + objectiveHud.setVisible(getField(%val, 0)); + setupObjHud(getField(%val, 1)); + %objCount = getField(%val, 2); + + // must read in all values even if not used + for(%i = 0; %i < %objCount; %i++) + { + %val = getDemoValue(); + if(%i < objectiveHud.getCount()) + objectiveHud.getObject(%i).setValue(%val); + } + + case CLOCK: + %val = getDemoValue(); + clockHud.setVisible(getField(%val, 0)); + clockHud.setTime(getField(%val, 1)); + + case CHAT: + HudMessageVector.clear(); + for(%i = 0; %i < 10; %i++) + { + %val = getDemoValue(); + if(%val !$= "") + HudMessageVector.pushBackLine(%val); + } + } +} + +//------------------------------------------------------------------------- +function doRecordingDelete(%file) +{ + // delete it + if(deleteFile("recordings/" @ %file @ ".rec")) + { + %sel = RecordingsDlgList.getSelectedId(); + RecordingsDlgList.removeRowById(%sel); + RecordingsDlgList.setSelectedRow(0); + + updateRecordingButtons(); + } + else + messageBoxOK("Failed", "Failed to remove file '" @ %file @ "'."); +} + +function DeleteSelectedDemo() +{ + %sel = RecordingsDlgList.getSelectedId(); + %file = getField(RecordingsDlgList.getRowTextById(%sel), 0); + + messageBoxOkCancel("Delete Recording?", "Are you sure you wish to delete recording file '" @ %file @ "'?", "doRecordingDelete(\"" @ %file @ "\");"); } function StartSelectedDemo() { + // first unit is filename %sel = RecordingsDlgList.getSelectedId(); - %file = RecordingsDlgList.getRowTextById(%sel); - playDemo("recordings/" @ %file @ ".rec"); - Canvas.setContent(PlayGui); + %rowText = RecordingsDlgList.getRowTextById(%sel); + + %file = "recordings/" @ getField(%rowText, 0) @ ".rec"; + %verLen = getDemoVersionLength(%file); + + Canvas.pushDialog(DemoLoadProgressDlg); + if(playDemo(%file)) + { + // do not allow new sources to have a force feedback effect + alxEnableForceFeedback(false); + + resetGameState(); + Canvas.popDialog(DemoLoadProgressDlg); + Canvas.popDialog(RecordingsDlg); + Canvas.setContent(PlayGui); + loadDemoSettings(); + + $DemoPlaybackIndex = 5; + $DemoPlaybackLastIndex = 5; + + // setup the global action map + GlobalActionMap.bindCmd(keyboard, "escape", "", "stopDemoPlayback();"); + GlobalActionMap.bindCmd(keyboard, "tab", "", "toggleDemoPlaybackHud();"); + GlobalActionMap.bindCmd(keyboard, "space", "", "toggleDemoPause();"); + GlobalActionMap.bindCmd(keyboard, "numpadadd", "", "stepDemoPlaybackSpeed(1);"); + GlobalActionMap.bindCmd(keyboard, "numpadminus", "", "stepDemoPlaybackSpeed(-1);"); + $globalActionMapOnly = true; + + $DemoPlaybackProgress = 0; + $DemoPlaybackLength = getField(%verLen, 1); + + // playback length may be 0 if recording was not clean (just set to 1min) + if($DemoPlaybackLength == 0) + $DemoPlaybackLength = 60000; + + DemoPlayback_EndTime.setValue(msToMinSec($DemoPlaybackLength)); + + $DemoPlaybackIndex = 5; + $DemoPlaybackLastIndex = 5; + $DemoPlaybackProgress = 0; + demoPlaybackUpdate(0); + + updateDemoPlaybackStatus(); + } + else + MessageBoxOK("Playback Failed", "Demo playback failed for file '" @ %file @ "'."); + + Canvas.popDialog(DemoLoadProgressDlg); } -function LoopDemos() +function demoPlaybackComplete() { - $demoCount = 0; + alxStopAll(); - for($demoFile[$demoCount] = findFirstFile("recordings/*.rec"); $demoFile[$demoCount] !$= ""; $demoFile[$demoCount++] = findNextFile("recordings/*.rec") ) - { - } - $currentDemo = $demoCount - 1; - if($demoCount == 0) + // allow new sources to have a force feedback effect + alxEnableForceFeedback(true); + + // remove the playback dialog + if(DemoPlaybackDlg.isAwake()) + Canvas.popDialog(DemoPlaybackDlg); + + Canvas.setContent("LaunchGui"); + Canvas.pushDialog(RecordingsDlg); + + // cleanup + resetGameState(); + purgeResources(); + + // clean the globalActionMap + GlobalActionMap.unbind(keyboard, escape); + GlobalActionMap.unbind(keyboard, tab); + GlobalActionMap.unbind(keyboard, space); + GlobalActionMap.unbind(keyboard, numpadadd); + GlobalActionMap.unbind(keyboard, numpadminus); + $globalActionMapOnly = false; +} + +//------------------------------------------------------------------------- +function doDemoFileRename() +{ + // first unit is filename + %sel = RecordingsDlgList.getSelectedId(); + %file = getField(RecordingsDlgList.getRowTextById(%sel), 0); + + %newFile = DemoRenameFile_Edit.getValue(); + + if(%file $= %newFile) return; - demoPlaybackComplete(); + if(%newFile !$= "") + { + if(renameFile("recordings/" @ %file @ ".rec", "recordings/" @ %newFile @ ".rec")) + { + rebuildModPaths(); + RecordingsDlg.fillRecordingsList(); + return; + } + } + + MessageBoxOK("Rename Failed", "Failed to rename file '" @ %file @ "' to '" @ %newFile @ "'."); } +function RenameSelectedDemo() +{ + // first unit is filename + %sel = RecordingsDlgList.getSelectedId(); + %file = getField(RecordingsDlgList.getRowTextById(%sel), 0); + + DemoRenameFile_Edit.setValue(%file); + Canvas.pushDialog(DemoRenameFileDlg); +} + +//-------------------------------------------------------------------------- function beginDemoRecord() { - stopRecord(); + if(isDemo()) + return; + + // make sure that current recording stream is stopped + stopDemoRecord(); + for(%i = 0; %i < 1000; %i++) { %num = %i; @@ -61,13 +631,104 @@ function beginDemoRecord() } if(%i == 1000) return; - echo("Recording demo: "@ %file); + + $DemoFile = %file; + + addMessageHudLine( "\c4Recording to file [\c2" @ $DemoFile @ "\cr]."); + + saveDemoSettings(); startRecord(%file); + + // make sure start worked + if(!isRecordingDemo()) + { + deleteFile("recordings/" @ $DemoFile @ ".rec"); + addMessageHudLine( "\c3 *** Failed to record to file [\c2" @ $DemoFile @ "\cr]."); + $DemoFile = ""; + } } -function demoPlaybackComplete() +function stopDemoRecord() { - Canvas.setContent("LaunchGui"); - Canvas.pushDialog(RecordingsDlg); - purgeResources(); + if(isDemo()) + return; + + // make sure we are recording (and have a valid file) + if(isRecordingDemo()) + stopRecord(); +} + +function demoRecordComplete() +{ + // tell the user + if($DemoFile !$= "") + { + addMessageHudLine( "\c4Stopped recording to file [\c2" @ $DemoFile @ "\cr]."); + $DemoFile = ""; + } +} + +//------------------------------------------------------------------------- +function toggleDemoPlaybackHud() +{ + if(DemoPlaybackDlg.isAwake()) + Canvas.popDialog(DemoPlaybackDlg); + else + Canvas.pushDialog(DemoPlaybackDlg, 99); +} + +$DemoPlaybackText[0] = "Paused"; $DemoPlaybackSpeed[0] = 0; +$DemoPlaybackText[1] = "Play 1/16X"; $DemoPlaybackSpeed[1] = 0.0625; +$DemoPlaybackText[2] = "Play 1/8X"; $DemoPlaybackSpeed[2] = 0.125; +$DemoPlaybackText[3] = "Play 1/4X"; $DemoPlaybackSpeed[3] = 0.25; +$DemoPlaybackText[4] = "Play 1/2X"; $DemoPlaybackSpeed[4] = 0.5; +$DemoPlaybackText[5] = "Play 1X"; $DemoPlaybackSpeed[5] = 1; +$DemoPlaybackText[6] = "Play 2X"; $DemoPlaybackSpeed[6] = 2; +$DemoPlaybackText[7] = "Play 4X"; $DemoPlaybackSpeed[7] = 4; +$DemoPlaybackText[8] = "Play 8X"; $DemoPlaybackSpeed[8] = 8; +$DemoPlaybackText[9] = "Play 16X"; $DemoPlaybackSpeed[9] = 16; + +// called after each processTime +function demoPlaybackUpdate(%curTime) +{ + DemoPlayback_CurTime.setValue(msToMinSec(%curTime)); + $DemoPlaybackProgress = %curTime / $DemoPlaybackLength; +} + +function updateDemoPlaybackStatus() +{ + // clamp the speed + if($DemoPlaybackIndex < 0) + $DemoPlaybackIndex = 0; + + if($DemoPlaybackIndex > 9) + $DemoPlaybackIndex = 9; + + DemoPlayback_StatusText.setValue($DemoPlaybackText[$DemoPlaybackIndex]); + $timeScale = $DemoPlaybackSpeed[$DemoPlaybackIndex]; +} + +function toggleDemoPause() +{ + // save the current index for unpause + if($DemoPlaybackIndex == 0) + $DemoPlaybackIndex = $DemoPlaybackLastIndex; + else + { + $DemoPlaybackLastIndex = $DemoPlaybackIndex; + $DemoPlaybackIndex = 0; + } + + updateDemoPlaybackStatus(); +} + +function stepDemoPlaybackSpeed(%step) +{ + $DemoPlaybackIndex += %step; + updateDemoPlaybackStatus(); +} + +function DemoPlaybackDlg::onWake(%this) +{ + updateDemoPlaybackStatus(); } diff --git a/base/scripts/server.cs b/base/scripts/server.cs index 338fc05..1a330c8 100644 --- a/base/scripts/server.cs +++ b/base/scripts/server.cs @@ -12,6 +12,12 @@ function VerifyCDCheck(%func) call(%func); } +function logEcho(%msg) +{ + if($LogEchoEnabled) + echo("LOG: " @ %msg); +} + function CreateServer(%mission, %missionType) { DestroyServer(); @@ -77,6 +83,8 @@ function CreateServer(%mission, %missionType) { exec("scripts/DefaultGame.cs"); exec("scripts/SinglePlayerGame.cs"); + exec("scripts/CTFGame.cs"); + exec("scripts/HuntersGame.cs"); } $missionSequence = 0; @@ -92,11 +100,11 @@ function CreateServer(%mission, %missionType) %missionType = $HostTypeName[0]; } - if ( $HostGameType $= "Online" && $pref::Net::DisplayOnMaster !$= "Never" ) + if ( ( isDemo() && $HostGameType !$= "SinglePlayer" ) || ( $HostGameType $= "Online" && $pref::Net::DisplayOnMaster !$= "Never" ) ) schedule(0,0,startHeartbeat); // setup the bots for this server - if( $Host::BotsEnabled ) + if( !isDemo() && $Host::BotsEnabled ) initGameBots( %mission, %missionType ); // load the mission... @@ -231,6 +239,9 @@ function Disconnect() function DisconnectedCleanup() { + $CurrentMissionType = ""; + $CurrentMission = ""; + // Make sure we're not still waiting for the loading info: cancelLoadInfoCheck(); @@ -384,38 +395,73 @@ function addDemoAlias( %name ) $DemoNameCount++; } -addDemoAlias( "Amateur" ); -addDemoAlias( "Bullseye" ); -addDemoAlias( "Casualty" ); -addDemoAlias( "Dogfood" ); -addDemoAlias( "Extinct" ); -addDemoAlias( "Fodder" ); -addDemoAlias( "Grunt" ); -addDemoAlias( "Helpless" ); -addDemoAlias( "Itchy" ); -addDemoAlias( "Joker" ); -addDemoAlias( "Kibble" ); -addDemoAlias( "Learner" ); -addDemoAlias( "Meat" ); -addDemoAlias( "Newbie" ); -addDemoAlias( "Owned" ); -addDemoAlias( "Poser" ); -addDemoAlias( "Quaker" ); -addDemoAlias( "Roadkill" ); -addDemoAlias( "Skid Mark" ); -addDemoAlias( "Easy Target" ); -addDemoAlias( "Underdog" ); -addDemoAlias( "Vegetable" ); -addDemoAlias( "Weakling" ); -addDemoAlias( "Flatline" ); -addDemoAlias( "Yo-yo" ); -addDemoAlias( "Zero" ); -addDemoAlias( "Apprentice" ); -addDemoAlias( "Bonehead" ); -addDemoAlias( "Clown" ); -addDemoAlias( "Dodo" ); -addDemoAlias( "Endangered" ); -addDemoAlias( "Feeble" ); +if ( isDemo() ) +{ + addDemoAlias( "Butterfingers" ); + addDemoAlias( "Bullseye" ); + addDemoAlias( "Casualty" ); + addDemoAlias( "Dogfood" ); + addDemoAlias( "Extinct" ); + addDemoAlias( "Fodder" ); + addDemoAlias( "Grunt" ); + addDemoAlias( "Helpless" ); + addDemoAlias( "Itchy" ); + addDemoAlias( "Bait" ); + addDemoAlias( "Kibble" ); + addDemoAlias( "MonkeyBoy" ); + addDemoAlias( "Meat" ); + addDemoAlias( "Newbie" ); + addDemoAlias( "Owned" ); + addDemoAlias( "Poser" ); + addDemoAlias( "Quaker" ); + addDemoAlias( "Roadkill" ); + addDemoAlias( "SkidMark" ); + addDemoAlias( "EZTarget" ); + addDemoAlias( "Underdog" ); + addDemoAlias( "Vegetable" ); + addDemoAlias( "Weakling" ); + addDemoAlias( "Flatline" ); + addDemoAlias( "Spud" ); + addDemoAlias( "Zero" ); + addDemoAlias( "WetNose" ); + addDemoAlias( "Chowderhead" ); + addDemoAlias( "Clown" ); + addDemoAlias( "Dodo" ); + addDemoAlias( "Endangered" ); + addDemoAlias( "Feeble" ); + addDemoAlias( "Gimp" ); + addDemoAlias( "Inky" ); + addDemoAlias( "Pinky" ); + addDemoAlias( "Blinky" ); + addDemoAlias( "Clyde" ); + addDemoAlias( "Loopy" ); + addDemoAlias( "Masochist" ); + addDemoAlias( "Pancake" ); + addDemoAlias( "Rubbish" ); + addDemoAlias( "Sickly" ); + addDemoAlias( "Terminal" ); + addDemoAlias( "Ugly Duckling" ); + addDemoAlias( "Sheepish" ); + addDemoAlias( "Whiplash" ); + addDemoAlias( "KickMe" ); + addDemoAlias( "Yellow Belly" ); + addDemoAlias( "Bits" ); + addDemoAlias( "Doofus" ); + addDemoAlias( "Fluffy Bunny" ); + addDemoAlias( "Lollipop" ); + addDemoAlias( "Troglodyte" ); + addDemoAlias( "Carcass" ); + addDemoAlias( "Noodle" ); + addDemoAlias( "Spastic" ); + addDemoAlias( "Wimpy" ); + addDemoAlias( "Sweet Pea" ); + addDemoAlias( "Abused" ); + addDemoAlias( "Happy Camper" ); + addDemoAlias( "FreakShow" ); + addDemoAlias( "Bumpkin" ); + addDemoAlias( "Mad Cow" ); + addDemoAlias( "Cud" ); +} function pickDemoName() { @@ -474,7 +520,7 @@ function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice, sendLoadInfoToClient( %client ); //%client.setSimulatedNetParams(0.1, 30); - if ( isDemoServer() ) + if (isDemo() && $CurrentMissionType !$= "SinglePlayer") { %client.armor = "Light"; %client.sex = "Male"; @@ -543,6 +589,62 @@ function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice, { %client.isSmurf = false; + //make sure the name is unique - that a smurf isn't using this name... + %dup = -1; + %count = ClientGroup.getCount(); + for (%i = 0; %i < %count; %i++) + { + %test = ClientGroup.getObject( %i ); + if (%test != %client) + { + %rawName = stripChars( detag( getTaggedString( %test.name ) ), "\cp\co\c6\c7\c8\c9" ); + if (%realName $= %rawName) + { + %dup = %test; + %dupName = %rawName; + break; + } + } + } + + //see if we found a duplicate name + if (isObject(%dup)) + { + //change the name of the dup + %isUnique = false; + %suffixCount = 1; + while (!%isUnique) + { + %found = false; + %testName = %dupName @ "." @ %suffixCount; + for (%i = 0; %i < %count; %i++) + { + %cl = ClientGroup.getObject(%i); + %rawName = stripChars( detag( getTaggedString( %cl.name ) ), "\cp\co\c6\c7\c8\c9" ); + if (%rawName $= %testName) + { + %found = true; + break; + } + } + + if (%found) + %suffixCount++; + else + %isUnique = true; + } + + //%testName will now have the new unique name... + %oldName = %dupName; + %newName = %testName; + + MessageAll( 'MsgSmurfDupName', '\c2The real \"%1\" has joined the server.', %dupName ); + MessageAll( 'MsgClientNameChanged', '\c2The smurf \"%1\" is now called \"%2\".', %oldName, %newName, %dup ); + + %dup.name = addTaggedString(%newName); + setTargetName(%dup.target, %dup.name); + } + // Add the tribal tag: %tag = getField( %authInfo, 1 ); %append = getField( %authInfo, 2 ); @@ -670,15 +772,30 @@ function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice, if ( $CurrentMissionType !$= "SinglePlayer" ) { - messageClient(%client, 'MsgClientJoin', '\c2Welcome to Tribes2 %1.', - %client.name, - %client, - %client.target, - false, // isBot - %client.isAdmin, - %client.isSuperAdmin, - %client.isSmurf, - %client.sendGuid ); + if ( isDemo() ) + { + messageClient(%client, 'MsgClientJoin', '\c2Welcome to the Tribes 2 Demo!', + %client.name, + %client, + %client.target, + false, // isBot + %client.isAdmin, + %client.isSuperAdmin, + %client.isSmurf, + %client.sendGuid ); + } + else + { + messageClient(%client, 'MsgClientJoin', '\c2Welcome to Tribes2 %1.', + %client.name, + %client, + %client.target, + false, // isBot + %client.isAdmin, + %client.isSuperAdmin, + %client.isSmurf, + %client.sendGuid ); + } messageAllExcept(%client, -1, 'MsgClientJoin', '\c1%1 joined the game.', %client.name, @@ -714,17 +831,21 @@ function GameConnection::onDrop(%client, %reason) { if(isObject(Game)) Game.onClientLeaveGame(%client); - + + // make sure that tagged string of player name is not used if ( $CurrentMissionType $= "SinglePlayer" ) - messageAllExcept(%client, -1, 'MsgClientDrop', "", %client.name, %client); + messageAllExcept(%client, -1, 'MsgClientDrop', "", getTaggedString(%client.name), %client); else - messageAllExcept(%client, -1, 'MsgClientDrop', '\c1%1 has left the game.', %client.name, %client); + messageAllExcept(%client, -1, 'MsgClientDrop', '\c1%1 has left the game.', getTaggedString(%client.name), %client); if ( isObject( %client.camera ) ) %client.camera.delete(); - freeClientTarget(%client); removeTaggedString(%client.name); + removeTaggedString(%client.voiceTag); + removeTaggedString(%client.skin); + freeClientTarget(%client); + echo("CDROP: " @ %client @ " " @ %client.getAddress()); $HostGamePlayerCount--; @@ -750,6 +871,20 @@ function dismountPlayers() function loadMission( %missionName, %missionType, %firstMission ) { + //ensure the demo server is using appropriate missions + if (isDemo() && %missionType !$= "SinglePlayer") + { + if (%missionName $= "Slapdash") + %missionType = "CTF"; + else if (%missionName $= "Rasp") + %missionType = "Hunters"; + else + { + %missionName = "Slapdash"; + %missionType = "CTF"; + } + } + $LoadingMission = true; disableCyclingConnections(true); if (!$pref::NoClearConsole) @@ -762,7 +897,7 @@ function loadMission( %missionName, %missionType, %firstMission ) ClearCenterPrintAll(); ClearBottomPrintAll(); - if( $Host::TournamentMode ) + if( !isDemo() && $Host::TournamentMode ) resetTournamentPlayers(); // Send load info to all the connected clients: @@ -891,13 +1026,15 @@ function loadMissionStage2() AISystemEnabled( false ); // Set the team damage here so that the game type can override it: - if ( $Host::TournamentMode ) + if ( isDemo() ) + $TeamDamage = 0; + else if ( $Host::TournamentMode ) $TeamDamage = 1; else $TeamDamage = $Host::TeamDamageOn; //the demo version always has team damage off - if (isDemo() || isDemoServer()) + if (isDemo()) $TeamDamage = 0; Game.missionLoadDone(); @@ -909,7 +1046,7 @@ function loadMissionStage2() if(!$MatchStarted && $LaunchMode !$= "NavBuild" && $LaunchMode !$= "SpnBuild" ) { - if( $Host::TournamentMode ) + if( !isDemo() && $Host::TournamentMode ) checkTourneyMatchStart(); else if( $currentMissionType !$= "SinglePlayer" ) checkMissionStart(); @@ -1066,7 +1203,7 @@ function serverSetClientTeamState( %client ) MissionCleanup.add( %client.camera ); // we get automatic cleanup this way. %observer = false; - if( !$Host::TournamentMode ) + if( isDemo() || !$Host::TournamentMode ) { if( %client.justConnected ) { @@ -1174,6 +1311,16 @@ function clientCmdSetFirstPerson(%value) ammoHud.setVisible(false); } +function clientCmdGetFirstPerson() +{ + commandToServer('FirstPersonValue', $firstPerson); +} + +function serverCmdFirstPersonValue(%client, %firstPerson) +{ + %client.player.firstPerson = %firstPerson; +} + function clientCmdVehicleMount() { if ( $pref::toggleVehicleView ) @@ -1387,6 +1534,14 @@ function serverCmdAddBot( %client ) function serverCmdClientJoinTeam( %client, %team ) { + if( %team == -1 ) + { + if( %client.team == 1 ) + %team = 2; + else + %team = 1; + } + if ( isObject( Game ) && Game.kickClient != %client) { if(%client.team != %team) @@ -1424,7 +1579,7 @@ function serverCmdClientAddToGame( %client, %targetClient ) %targetClient.setControlObject( %targetClient.camera ); } - if($Host::TournamentMode && !$CountdownStarted) + if( !isDemo() && $Host::TournamentMode && !$CountdownStarted) { %targetClient.notReady = true; centerprint( %targetClient, "\nPress FIRE when ready.", 0, 3 ); @@ -1460,7 +1615,7 @@ function serverCmdChangePlayersTeam( %clientRequesting, %client, %team) %client.camera.getDataBlock().setMode( %client.camera, "pre-game", %client.player ); %client.setControlObject( %client.camera ); - if($Host::TournamentMode && !$CountdownStarted) + if( !isDemo() && $Host::TournamentMode && !$CountdownStarted) { %client.notReady = true; centerprint( %client, "\nPress FIRE when ready.", 0, 3 ); @@ -1473,7 +1628,7 @@ function serverCmdChangePlayersTeam( %clientRequesting, %client, %team) if(%multiTeam) { messageClient( %client, 'MsgClient', '\c1The Admin has changed your team.'); - messageAllExcept( %client, -1, 'MsgClient', '\c1The Admin forced %1 to join the %2 team.', %client.name, $teamName[%client.team]); + messageAllExcept( %client, -1, 'MsgClient', '\c1The Admin forced %1 to join the %2 team.', %client.name, game.getTeamName(%client.team) ); } else { @@ -1597,7 +1752,7 @@ function playerPickTeam( %client ) if(%numTeams > 1) { %client.camera.mode = "PickingTeam"; - schedule( 0, 0, "commandToClient", %client, 'pickTeamMenu', getTaggedString($TeamName[1]), getTaggedString($TeamName[2])); + schedule( 0, 0, "commandToClient", %client, 'pickTeamMenu', Game.getTeamName(1), Game.getTeamName(2)); } else { @@ -1612,7 +1767,7 @@ function playerPickTeam( %client ) function serverCmdPlayContentSet( %client ) { - if( $Host::TournamentMode && !$CountdownStarted && !$MatchStarted ) + if( !isDemo() && $Host::TournamentMode && !$CountdownStarted && !$MatchStarted ) playerPickTeam( %client ); } @@ -2008,34 +2163,37 @@ function resetServerDefaults() exec( "scripts/ServerDefaults.cs" ); exec( $serverprefs ); - //convert the team skin and name vars to tags... - %index = 0; - while ($Host::TeamSkin[%index] !$= "") + if ( !isDemo() ) { - $TeamSkin[%index] = addTaggedString($Host::TeamSkin[%index]); - %index++; - } + //convert the team skin and name vars to tags... + %index = 0; + while ($Host::TeamSkin[%index] !$= "") + { + $TeamSkin[%index] = addTaggedString($Host::TeamSkin[%index]); + %index++; + } - %index = 0; - while ($Host::TeamName[%index] !$= "") - { - $TeamName[%index] = addTaggedString($Host::TeamName[%index]); - %index++; - } + %index = 0; + while ($Host::TeamName[%index] !$= "") + { + $TeamName[%index] = addTaggedString($Host::TeamName[%index]); + %index++; + } - // Get the hologram names from the prefs... - %index = 1; - while ( $Host::holoName[%index] !$= "" ) - { - $holoName[%index] = $Host::holoName[%index]; - %index++; + // Get the hologram names from the prefs... + %index = 1; + while ( $Host::holoName[%index] !$= "" ) + { + $holoName[%index] = $Host::holoName[%index]; + %index++; + } } // kick all bots... removeAllBots(); // add bots back if they were there before.. - if( $Host::botsEnabled ) + if( !isDemo() && $Host::botsEnabled ) initGameBots( $Host::Map, $Host::MissionType ); // load the missions diff --git a/base/scripts/serverAudio.cs b/base/scripts/serverAudio.cs index c533572..899cd71 100644 --- a/base/scripts/serverAudio.cs +++ b/base/scripts/serverAudio.cs @@ -3,17 +3,6 @@ // Audio Descriptions // -//datablock AudioDescription(TestLooping3d) -//{ -// volume = 0.5; -// isLooping= true; -// -// is3D = true; -// minDistance= 10.0; -// MaxDistance= 640.0; -// type = $EffectAudioType; -//}; - datablock AudioDescription(ProjectileLooping3d) { volume = 1.0; @@ -112,7 +101,7 @@ datablock AudioDescription(AudioExplosion3d) }; datablock AudioDescription(AudioBomb3d) -// Regular weapon explosions +// Bomber Bombs { volume = 1.0; isLooping= false; @@ -163,17 +152,20 @@ datablock AudioEnvironment(Underwater) { useRoom = true; room = UNDERWATER; + effectVolume = 0.6; }; datablock AudioEnvironment(BigRoom) { useRoom = true; - room = CAVE; + room = AUDITORIUM; + effectVolume = 0.4; }; datablock AudioEnvironment(SmallRoom) { useRoom = true; - room = HALLWAY; + room = STONEROOM; + effectVolume = 0.4; }; diff --git a/base/scripts/serverCommanderMap.cs b/base/scripts/serverCommanderMap.cs index 1f93d48..b533632 100644 --- a/base/scripts/serverCommanderMap.cs +++ b/base/scripts/serverCommanderMap.cs @@ -225,4 +225,6 @@ function serverCmdScopeCommanderMap(%client, %scope) if(%scope) resetControlObject(%client); %client.scopeCommanderMap(%scope); + + commandToClient(%client, 'ScopeCommanderMap', %scope); } \ No newline at end of file diff --git a/base/scripts/serverDefaults.cs b/base/scripts/serverDefaults.cs index 1c168b1..1df81ba 100644 --- a/base/scripts/serverDefaults.cs +++ b/base/scripts/serverDefaults.cs @@ -9,7 +9,7 @@ $Host::teamSkin[6] = "cotp"; $Host::teamName[0] = "Unassigned"; $Host::teamName[1] = "Storm"; $Host::teamName[2] = "Inferno"; -$Host::teamName[3] = "Star Wolf"; +$Host::teamName[3] = "Starwolf"; $Host::teamName[4] = "Diamond Sword"; $Host::teamName[5] = "Blood Eagle"; $Host::teamName[6] = "Phoenix"; @@ -21,28 +21,37 @@ $Host::holoName[3] = "Starwolf"; $Host::holoName[4] = "DSword"; $Host::holoName[5] = "BloodEagle"; $Host::holoName[6] = "Harbinger"; + +// Demo-specific preferences: +if ( isDemo() ) +{ + $Host::GameName = "Tribes 2 Demo Server"; + $Host::Info = "This is a Tribes 2 Demo Server."; + $Host::Map = "SlapDash"; + $Host::MaxPlayers = 32; +} +else +{ + $Host::GameName = "Tribes 2 Server"; + $Host::Info = "This is a Tribes 2 Server."; + $Host::Map = "Katabatic"; + $Host::MaxPlayers = 64; +} $Host::AdminList = ""; // all players that will be automatically an admin upon joining server $Host::SuperAdminList = ""; // all players that will be automatically a super admin upon joining server $Host::BindAddress = ""; // set to an ip address if the server wants to specify which NIC/IP to use $Host::Port = 28000; -$Host::GameName = "Tribes 2 Server"; $Host::Password = ""; $Host::AdminPassword = ""; $Host::PureServer = 1; $Host::Dedicated = 0; $Host::MissionType = "CTF"; -if (!isDemo()) - $Host::Map = "Katabatic"; -else - $Host::Map = "SlapDash"; -$Host::MaxPlayers = 64; $Host::TimeLimit = 30; $Host::BotCount = 2; $Host::BotsEnabled = 0; $Host::MinBotDifficulty = 0.5; $Host::MaxBotDifficulty = 0.75; -$Host::Info = "This is a Tribes 2 Server."; $Host::NoSmurfs = 0; $Host::VoteTime = 30; // amount of time before votes are calculated $Host::VotePassPercent = 60; // percent needed to pass a vote @@ -56,68 +65,73 @@ $Host::FloodProtectionEnabled = 1; $Host::MaxMessageLen = 120; $Host::VoteSpread = 20; $Host::TeamDamageOn = 0; - -$MasterServerAddress = "IP:198.74.40.152:28000"; +$Host::Siege::Halftime = 20000; +$Host::CRCTextures = 1; // 0: .v12 (1.2 kbits/sec), 1: .v24 (2.4 kbits/sec), 2: .v29 (2.9kbits/sec) // 3: GSM (6.6 kbits/sec) $Audio::maxEncodingLevel = 3; $Audio::maxVoiceChannels = 2; -$Host::MapPlayerLimits["Abominable", "CnH"] = "-1 32"; +$Host::MapPlayerLimits["Abominable", "CnH"] = "-1 -1"; $Host::MapPlayerLimits["AgentsOfFortune", "TeamHunters"] = "-1 32"; +$Host::MapPlayerLimits["Alcatraz", "Siege"] = "-1 48"; $Host::MapPlayerLimits["Archipelago", "CTF"] = "16 -1"; $Host::MapPlayerLimits["AshesToAshes", "CnH"] = "16 -1"; -$Host::MapPlayerLimits["BeggarsRun", "CTF"] = "-1 16"; +$Host::MapPlayerLimits["BeggarsRun", "CTF"] = "-1 32"; +$Host::MapPlayerLimits["Caldera", "Siege"] = "-1 48"; $Host::MapPlayerLimits["CasernCavite", "Hunters"] = "-1 32"; $Host::MapPlayerLimits["CasernCavite", "DM"] = "-1 32"; -$Host::MapPlayerLimits["CasernCavite", "Bounty"] = "-1 24"; +$Host::MapPlayerLimits["CasernCavite", "Bounty"] = "-1 32"; $Host::MapPlayerLimits["Damnation", "CTF"] = "-1 32"; -$Host::MapPlayerLimits["DeathBirdsFly", "CTF"] = "32 -1"; -$Host::MapPlayerLimits["Desiccator", "CTF"] = "16 -1"; -$Host::MapPlayerLimits["DustToDust", "CTF"] = "-1 24"; +$Host::MapPlayerLimits["DeathBirdsFly", "CTF"] = "8 -1"; +$Host::MapPlayerLimits["Desiccator", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["DustToDust", "CTF"] = "-1 32"; $Host::MapPlayerLimits["DustToDust", "Hunters"] = "-1 32"; $Host::MapPlayerLimits["DustToDust", "TeamHunters"] = "-1 32"; -$Host::MapPlayerLimits["Equinox", "CnH"] = "-1 32"; +$Host::MapPlayerLimits["Equinox", "CnH"] = "-1 -1"; $Host::MapPlayerLimits["Equinox", "DM"] = "-1 32"; -$Host::MapPlayerLimits["Escalade", "Hunters"] = "16 -1"; -$Host::MapPlayerLimits["Escalade", "TeamHunters"] = "16 -1"; +$Host::MapPlayerLimits["Escalade", "Hunters"] = "8 -1"; +$Host::MapPlayerLimits["Escalade", "TeamHunters"] = "8 -1"; $Host::MapPlayerLimits["Escalade", "DM"] = "16 -1"; $Host::MapPlayerLimits["Escalade", "Bounty"] = "16 32"; $Host::MapPlayerLimits["Escalade", "Rabbit"] = "16 -1"; $Host::MapPlayerLimits["Firestorm", "CTF"] = "-1 24"; $Host::MapPlayerLimits["Firestorm", "CnH"] = "-1 24"; -$Host::MapPlayerLimits["Flashpoint", "CnH"] = "16 -1"; -$Host::MapPlayerLimits["Gehenna", "Hunters"] = "16 -1"; -$Host::MapPlayerLimits["Gehenna", "TeamHunters"] = "16 -1"; +$Host::MapPlayerLimits["Flashpoint", "CnH"] = "-1 -1"; +$Host::MapPlayerLimits["Gauntlet", "Siege"] = "-1 32"; +$Host::MapPlayerLimits["Gehenna", "Hunters"] = "-1 -1"; +$Host::MapPlayerLimits["Gehenna", "TeamHunters"] = "-1 -1"; +$Host::MapPlayerLimits["Icebound", "Siege"] = "-1 -1"; $Host::MapPlayerLimits["Insalubria", "CnH"] = "-1 32"; -$Host::MapPlayerLimits["JacobsLadder", "CnH"] = "-1 32"; -$Host::MapPlayerLimits["Katabatic", "CTF"] = "-1 24"; -$Host::MapPlayerLimits["Masada", "Siege"] = "-1 16"; -$Host::MapPlayerLimits["Minotaur", "CTF"] = "-1 24"; -$Host::MapPlayerLimits["Myrkwood", "Hunters"] = "-1 16"; -$Host::MapPlayerLimits["Myrkwood", "DM"] = "-1 16"; -$Host::MapPlayerLimits["Myrkwood", "Rabbit"] = "-1 24"; -$Host::MapPlayerLimits["Oasis", "DM"] = "-1 16"; -$Host::MapPlayerLimits["Overreach", "CnH"] = "16 -1"; -$Host::MapPlayerLimits["Quagmire", "CTF"] = "16 -1"; +$Host::MapPlayerLimits["JacobsLadder", "CnH"] = "-1 -1"; +$Host::MapPlayerLimits["Katabatic", "CTF"] = "-1 48"; +$Host::MapPlayerLimits["Masada", "Siege"] = "-1 32"; +$Host::MapPlayerLimits["Minotaur", "CTF"] = "-1 32"; +$Host::MapPlayerLimits["Myrkwood", "Hunters"] = "-1 32"; +$Host::MapPlayerLimits["Myrkwood", "DM"] = "-1 32"; +$Host::MapPlayerLimits["Myrkwood", "Rabbit"] = "-1 32"; +$Host::MapPlayerLimits["Oasis", "DM"] = "-1 32"; +$Host::MapPlayerLimits["Overreach", "CnH"] = "8 -1"; +$Host::MapPlayerLimits["Quagmire", "CTF"] = "-1 -1"; $Host::MapPlayerLimits["Rasp", "TeamHunters"] = "-1 32"; -$Host::MapPlayerLimits["Rasp", "Bounty"] = "-1 24"; +$Host::MapPlayerLimits["Rasp", "Bounty"] = "-1 32"; $Host::MapPlayerLimits["Recalescence", "CTF"] = "16 -1"; -$Host::MapPlayerLimits["Reversion", "CTF"] = "-1 32"; -$Host::MapPlayerLimits["Rimehold", "Hunters"] = "16 -1"; -$Host::MapPlayerLimits["Rimehold", "Hunters"] = "16 -1"; -$Host::MapPlayerLimits["Riverdance", "CTF"] = "8 32"; -$Host::MapPlayerLimits["Sanctuary", "CTF"] = "-1 32"; -$Host::MapPlayerLimits["Sirocco", "CnH"] = "16 -1"; -$Host::MapPlayerLimits["Slapdash", "CTF"] = "16 -1"; -$Host::MapPlayerLimits["SunDried", "DM"] = "16 -1"; -$Host::MapPlayerLimits["SunDried", "Bounty"] = "16 -1"; -$Host::MapPlayerLimits["Talus", "Bounty"] = "-1 24"; -$Host::MapPlayerLimits["ThinIce", "CTF"] = "-1 32"; -$Host::MapPlayerLimits["Tombstone", "CTF"] = "8 32"; -$Host::MapPlayerLimits["UltimaThule", "CTF"] = "-1 -1"; -$Host::MapPlayerLimits["Underhill", "DM"] = "16 -1"; -$Host::MapPlayerLimits["Underhill", "Bounty"] = "-1 24"; -$Host::MapPlayerLimits["Whiteout", "DM"] = "16 -1"; -$Host::MapPlayerLimits["Whiteout", "Bounty"] = "16 -1"; +$Host::MapPlayerLimits["Respite", "Siege"] = "-1 32"; +$Host::MapPlayerLimits["Reversion", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["Rimehold", "Hunters"] = "8 -1"; +$Host::MapPlayerLimits["Rimehold", "Hunters"] = "8 -1"; +$Host::MapPlayerLimits["Riverdance", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["Sanctuary", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["Sirocco", "CnH"] = "8 -1"; +$Host::MapPlayerLimits["Slapdash", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["SunDried", "DM"] = "8 -1"; +$Host::MapPlayerLimits["SunDried", "Bounty"] = "8 -1"; +$Host::MapPlayerLimits["Talus", "Bounty"] = "-1 32"; +$Host::MapPlayerLimits["ThinIce", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["Tombstone", "CTF"] = "-1 -1"; +$Host::MapPlayerLimits["UltimaThule", "Siege"] = "8 -1"; +$Host::MapPlayerLimits["Underhill", "DM"] = "-1 -1"; +$Host::MapPlayerLimits["Underhill", "Bounty"] = "-1 32"; +$Host::MapPlayerLimits["Whiteout", "DM"] = "8 -1"; +$Host::MapPlayerLimits["Whiteout", "Bounty"] = "8 -1"; diff --git a/base/scripts/spdialog.cs b/base/scripts/spdialog.cs index 6d14341..09b87ac 100644 --- a/base/scripts/spdialog.cs +++ b/base/scripts/spdialog.cs @@ -537,6 +537,8 @@ function createText(%who) %who.miscMsg[InBounds] = "You have returned to the mission area."; %who.miscMsg[OOBLoss] = "You were outside the mission area too long. Do you want to try again?"; %who.miscMsg[LeaveGame] = "Are you sure you want to abandon this game?"; + %who.miscMsg[noTaskListDlg] = "You have not yet been granted access to the task list dialog."; + %who.miscMsg[noInventoryHUD] = "You have not yet been granted access to the Inventory HUD."; } diff --git a/base/scripts/staticShape.cs b/base/scripts/staticShape.cs index 20c42ca..7d32a51 100644 --- a/base/scripts/staticShape.cs +++ b/base/scripts/staticShape.cs @@ -413,6 +413,278 @@ function getTerrainAngle(%point) //echo("angle is "@%angleDeg); return %angleDeg; } +function randomGrove(%organicName, %num, %radius) +{ + %minHeight = 0; + %maxHeight = 1000; + %SPACING = 1.5; //meters between center of organic and another object + + //return help info + if(%organicName $="" || !%num || !%radius) { + echo("randomOrg(, [, radius of grove desired]);"); + return; + } + + %organicIndex = -1; + for (%i = 0; %i < $NumStaticTSObjects; %i++) { + if (getWord($StaticTSObjects[%i], 1) $= %organicName) { + %organicIndex = %i; + break; + } + } + if (%organicIndex == -1) { + error("There is no static shape named" SPC %organicName); + return; + } + %shapeFileName = getWord($StaticTSObjects[%organicIndex], 2); + + %maxSlope = getWord($StaticTSObjects[%organicIndex], 3); + if (%maxSlope $= "") + %maxSlope = 40; + + %zOffset = getWord($StaticTSObjects[%organicIndex], 4); + if (%zOffset $= "") + %zOffset = 0; + + %slopeWithTerrain = getWord($StaticTSObjects[%organicIndex], 5); + if (%slopeWithTerrain $= "") + %slopeWithTerrain = false; + + %minScale = getWord($StaticTSObjects[%organicIndex], 6); + %maxScale = getWord($StaticTSObjects[%organicIndex], 7); + + //set up folders in mis file + $RandomOrganicsAdded++; //to keep track of groups + if(!isObject(RandomOrganics)) { + %randomOrgGroup = new simGroup(RandomOrganics); + MissionGroup.add(%randomOrgGroup); + } + %groupName = "Addition"@$RandomOrganicsAdded@%organicName; + %group = new simGroup(%groupName); + RandomOrganics.add(%group); + + + %ctr = LocalClientConnection.camera.getPosition(); + %areaX = getWord(%ctr, 0) - %radius; + %areaY = getWord(%ctr, 1) - %radius; + + %orgCount = %num; + while((%orgCount > 0) && (%retries < (15000 / %maxSlope))) //theoretically, a thorough number of retries + { + //find a tile + %x = (getRandom(mFloor(%areaX / 8), mFloor((%areaX + (%radius * 2)) / 8)) * 8) + 4; //tile center + %y = (getRandom(mFloor(%areaY / 8), mFloor((%areaY + (%radius * 2)) / 8)) * 8) + 4; + + %start = %x @ " " @ %y @ " 2000"; + %end = %x @ " " @ %y @ " -1"; + %ground = containerRayCast(%start, %end, $TypeMasks::TerrainObjectType, 0); + %z = getWord(%ground, 3); + + + // elevation test + if ((%z < %minHeight) || (%z > %maxHeight)) + { + echo("Broke height range rules. Readjust allowable elevations."); + %retries++; + echo("Z is " @ %z); + continue; + } + %z += %zOffset; + %position = %x @ " " @ %y @ " " @ %z; + + + // get normal from both sides of the square + %start = %x + 2 @ " " @ %y @ " 2000"; + %end = %x + 2 @ " " @ %y @ " -1"; + %hit1 = containerRayCast(%start, %end, $TypeMasks::TerrainObjectType, 0); + + %start = %x - 2 @ " " @ %y @ " 2000"; + %end = %x - 2 @ " " @ %y @ " -1"; + %hit2 = containerRayCast(%start, %end, $TypeMasks::TerrainObjectType, 0); + + %norm1 = getWord(%hit1, 4) @ " " @ getWord(%hit1, 5) @ " " @ getWord(%hit1, 6); + %norm2 = getWord(%hit2, 4) @ " " @ getWord(%hit2, 5) @ " " @ getWord(%hit2, 6); + + //if either side of tile has greater slope than allowed, move on. + %angNorm1 = getTerrainAngle(%norm1); + %angNorm2 = getTerrainAngle(%norm2); + if ((getTerrainAngle(%norm1) > %maxSlope) || (getTerrainAngle(%norm2) > %maxslope)) + { + %retries++; + continue; + } + + %terrainNormal = VectorAdd(%norm1, %norm2); + %terrainNormal = VectorNormalize(%terrainNormal); + + //search surroundings for obstacles. If obstructed, move on. + InitContainerRadiusSearch(%position, %spacing, $TypeMasks::VehicleObjectType | + $TypeMasks::MoveableObjectType | + $TypeMasks::StaticShapeObjectType | + $TypeMasks::TSStaticShapeObjectType | + $TypeMasks::ForceFieldObjectType | + $TypeMasks::TurretObjectType | + $TypeMasks::InteriorObjectType | + $TypeMasks::ItemObjectType); + %this = containerSearchNext(); + if(%this) + { + %retries++; + continue; + } + + + //rotate it + if(%slopeWithTerrain) + { + %rotAxis = vectorCross(%terrainNormal, "0 0 1"); + %rotAxis = vectorNormalize(%rotAxis); + %rotation = %rotAxis @ " " @ getTerrainAngle(%terrainNormal); + } + else %rotation = "1 0 0 0"; + %randomAngle = getRandom(360); + %zrot = MatrixCreate("0 0 0", "0 0 1 " @ %randomAngle); + %orient = MatrixCreate(%position, %rotation); + %finalXForm = MatrixMultiply(%orient, %zrot); + + + //scale it + %scaleMin = 8; //default min + %scaleMax = 14; //default max + if(%minScale) + %scaleMin = %minScale * 10; + if(%maxScale) + %scaleMax = %maxScale * 10; + %scaleInt = getRandom(%scaleMin, %scaleMax); + %scale = %scaleInt/10; + %evenScale = %scale SPC %scale SPC %scale; + + //create it + + %position = %x SPC %y SPC (%z += %zoffset); + %newOrganic = new TSStatic() { + position = %position; + rotation = %rotation; + scale = %evenScale; + shapeName = %shapeFileName; + }; + %group.add(%newOrganic); + %newOrganic.setTransform(%finalXForm); + + %orgCount--; //dec number of shapes left to place + %retries = 0; //reset retry counter + } + if (%orgCount > 0) + { + error("Unable to place all shapes, area saturated."); + error("Looking for clear area " @ (%spacing * 2) @ " meters in diameter, with a max slope of " @ %maxSlope); + } + echo("Placed " @ %num - %orgCount @ " of " @ %num); +} + + +function randomRock(%rock, %quantity, %radius, %maxElev) +{ + if (!%radius || !%quantity || !%rock) + { + echo("randomRock(, , , [maximum elevation]"); + return; + } + + if (!%maxElev) + %maxElev = 2000; + + + %rotation[0] = "0 0 1 0"; + %rotation[1] = "0.999378 -0.0145686 -0.0321219 194.406"; + %rotation[2] = "0.496802 0.867682 0.0177913 176.44"; + %rotation[3] = "0.991261 0.0933696 0.0931923 181.867"; + %rotation[4] = "0.246801 0.360329 -0.899584 92.3648"; + %rotation[5] = "1 0 0 82.59"; + %rotation[6] = "0.0546955 -0.629383 0.55201 116.103"; + + %spacing = 4.0; //check 4 meters around object for collisions before placing + %ctr = localClientConnection.camera.getPosition(); + %areaX = getWord(%ctr, 0) - %radius; + %areaY = getWord(%ctr, 1) - %radius; + + $RandomOrganicsAdded++; + if(!isObject(RandomRocks)) { + %randomOrgGroup = new simGroup(RandomRocks); + MissionGroup.add(%randomOrgGroup); + } + %groupName = "Addition"@$RandomOrganicsAdded@%rock; + %group = new simGroup(%groupName); + RandomRocks.add(%group); + + %orgCount = %quantity; + while((%orgCount > 0) && (%retries < (15000 / %maxSlope))) //theoretically, a thorough number of retries + { + //find a tile + %x = %areaX + getRandom(%radius * 2); + %y = %areaY + getRandom(%radius * 2); + + %start = %x @ " " @ %y @ " 2000"; + %end = %x @ " " @ %y @ " -1"; + %ground = containerRayCast(%start, %end, $TypeMasks::TerrainObjectType, 0); + %position = getWord(%ground, 1) @ " " @ getWord(%ground, 2) @ " " @ getWord(%ground, 3); + echo("position =*" @ %position @ "*"); + %z = getWord(%position, 2); + + + // elevation test + if (%z > %maxElev) //65 meters and above only + { + %retries++; + echo("Z is " @ %z); + continue; + } + + + //search surroundings for obstacles. If obstructed, move on. + InitContainerRadiusSearch(%position, %spacing, $TypeMasks::VehicleObjectType | + $TypeMasks::MoveableObjectType | + $TypeMasks::StaticShapeObjectType | + $TypeMasks::TSStaticShapeObjectType | + $TypeMasks::ForceFieldObjectType | + $TypeMasks::TurretObjectType | + $TypeMasks::InteriorObjectType | + $TypeMasks::ItemObjectType); + %this = containerSearchNext(); + if(%this) + { + %retries++; + continue; + } + %primaryRot = %rotation[getRandom(7)]; + + %randomAngle = mDegToRad(getRandom(360)); + %zrot = MatrixCreate("0 0 0", "0 0 1 " @ %randomAngle); + %orient = MatrixCreate(%position, %primaryRot); + + + %scale = getRandom(3); + %evenScale = %scale @ " " @ %scale @ " " @ %scale; + %newRock = new InteriorInstance() { + scale = %evenScale; + interiorFile = %rock @ ".dif"; + showTerrainInside = "0"; + }; + %group.add(%newRock); + %transfrm = MatrixMultiply(%orient, %zrot); + echo("Transform = *" @ %transfrm @ "*"); + %newRock.setTransform(%transfrm); + + %orgCount--; //dec number of shapes left to place + %retries = 0; //reset retry counter + } + if (%orgCount > 0) + { + error("Unable to place all shapes, area saturated."); + error("Looking for clear area " @ (%spacing * 2) @ " meters in diameter, with a max slope of " @ %maxSlope); + } + echo("Placed " @ %num - %orgCount @ " of " @ %num); +} //-------------------------------------------------------------------------- @@ -767,7 +1039,7 @@ function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %pos if(%data.noDamageInSiege && Game.class $= "SiegeGame") return; - if(%sourceObject) + if(%sourceObject && %targetObject.isEnabled()) { if(%sourceObject.client) { @@ -799,7 +1071,7 @@ function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %pos %attackerTeam = getVehicleAttackerTeam(%sourceObject); else %attackerTeam = %sourceObject.team; - if (isTargetFriendly(%targetObject.getTarget(), %attackerTeam)) + if ((%targetObject.getTarget() != -1) && isTargetFriendly(%targetObject.getTarget(), %attackerTeam)) { %curDamage = %targetObject.getDamageLevel(); %availableDamage = %targetObject.getDataBlock().disabledLevel - %curDamage - 0.05; @@ -841,6 +1113,7 @@ function StaticShapeData::onDamage(%this,%obj) // if object has an explosion damage radius associated with it, apply explosion damage if(%this.expDmgRadius) RadiusExplosion(%obj, %obj.getWorldBoxCenter(), %this.expDmgRadius, %this.expDamage, %this.expImpulse, %obj, $DamageType::Explosion); + %obj.setDamageLevel(%this.maxDamage); } } else @@ -861,14 +1134,14 @@ function StaticShapeData::onDamage(%this,%obj) // -------------------------------------------------------------------- // Team logos - only the logo projector should be placed in a mission -datablock StaticShapeData(StormLogo) +datablock StaticShapeData(BaseLogo) //storm logo { className = Logo; shapeFile = "teamlogo_storm.dts"; alwaysAmbient = true; }; -datablock StaticShapeData(InfernoLogo) +datablock StaticShapeData(BaseBLogo) //Inferno Logo { className = Logo; shapeFile = "teamlogo_inf.dts"; @@ -882,7 +1155,7 @@ datablock StaticShapeData(BiodermLogo) alwaysAmbient = true; }; -datablock StaticShapeData(BloodEagleLogo) +datablock StaticShapeData(BEagleLogo) { className = Logo; shapeFile = "teamlogo_be.dts"; @@ -896,14 +1169,14 @@ datablock StaticShapeData(DSwordLogo) alwaysAmbient = true; }; -datablock StaticShapeData(HarbingerLogo) +datablock StaticShapeData(COTPLogo) { className = Logo; shapeFile = "teamlogo_hb.dts"; alwaysAmbient = true; }; -datablock StaticShapeData(StarwolfLogo) +datablock StaticShapeData(SwolfLogo) { className = Logo; shapeFile = "teamlogo_sw.dts"; @@ -1015,8 +1288,8 @@ $StaticTSObjects[43] = "Stackables Crate9 stackable3s.dts"; $StaticTSObjects[44] = "Stackables Crate10 stackable4l.dts"; $StaticTSObjects[45] = "Stackables Crate11 stackable4m.dts"; $StaticTSObjects[46] = "Stackables Crate12 stackable5l.dts"; -$StaticTSObjects[47] = "VehicleWrecks ScoutWreckageShape vehicle_air_scout_wreck.dts"; -$StaticTSObjects[48] = "VehicleWrecks TankWreckageShape vehicle_land_assault_wreck.dts"; +$StaticTSObjects[47] = "Debris ScoutWreckageShape vehicle_air_scout_wreck.dts"; +$StaticTSObjects[48] = "Debris TankWreckageShape vehicle_land_assault_wreck.dts"; $StaticTSObjects[49] = "Organics DSPlant16 dorg16.dts 20 -3.0 0 0.8 1.5"; $StaticTSObjects[50] = "Organics DSPlant17 dorg17.dts 20 -3.0 1 0.8 1.5"; $StaticTSObjects[51] = "Organics DSPlant18 dorg18.dts 20 -3.0 0 0.8 1.5"; @@ -1045,12 +1318,38 @@ $StaticTSObjects[69] = "Statues HeavyMaleStatue statue_hmale.dts"; $StaticTSObjects[70] = "Statues LightFemaleStatue statue_lfemale.dts"; $StaticTSObjects[71] = "Statues LightMaleStatue statue_lmale.dts"; $StaticTSObjects[72] = "Statues Plaque statue_plaque.dts"; + +$StaticTSObjects[73] = "Debris BomberDebris1 bdb1.dts"; +$StaticTSObjects[74] = "Debris BomberDebris2 bdb2.dts"; +$StaticTSObjects[75] = "Debris BomberDebris3 bdb3.dts"; +$StaticTSObjects[76] = "Debris BomberDebris4 bdb4.dts"; +$StaticTSObjects[77] = "Debris BomberDebris5 bdb5.dts"; +$StaticTSObjects[78] = "Debris HavocDebris1 hdb1.dts"; +$StaticTSObjects[79] = "Debris HavocDebris2 hdb2.dts"; +$StaticTSObjects[80] = "Debris HavocDebris3 hdb3.dts"; +$StaticTSObjects[81] = "Debris IDebris1 idb.dts"; +$StaticTSObjects[82] = "Debris MPBDebris1 mpbdb1.dts"; +$StaticTSObjects[83] = "Debris MPBDebris2 mpbdb2.dts"; +$StaticTSObjects[84] = "Debris MPBDebris3 mpbdb3.dts"; +$StaticTSObjects[85] = "Debris MPBDebris4 mpbdb4.dts"; +$StaticTSObjects[86] = "Debris ScoutDebris1 sdb1.dts"; +$StaticTSObjects[87] = "Debris TankDebris1 tdb1.dts"; +$StaticTSObjects[88] = "Debris TankDebris2 tdb2.dts"; +$StaticTSObjects[89] = "Debris TankDebris3 tdb3.dts"; +$StaticTSObjects[90] = "Debris GraveMarker1 gravemarker1.dts"; +$StaticTSObjects[91] = "Test Test1 test1.dts"; +$StaticTSObjects[92] = "Test Test2 test2.dts"; +$StaticTSObjects[93] = "Test Test3 test3.dts"; +$StaticTSObjects[94] = "Test Test4 test4.dts"; +$StaticTSObjects[95] = "Test Test5 test5.dts"; -$NumStaticTSObjects = 73; + + +$NumStaticTSObjects = 96; function TSStatic::create(%shapeName) { - echo("Foo:" SPC %shapeName); + //echo("Foo:" SPC %shapeName); %obj = new TSStatic() { shapeName = %shapeName; @@ -1061,4 +1360,47 @@ function TSStatic::create(%shapeName) function TSStatic::damage(%this) { // prevent console error spam -} \ No newline at end of file +} + +function stripFields(%this) +{ + if(%this $= "") + %this = MissionGroup; + for (%i = 0; %i < %this.getCount(); %i++){ + %obj = %this.getObject(%i); + if (%obj.getClassName() $= SimGroup) + { + %obj.powerCount = ""; + %obj.team = ""; + stripFields(%obj); + } + else + { + %obj.threshold = ""; + %obj.team = ""; + %obj.powerCount = ""; + %obj.trigger = ""; + %obj.hidden = ""; + %obj.locked = "true"; + %obj.notReady = ""; + %obj.inUse = ""; + %obj.triggeredBy = ""; + %obj.lastDamagedBy = ""; + %obj.lastDamagedByTeam =""; + %obj.isHome = ""; + %obj.originalPosition = ""; + %obj.objectiveCompleted = ""; + %obj.number = ""; + %obj.target = ""; + %obj.lockCount = ""; + %obj.homingCount = ""; + %obj.projector = ""; + %obj.holo = ""; + %obj.waypoint = ""; + %obj.scoreValue =""; + %obj.damageTimeMS = ""; + %obj.station = ""; + %homingCount = ""; + } + } +} diff --git a/base/scripts/station.cs b/base/scripts/station.cs index d72f73f..407e869 100644 --- a/base/scripts/station.cs +++ b/base/scripts/station.cs @@ -5,18 +5,34 @@ datablock EffectProfile(StationInventoryActivateEffect) { effectname = "powered/inv_pad_on"; minDistance = 5.0; + maxDistance = 7.5; }; datablock EffectProfile(StationVehicleAcitvateEffect) { effectname = "powered/vehicle_screen_on2"; minDistance = 3.0; + maxDistance = 5.0; }; datablock EffectProfile(StationVehicleDeactivateEffect) { effectname = "powered/vehicle_screen_off"; minDistance = 3.0; + maxDistance = 5.0; +}; + +//datablock EffectProfile(MobileBaseInventoryActivateEffect) +//{ +// effectname = "misc/diagnostic_on"; +// minDistance = 3.0; +//}; + +datablock EffectProfile(StationAccessDeniedEffect) +{ + effectname = "powered/station_denied"; + minDistance = 3.0; + maxDistance = 5.0; }; datablock AudioProfile(StationInventoryActivateSound) @@ -32,6 +48,7 @@ datablock AudioProfile(MobileBaseInventoryActivateSound) filename = "fx/vehicles/mpb_inv_station.wav"; description = AudioClose3d; preload = true; + effect = StationInventoryActivateEffect; }; datablock AudioProfile(DepInvActivateSound) @@ -39,6 +56,7 @@ datablock AudioProfile(DepInvActivateSound) filename = "fx/powered/dep_inv_station.wav"; description = AudioClose3d; preload = true; + effect = StationInventoryActivateEffect; }; datablock AudioProfile(StationVehicleAcitvateSound) @@ -62,6 +80,7 @@ datablock AudioProfile(StationAccessDeniedSound) filename = "fx/powered/station_denied.wav"; description = AudioClosest3d; preload = true; + effect = StationAccessDeniedEffect; }; datablock AudioProfile(StationVehicleHumSound) @@ -156,6 +175,41 @@ datablock StaticShapeData(StationInventory) : StaticShapeDamageProfile debris = StationDebris; }; +datablock StaticShapeData(StationAmmo) : StaticShapeDamageProfile +{ + className = Station; + catagory = "Stations"; +// shapeFile = "station_ammo.dts"; + shapeFile = "station_inv_human.dts"; + maxDamage = 1.00; + destroyedLevel = 1.00; + disabledLevel = 0.70; + explosion = ShapeExplosion; + expDmgRadius = 8.0; + expDamage = 0.4; + expImpulse = 1500.0; + // don't allow this object to be damaged in non-team-based + // mission types (DM, Rabbit, Bounty, Hunters) + noIndividualDamage = true; + + dynamicType = $TypeMasks::StationObjectType; + isShielded = true; + energyPerDamagePoint = 75; + maxEnergy = 50; + rechargeRate = 0.35; + doesRepair = true; + humSound = StationInventoryHumSound; + + cmdCategory = "Support"; + cmdIcon = CMDStationIcon; + cmdMiniIconName = "commander/MiniIcons/com_inventory_grey"; + targetNameTag = 'Ammo'; + targetTypeTag = 'Station'; + + debrisShapeName = "debris_generic.dts"; + debris = StationDebris; +}; + datablock StaticShapeData(StationVehicle) : StaticShapeDamageProfile { className = Station; @@ -346,6 +400,102 @@ function StationInventory::setPlayersPosition(%data, %obj, %trigger, %colObj) return false; } +/////////////////////////////////////////////////////////////////////////////// +/// -Ammo- //////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +function StationAmmo::onAdd(%this, %obj) +{ + Parent::onAdd(%this, %obj); + + %obj.setRechargeRate(%obj.getDatablock().rechargeRate); + %trigger = new Trigger() + { + dataBlock = stationTrigger; + polyhedron = "-0.75 0.75 0.1 1.5 0.0 0.0 0.0 -1.5 0.0 0.0 0.0 2.3"; + }; + MissionCleanup.add(%trigger); + %trigger.setTransform(%obj.getTransform()); + + %trigger.station = %obj; + %trigger.mainObj = %obj; + %trigger.disableObj = %obj; + %obj.trigger = %trigger; +} + +//------------------------------------------------------------------------------- +function StationAmmo::stationReady(%data, %obj) +{ + //error("StationAmmo::stationReady"); + %obj.notReady = 1; + %obj.inUse = "Down"; + %obj.setThreadDir($ActivateThread, true); + %obj.schedule(100, "playThread", $ActivateThread, "activate1"); + %player = %obj.triggeredBy; + %energy = %player.getEnergyLevel(); + //%player.setCloaked(true); + //%player.schedule(500, "setCloaked", false); + + + if (!%player.client.isAIControlled()) + getAmmoStationLovin(%player.client); + //%data.schedule( 500, "beginPersonalInvEffect", %obj ); +} + +//------------------------------------------------------------------------------- +function StationAmmo::onEndSequence(%data, %obj, %thread) +{ + if(%thread == $ActivateThread) + { + %obj.setThreadDir($ActivateThread, false); + %obj.playThread( $ActivateThread, "activate1"); + if(%obj.inUse $= "Up") + { + %data.stationReady(%obj); + %player = %obj.triggeredBy; + if(%data.doesRepair && !%player.stationRepairing && %player.getDamageLevel() != 0) { + %oldRate = %player.getRepairRate(); + %player.setRepairRate(%oldRate + 0.00625); + %player.stationRepairing = 1; + } + } + } + //Parent::onEndSequence(%data, %obj, %thread); +} + +//------------------------------------------------------------------------------- +function StationAmmo::stationFinished(%data, %obj) +{ + //Hide the Inventory Station GUI +} + +//------------------------------------------------------------------------------- +function StationAmmo::getSound(%data, %forward) +{ + if(%forward) + return "StationInventoryActivateSound"; + else + return false; +} + +//------------------------------------------------------------------------------- +function StationAmmo::setPlayersPosition(%data, %obj, %trigger, %colObj) +{ + %vel = getWords(%colObj.getVelocity(), 0, 1) @ " 0"; + if((VectorLen(%vel) < 22) && (%obj.triggeredBy != %colObj)) + { + %pos = %trigger.position; + %colObj.setvelocity("0 0 0"); + %rot = getWords(%colObj.getTransform(),3, 6); + %colObj.setTransform(getWord(%pos,0) @ " " @ getWord(%pos,1) @ " " @ getWord(%pos,2) + 0.8 @ " " @ %rot);//center player on object + %colObj.setMoveState(true); + %colObj.schedule(1600,"setMoveState", false); + %colObj.setvelocity("0 0 0"); + return true; + } + return false; +} + //////////////////////////////////////////////////////////////////////////////// /// -Vehicle- ////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// @@ -398,7 +548,11 @@ function StationVehicle::stationReady(%data, %obj) function StationVehicle::stationFinished(%data, %obj) { //Hide the Vehicle Station GUI - commandToClient(%obj.triggeredBy.client, 'StationVehicleHideHud'); + if(!%obj.triggeredBy.isMounted()) + commandToClient(%obj.triggeredBy.client, 'StationVehicleHideHud'); + else + commandToClient(%obj.triggeredBy.client, 'StationVehicleHideJustHud'); + } /// -Vehicle- ////////////////////////////////////////////////////////////////// @@ -480,7 +634,6 @@ function StationVehiclePad::onAdd(%this, %obj) if(%obj.mobileBaseVehicle !$= "Removed") { %sv.vehicle[mobileBasevehicle] = true; -// createTeleporter(%sv.getDataBlock(), %sv); } if(%obj.scoutFlyer !$= "Removed") %sv.vehicle[scoutFlyer] = true; @@ -645,8 +798,8 @@ function stationTrigger::onEnterTrigger(%data, %obj, %colObj) //verify station.team is team associated and isn't on player's team if((%obj.mainObj.team != %colObj.client.team) && (%obj.mainObj.team != 0)) { - %obj.station.playAudio(2, StationAccessDeniedSound); - messageClient(%colObj.client, 'msgStationDenied', '\c2Access Denied -- Wrong team.'); + //%obj.station.playAudio(2, StationAccessDeniedSound); + messageClient(%colObj.client, 'msgStationDenied', '\c2Access Denied -- Wrong team.~wfx/powered/station_denied.wav'); } else if(%obj.disableObj.isDisabled()) { @@ -725,35 +878,32 @@ function stationTrigger::onLeaveTrigger(%data, %obj, %colObj) //////////////////////////////////////////////////////////////////////////////// function Station::stationTriggered(%data, %obj, %isTriggered) { - if(%data.teleporter $= "") - { - if(%isTriggered) + + + if(%isTriggered) + { + %obj.setThreadDir($ActivateThread, TRUE); + %obj.playThread($ActivateThread,"activate"); + %obj.playAudio($ActivateSound, %data.getSound(true)); + %obj.inUse = "Up"; + } + else + { + if(%obj.getDataBlock().getName() !$= StationVehicle) { - %obj.setThreadDir($ActivateThread, TRUE); - %obj.playThread($ActivateThread,"activate"); - %obj.playAudio($ActivateSound, %data.getSound(true)); - %obj.inUse = "Up"; + %obj.stopThread($ActivateThread); + if(%obj.getObjectMount()) + %obj.getObjectMount().stopThread($ActivateThread); + %obj.inUse = "Down"; } else { - if(%obj.getDataBlock().getName() !$= StationVehicle) - { - %obj.stopThread($ActivateThread); - if(%obj.getObjectMount()) - %obj.getObjectMount().stopThread($ActivateThread); - %obj.inUse = "Down"; - } - else - { - %obj.setThreadDir($ActivateThread, FALSE); - %obj.playThread($ActivateThread,"activate"); - %obj.playAudio($ActivateSound, %data.getSound(false)); - %obj.inUse = "Down"; - } - } + %obj.setThreadDir($ActivateThread, FALSE); + %obj.playThread($ActivateThread,"activate"); + %obj.playAudio($ActivateSound, %data.getSound(false)); + %obj.inUse = "Down"; + } } - else - %data.tryTeleport(%obj); } ////-Station-/////////////////////////////////////////////////////////////////// @@ -938,332 +1088,3 @@ function DeployedStationInventory::getSound(%data, %forward) return false; } - -//////////////////////////////////////////////////////////////////////////////// -/// -Mobile Base Teleporter DATA- ////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - -datablock AudioProfile(StationTeleportAcitvateSound) -{ - filename = "fx/powered/vehicle_screen_on2.wav"; - description = AudioClosest3d; - preload = true; - effect = StationVehicleAcitvateEffect; -}; - -datablock AudioProfile(StationTeleportHumSound) -{ - filename = "fx/powered/station_hum.wav"; - description = CloseLooping3d; - preload = true; -}; - -datablock AudioProfile(StationTeleportDeactivateSound) -{ - filename = "fx/powered/vehicle_screen_off.wav"; - description = AudioClose3d; - preload = true; - effect = StationVehicleDeactivateEffect; -}; - -datablock AudioProfile(TeleportSound) -{ - filename = "fx/powered/vehicle_screen_on2.wav"; - description = AudioClosest3d; - preload = true; - effect = StationVehicleAcitvateEffect; -}; - -datablock AudioProfile(UnTeleportSound) -{ - filename = "fx/powered/vehicle_screen_off.wav"; - description = AudioClose3d; - preload = true; - effect = StationVehicleDeactivateEffect; -}; - -datablock StaticShapeData(MPBTeleporter) : StaticShapeDamageProfile -{ - className = Station; - catagory = "Stations"; - shapeFile = "station_teleport.dts"; - maxDamage = 1.20; - destroyedLevel = 1.20; - disabledLevel = 0.84; - explosion = ShapeExplosion; - expDmgRadius = 10.0; - expDamage = 0.4; - expImpulse = 1500.0; - dynamicType = $TypeMasks::StationObjectType; - isShielded = true; - energyPerDamagePoint = 33; - maxEnergy = 250; - rechargeRate = 0.31; - humSound = StationTeleportHumSound; - // don't let these be damaged in Siege missions - noDamageInSiege = true; - - cmdCategory = "Support"; - cmdIcon = CMDVehicleStationIcon; - cmdMiniIconName = "commander/MiniIcons/com_vehicle_pad_inventory"; - targetTypeTag = 'Teleport Station'; - teleporter = 1; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// -Mobile Base Teleport- ///////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - -/// -Mobile Base- ////////////////////////////////////////////////////////////// -//Function -- onAdd (%this, %obj) -// %this = Object data block -// %obj = Object being added -//Decription -- Called when the object is added to the mission -//////////////////////////////////////////////////////////////////////////////// -function MPBTeleporter::onAdd(%this, %obj) -{ - Parent::onAdd(%this, %obj); -} - -function MPBTeleporter::createTrigger(%this, %obj) -{ -// createTarget(%obj, 'Inventory Station', "", "", 'Station', 0, 0); - - %obj.setRechargeRate(%obj.getDatablock().rechargeRate); - %trigger = new Trigger() - { - dataBlock = stationTrigger; - polyhedron = "-0.75 0.75 0.1 1.5 0.0 0.0 0.0 -1.5 0.0 0.0 0.0 2.3"; - }; - MissionCleanup.add(%trigger); - %trigger.setTransform(%obj.getTransform()); - - %trigger.station = %obj; - %trigger.mainObj = %obj.vStation; - %trigger.disableObj = %obj; - - %obj.trigger = %trigger; -} - -/// -Mobile Base- ////////////////////////////////////////////////////////////// -//Function -- stationReady(%data, %obj) -// %data = Station Data Block -// %obj = Station Object -//Decription -- Called when station has been triggered and animation is -// completed -//////////////////////////////////////////////////////////////////////////////// -function MPBTeleporter::stationReady(%data, %obj) -{ - //Display the Inventory Station GUI here - %obj.notReady = 1; - %obj.inUse = "Down"; - %obj.schedule(200,"playThread",$ActivateThread,"activate1"); - %obj.getObjectMount().playThread($ActivateThread,"Activate"); - %player = %obj.triggeredBy; - %energy = %player.getEnergyLevel(); - %player.setCloaked(true); - %player.schedule(900, "setCloaked", false); - if (!%player.client.isAIControlled()) - buyFavorites(%player.client); - - %player.setEnergyLevel(%energy); -} - -/// -Mobile Base- ////////////////////////////////////////////////////////////// -//Function -- stationFinished(%data, %obj) -// %data = Station Data Block -// %obj = Station Object -//Decription -- Called when player has left the station -//////////////////////////////////////////////////////////////////////////////// -function MPBTeleporter::stationFinished(%data, %obj) -{ - //Hide the Inventory Station GUI -} - -/// -Mobile Base- ////////////////////////////////////////////////////////////// -//Function -- getSound(%data, %forward) -// %data = Station Data Block -// %forward = direction the animation is playing -//Decription -- This sound will be played at the same time as the activate -// animation. -//////////////////////////////////////////////////////////////////////////////// -function MPBTeleporter::getSound(%data, %forward) -{ - if(%forward) - return "MobileBaseInventoryActivateSound"; - else - return false; -} - -/// -Mobile Base- ////////////////////////////////////////////////////////////// -//Function -- setPlayerPosition(%data, %obj, %trigger, %colObj) -// %data = Station Data Block -// %obj = Station Object -// %trigger = Stations trigger -// %colObj = Object that is at the station -//Decription -- Called when player enters the trigger. Used to set the player -// in the center of the station. -//////////////////////////////////////////////////////////////////////////////// -function MPBTeleporter::setPlayersPosition(%data, %obj, %trigger, %colObj) -{ - %vel = getWords(%colObj.getVelocity(), 0, 1) @ " 0"; - if((VectorLen(%vel) < 22) && (%obj.triggeredBy != %colObj)) - { - %pos = %trigger.position; - %colObj.setvelocity("0 0 0"); - %rot = getWords(%colObj.getTransform(),3, 6); - %colObj.setTransform(getWord(%pos,0) @ " " @ getWord(%pos,1) @ " " @ getWord(%pos,2)+0.8 @ " " @ %rot);//center player on object - %colObj.setvelocity("0 0 0"); - return true; - } - return false; -} - -function MPBTeleporter::tryTeleport(%data, %obj) -{ - if(isObject(%obj.MPB) && %obj.MPB.fullyDeployed && %obj.triggeredBy !$= "") - { - %trans = %obj.MPB.getTransform(); - %vX = getWord(%trans, 0); - %vY = getWord(%trans, 1); - %vZ = getWord(%trans, 2); - %rot= getWords(%trans, 3,6); - - %obj.triggeredBy.teleporting = 1; - %obj.triggeredBy.startFade( 1000, 0, true ); - %obj.triggeredBy.playAudio($PlaySound, TeleportSound); - %obj.triggeredBy.setMoveState(true); - %data.schedule(4500,"teleportingDone", %obj.triggeredBy); - - %data.schedule(2000, "teleportout", %obj, %obj.triggeredBy, %vX @ " " @ %vY @ " " @ %vZ + 3 @ " " @ %rot); - - } - else if(%obj.triggeredBy !$= "") - MessageClient(%obj.triggeredBy.client, "", 'MPB is not deployed.'); -} - - -function MPBTeleporter::onEndSequence(%data, %obj, %thread) -{ -} - -function MPBTeleporter::teleportOut(%data, %obj, %player, %trans) -{ - if(isObject(%obj.MPB)) - { - %index = -1; - for(%x=0; %x < %obj.MPB.spawnPosCount; %x++) - { - %index = mFloor(getRandom() * %obj.MPB.spawnPosCount); - - InitContainerRadiusSearch(%MPB.spawnPos[%index], 2, $TypeMasks::MoveableObjectType); - if(ContainerSearchNext() == 0) - break; - else - %index = -1; - } - - if(%index >= 0) - %player.setTransform(%obj.MPB.spawnPos[%index] @ " " @ getWords(%obj.MPB.getTransform(), 3, 6)); - else - { - messageClient(%player.client, "", 'No Valid teleporting positions.'); - %player.teleporting = 0; - } - } - else - { - messageClient(%player.client, "", 'No Valid teleporting positions because MPB was destroyed'); - %player.teleporting = 0; - } - %data.schedule(1000, "teleportIn", %player); -} - -function MPBTeleporter::teleportIn(%data, %player, %trans) -{ - %player.startFade(1000, 0, false ); - %player.playAudio($PlaySound, UnTeleportSound); -} - -function MPBTeleporter::teleportingDone(%data, %player) -{ - %player.setMoveState(false); - %player.teleporting = 0; - %player.station = ""; - if(%player.getMountedImage($WeaponSlot) == 0) - { - if(%player.inv[%player.lastWeapon]) - %player.use(%player.lastWeapon); - - if(%player.getMountedImage($WeaponSlot) == 0) - %player.selectWeaponSlot( 0 ); - } -} - -for(%y = -1; %y < 1; %y += 0.25) -{ - %xCount=0; - for(%x = -1; %x < 1; %x += 0.25) - { - $MPBSpawnPos[(%yCount * 8) + %xCount] = %x @ " " @ %y; - %xCount++; - } - %yCount++; -} - -function checkSpawnPos(%MPB, %radius) -{ - %count = -1; - for(%x = 0; %x < 64; %x++) - { - %pPos = getWords(%MPB.getTransform(), 0, 2); - %pPosX = getWord(%pPos, 0); - %pPosY = getWord(%pPos, 1); - %pPosZ = getWord(%pPos, 2); - - %posX = %pPosX + ( getWord($MPBSpawnPos[%x],0) * %radius); - %posY = %pPosY + (getWord($MPBSpawnPos[%x],1) * %radius); - - %terrHeight = getTerrainHeight(%posX @ " " @ %posY); - - if(mAbs(%terrHeight - %pPosZ) < %radius ) - { - %mask = $TypeMasks::VehicleObjectType | $TypeMasks::MoveableObjectType | - $TypeMasks::StaticShapeObjectType | $TypeMasks::StaticTSObjectType | - $TypeMasks::ForceFieldObjectType | $TypeMasks::ItemObjectType | - $TypeMasks::PlayerObjectType | $TypeMasks::TurretObjectType | - $TypeMasks::InteriorObjectType; - - InitContainerRadiusSearch(%posX @ " " @ %posY @ " " @ %terrHeight, 2, %mask); - if(ContainerSearchNext() == 0) - %MPB.spawnPos[%count++] = %posX @ " " @ %posY @ " " @ %terrHeight; - } - } - %MPB.spawnPosCount = %count; -} - -function createTeleporter(%data, %obj) -{ - %Teleporter = new StaticShape() { - scale = "1 1 1"; - dataBlock = "MPBTeleporter"; - lockCount = "0"; - homingCount = "0"; - team = %obj.team; - }; - %obj.teleporter = %Teleporter; - %Teleporter.vStation = %obj.pad; - MissionCleanup.add(%Teleporter); - - %trans = %obj.getTransform(); - %vSPos = getWords(%trans,0,2); - %vRot = getWords(%trans,3,5); - %vAngle = getWord(%trans,6); - %matrix = VectorOrthoBasis(%vRot @ " " @ %vAngle + 0.36); - %yRot = getWords(%matrix, 3, 5); - %pos = vectorAdd(%vSPos, vectorScale(%yRot, -31.5)); - - %Teleporter.setTransform(%pos @ " " @ %vRot @ " " @ %vAngle); - %Teleporter.getDataBlock().createTrigger(%Teleporter); -} - diff --git a/base/scripts/targetManager.cs b/base/scripts/targetManager.cs index 3d5654d..855d1fe 100644 --- a/base/scripts/targetManager.cs +++ b/base/scripts/targetManager.cs @@ -2,9 +2,6 @@ // helper function for creating targets function createTarget(%obj, %nameTag, %skinTag, %voiceTag, %typeTag, %sensorGroup, %voicePitch) { - if(%obj.nameTag !$= "") - %nameTag = addTaggedString(%obj.nameTag); - if (%voicePitch $= "" || %voicePitch == 0) %voicePitch = 1.0; %data = (%obj.getType() & $TypeMasks::ShapeBaseObjectType) ? %obj.getDataBlock() : 0; diff --git a/base/scripts/turret.cs b/base/scripts/turret.cs index 3212218..5eb1123 100644 --- a/base/scripts/turret.cs +++ b/base/scripts/turret.cs @@ -1,3 +1,20 @@ +// sounds and effects +/////////////////////// +datablock EffectProfile(DeployableExplosionEffect) +{ + effectname = "explosions/explosion.xpl10"; + minDistance = 10; + maxDistance = 50; +}; + +datablock AudioProfile(DeployablesExplosionSound) +{ + filename = "fx/explosions/deployables_explosion.wav"; + description = AudioExplosion3d; + preload = true; + effect = DeployableExplosionEffect; +}; + //-------------------------------------------------------------------------- // Shockwave //-------------------------------------------------------------------------- @@ -147,7 +164,7 @@ datablock TurretData(TurretBaseLarge) : TurretDamageProfile disabledLevel = 1.35; explosion = TurretExplosion; expDmgRadius = 15.0; - expDamage = 0.7; + expDamage = 0.66; expImpulse = 2000.0; repairRate = 0; emap = true; @@ -276,7 +293,9 @@ function checkTurretMount(%data, %obj, %slot) %potTurret = ContainerRayCast(%obj.getEyeTransform(), %srchEnd, $TypeMasks::TurretObjectType); if(%potTurret != 0) { - if(%potTurret.getDatablock().getName() $= "TurretBaseLarge") + %otherMountObj = "foo"; + + if(%potTurret.getDatablock().getName() $= "TurretBaseLarge" || %potTurret.getDatablock().getName() $= %otherMountObj) { // found a turret base, what team is it on? if(%potTurret.team == %obj.client.team) diff --git a/base/scripts/turrets/ELFBarrelLarge.cs b/base/scripts/turrets/ELFBarrelLarge.cs index 78c2de7..0b62042 100644 --- a/base/scripts/turrets/ELFBarrelLarge.cs +++ b/base/scripts/turrets/ELFBarrelLarge.cs @@ -5,12 +5,26 @@ //-------------------------------------------------------------------------- // Sounds //-------------------------------------------------------------------------- +datablock EffectProfile(EBLSwitchEffect) +{ + effectname = "powered/turret_light_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(EBLFireEffect) +{ + effectname = "weapons/ELF_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; datablock AudioProfile(EBLSwitchSound) { filename = "fx/powered/turret_light_activate.wav"; description = AudioClose3d; preload = true; + effect = EBLSwitchEffect; }; datablock AudioProfile(EBLFireSound) @@ -18,6 +32,7 @@ datablock AudioProfile(EBLFireSound) filename = "fx/weapons/ELF_fire.wav"; description = AudioDefaultLooping3d; preload = true; + effect = EBLFireEffect; }; //-------------------------------------------------------------------------- diff --git a/base/scripts/turrets/aaBarrelLarge.cs b/base/scripts/turrets/aaBarrelLarge.cs index f43bf06..78bb330 100644 --- a/base/scripts/turrets/aaBarrelLarge.cs +++ b/base/scripts/turrets/aaBarrelLarge.cs @@ -3,13 +3,29 @@ //-------------------------------------- //-------------------------------------------------------------------------- -// Sounds +// Sounds and feedback effects //-------------------------------------- + +datablock EffectProfile(AASwitchEffect) +{ + effectname = "powered/turret_light_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(AAFireEffect) +{ + effectname = "powered/turret_aa_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; + datablock AudioProfile(AASwitchSound) { filename = "fx/powered/turret_aa_activate.wav"; description = AudioClose3d; preload = true; + effect = AASwitchEffect; }; datablock AudioProfile(AAFireSound) @@ -17,10 +33,9 @@ datablock AudioProfile(AAFireSound) filename = "fx/powered/turret_aa_fire.wav"; description = AudioDefault3d; preload = true; + effect = AAFireEffect; }; - - //-------------------------------------------------------------------------- // Particle effects //-------------------------------------- @@ -164,7 +179,7 @@ datablock TurretImageData(AABarrelLarge) seekRadius = 200; maxSeekAngle = 6; seekTime = 1.0; - minSeekHeat = 0.7; + minSeekHeat = 0.6; useTargetAudio = false; // Turret parameters diff --git a/base/scripts/turrets/indoorDeployableBarrel.cs b/base/scripts/turrets/indoorDeployableBarrel.cs index ac1e119..8d0bb52 100644 --- a/base/scripts/turrets/indoorDeployableBarrel.cs +++ b/base/scripts/turrets/indoorDeployableBarrel.cs @@ -1,8 +1,23 @@ +datablock EffectProfile(IBLSwitchEffect) +{ + effectname = "powered/turret_light_activate"; + minDistance = 5.0; + maxDistance = 5.0; +}; + +datablock EffectProfile(IBLFireEffect) +{ + effectname = "powered/turret_indoor_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; + datablock AudioProfile(IBLSwitchSound) { filename = "fx/powered/turret_light_activate.wav"; description = AudioClose3d; preload = true; + effect = IBLSwitchEffect; }; datablock AudioProfile(IBLFireSound) @@ -10,6 +25,7 @@ datablock AudioProfile(IBLFireSound) filename = "fx/powered/turret_indoor_fire.wav"; description = AudioDefault3d; preload = true; + effect = IBLFireEffect; }; datablock SensorData(DeployedIndoorTurretSensor) diff --git a/base/scripts/turrets/missileBarrelLarge.cs b/base/scripts/turrets/missileBarrelLarge.cs index 10988f7..2510c4a 100644 --- a/base/scripts/turrets/missileBarrelLarge.cs +++ b/base/scripts/turrets/missileBarrelLarge.cs @@ -7,11 +7,26 @@ //-------------------------------------------------------------------------- // Sounds //-------------------------------------- +datablock EffectProfile(MBLSwitchEffect) +{ + effectname = "powered/turret_heavy_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(MBLFireEffect) +{ + effectname = "powered/turret_missile_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; + datablock AudioProfile(MBLSwitchSound) { filename = "fx/powered/turret_missile_activate.wav"; description = AudioClose3d; preload = true; + effect = MBLSwitchEffect; }; datablock AudioProfile(MBLFireSound) @@ -19,6 +34,7 @@ datablock AudioProfile(MBLFireSound) filename = "fx/powered/turret_missile_fire.wav"; description = AudioDefault3d; preload = true; + effect = MBLFireEffect; }; //-------------------------------------------------------------------------- @@ -49,7 +65,7 @@ datablock SeekerProjectileData(TurretMissile) flareDistance = 200; flareAngle = 30; - minSeekHeat = 0.7; + minSeekHeat = 0.6; explosion = "MissileExplosion"; velInheritFactor = 0.2; @@ -94,7 +110,7 @@ datablock TurretImageData(MissileBarrelLarge) seekRadius = 300; maxSeekAngle = 30; seekTime = 1.0; - minSeekHeat = 0.7; + minSeekHeat = 0.6; emap = true; minTargetingDistance = 40; diff --git a/base/scripts/turrets/mortarBarrelLarge.cs b/base/scripts/turrets/mortarBarrelLarge.cs index dc7791d..e799899 100644 --- a/base/scripts/turrets/mortarBarrelLarge.cs +++ b/base/scripts/turrets/mortarBarrelLarge.cs @@ -7,11 +7,26 @@ //-------------------------------------------------------------------------- // Sounds //-------------------------------------- +datablock EffectProfile(MBLSwitchEffect) +{ + effectname = "powered/turret_heavy_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(MBLFireEffect) +{ + effectname = "powered/turret_mortar_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; + datablock AudioProfile(MBLSwitchSound) { filename = "fx/powered/turret_heavy_activate.wav"; description = AudioClose3d; preload = true; + effect = MBLSwitchEffect; }; datablock AudioProfile(MBLFireSound) @@ -19,6 +34,7 @@ datablock AudioProfile(MBLFireSound) filename = "fx/powered/turret_mortar_fire.wav"; description = AudioDefault3d; preload = true; + effect = MBLFireEffect; }; //-------------------------------------------------------------------------- diff --git a/base/scripts/turrets/outdoorDeployableBarrel.cs b/base/scripts/turrets/outdoorDeployableBarrel.cs index 55ecfee..c004172 100644 --- a/base/scripts/turrets/outdoorDeployableBarrel.cs +++ b/base/scripts/turrets/outdoorDeployableBarrel.cs @@ -5,12 +5,26 @@ // -------------------------------------------------------------- // Sound datablocks // -------------------------------------------------------------- +datablock EffectProfile(OBLSwitchEffect) +{ + effectname = "powered/turret_light_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(OBLFireEffect) +{ + effectname = "powered/turret_outdoor_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; datablock AudioProfile(OBLSwitchSound) { filename = "fx/powered/turret_light_activate.wav"; description = AudioClose3d; preload = true; + effect = OBLSwitchEffect; }; datablock AudioProfile(OBLFireSound) @@ -18,6 +32,7 @@ datablock AudioProfile(OBLFireSound) filename = "fx/powered/turret_outdoor_fire.wav"; description = AudioDefault3d; preload = true; + effect = OBLFireEffect; }; // -------------------------------------------------------------- @@ -130,6 +145,9 @@ datablock TurretData(TurretDeployedOutdoor) : TurretDamageProfile thetaMax = 145; thetaNull = 90; + yawVariance = 30.0; // these will smooth out the elf tracking code. + pitchVariance = 30.0; // more or less just tolerances + isShielded = true; energyPerDamagePoint = 110; maxEnergy = 60; diff --git a/base/scripts/turrets/plasmaBarrelLarge.cs b/base/scripts/turrets/plasmaBarrelLarge.cs index 3aa7268..4a473a0 100644 --- a/base/scripts/turrets/plasmaBarrelLarge.cs +++ b/base/scripts/turrets/plasmaBarrelLarge.cs @@ -7,12 +7,26 @@ //-------------------------------------------------------------------------- // Sounds //-------------------------------------------------------------------------- +datablock EffectProfile(PBLSwitchEffect) +{ + effectname = "powered/turret_light_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(PBLFireEffect) +{ + effectname = "powered/turret_plasma_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; datablock AudioProfile(PBLSwitchSound) { filename = "fx/powered/turret_light_activate.wav"; description = AudioClose3d; preload = true; + effect = PBLSwitchEffect; }; datablock AudioProfile(PBLFireSound) @@ -20,6 +34,7 @@ datablock AudioProfile(PBLFireSound) filename = "fx/powered/turret_plasma_fire.wav"; description = AudioDefault3d; preload = true; + effect = PBLFireEffect; }; //-------------------------------------------------------------------------- diff --git a/base/scripts/turrets/sentryTurret.cs b/base/scripts/turrets/sentryTurret.cs index 40b07db..b8fcc56 100644 --- a/base/scripts/turrets/sentryTurret.cs +++ b/base/scripts/turrets/sentryTurret.cs @@ -1,10 +1,24 @@ // Sound datablocks +datablock EffectProfile(SentryTurretSwitchEffect) +{ + effectname = "powered/turret_sentry_activate"; + minDistance = 2.5; + maxDistance = 5.0; +}; + +datablock EffectProfile(SentryTurretFireEffect) +{ + effectname = "powered/turret_sentry_fire"; + minDistance = 2.5; + maxDistance = 5.0; +}; datablock AudioProfile(SentryTurretSwitchSound) { filename = "fx/powered/turret_sentry_activate.wav"; description = AudioClose3d; preload = true; + effect = SentryTurretSwitchEffect; }; datablock AudioProfile(SentryTurretFireSound) @@ -12,6 +26,7 @@ datablock AudioProfile(SentryTurretFireSound) filename = "fx/powered/turret_sentry_fire.wav"; description = AudioDefault3d; preload = true; + effect = SentryTurretFireEffect; }; datablock AudioProfile(SentryTurretExpSound) diff --git a/base/scripts/vehicles/clientVehicleHud.cs b/base/scripts/vehicles/clientVehicleHud.cs index 795d23d..28f47be 100644 --- a/base/scripts/vehicles/clientVehicleHud.cs +++ b/base/scripts/vehicles/clientVehicleHud.cs @@ -66,7 +66,7 @@ function VehicleHud::quickBuy( %this, %id ) if ( isObject( $Hud['vehicleHud'].data[%id, 0] ) ) { if ( %this.selId != %id ) - eval( $Hud['vehicleHud'].data[%id, 0].command ); + VehicleHud.onTabSelect( %id, $Hud['vehicleHud'].data[%id, 0].vName, $Hud['vehicleHud'].data[%id, 0].vCount ); %this.onBuy(); } } @@ -113,8 +113,10 @@ function VehicleHud::addLine( %this, %tag, %lineNum, %name, %count ) minExtent = "8 8"; visible = "1"; helpTag = "0"; - command = "VehicleHud.onTabSelect(" @ %lineNum @ ", " @ %name @ ", " @ %count @ ");"; + command = "VehicleHud.onTabSelect(" @ %lineNum @ "," @ %name @ "," @ %count @ ");"; text = ""; + vName = %name; + vCount = %count; }; // If nothing is selected, select something: @@ -142,4 +144,9 @@ function clientCmdStationVehicleHideHud() { hideHud( 'vehicleHud' ); clientCmdTogglePlayHuds(true); +} + +function clientCmdStationVehicleHideJustHud() +{ + hideHud( 'vehicleHud' ); } \ No newline at end of file diff --git a/base/scripts/vehicles/serverVehicleHud.cs b/base/scripts/vehicles/serverVehicleHud.cs index 01f0a3d..277f85f 100644 --- a/base/scripts/vehicles/serverVehicleHud.cs +++ b/base/scripts/vehicles/serverVehicleHud.cs @@ -1,9 +1,24 @@ //------------------------------------------------------------------------------ +datablock EffectProfile(VehicleAppearEffect) +{ + effectname = "vehicles/inventory_pad_appear"; + minDistance = 5; + maxDistance = 10; +}; + +datablock EffectProfile(ActivateVehiclePadEffect) +{ + effectname = "powered/vehicle_pad_on"; + minDistance = 20; + maxDistance = 30; +}; + datablock AudioProfile(VehicleAppearSound) { filename = "fx/vehicles/inventory_pad_appear.wav"; description = AudioClosest3d; preload = true; + effect = VehicleAppearEffect; }; datablock AudioProfile(ActivateVehiclePadSound) @@ -11,6 +26,7 @@ datablock AudioProfile(ActivateVehiclePadSound) filename = "fx/powered/vehicle_pad_on.wav"; description = AudioClose3d; preload = true; + effect = ActivateVehiclePadEffect; }; datablock StationFXVehicleData( VehicleInvFX ) @@ -69,8 +85,8 @@ function serverCmdBuyVehicle(%client, %blockName) %p = vectorAdd(%pos,vectorScale(%yrot, -3)); %p = getWords(%p,0, 1) @ " " @ getWord(%p,2) + 4; - error(%blockName); - error(%blockName.spawnOffset); +// error(%blockName); +// error(%blockName.spawnOffset); %p = vectorAdd(%p, %blockName.spawnOffset); %rot = getWords(%trans, 3, 5); @@ -121,11 +137,6 @@ function createVehicle(%client, %station, %blockName, %team , %pos, %rot, %angle %obj = %blockName.create(%team); if(%obj) { - if ( %blockName $= "MobileBaseVehicle" ) - { - %station.station.teleporter.MPB = %obj; - %obj.teleporter = %station.station.teleporter; - } %station.ready = false; %obj.team = %team; %obj.useCreateHeight(true); @@ -168,7 +179,8 @@ function createVehicle(%client, %station, %blockName, %team , %pos, %rot, %angle stationObject = %station; }; - %obj.getDataBlock().schedule(5000, "mountDriver", %obj, %client.player); + if ( %client.isVehicleTeleportEnabled() ) + %obj.getDataBlock().schedule(5000, "mountDriver", %obj, %client.player); } if(%obj.getTarget() != -1) setTargetSensorGroup(%obj.getTarget(), %client.getSensorGroup()); @@ -286,4 +298,9 @@ function VehicleHud::clearHud( %obj, %client, %tag, %count ) for ( %i = 0; %i < %count; %i++ ) messageClient( %client, 'RemoveLineHud', "", %tag, %i ); } - + +//------------------------------------------------------------------------------ +function serverCmdEnableVehicleTeleport( %client, %enabled ) +{ + %client.setVehicleTeleportEnabled( %enabled ); +} diff --git a/base/scripts/vehicles/vehicle.cs b/base/scripts/vehicles/vehicle.cs index fbba7a5..f4aeb05 100644 --- a/base/scripts/vehicles/vehicle.cs +++ b/base/scripts/vehicles/vehicle.cs @@ -81,6 +81,12 @@ function VehicleData::playerDismounted(%data, %obj, %player) { if( %player.client.observeCount > 0 ) resetObserveFollow( %player.client, true ); + + setTargetSensorGroup(%obj.getTarget(), %obj.team); + + // if there is a turret, set its team as well. + if( %obj.turretObject > 0 ) + setTargetSensorGroup(%obj.turretObject.getTarget(), %obj.team); } function HoverVehicle::useCreateHeight() @@ -95,13 +101,15 @@ function WheeledVehicle::useCreateHeight() function AssaultVehicle::onDamage(%this, %obj) { - (%obj.getMountNodeObject(10)).setDamagelevel(%obj.getDamageLevel()); + if(isObject(%obj.getMountNodeObject(10))) + (%obj.getMountNodeObject(10)).setDamagelevel(%obj.getDamageLevel()); Parent::onDamage(%this, %obj); } function BomberFlyer::onDamage(%this, %obj) { - (%obj.getMountNodeObject(10)).setDamagelevel(%obj.getDamageLevel()); + if(isObject(%obj.getMountNodeObject(10))) + (%obj.getMountNodeObject(10)).setDamagelevel(%obj.getDamageLevel()); Parent::onDamage(%this, %obj); } @@ -233,7 +241,6 @@ function VehicleData::onDestroyed(%data, %obj, %prevState) %obj.turretObject.getDataBlock().playerDismount(%obj.turretObject); for(%i = 0; %i < %obj.getDatablock().numMountPoints; %i++) { - echo("damaging objects..."); if (%obj.getMountNodeObject(%i)) { %flingee = %obj.getMountNodeObject(%i); %flingee.getDataBlock().doDismount(%flingee, true); @@ -467,7 +474,7 @@ function AssaultVehicle::deleteAllMounted(%data, %obj) function BomberFlyer::deleteAllMounted(%data, %obj) { - if(%obj.beacon) + if(isObject(%obj.beacon)) %obj.beacon.delete(); %turret = %obj.getMountNodeObject(10); @@ -512,12 +519,6 @@ function MobileBaseVehicle::deleteAllMounted(%data, %obj) if(isObject(%obj.shield)) %obj.shield.delete(); - if (isObject(%obj.teleporter)) - { - %obj.teleporter.setThreadDir($ActivateThread, FALSE); - %obj.teleporter.playThread($ActivateThread,"activate"); - %obj.teleporter.playAudio($ActivateSound, StationTeleportDeacitvateSound); - } if(isObject(%obj.beacon)) { %obj.beacon.delete(); @@ -725,9 +726,6 @@ function MobileBaseVehicle::playerMounted(%data, %obj, %player, %node) %obj.shield.schedule(1000,"delete"); %obj.deploySchedule = ""; - %obj.teleporter.setThreadDir($ActivateThread, FALSE); - %obj.teleporter.playThread($ActivateThread,"activate"); - %obj.teleporter.playAudio($ActivateSound, StationTeleportDeacitvateSound); %obj.fullyDeployed = 0; %obj.noEnemyControl = 0; @@ -808,7 +806,7 @@ function MobileBaseVehicle::vehicleDeploy(%data, %obj, %player, %force) %obj.turret.playThread($PowerThread,"Power"); %obj.turret.mountImage(MissileBarrelLarge, 0 ,false); - %obj.beacon = new ScopeAlwaysShape() { + %obj.beacon = new BeaconObject() { dataBlock = "DeployedBeacon"; position = %obj.position; rotation = %obj.rotation; @@ -915,12 +913,6 @@ function MobileInvStation::onEndSequence(%data, %obj, %thread) { %obj.notDeployed = 0; %obj.vehicle.fullyDeployed = 1; - if(isObject(%obj.vehicle.teleporter)) - { - %obj.vehicle.teleporter.setThreadDir($ActivateThread, TRUE); - %obj.vehicle.teleporter.playThread($ActivateThread,"activate"); - %obj.vehicle.teleporter.playAudio($ActivateSound, StationTeleportAcitvateSound); - } } Parent::onEndSequence(%data, %obj, %thread); } diff --git a/base/scripts/vehicles/vehicle_bomber.cs b/base/scripts/vehicles/vehicle_bomber.cs index 6870619..d371157 100644 --- a/base/scripts/vehicles/vehicle_bomber.cs +++ b/base/scripts/vehicles/vehicle_bomber.cs @@ -4,12 +4,75 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(BomberFlyerEngineEffect) +{ + effectname = "vehicles/bomber_engine"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberFlyerThrustEffect) +{ + effectname = "vehicles/bomber_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberTurretFireEffect) +{ + effectname = "vehicles/bomber_turret_fire"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberTurretActivateEffect) +{ + effectname = "vehicles/bomber_turret_activate"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberTurretReloadEffect) +{ + effectname = "vehicles/bomber_turret_reload"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberTurretDryFireEffect) +{ + effectname = "vehicles/bomber_turret_dryfire"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberBombReloadEffect) +{ + effectname = "vehicles/bomber_bomb_reload"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberBombDryFireEffect) +{ + effectname = "vehicles/bomber_bomb_dryfire"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(BomberBombFireEffect) +{ + effectname = "weapons/generic_throw"; + minDistance = 10.0; + maxDistance = 20.0; +}; datablock AudioProfile(BomberFlyerEngineSound) { filename = "fx/vehicles/bomber_engine.wav"; description = AudioDefaultLooping3d; preload = true; + effect = BomberFlyerEngineEffect; }; datablock AudioProfile(BomberFlyerThrustSound) @@ -17,6 +80,7 @@ datablock AudioProfile(BomberFlyerThrustSound) filename = "fx/vehicles/bomber_boost.wav"; description = AudioDefaultLooping3d; preload = true; + effect = BomberFlyerThrustEffect; }; datablock AudioProfile(FusionExpSound) @@ -32,6 +96,7 @@ datablock AudioProfile(BomberTurretFireSound) filename = "fx/vehicles/bomber_turret_fire.wav"; description = AudioClose3d; preload = true; + effect = BomberTurretFireEffect; }; datablock AudioProfile(BomberTurretActivateSound) @@ -39,6 +104,7 @@ datablock AudioProfile(BomberTurretActivateSound) filename = "fx/vehicles/bomber_turret_activate.wav"; description = AudioClose3d; preload = true; + effect = BomberTurretActivateEffect; }; datablock AudioProfile(BomberTurretReloadSound) @@ -46,6 +112,7 @@ datablock AudioProfile(BomberTurretReloadSound) filename = "fx/vehicles/bomber_turret_reload.wav"; description = AudioClose3d; preload = true; + effect = BomberTurretReloadEffect; }; datablock AudioProfile(BomberTurretIdleSound) @@ -60,6 +127,7 @@ datablock AudioProfile(BomberTurretDryFireSound) filename = "fx/vehicles/bomber_turret_dryfire.wav"; description = AudioClose3d; preload = true; + effect = BomberTurretDryFireEffect; }; datablock AudioProfile(BomberBombReloadSound) @@ -67,6 +135,7 @@ datablock AudioProfile(BomberBombReloadSound) filename = "fx/vehicles/bomber_bomb_reload.wav"; description = AudioClose3d; preload = true; + effect = BomberBombReloadEffect; }; datablock AudioProfile(BomberBombProjectileSound) @@ -74,6 +143,7 @@ datablock AudioProfile(BomberBombProjectileSound) filename = "fx/vehicles/bomber_bomb_projectile.wav"; description = AudioDefaultLooping3d; preload = true; + effect = BomberBombFireEffect; }; datablock AudioProfile(BomberBombDryFireSound) @@ -81,6 +151,7 @@ datablock AudioProfile(BomberBombDryFireSound) filename = "fx/vehicles/bomber_bomb_dryfire.wav"; description = AudioClose3d; preload = true; + effect = BomberBombDryFireEffect; }; datablock AudioProfile(BomberBombFireSound) @@ -88,6 +159,7 @@ datablock AudioProfile(BomberBombFireSound) filename = "fx/vehicles/bomber_bomb_reload.wav"; description = AudioClose3d; preload = true; + effect = BomberBombFireEffect; }; datablock AudioProfile(BomberBombIdleSound) @@ -157,15 +229,16 @@ datablock FlyingVehicleData(BomberFlyer) : BomberDamageProfile maxSteeringAngle = 5; // Max radiens you can rotate the wheel. Smaller number is more maneuverable. horizontalSurfaceForce = 5; // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning) verticalSurfaceForce = 8; // Vertical center "wing" (controls side slip. lower numbers make MORE slide.) - maneuveringForce = 4500; // Horizontal jets (W,S,D,A key thrust) + maneuveringForce = 4700; // Horizontal jets (W,S,D,A key thrust) steeringForce = 1100; // Steering jets (force applied when you move the mouse) steeringRollForce = 300; // Steering jets (how much you heel over when you turn) rollForce = 8; // Auto-roll (self-correction to right you after you roll/invert) hoverHeight = 5; // Height off the ground at rest createHoverHeight = 3; // Height off the ground when created + maxForwardSpeed = 85; // speed in which forward thrust force is no longer applied (meters/second) // Turbo Jet - jetForce = 2000; // Afterburner thrust (this is in addition to normal thrust) + jetForce = 3000; // Afterburner thrust (this is in addition to normal thrust) minJetEnergy = 40.0; // Afterburner can't be used if below this threshhold. jetEnergyDrain = 3.0; // Energy use of the afterburners (low number is less drain...can be fractional) vertThrustMultiple = 3.0; @@ -793,8 +866,6 @@ datablock TargetProjectileData(BomberTargeter) textureName[1] = "special/flare"; textureName[2] = "special/pulse"; textureName[3] = "special/expFlare"; - beacon = true; - beaconType = vehicle; }; //------------------------------------- @@ -868,8 +939,9 @@ function BomberTargetingImage::deconstruct(%data, %obj, %slot) %bomber.beacon.delete(); %bomber.beacon = ""; } - %bomber.beacon = new ScopeAlwaysShape() { + %bomber.beacon = new BeaconObject() { dataBlock = "BomberBeacon"; + beaconType = "vehicle"; position = %pos; }; @@ -890,9 +962,7 @@ function BomberTargetingImage::deconstruct(%data, %obj, %slot) datablock StaticShapeData(BomberBeacon) { shapeFile = "turret_muzzlepoint.dts"; - beacon = true; targetNameTag = 'beacon'; - beaconType = vehicle; isInvincible = true; dynamicType = $TypeMasks::SensorObjectType; diff --git a/base/scripts/vehicles/vehicle_havoc.cs b/base/scripts/vehicles/vehicle_havoc.cs index 6da7527..058f6ed 100644 --- a/base/scripts/vehicles/vehicle_havoc.cs +++ b/base/scripts/vehicles/vehicle_havoc.cs @@ -4,17 +4,32 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(HAPCFlyerEngineEffect) +{ + effectname = "vehicles/htransport_thrust"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(HAPCFlyerThrustEffect) +{ + effectname = "vehicles/htransport_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(HAPCFlyerEngineSound) { filename = "fx/vehicles/htransport_thrust.wav"; description = AudioDefaultLooping3d; + effect = HAPCFlyerEngineEffect; }; datablock AudioProfile(HAPCFlyerThrustSound) { filename = "fx/vehicles/htransport_boost.wav"; description = AudioDefaultLooping3d; + effect = HAPCFlyerThrustEffect; }; //************************************************************** @@ -81,6 +96,7 @@ datablock FlyingVehicleData(HAPCFlyer) : HavocDamageProfile rollForce = 12; // Auto-roll hoverHeight = 8; // Height off the ground at rest createHoverHeight = 6; // Height off the ground when created + maxForwardSpeed = 71; // speed in which forward thrust force is no longer applied (meters/second) // Turbo Jet jetForce = 5000; diff --git a/base/scripts/vehicles/vehicle_mpb.cs b/base/scripts/vehicles/vehicle_mpb.cs index 2c9130d..ba91703 100644 --- a/base/scripts/vehicles/vehicle_mpb.cs +++ b/base/scripts/vehicles/vehicle_mpb.cs @@ -4,12 +4,26 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(MPBEngineEffect) +{ + effectname = "vehicles/mpb_thrust"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(MPBThrustEffect) +{ + effectname = "vehicles/mpb_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(MPBEngineSound) { filename = "fx/vehicles/mpb_thrust.wav"; description = AudioDefaultLooping3d; preload = true; + effect = MPBEngineEffect; }; datablock AudioProfile(MPBThrustSound) @@ -17,6 +31,7 @@ datablock AudioProfile(MPBThrustSound) filename = "fx/vehicles/mpb_boost.wav"; description = AudioDefaultLooping3d; preload = true; + effect = MPBThrustEffect; }; datablock AudioProfile(MobileBaseDeploySound) @@ -193,7 +208,7 @@ datablock WheeledVehicleData(MobileBaseVehicle) : MPBDamageProfile squeelSound = AssaultVehicleSkid; softImpactSound = GravSoftImpactSound; hardImpactSound = HardImpactSound; - wheelImpactSound = WheelImpactSound; + //wheelImpactSound = WheelImpactSound; // softSplashSoundVelocity = 5.0; diff --git a/base/scripts/vehicles/vehicle_shrike.cs b/base/scripts/vehicles/vehicle_shrike.cs index dba4883..dc1a7f1 100644 --- a/base/scripts/vehicles/vehicle_shrike.cs +++ b/base/scripts/vehicles/vehicle_shrike.cs @@ -4,12 +4,33 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(ScoutFlyerThrustEffect) +{ + effectname = "vehicles/shrike_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(ScoutFlyerEngineEffect) +{ + effectname = "vehicles/shrike_engine"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(ShrikeBlasterFireEffect) +{ + effectname = "vehicles/shrike_blaster"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(ScoutFlyerThrustSound) { filename = "fx/vehicles/shrike_boost.wav"; description = AudioDefaultLooping3d; preload = true; + effect = ScoutFlyerThrustEffect; }; datablock AudioProfile(ScoutFlyerEngineSound) @@ -24,6 +45,7 @@ datablock AudioProfile(ShrikeBlasterFire) filename = "fx/vehicles/shrike_blaster.wav"; description = AudioDefault3d; preload = true; + effect = ScoutFlyerEngineEffect; }; datablock AudioProfile(ShrikeBlasterProjectile) @@ -31,6 +53,7 @@ datablock AudioProfile(ShrikeBlasterProjectile) filename = "fx/weapons/shrike_blaster_projectile.wav"; description = ProjectileLooping3d; preload = true; + effect = ShrikeBlasterFireEffect; }; datablock AudioProfile(ShrikeBlasterDryFireSound) @@ -113,15 +136,16 @@ datablock FlyingVehicleData(ScoutFlyer) : ShrikeDamageProfile maxSteeringAngle = 5; // Max radiens you can rotate the wheel. Smaller number is more maneuverable. horizontalSurfaceForce = 6; // Horizontal center "wing" (provides "bite" into the wind for climbing/diving and turning) verticalSurfaceForce = 4; // Vertical center "wing" (controls side slip. lower numbers make MORE slide.) - maneuveringForce = 2500; // Horizontal jets (W,S,D,A key thrust) + maneuveringForce = 3000; // Horizontal jets (W,S,D,A key thrust) steeringForce = 1200; // Steering jets (force applied when you move the mouse) steeringRollForce = 400; // Steering jets (how much you heel over when you turn) rollForce = 4; // Auto-roll (self-correction to right you after you roll/invert) hoverHeight = 5; // Height off the ground at rest createHoverHeight = 3; // Height off the ground when created + maxForwardSpeed = 100; // speed in which forward thrust force is no longer applied (meters/second) // Turbo Jet - jetForce = 1750; // Afterburner thrust (this is in addition to normal thrust) + jetForce = 2000; // Afterburner thrust (this is in addition to normal thrust) minJetEnergy = 28; // Afterburner can't be used if below this threshhold. jetEnergyDrain = 2.8; // Energy use of the afterburners (low number is less drain...can be fractional) // Auto stabilize speed vertThrustMultiple = 3.0; @@ -221,7 +245,10 @@ datablock ShapeBaseImageData(ScoutChaingunPairImage) projectile = ScoutChaingunBullet; projectileType = TracerProjectile; mountPoint = 10; - offset = ".73 0 0"; +//**original** offset = ".73 0 0"; + offset = "1.93 -0.52 0.044"; + + projectileSpread = 1.0 / 1000.0; usesEnergy = true; useMountEnergy = true; @@ -230,6 +257,7 @@ datablock ShapeBaseImageData(ScoutChaingunPairImage) fireEnergy = 5; fireTimeout = 125; + //-------------------------------------- stateName[0] = "Activate"; stateSequence[0] = "Activate"; @@ -296,7 +324,8 @@ datablock ShapeBaseImageData(ScoutChaingunPairImage) datablock ShapeBaseImageData(ScoutChaingunImage) : ScoutChaingunPairImage { - offset = "-.73 0 0"; +//**original** offset = "-.73 0 0"; + offset = "-1.93 -0.52 0.044"; stateScript[3] = "onTriggerDown"; stateScript[5] = "onTriggerUp"; stateScript[6] = "onTriggerUp"; diff --git a/base/scripts/vehicles/vehicle_spec_fx.cs b/base/scripts/vehicles/vehicle_spec_fx.cs index 2ecb632..4f4ab9b 100644 --- a/base/scripts/vehicles/vehicle_spec_fx.cs +++ b/base/scripts/vehicles/vehicle_spec_fx.cs @@ -24,12 +24,33 @@ //-------------------------------------------------------------- // SOUNDS //-------------------------------------------------------------- +datablock EffectProfile(SoftImpactEffect) +{ + effectname = "vehicles/crash_soft"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(HardImpactEffect) +{ + effectname = "vehicles/crash_hard"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(GravSoftImpactEffect) +{ + effectname = "vehicles/crash_ground_vehicle"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(SoftImpactSound) { filename = "fx/vehicles/crash_soft.wav"; description = AudioClose3d; preload = true; + effect = SoftImpactEffect; }; datablock AudioProfile(HardImpactSound) @@ -37,6 +58,7 @@ datablock AudioProfile(HardImpactSound) filename = "fx/vehicles/crash_hard.wav"; description = AudioExplosion3d; preload = true; + effect = HardImpactEffect; }; datablock AudioProfile(GravSoftImpactSound) @@ -44,6 +66,7 @@ datablock AudioProfile(GravSoftImpactSound) filename = "fx/vehicles/crash_grav_soft.wav"; description = AudioClose3d; preload = true; + effect = GravSoftImpactEffect; }; datablock AudioProfile(BombExplosionSound) @@ -1080,15 +1103,15 @@ datablock ExplosionData(VehicleBombExplosion) camShakeRadius = 30.0; }; -//-------------------------------------------------------------- -// VEHICLE SHIELD IMPACT DATA -//-------------------------------------------------------------- -datablock ShieldImpactData( VehicleShieldImpact ) -{ - lifetimeMS = 300; - startScale = 1.0; - endScale = 1.1; -}; +////-------------------------------------------------------------- +//// VEHICLE SHIELD IMPACT DATA +////-------------------------------------------------------------- +//datablock ShieldImpactData( VehicleShieldImpact ) +//{ +// lifetimeMS = 300; +// startScale = 1.0; +// endScale = 1.1; +//}; //-------------------------------------------------------------- // VEHICLE SENSORS @@ -1206,7 +1229,7 @@ datablock ParticleEmitterData(TankJetEmitter) periodVarianceMS = 0; ejectionVelocity = 20; velocityVariance = 1.0; - ejectionOffset = -0.25; + ejectionOffset = 0.0; thetaMin = 0; thetaMax = 10; phiReferenceVel = 0; diff --git a/base/scripts/vehicles/vehicle_tank.cs b/base/scripts/vehicles/vehicle_tank.cs index 9e8fa24..7210203 100644 --- a/base/scripts/vehicles/vehicle_tank.cs +++ b/base/scripts/vehicles/vehicle_tank.cs @@ -4,6 +4,54 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(AssaultVehicleEngineEffect) +{ + effectname = "vehicles/tank_engine"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultVehicleThrustEffect) +{ + effectname = "vehicles/tank_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultTurretActivateEffect) +{ + effectname = "vehicles/tank_activate"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultMortarDryFireEffect) +{ + effectname = "weapons/mortar_dryfire"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultMortarFireEffect) +{ + effectname = "vehicles/tank_mortar_fire"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultMortarReloadEffect) +{ + effectname = "weapons/mortar_reload"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(AssaultChaingunFireEffect) +{ + effectname = "weapons/chaingun_fire"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(AssaultVehicleSkid) { @@ -17,6 +65,7 @@ datablock AudioProfile(AssaultVehicleEngineSound) filename = "fx/vehicles/tank_engine.wav"; description = AudioDefaultLooping3d; preload = true; + effect = AssaultVehicleEngineEffect; }; datablock AudioProfile(AssaultVehicleThrustSound) @@ -24,6 +73,7 @@ datablock AudioProfile(AssaultVehicleThrustSound) filename = "fx/vehicles/tank_boost.wav"; description = AudioDefaultLooping3d; preload = true; + effect = AssaultVehicleThrustEffect; }; datablock AudioProfile(AssaultChaingunFireSound) @@ -31,6 +81,7 @@ datablock AudioProfile(AssaultChaingunFireSound) filename = "fx/vehicles/tank_chaingun.wav"; description = AudioDefaultLooping3d; preload = true; + effect = AssaultChaingunFireEffect; }; datablock AudioProfile(AssaultChaingunReloadSound) @@ -52,6 +103,7 @@ datablock AudioProfile(AssaultTurretActivateSound) filename = "fx/vehicles/tank_activate.wav"; description = AudioClose3d; preload = true; + effect = AssaultTurretActivateEffect; }; datablock AudioProfile(AssaultChaingunDryFireSound) @@ -73,6 +125,7 @@ datablock AudioProfile(AssaultMortarDryFireSound) filename = "fx/weapons/mortar_dryfire.wav"; description = AudioClose3d; preload = true; + effect = AssaultMortarDryFireEffect; }; datablock AudioProfile(AssaultMortarFireSound) @@ -80,6 +133,7 @@ datablock AudioProfile(AssaultMortarFireSound) filename = "fx/vehicles/tank_mortar_fire.wav"; description = AudioClose3d; preload = true; + effect = AssaultMortarFireEffect; }; datablock AudioProfile(AssaultMortarReloadSound) @@ -87,6 +141,7 @@ datablock AudioProfile(AssaultMortarReloadSound) filename = "fx/weapons/mortar_reload.wav"; description = AudioClose3d; preload = true; + effect = AssaultMortarReloadEffect; }; datablock AudioProfile(AssaultMortarIdleSound) @@ -508,7 +563,7 @@ datablock GrenadeProjectileData(AssaultMortar) grenadeElasticity = 0.0; grenadeFriction = 0.4; - armingDelayMS = 50; + armingDelayMS = 250; muzzleVelocity = 65; drag = 0.1; diff --git a/base/scripts/vehicles/vehicle_wildcat.cs b/base/scripts/vehicles/vehicle_wildcat.cs index 4714b97..fa31a63 100644 --- a/base/scripts/vehicles/vehicle_wildcat.cs +++ b/base/scripts/vehicles/vehicle_wildcat.cs @@ -4,6 +4,19 @@ //************************************************************** // SOUNDS //************************************************************** +datablock EffectProfile(ScoutEngineEffect) +{ + effectname = "vehicles/outrider_engine"; + minDistance = 5.0; + maxDistance = 10.0; +}; + +datablock EffectProfile(ScoutThrustEffect) +{ + effectname = "vehicles/outrider_boost"; + minDistance = 5.0; + maxDistance = 10.0; +}; datablock AudioProfile(ScoutSqueelSound) { @@ -18,6 +31,7 @@ datablock AudioProfile(ScoutEngineSound) filename = "fx/vehicles/outrider_engine.wav"; description = AudioDefaultLooping3d; preload = true; + effect = ScoutEngineEffect; }; datablock AudioProfile(ScoutThrustSound) @@ -25,6 +39,7 @@ datablock AudioProfile(ScoutThrustSound) filename = "fx/vehicles/outrider_boost.wav"; description = AudioDefaultLooping3d; preload = true; + effect = ScoutThrustEffect; }; //************************************************************** @@ -120,7 +135,7 @@ datablock HoverVehicleData(ScoutVehicle) : WildcatDamageProfile vertFactor = 0.0; floatingThrustFactor = 0.35; - mainThrustForce = 25; + mainThrustForce = 30; reverseThrustForce = 10; strafeThrustForce = 8; turboFactor = 1.5; @@ -129,14 +144,14 @@ datablock HoverVehicleData(ScoutVehicle) : WildcatDamageProfile brakingActivationSpeed = 4; stabLenMin = 2.25; - stabLenMax = 3.25; + stabLenMax = 3.75; stabSpringConstant = 30; - stabDampingConstant = 12; + stabDampingConstant = 16; gyroDrag = 16; normalForce = 30; restorativeForce = 20; - steeringForce = 25; + steeringForce = 30; rollForce = 15; pitchForce = 7; @@ -153,7 +168,7 @@ datablock HoverVehicleData(ScoutVehicle) : WildcatDamageProfile floatSound = ScoutThrustSound; softImpactSound = GravSoftImpactSound; hardImpactSound = HardImpactSound; - wheelImpactSound = WheelImpactSound; + //wheelImpactSound = WheelImpactSound; // softSplashSoundVelocity = 10.0; diff --git a/base/scripts/weapTurretCode.cs b/base/scripts/weapTurretCode.cs index 8613b31..4a1b067 100644 --- a/base/scripts/weapTurretCode.cs +++ b/base/scripts/weapTurretCode.cs @@ -679,8 +679,9 @@ function FlashGrenadeThrown::onThrow(%this, %gren) function detonateFlashGrenade(%hg) { + %maxWhiteout = %hg.getDataBlock().maxWhiteout; %thrower = %hg.sourceObject.client; - %hg.setDamageState(Destroyed); + %hg.setDamageState(Destroyed); %hgt = %hg.getTransform(); %plX = firstword(%hgt); %plY = getWord(%hgt, 1); @@ -728,19 +729,26 @@ function detonateFlashGrenade(%hg) %dotFactor = ((1.0 - ((%difAcos - 45.0) / 15.0)) * 0.5) + 0.5; %totalFactor = %dotFactor * %distFactor; + %prevWhiteOut = %damage.getWhiteOut(); if(!%prevWhiteOut) if(!$teamDamage) { - error("checking for message"); if(%damage.client != %thrower && %damage.client.team == %thrower.team) messageClient(%damage.client, 'teamWhiteOut', '\c1You were hit by %1\'s whiteout grenade.', getTaggedString(%thrower.name)); } - %damage.setWhiteOut( %prevWhiteOut + %totalFactor); + %whiteoutVal = %prevWhiteOut + %totalFactor; + if(%whiteoutVal > %maxWhiteout) + { + //error("whitout at max"); + %whiteoutVal = %maxWhiteout; + } + + %damage.setWhiteOut( %whiteoutVal ); } - %hg.schedule(500, "delete"); + %hg.schedule( 500, "delete" ); } // ---------------------------------------------- @@ -883,7 +891,9 @@ function MineDeployed::damageObject(%data, %targetObject, %sourceObject, %positi %targetObject.damaged += %amount; if(%targetObject.damaged >= %data.maxDamage) + { %targetObject.setDamageState(Destroyed); + } } function MineDeployed::onDestroyed(%data, %obj, %lastState) diff --git a/base/scripts/weapons/ELFGun.cs b/base/scripts/weapons/ELFGun.cs index e2dad44..bba5107 100644 --- a/base/scripts/weapons/ELFGun.cs +++ b/base/scripts/weapons/ELFGun.cs @@ -5,18 +5,21 @@ datablock EffectProfile(ELFGunSwitchEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ELFGunFireEffect) { effectname = "weapons/ELF_fire"; - minDistance = 10.0; + minDistance = 2.5; + maxDistance = 2.5; }; -datablock EffectProfile(ElfFireWetEffect) +datablock EffectProfile(ELFGunFireWetEffect) { effectname = "weapons/ELF_underwater"; - minDistance = 10.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock AudioProfile(ELFGunSwitchSound) @@ -47,6 +50,7 @@ datablock AudioProfile(ELFHitTargetSound) filename = "fx/weapons/ELF_hit.wav"; description = CloseLooping3d; preload = true; + effect = ELFGunFireEffect; }; //-------------------------------------- diff --git a/base/scripts/weapons/blaster.cs b/base/scripts/weapons/blaster.cs index bd44c06..ba4a204 100644 --- a/base/scripts/weapons/blaster.cs +++ b/base/scripts/weapons/blaster.cs @@ -9,12 +9,14 @@ datablock EffectProfile(BlasterSwitchEffect) { effectname = "weapons/blaster_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(BlasterFireEffect) { effectname = "weapons/blaster_fire"; - minDistance = 3.0; + minDistance = 2.5; + maxDistance = 2.5; }; //-------------------------------------------------------------------------- diff --git a/base/scripts/weapons/cameraGrenade.cs b/base/scripts/weapons/cameraGrenade.cs index aa01c5f..de19f3e 100644 --- a/base/scripts/weapons/cameraGrenade.cs +++ b/base/scripts/weapons/cameraGrenade.cs @@ -6,7 +6,7 @@ // deploy on) interior surfaces and terrain. // ------------------------------------------------------------------ -$TeamDeployableMax[DeployedCamera] = 20; +$TeamDeployableMax[DeployedCamera] = 15; // ------------------------------------------ // force-feedback effect datablocks @@ -15,20 +15,22 @@ $TeamDeployableMax[DeployedCamera] = 20; datablock EffectProfile(CameraGrenadeActivateEffect) { effectname = "weapons/grenade_camera_activate"; - minDistance = 3.0; + minDistance = 2.5; + maxDistance = 5.0; }; datablock EffectProfile(CameraGrenadeAttachEffect) { effectname = "weapons/grenade_camera_activate"; - minDistance = 3.0; + minDistance = 2.5; + maxDistance = 5.0; }; datablock EffectProfile(CameraGrenadeExplosionEffect) { effectname = "explosions/explosion.xpl10"; minDistance = 10; - maxDistance = 50; + maxDistance = 30; }; // ------------------------------------------ @@ -113,6 +115,7 @@ datablock SensorData(CameraSensorObject) detectsUsingLOS = true; detectionPings = false; detectsPassiveJammed = true; + detectsActiveJammed = false; detectRadius = 40; detectsFOVOnly = true; useObjectFOV = true; @@ -180,3 +183,11 @@ datablock TurretImageData(DeployableCameraBarrel) degPerSecPhi = 360; }; +//------------------------------------------------------------------------------ +// Functions: +//------------------------------------------------------------------------------ +function CameraGrenadeThrown::onCollision( %data, %obj, %col ) +{ + // Do nothing... +} + diff --git a/base/scripts/weapons/chaingun.cs b/base/scripts/weapons/chaingun.cs index 4fb6c10..bb704d0 100644 --- a/base/scripts/weapons/chaingun.cs +++ b/base/scripts/weapons/chaingun.cs @@ -9,30 +9,35 @@ datablock EffectProfile(ChaingunSwitchEffect) { effectname = "weapons/chaingun_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ChaingunFireEffect) { effectname = "weapons/chaingun_fire"; - minDistance = 4.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ChaingunSpinUpEffect) { effectname = "weapons/chaingun_spinup"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ChaingunSpinDownEffect) { effectname = "weapons/chaingun_spindown"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ChaingunDryFire) { effectname = "weapons/chaingun_dryfire"; minDistance = 2.5; + maxDistance = 2.5; }; //-------------------------------------------------------------------------- @@ -516,8 +521,8 @@ datablock TracerProjectileData(ScoutChaingunBullet) dryVelocity = 425.0; wetVelocity = 100.0; velInheritFactor = 1.0; - fizzleTimeMS = 3000; - lifetimeMS = 3000; + fizzleTimeMS = 1000; + lifetimeMS = 1000; explodeOnDeath = false; reflectOnWaterImpactAngle = 0.0; explodeOnWaterImpact = false; diff --git a/base/scripts/weapons/concussionGrenade.cs b/base/scripts/weapons/concussionGrenade.cs index 54cb03b..8d76997 100644 --- a/base/scripts/weapons/concussionGrenade.cs +++ b/base/scripts/weapons/concussionGrenade.cs @@ -5,12 +5,14 @@ datablock EffectProfile(ConcussionGrenadeThrowEffect) { effectname = "weapons/grenade_throw"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ConcussionGrenadeSwitchEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ConcussionGrenadeExplosionEffect) @@ -28,6 +30,14 @@ datablock AudioProfile(ConcussionGrenadeExplosionSound) effect = ConcussionGrenadeExplosionEffect; }; +datablock AudioProfile(ConcussionGrenadeExplosionSound) +{ + filename = "fx/weapons/grenade_explode.wav"; + description = AudioExplosion3d; + preload = true; + effect = ConcussionGrenadeExplosionEffect; +}; + //-------------------------------------------------------------------------- // Sparks @@ -186,3 +196,11 @@ datablock ItemData(ConcussionGrenade) isGrenade = true; }; +//-------------------------------------------------------------------------- +// Functions: +//-------------------------------------------------------------------------- +function ConcussionGrenadeThrown::onCollision( %data, %obj, %col ) +{ + // Do nothing... +} + diff --git a/base/scripts/weapons/disc.cs b/base/scripts/weapons/disc.cs index 45323b3..bf2cc7b 100644 --- a/base/scripts/weapons/disc.cs +++ b/base/scripts/weapons/disc.cs @@ -8,31 +8,36 @@ datablock EffectProfile(DiscFireEffect) { effectname = "weapons/spinfusor_fire"; - MinDistance = 4.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(DiscSwitchEffect) { effectname = "weapons/spinfusor_activate"; - MinDistance = 2.5; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(DiscDryFireEffect) { effectname = "weapons/spinfusor_dryfire"; - MinDistance = 2.5; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(DiscIdleEffect) { effectname = "weapons/spinfusor_idle"; - MinDistance = 2.5; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(DiscReloadEffect) { effectname = "weapons/spinfusor_reload"; - MinDistance = 2.5; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(DiscExpEffect) @@ -401,19 +406,6 @@ datablock ItemData(DiscAmmo) //-------------------------------------------------------------------------- // Weapon //-------------------------------------- -datablock ItemData(Disc) -{ - className = Weapon; - catagory = "Spawn Items"; - shapeFile = "weapon_disc.dts"; - image = DiscImage; - mass = 1; - elasticity = 0.2; - friction = 0.6; - pickupRadius = 2; - pickUpName = "a spinfusor"; - emap = true; -}; datablock ShapeBaseImageData(DiscImage) { @@ -424,6 +416,8 @@ datablock ShapeBaseImageData(DiscImage) offset = "0 0 0"; emap = true; + projectileSpread = 1.0 / 1000.0; + projectile = DiscProjectile; projectileType = LinearProjectile; @@ -473,3 +467,17 @@ datablock ShapeBaseImageData(DiscImage) stateTransitionOnTimeout[6] = "NoAmmo"; }; + +datablock ItemData(Disc) +{ + className = Weapon; + catagory = "Spawn Items"; + shapeFile = "weapon_disc.dts"; + image = DiscImage; + mass = 1; + elasticity = 0.2; + friction = 0.6; + pickupRadius = 2; + pickUpName = "a spinfusor"; + emap = true; +}; diff --git a/base/scripts/weapons/flareGrenade.cs b/base/scripts/weapons/flareGrenade.cs index 6316929..90bfe3d 100644 --- a/base/scripts/weapons/flareGrenade.cs +++ b/base/scripts/weapons/flareGrenade.cs @@ -135,3 +135,11 @@ datablock ItemData(FlareGrenade) }; +//------------------------------------------------------------------------------ +// Functions: +//------------------------------------------------------------------------------ +function FlareGrenadeThrown::onCollision( %data, %obj, %col ) +{ + // Do nothing... +} + diff --git a/base/scripts/weapons/flashGrenade.cs b/base/scripts/weapons/flashGrenade.cs index 6ba4b9c..6ead67b 100644 --- a/base/scripts/weapons/flashGrenade.cs +++ b/base/scripts/weapons/flashGrenade.cs @@ -39,6 +39,7 @@ datablock ItemData(FlashGrenadeThrown) computeCRC = true; + maxWhiteout = 1.2; }; datablock ItemData(FlashGrenade) @@ -58,3 +59,11 @@ datablock ItemData(FlashGrenade) }; +//-------------------------------------------------------------------------- +// Functions: +//-------------------------------------------------------------------------- +function FlashGrenadeThrown::onCollision( %data, %obj, %col ) +{ + // Do nothing... +} + diff --git a/base/scripts/weapons/grenade.cs b/base/scripts/weapons/grenade.cs index e627d26..af4713d 100644 --- a/base/scripts/weapons/grenade.cs +++ b/base/scripts/weapons/grenade.cs @@ -1,18 +1,34 @@ // ------------------------------------------------------------------------ // grenade (thrown by hand) script // ------------------------------------------------------------------------ +datablock EffectProfile(GrenadeThrowEffect) +{ + effectname = "weapons/grenade_throw"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(GrenadeSwitchEffect) +{ + effectname = "weapons/generic_switch"; + minDistance = 2.5; + maxDistance = 2.5; +}; + datablock AudioProfile(GrenadeThrowSound) { filename = "fx/weapons/throw_grenade.wav"; description = AudioClose3D; - preload = true; + preload = true; + effect = GrenadeThrowEffect; }; datablock AudioProfile(GrenadeSwitchSound) { filename = "fx/weapons/generic_switch.wav"; description = AudioClosest3D; - preload = true; + preload = true; + effect = GrenadeSwitchEffect; }; //************************************************************************** diff --git a/base/scripts/weapons/grenadeLauncher.cs b/base/scripts/weapons/grenadeLauncher.cs index e1e01c5..713c269 100644 --- a/base/scripts/weapons/grenadeLauncher.cs +++ b/base/scripts/weapons/grenadeLauncher.cs @@ -9,24 +9,28 @@ datablock EffectProfile(GrenadeSwitchEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(GrenadeFireEffect) { effectname = "weapons/grenadelauncher_fire"; - minDistance = 4.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(GrenadeDryFireEffect) { effectname = "weapons/grenadelauncher_dryfire"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(GrenadeReloadEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(GrenadeExplosionEffect) diff --git a/base/scripts/weapons/mine.cs b/base/scripts/weapons/mine.cs index 5c03721..dffdfa9 100644 --- a/base/scripts/weapons/mine.cs +++ b/base/scripts/weapons/mine.cs @@ -307,7 +307,7 @@ datablock ItemData(MineDeployed) maxDamage = 0.2; explosion = MineExplosion; underwaterExplosion = UnderwaterMineExplosion; - indirectDamage = 0.6; + indirectDamage = 0.55; damageRadius = 6.0; radiusDamageType = $DamageType::Mine; kickBackStrength = 1500; @@ -326,7 +326,7 @@ datablock ItemData(Mine) { className = HandInventory; catagory = "Handheld"; - shapeFile = "mine.dts"; + shapeFile = "ammo_mine.dts"; mass = 1; elasticity = 0.2; friction = 0.7; diff --git a/base/scripts/weapons/missileLauncher.cs b/base/scripts/weapons/missileLauncher.cs index bda3b5e..fe08810 100644 --- a/base/scripts/weapons/missileLauncher.cs +++ b/base/scripts/weapons/missileLauncher.cs @@ -9,25 +9,28 @@ datablock EffectProfile(MissileSwitchEffect) { effectname = "weapons/missile_launcher_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MissileFireEffect) { effectname = "weapons/missile_fire"; - minDistance = 10.0; + minDistance = 2.5; + maxDistance = 5.0; }; datablock EffectProfile(MissileDryFireEffect) { effectname = "weapons/missile_launcher_dryfire"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MissileExplosionEffect) { effectname = "explosions/explosion.xpl23"; minDistance = 10; - maxDistance = 50; + maxDistance = 30; }; //-------------------------------------------------------------------------- @@ -245,7 +248,7 @@ datablock ParticleEmitterData(MissileExplosionSmokeEMitter) -datablock DebrisData( VSpikeDebris ) +datablock DebrisData( MissileSpikeDebris ) { emitters[0] = MissileSmokeSpikeEmitter; explodeOnMaxBounce = true; @@ -272,7 +275,7 @@ datablock ExplosionData(MissileExplosion) emitter[0] = MissileExplosionSmokeEmitter; - debris = VSpikeDebris; + debris = MissileSpikeDebris; debrisThetaMin = 10; debrisThetaMax = 170; debrisNum = 8; @@ -642,7 +645,7 @@ datablock SeekerProjectileData(ShoulderMissile) lifetimeMS = 6000; muzzleVelocity = 10.0; maxVelocity = 80.0; - turningSpeed = 90.0; + turningSpeed = 110.0; acceleration = 200.0; proximityRadius = 3; @@ -722,7 +725,7 @@ datablock ShapeBaseImageData(MissileLauncherImage) projectileType = SeekerProjectile; isSeeker = true; - seekRadius = 300; + seekRadius = 400; maxSeekAngle = 8; seekTime = 0.5; minSeekHeat = 0.7; // the heat that must be present on a target to lock it. diff --git a/base/scripts/weapons/mortar.cs b/base/scripts/weapons/mortar.cs index a65c1f5..62521af 100644 --- a/base/scripts/weapons/mortar.cs +++ b/base/scripts/weapons/mortar.cs @@ -9,24 +9,28 @@ datablock EffectProfile(MortarSwitchEffect) { effectname = "weapons/mortar_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MortarFireEffect) { effectname = "weapons/mortar_fire"; - minDistance = 5.0; + minDistance = 2.5; + maxDistance = 5.0; }; datablock EffectProfile(MortarReloadEffect) { effectname = "weapons/mortar_reload"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MortarDryFireEffect) { effectname = "weapons/mortar_dryfire"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(MortarExplosionEffect) @@ -761,7 +765,7 @@ datablock ShapeBaseImageData(MortarImage) stateName[2] = "Ready"; stateTransitionOnNoAmmo[2] = "NoAmmo"; stateTransitionOnTriggerDown[2] = "Fire"; - stateSound[2] = MortarIdleSound; + //stateSound[2] = MortarIdleSound; stateName[3] = "Fire"; stateSequence[3] = "Recoil"; diff --git a/base/scripts/weapons/plasma.cs b/base/scripts/weapons/plasma.cs index ce57267..d746106 100644 --- a/base/scripts/weapons/plasma.cs +++ b/base/scripts/weapons/plasma.cs @@ -9,18 +9,21 @@ datablock EffectProfile(PlasmaSwitchEffect) { effectname = "weapons/plasma_rifle_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(PlasmaFireEffect) { effectname = "weapons/plasma_fire"; - minDistance = 10.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(PlasmaDryFireEffect) { effectname = "weapons/plasma_dryfire"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(PlasmaIdleEffect) @@ -33,6 +36,7 @@ datablock EffectProfile(PlasmaReloadEffect) { effectname = "weapons/plasma_rifle_reload"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(PlasmaExpEffect) diff --git a/base/scripts/weapons/shockLance.cs b/base/scripts/weapons/shockLance.cs index 1202dfb..20cc19c 100644 --- a/base/scripts/weapons/shockLance.cs +++ b/base/scripts/weapons/shockLance.cs @@ -8,18 +8,21 @@ datablock EffectProfile(ShockLanceSwitchEffect) { effectname = "weapons/shocklance_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ShockLanceFireEffect) { effectname = "weapons/shocklance_fire"; - minDistance = 5.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(ShockLanceReloadEffect) { effectname = "weapons/shocklance_reload"; minDistance = 2.5; + maxDistance = 2.5; }; datablock AudioProfile(ShockLanceSwitchSound) diff --git a/base/scripts/weapons/sniperRifle.cs b/base/scripts/weapons/sniperRifle.cs index c4dda44..55eebbb 100644 --- a/base/scripts/weapons/sniperRifle.cs +++ b/base/scripts/weapons/sniperRifle.cs @@ -8,18 +8,21 @@ datablock EffectProfile(SniperRifleSwitchEffect) { effectname = "weapons/sniper_activate"; minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(SniperRifleFireEffect) { effectname = "weapons/sniper_fire"; - minDistance = 4.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock EffectProfile(SniperRifleFireWetEffect) { effectname = "weapons/sniper_underwater"; - minDistance = 4.0; + minDistance = 2.5; + maxDistance = 2.5; }; datablock AudioProfile(SniperRifleSwitchSound) diff --git a/base/scripts/weapons/targetingLaser.cs b/base/scripts/weapons/targetingLaser.cs index 62a29a1..5af6419 100644 --- a/base/scripts/weapons/targetingLaser.cs +++ b/base/scripts/weapons/targetingLaser.cs @@ -2,12 +2,26 @@ // Targeting laser // //-------------------------------------------------------------------------- +datablock EffectProfile(TargetingLaserSwitchEffect) +{ + effectname = "weapons/generic_switch"; + minDistance = 2.5; + maxDistance = 2.5; +}; + +datablock EffectProfile(TargetingLaserPaintEffect) +{ + effectname = "weapons/targetinglaser_paint"; + minDistance = 2.5; + maxDistance = 2.5; +}; datablock AudioProfile(TargetingLaserSwitchSound) { filename = "fx/weapons/generic_switch.wav"; description = AudioClosest3d; preload = true; + effect = TargetingLaserSwitchEffect; }; datablock AudioProfile(TargetingLaserPaintSound) @@ -15,6 +29,7 @@ datablock AudioProfile(TargetingLaserPaintSound) filename = "fx/weapons/targetinglaser_paint.wav"; description = CloseLooping3d; preload = true; + effect = TargetingLaserPaintEffect; }; diff --git a/base/scripts/webbrowser.cs b/base/scripts/webbrowser.cs index 2b50899..5b3367b 100644 --- a/base/scripts/webbrowser.cs +++ b/base/scripts/webbrowser.cs @@ -687,7 +687,6 @@ function TribeAndWarriorBrowserGui::onWake(%this) MemberList.Clear(); W_MemberList.clear(); Canvas.pushDialog(LaunchToolbarDlg); - TWBTabView.addSet( 1, "gui/shll_horztabbuttonB", "5 5 5", "50 50 0", "5 5 5" ); if ( TWBTabView.tabCount() == 0 ) { @@ -807,7 +806,7 @@ function TribeAdminMemberDlg::onDatabaseQueryResult( %this, %status, %resultStri { if ( %this.key != %key ) return; -// echo("RECV: " @ %status); + echo("RECV: " @ %status); if(getField(%status,0)==0) { switch$(%this.state) @@ -815,7 +814,10 @@ function TribeAdminMemberDlg::onDatabaseQueryResult( %this, %status, %resultStri case "setMemberProfile": %this.state = "done"; ForumsTopicsList.refreshFlag = true; - messageBoxOK("COMPLETE","Member Profile has been updated","WonUpdateCertificate();TL_Profile.setValue(1);"); + if (getField(%status,3) == getField(getRecord(WonGetAuthInfo(),0),3)) + messageBoxOK("COMPLETE","Member Profile has been updated","WonUpdateCertificate();TL_Profile.setValue(1);"); + else + messageBoxOK("COMPLETE",getField(%status,1)); } } else if (getSubStr(getField(%status,1),0,9) $= "ORA-04061") @@ -950,6 +952,11 @@ function BrowserSearchPane::onDatabaseRow(%this, %row, %isLastRow, %key) } } //==-- TWBTabView ----------------------------------------------------------- +function TWBTabView::onAdd( %this ) +{ + %this.addSet( 1, "gui/shll_horztabbuttonB", "5 5 5", "50 50 0", "5 5 5" ); +} +//----------------------------------------------------------------------------- function TWBTabView::view(%this, %name, %type) { if ( %type $= "Tribe" ) diff --git a/base/scripts/webemail.cs b/base/scripts/webemail.cs index ff31128..6555e7f 100644 --- a/base/scripts/webemail.cs +++ b/base/scripts/webemail.cs @@ -655,20 +655,6 @@ function LC_BigList::GetOnlineStatus(%this) databaseQuery(69,%roster, %this,%this.key); } //----------------------------------------------------------------------------- -function LC_BigList::onDatabaseQueryResult(%this,%status,%resultString,%key) -{ - if(%key != %this.key) - return; -// switch$(%this.status) -// { -// case "getOnline": if(getField(%status,0) == 0) -// for(%str=0;%str= 80) + { + MessageBoxOK( "POST FAILED", "Subject text too long. Extended/international characters count as two letters.", + "FP_SubjectEdit.makeFirstResponder(1);"); + return; + } + TextCheck($ForumsSubject,ForumsGui); if(!ForumsGui.textCheck) { @@ -488,7 +489,6 @@ function ForumsPost() ForumsComposeDlg.parentPost TAB $ForumsSubject TAB ForumsBodyText.getValue(); - error("RT:" TAB ForumsComposeDlg.forum TAB ForumsComposeDlg.topic TAB ForumsComposeDlg.parentPost); } else if(ForumsComposeDlg.action $="News") { @@ -511,7 +511,6 @@ function ForumsPost() ForumsComposeDlg.parentPost TAB $ForumsSubject TAB ForumsBodyText.getValue(); -// error("RT:" TAB ForumsComposeDlg.forum TAB ForumsComposeDlg.topic TAB ForumsComposeDlg.parentPost); } else if(ForumsComposeDlg.action $="Edit") { @@ -525,7 +524,6 @@ function ForumsPost() } %proxy.key = LaunchGui.key++; canvas.SetCursor(ArrowWaitCursor); -// error("DQ: " @ %ord NL %fieldData); DatabaseQuery(%ord,%fieldData,%proxy, %proxy.key); Canvas.popDialog(ForumsComposeDlg); } @@ -601,7 +599,7 @@ function GetTopicsList() ForumsTopicsList.refreshFlag = 0; ForumsGui.key = LaunchGui.key++; ForumsGui.state = "getTopicList"; - DatabaseQueryArray(8,$currentForumPage,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true); + DatabaseQueryArray(8,$currentForumPage,ForumsList.getSelectedID(),ForumsGui,ForumsGui.key,true); } //----------------------------------------------------------------------------- function GetTopicPosts() @@ -626,7 +624,6 @@ function GetTopicPosts() ForumsMessageVector.clear(); ForumsMessageList.clear(); } -// error("DQA:" @ 8 TAB ForumsComposeDlg.topic); DatabaseQueryArray(9,0,ForumsComposeDlg.Topic TAB ForumsMessageList.lastID,ForumsGui,ForumsGui.key,true); } //----------------------------------------------------------------------------- @@ -718,7 +715,7 @@ function ForumsGui::onDatabaseQueryResult(%this,%status,%resultString,%key) { if(%this.key != %key) return; -// echo("RECV: " @ %status TAB %resultString); +// echo("RECV: " @ %status NL "RS:" @ %resultString); if(getField(%status,0)==0) { switch$(%this.state) @@ -812,12 +809,12 @@ function ForumsGui::onDatabaseRow(%this,%row,%isLastRow,%key) { if(%this.key != %key) return; +// echo("RECV: " @ %row); %forumTID = getField(ForumsList.getRowTextbyId(ForumsList.getSelectedID()),2); switch$(%this.state) { case "ForumList": ForumsList.addRow(getField(%row,0),getField(%row,1) TAB getField(%row,2) TAB getField(%row,3)); -// error("ISLASTROW:" TAB %isLastRow); if ( %isLastRow ) //is last line { %ai = wonGetAuthInfo(); @@ -885,7 +882,7 @@ function ForumsGui::onDatabaseRow(%this,%row,%isLastRow,%key) %topic NL %poster NL %date NL - %isAuthor NL + %isAuthor NL %body; %li = ForumsMessageVector.getLineIndexByTag(%postId); @@ -920,7 +917,7 @@ function ForumsGui::NextThreadPage() canvas.SetCursor(ArrowWaitCursor); ForumsTopicsList.clearList(); $currentForumPage++; - DatabaseQueryArray(8,$currentForumPage,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true); + DatabaseQueryArray(8,$currentForumPage,ForumsList.getSelectedID(),ForumsGui,ForumsGui.key,true); ForumsTopicsList.refreshFlag = 0; } //----------------------------------------------------------------------------- @@ -935,7 +932,7 @@ function ForumsGui::PreviousThreadPage() canvas.SetCursor(ArrowWaitCursor); ForumsTopicsList.clearList(); $currentForumPage--; - DatabaseQueryArray(8,80,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true); + DatabaseQueryArray(8,80,ForumsList.getSelectedID(),ForumsGui,ForumsGui.key,true); ForumsTopicsList.refreshFlag = 0; } //----------------------------------------------------------------------------- @@ -1065,16 +1062,20 @@ function TopicsPopupDlg::onWake( %this ) TopicsPopupMenu.add("Reset Cache", 0); TopicsPopupMenu.add("Flag Ignore", 1); TopicsPopupMenu.add("Flag All Read", 2); - if(isModerator()) - TopicsPopupMenu.add(%line,-1); - TopicsPopupMenu.add("Request Admin Review", 3); - if(isT2Admin()) - { - TopicsPopupMenu.add("Lock Topic", 4); - TopicsPopupMenu.add("Unlock Topic", 5); - TopicsPopupMenu.add("Move Topic",6); - TopicsPopupMenu.add("Remove Topic", 10); - } + if(isModerator()) + { + TopicsPopupMenu.add(%line,-1); + TopicsPopupMenu.add("Request Admin Review", 3); + if(isT2Admin()) + { + TopicsPopupMenu.add(%line,-1); +// TopicsPopupMenu.add("Request Admin Review", 3); + TopicsPopupMenu.add("Lock Topic", 4); + TopicsPopupMenu.add("Unlock Topic", 5); + TopicsPopupMenu.add("Move Topic",6); + TopicsPopupMenu.add("Remove Topic", 10); + } + } Canvas.rePaint(); } @@ -1181,7 +1182,6 @@ function TopicsPopupMenu::onSelect( %this, %id, %text ) TopicsPopupDlg.key = LaunchGui.key++; TopicsPopupDlg.state = "requestReview"; %fieldData = ForumsList.getSelectedID() TAB ForumsTopicsList.getSelectedID() TAB getField(TopicsPopupMenu.topic.rcvrec,11); - error("RR: " @ 60 TAB %fieldData); databaseQuery(60, %fieldData, TopicsPopupDlg, TopicsPopupDlg.key); case 4: //Lock Thread @@ -1202,9 +1202,8 @@ function TopicsPopupMenu::onSelect( %this, %id, %text ) MessageBoxOK("NOTICE","Feature Not Yet Implemented"); case 10: //Remove Topic TopicsPopupDlg.key = LaunchGui.key++; - TopicsPopupDlg.state = "adminRemoveTopic"; + TopicsPopupDlg.state = "removeTopic"; %fieldData = 0 TAB TopicsPopupMenu.topic.id TAB getField(TopicsPopupMenu.topic.rcvrec,11); - error("RT: " @ 62 TAB %fieldData); databaseQuery(62, %fieldData, TopicsPopupDlg, TopicsPopupDlg.key); } canvas.popDialog(TopicsPopupDlg); @@ -1231,7 +1230,6 @@ function TopicsPopupMenu::ExecuteLock(%this) function TopicsPopupMenu::ExecuteMove(%this) { %fieldData = TopicsPopupMenu.topic.id TAB MoveToForumList.getSelected() TAB MoveToForumList.getText(); - error("MOVE: " @ %fieldData); Canvas.popDialog("MoveThreadDlg"); TopicsPopupDlg.key = LaunchGui.key++; TopicsPopupDlg.state = "moveTopic"; @@ -1269,17 +1267,19 @@ function TopicsPopupDlg::onDatabaseQueryResult(%this,%status,%recordCount,%key) } else { + MessageBoxOK("NOTICE",getField(%status,1)); switch$(%this.state) { case "lockTopic": - ForumsTopicsList.setRowStyle( getField(%recordCount,0), 3 ); - MessageBoxOK("NOTICE",getField(%status,1)); + ForumsTopicsList.setRowStylebyID( ForumsTopicsList.getSelectedID(), 3 ); case "unlockTopic": - ForumsTopicsList.setRowStyle( getField(%recordCount,0), 1 ); - MessageBoxOK("NOTICE",getField(%status,1)); + ForumsTopicsList.setRowStylebyID( ForumsTopicsList.getSelectedID(), 1 ); case "moveTopic": - ForumsTopicsList.setRowStyle( getField(%recordCount,0), 3 ); - MessageBoxOK("NOTICE",getField(%status,1)); + ForumsTopicsList.setRowStylebyID( ForumsTopicsList.getSelectedID(), 3 ); + ForumsTopicsList.removeRowByID(ForumsTopicsList.getSelectedID()); + case "removeTopic": + ForumsTopicsList.setRowStylebyID( ForumsTopicsList.getSelectedID(), 3 ); + ForumsTopicsList.removeRowByID(ForumsTopicsList.getSelectedID()); } } else @@ -1470,8 +1470,10 @@ function PostsPopupMenu::onSelect( %this, %id, %text ) case 10: //Remove Post PostsPopupDlg.key = LaunchGui.key++; PostsPopupDlg.state = "adminRemovePost"; - %fieldData = 0 TAB ForumsList.getSelectedID() TAB ForumsTopicsList.getSelectedID() TAB ForumsMessageList.getSelectedID() TAB PostsPopupMenu.post.authorID; - MessageBoxYesNo("CONFIRM","Remove Post?","PostsPopupMenu.adminCall(63,\"" @ %fieldData @ "\");",""); + %fieldData = ForumsMessageList.getSelectedID(); + MessageBoxYesNo("CONFIRM","Remove Post?","PostsPopupMenu.adminCall(14,\"" @ %fieldData @ "\");",""); +// %fieldData = 0 TAB ForumsList.getSelectedID() TAB ForumsTopicsList.getSelectedID() TAB ForumsMessageList.getSelectedID() TAB PostsPopupMenu.post.authorID; +// MessageBoxYesNo("CONFIRM","Remove Post?","PostsPopupMenu.adminCall(63,\"" @ %fieldData @ "\");",""); } canvas.popDialog(PostsPopupDlg); } @@ -1492,10 +1494,20 @@ function PostsPopupDlg::onDatabaseQueryResult(%this,%status,%recordCount,%key) return; if(getField(%status,0)==0) { - %selRow = ForumsMessageList.getRowNumByID(PostsPopupMenu.post.id); + %selRow = ForumsMessageList.getRowNumByID(PostsPopupMenu.post.id); + if (%this.state $= "adminRemovePost") + { + MessageBoxOK("NOTICE",getField(%status,1)); + ForumsMessageVector.deleteLine( %selRow ); + ForumsMessageList.removeRow( %selRow ); + ForumsMessageList.setSelectedRow( %selRow ); + CacheForumTopic(); + %this.State = "done"; + } if (%this.state $= "adminRemovePostPlus") { - ForumsMessageVector.deleteLine( %selRow ); + MessageBoxOK("NOTICE",getField(%status,1)); + ForumsMessageVector.deleteLine( %selRow ); ForumsMessageList.removeRow( %selRow ); ForumsMessageList.setSelectedRow( %selRow ); CacheForumTopic(); @@ -1522,11 +1534,11 @@ function PostsPopupDlg::onDatabaseQueryResult(%this,%status,%recordCount,%key) } else { - ForumsMessageVector.deleteLine( %selRow ); - ForumsMessageList.removeRow( %selRow ); - ForumsMessageList.setSelectedRow( %selRow ); + ForumsMessageVector.deleteLine( %selRow ); + ForumsMessageList.removeRow( %selRow ); + ForumsMessageList.setSelectedRow( %selRow ); CacheForumTopic(); - MessageBoxOK("NOTICE",getField(%status,1)); + MessageBoxOK("NOTICE",getField(%status,1)); } } else @@ -1658,6 +1670,7 @@ function ForumsMessagelist::onDatabaseQueryResult(%this,%status,%resultString,%k // echo("RECV: " @ %status TAB %resultString); if(getField(%status,0)==0) { + MessageBoxOK("COMPLETE",getField( %status, 1)); switch$(%this.state) { case "replyPost": diff --git a/base/scripts/webnews.cs b/base/scripts/webnews.cs index df56b96..75e6596 100644 --- a/base/scripts/webnews.cs +++ b/base/scripts/webnews.cs @@ -1,5 +1,10 @@ $WebLinkCount = 0; $currentPage = 0; +$newsCacheVersion = 1; + +if (!isObject(NewsVector)) + new MessageVector(NewsVector); + function LaunchNews() { LaunchTabView.viewTab( "NEWS", NewsGui, 0 ); @@ -13,38 +18,81 @@ function updatePageBtn(%prev,%next) // NewsNextBtn.setActive( %next ); } //----------------------------------------------------------------------------- +function NewsGui::onAdd(%this) +{ + NewsGui.tabsLoaded = 0; + if(!isDemo()) + { + if(!isObject(NCHGroup)) + new SimGroup(NCHGroup); + } +} +//----------------------------------------------------------------------------- function NewsGui::onWake(%this) { - Canvas.pushDialog(LaunchToolbarDlg); - %this.articleCount = 0; - %this.set = 1; // signifies the first (latest) set - NewsText.setValue(""); + Canvas.pushDialog(LaunchToolbarDlg); + %this.set = 1; // signifies the first (latest) set if ( isDemo() ) { - NewsPrevBtn.setVisible( false ); - NewsNextBtn.setVisible( false ); - NewsSubmitBtn.setVisible( false ); - NewsMOTDText.setValue( "Welcome to the Tribes 2 Demo!" ); - %this.addStaticArticle( "What's In The Demo?", "There are two training missions, and two multiplayer maps in this demo.\nIf you're new to the Tribes experience, you should consider trying out the training missions so you can become familiar with the basics of the game. Then, after you learn how to use your jets and weapons, jump into multiplayer on one of our Demo Servers to fight against other players like yourself." ); - %this.addStaticArticle( "How Do I Change Settings?", "There is a LAUNCH button in the lower left of this screen. Click on it and choose the SETTINGS option. There you will find ways to modify your graphics, textures, network settings and more. \nMost of these settings will be configured automatically based on your hardware configs, so try the game with the default settings for a while and see how it plays. Then, optimize your settings accordingly thereafter." ); -// %this.addStaticArticle( "Two Game Types", "Talk about CTF and Hunters" ); - } + if ( !%this.oneTimeOnly ) + { + %this.oneTimeOnly = 1; + NewsPrevBtn.setVisible( false ); + NewsNextBtn.setVisible( false ); + NewsSubmitBtn.setVisible( false ); + NewsMOTDText.setValue( "Welcome to the Tribes 2 Demo!" ); + %this.addStaticArticle( "What's In This Demo?", "There are two training missions, and two multiplayer maps in this demo.\n\nIf you're new to the Tribes experience, you should consider trying out the training missions so you can become familiar with the basics of the game. Then, after you learn how to use your jets and weapons, jump into multiplayer on one of our Demo Servers to fight against other players like yourself." ); + %this.addStaticArticle( "What Do I Do First?", "As a suggestion, you might consider checking out the on-line manual first. That manual is available at our 'Tribes 2 Central Download' website (www.tribes2centraldownload.com) in the 'T2 Manual' sub-folder. After you take a look at the manual, you should definitely try out the first two Training Missions. They'll give you most of the basics that you need to know in order to play competitively on-line. Of course, then you should go enter the mayhem known as Tribes and have a blast gaming against other players." ); + %this.addStaticArticle( "Where are the Options?", "There is a LAUNCH button in the lower left of this screen. Click on it and choose the SETTINGS option. There you will find ways to modify your graphics, textures, network settings, key configurations and more.\n\nMost of these settings will be configured automatically based on your system's hardware, so try the game with the default settings for a while and see how it plays. Then, optimize your settings accordingly thereafter." ); + %this.addStaticArticle( "What is Capture the Flag?", "Many of you have played versions of Capture the Flag (CTF) in real-life or in other computer games. Tribes 2's version is quite similar to what you're used to playing.\n\nThe object is to go grab the other team's flag and return it to your own base by taking it to your flag's position. Your team scores points for capturing the flag and some minor (tie-breaking) points for touching it.\n\nThe game has many roles and is definitely the most popular of the T2 games. You can play defense by setting up turret perimeters, deploying sensors and guarding the flag, or load three people into a bomber and make bombing runs over the enemy base, or many other things.\n\nTry them all out. There's certainly a role in there for you somewhere." ); + %this.addStaticArticle( "What is Hunters?", "Unlike CTF, Hunters is an individual game rather than a team game. The object of the game is to destroy other players, thus causing them to drop all the flags they are carrying. Each person carries at least one flag at all times, but the players that gather the most flags are the biggest targets.\n\nWhen you have a bunch of flags, take them to the 'Nexus'. The Nexus is waypointed with a marker on your HUD and is a column of glowing light. You can't miss it. Run through that column and you'll score points for the flags you carry.\n\nThe scoring for flags is a curve, so the more flags you carry, the more points you will score. Large amounts of flags can create very high scores if you capture them all at once." ); + %this.addStaticArticle( "What is the Full Version Like?", "There are six different game types, five different worlds, six vehicles, a whole slew of voices and tribe skins, all the weapons you saw in the demo, and 53 different maps. There's an on-line community with constantly updated News, Forums, Chat, Email, and a Player/Tribe Browser so that the whole community is at your fingertips. Also the Tribes player community is thriving. Player-created scripts, game mods, and maps are plentiful and high-quality. In short, it's much, much more than what you see in this demo." ); + %this.addStaticArticle( "What Video Drivers Do I Use?", "Please check your video card company's website for the latest video driver information.\n\nWe advise against the use of beta drivers. They often cause problems for our current players and should be avoided." ); + %this.addStaticArticle( "How to Tweak Framerate", "There are many graphic options in the game. If you are experiencing low framerate for some reason, there are two main areas you should try out.\n\nIf your CPU is relatively slow, then you should try turning down all the options associated with polygon count. These are listed in SETTINGS/GRAPHICS. You might also try a lower screen resolution, or even 16-bit color. 16-bit color has the side effect of using 16-bit z-buffering, which isn't as nice as 32-bit, but it's much faster.\n\nIf your video card doesn't have much VRAM, then you should consider turning down the options that use a lot of texture memory. These are found in SETTINGS/TEXTURES." ); + %this.addStaticArticle( "A Small Disclaimer", "This NEWS page is static, unlike the one in the real game. In otherwords, don't expect the constant community updates and news items that you will get after you buy the full version. ;)" ); + if ( WebLinksMenu.size() == 0 ) + WebLinksMenu.defaultList(); + } + } else { - Canvas.SetCursor(ArrowWaitCursor); - %this.state = "status"; - %this.key = LaunchGui.key++; - %this.caller = "GETNEWS"; - DatabaseQueryArray(0,0,"0" TAB "0",%this,%this.key); - // Fetch the message of the day: - NewsMOTDText.key = LaunchGui.key++; - NewsMOTDText.state = "isvalid"; - DatabaseQuery(0,"",NewsMOTDText,NewsMOTDText.key); - weblinksmenu.clear(); - weblinksmenu.key = launchgui.key++; - weblinksmenu.state = "fetchWeblink"; - DatabaseQueryArray(15,0,"WEBLINK",weblinksmenu,weblinksmenu.key); + Canvas.SetCursor(ArrowWaitCursor); + if (NewsTabGroup.tabCount() == 0) + { + NewsGui.startup = 1; + NewsTabGroup.addTab( 105, "FRONT PAGE", 1); + NewsTabGroup.addTab( 35500, "EVENTS"); + NewsTabGroup.addTab( 35501, "SPORTS"); + NewsTabGroup.addTab( 35503, "TECH"); + NewsTabGroup.addTab( 35504, "EDITORIAL"); + NewsTabGroup.lastID = 0; + + // Fetch the News + NewsTabGroup.setSelected( 105 ); // Select the tab by ID + NewsTabGroup.onSelect(105,"FRONT PAGE"); + + // Fetch the message of the day: + NewsMOTDText.key = LaunchGui.key++; + NewsMOTDText.state = "isvalid"; + DatabaseQuery(0,"",NewsMOTDText,NewsMOTDText.key); + + weblinksmenu.clear(); + weblinksmenu.key = launchGui.key++; + weblinksmenu.state = "fetchWeblink"; + DatabaseQueryArray(15,0,"WEBLINK",weblinksmenu,weblinksmenu.key); + + for(%ch=0; %ch<5; %ch++) + { + // ID.NAME.UPDATEID.ALLREAD.ARTICLECOUNT.LASTUPDATED + AddCatHeader(NewsTabGroup.getTabId(%ch), NewsTabGroup.getTabText(%ch), 0,0,""); + } + } } + if (!NewsTabGroup.lastID) + NewsTabGroup.lastID = 105; + if (!NewsGui.startup) + NewsGui.startup = 0; + WebLinksMenu.setSelected( 0 ); NewsPrevBtn.setActive( false ); NewsNextBtn.setActive( false ); @@ -70,46 +118,62 @@ function NewsGui::rebuildText(%this) { %article = %this.article[%i]; - if ( isDemo() ) - { - %topic = getField( %article, 0 ); - %body = getFields( %article, 1 ); + if ( isDemo() ) + { + %topic = getField( %article, 0 ); + %body = getFields( %article, 1 ); - %text = %text @ "" - @ %topic - @ "\n" - NL %body - @ "\n\n"; + %text = %text @ "" + @ %topic + @ "\n" + NL %body + @ "\n\n"; + } + else + { + %ai = wonGetAuthInfo(); + %isMem = 0; + for(%east=0;%east[edit] [delete] [comments ("@%postcount@")]"; + { + %editText = "[edit] [delete] [comments ("@%postcount@")]"; + } else %editText = "[comments ("@%postcount@"]"; @@ -125,21 +189,25 @@ function NewsGui::rebuildText(%this) NewsHeadlines.addRow( %i, %topic ); } NewsText.setValue(%text); + NewsHeadlines.setSelectedRow(0); } //----------------------------------------------------------------------------- function NewsGui::onDatabaseQueryResult(%this, %status, %RowCount_Result, %key) { if(%key != %this.key) return; -// echo("RECV: " @ %status); %this.maxDate = " "; %this.minDate = " "; + if(getField(%status,0)==0) { switch$(%this.caller) { case "GETNEWS": // record count - %this.acl = getField(%status,3); + NewsText.setValue(""); + NewsHeadlines.clear(); + %this.articleCount = 0; + %this.acl = getField(%status,3); %this.ttlRecords = getField( %status,2 ); %this.recordCount = getField( %RowCount_Result,0 ); if(%this.recordCount > 23) @@ -175,9 +243,12 @@ function NewsGui::onDatabaseQueryResult(%this, %status, %RowCount_Result, %key) //----------------------------------------------------------------------------- function NewsGui::onDatabaseRow(%this, %row,%isLastRow,%key) { - if ( %key != %this.key ) + if ( %key != %this.key ) return; -// echo("RECV: " @ %row); + + if ( %this.articleCount $= "" ) + %this.articleCount = 0; + %this.article[%this.articleCount] = %row; %this.recordSet--; if ( %this.articleCount == 0 ) @@ -200,7 +271,7 @@ function NewsGui::onDatabaseRow(%this, %row,%isLastRow,%key) //----------------------------------------------------------------------------- function NewsGui::addStaticArticle( %this, %topic, %body ) { - %tag = %this.articleCount; + %tag = %this.articleCount $= "" ? 0 : %this.articleCount; %this.article[%tag] = %topic TAB %body; %this.articleCount++; %this.rebuildText(); @@ -239,21 +310,28 @@ function NewsPostDlg::onWake( %this ) %y = %resH - %h; NP_Window.resize( %x, %y, %w, %h ); - // Fill the category menu (should we get this from somewhere?): - NewsCategoryMenu.clear(); - NewsCategoryMenu.add( "General", 0 ); - NewsCategoryMenu.add( "Announcements", 1 ); - NewsCategoryMenu.add( "Events", 2 ); - NewsCategoryMenu.add( "Updates", 3 ); - if ( $NewsCategory !$= "" ) - { - %selId = NewsCategoryMenu.findText( $NewsCategory ); - if ( %selId <= 0 ) - %selId = 1; - } - else - %selId = 1; - NewsCategoryMenu.setSelected( %selId ); + if (NewsCategoryMenu.getCount() == 0) + { + NewsCategoryMenu.clear(); + NewsCategoryMenu.add( NewsTabGroup.getTabText(0), NewsTabGroup.getTabID(0)); + NewsCategoryMenu.add( NewsTabGroup.getTabText(1), NewsTabGroup.getTabID(1)); + NewsCategoryMenu.add( NewsTabGroup.getTabText(2), NewsTabGroup.getTabID(2)); + NewsCategoryMenu.add( NewsTabGroup.getTabText(3), NewsTabGroup.getTabID(3)); + NewsCategoryMenu.add( NewsTabGroup.getTabText(4), NewsTabGroup.getTabID(4)); + NewsCategoryMenu.hasTabs = 1; + } + + %cat = getField(NewsGui.article[NewsPostDlg.selectedIdx],12); + if (!%cat || %cat == -1 || %cat == 35499) + %cat = 105; + error("Category: " @ %cat); + NewsCategoryMenu.setSelected( %cat ); + $NewsCategory = NewsCategoryMenu.getText(); + +} +//----------------------------------------------------------------------------- +function NewsCategoryMenu::onAdd(%this) +{ } //----------------------------------------------------------------------------- function NewsPostDlg::onSleep( %this ) @@ -290,7 +368,6 @@ function NewsPostDlg::onDatabaseQueryResult(%this, %status, %RowCount_Result, %k { if(%key != %this.key) return; -// echo("RECV: " @ %status); if(getField(%status,0)==0) { switch$(%this.state) @@ -334,12 +411,12 @@ function NewsPostDlg::onDatabaseQueryResult(%this, %status, %RowCount_Result, %k //----------------------------------------------------------------------------- function NewsText::onURL(%this, %url) { + NewsPostDlg.selectedIdx = NewsHeadlines.getSelectedID(); canvas.SetCursor(ArrowWaitCursor); switch$(getField(%url,0)) { case "editnews": %txt = NewsGui.article[getField(%url,1)]; - $NewsCategory = getField(%txt, 12); $NewsTitle = getField(%txt, 13); %body = getFields(%txt,14); %rc = getRecordCount(%body); @@ -347,12 +424,13 @@ function NewsText::onURL(%this, %url) %rtxt = %rtxt @ getRecord(%body, %i) @ "\n"; NewsPostBodyText.setValue(%rtxt); - NewsPostDlg.postId = getField(%url,2); - NewsPostDlg.EditUrl = getFields(%url,2); + NewsPostDlg.postId = getField(%url,3); + NewsPostDlg.EditUrl = getFields(%url,2); //topicid.postid.authorid.updateid + NewsPostDlg.selectedIdx = NewsHeadlines.getSelectedID(); Canvas.pushDialog( NewsPostDlg ); case "deletenews": - MessageBoxYesNo("CONFIRM","Delete this Article?","NewsPostDlg.doNewsDelete(\"" @ getField(%url,2) TAB getField(%url,3) @ "\");","canvas.setCursor(DefaultCursor);"); + MessageBoxYesNo("CONFIRM","Delete this Article?","NewsPostDlg.doNewsDelete(\"" @ getField(%url,3) TAB getField(%url,2) @ "\");","canvas.setCursor(DefaultCursor);"); // postid.topicid case "topiclink": %articleId = getField(%url,2); @@ -367,6 +445,7 @@ function NewsPostDlg::doNewsDelete(%this,%fields) { %this.key = LaunchGui.key++; %this.state = "delete"; + error("News Delete " @ %fields); DatabaseQuery(3,%fields, %this, %this.key); } //----------------------------------------------------------------------------- @@ -508,3 +587,45 @@ function WebLinksMenu::launchWebBrowser( %this ) else MessageBoxOK("ERROR","Invalid Link"); } +//----------------------------------------------------------------------------- +//- news stuff --------------------------------------------------------------- +//----------------------------------------------------------------------------- +function NewsTabGroup::onAdd( %this ) +{ + // Tab sets should be added in the onAdd function unless you have a really good reason... + %this.addSet( 1, "gui/shll_horztabbuttonB", "5 5 5", "50 50 0", "5 5 5" ); +} + +//----------------------------------------------------------------------------- +function NewsTabGroup::onSelect(%this, %id, %text) +{ + if (%this.getSelectedID() == %this.lastID && NewsGui.startup == 0) + return; + else + { + NewsTabFrame.setAltColor( %id == 105 ); + NewsGui.startup = 0; + NewsGui.state = "status"; + NewsGui.key = LaunchGui.key++; + NewsGui.caller = "GETNEWS"; + // ordinal.page.start.direction.category + DatabaseQueryArray(100,0,"0" TAB "0" TAB %id,NewsGui,NewsGui.key); + %this.lastID = %id; + } + +} +//----------------------------------------------------------------------------- +function addCatHeader(%id, %name, %updateID, %allRead, %articleCount, %lastUpdated) +{ + %cHeader = new scriptObject() + { + className = "TNewsCategoryHeader"; + ID = %id; + Name = %name; + UpdateID = %updateID; + allRead = %allRead; + articleCount = %articleCount; + lastUpdated = %lastUpdated; + }; + NCHGroup.Add(%cHeader); +} \ No newline at end of file diff --git a/base/version.cs b/base/version.cs deleted file mode 100644 index 55f6341..0000000 --- a/base/version.cs +++ /dev/null @@ -1 +0,0 @@ -buildVersion.setValue( "JUL 3, 2001, 1:09 PM (dmoore)" ); diff --git a/base/webcache/94/email1 b/base/webcache/94/email1 deleted file mode 100644 index 483ed15..0000000 --- a/base/webcache/94/email1 +++ /dev/null @@ -1,19 +0,0 @@ -94 -17 -23656 23656\nEAST\t|DEV| \t0\t29\n1\n04/10/2001 12:09pm\nJETT,,\n,\nFW: who would I send this to?\nSounds like your world...feeling better?\n\n\n--- Begin Forwarded Message ---\n\nFrom: Cowboy\nTo: EAST,\nCC: COWBOY,\nSubject: who would I send this to?\nDate Sent: 04/10/2001 12:06pm\n\nI have this seemingly minor request of the Dev team, but I don\'t know who to send it to. Could you help me?\n\n-------- Text follows: --------\n\nThe GuiPlayerView control is SO awesome. It displays the players quite well... but... I have made a script that is of much use to many modellers and skinners. If utilizes the GuiPlayerView control to actually display any DTS object in the game.\n\nIt seems to work very well, with a few minor exceptions:\n\n* Very large models do not render well. There is a lot of flicker. Can that be eliminated?\n\n* Zoom doesn\'t seem proportional to the size of the viewed object. It seems to have a fixed minimum and maximum size. Can it be made either proportional or just larger, so that people can zoom in closer and zoom out farther? (to more easily see smaller and larger models)\n\n* A few models don\'t render at all (I was wondering why) like: heavy_male_dead for example.\n\n* I can understand the logic behind attaching weapons to certain \"registration points\" on models, this way each player can be shown holding a weapon. Would it be possible to disable this \"spinfusorama\" on all non-player models? It makes the grav cycle look kinda funny :P\n\nI know that this control was only intended for displaying players in the GameGui, hence its name \"GuiPlayerView\" .. but with a few minor tweaks, skinners and modellers will have a SUPER useful tool at their disposal!\n\nThanks for listening, DEV team guys. Keep up the good work!\n\nBTW, if you want to check out the script I have created, it\'s available here: http://www.tribalwar.com/cowboy/cb.cgi?page=dts and is about 2k in size (nice and easy)\n\\\n- Cowboy\n\n -32524 32524\nEAST\t|DEV| \t0\t29\n1\n04/14/2001 11:41am\n,\n,\nFULL COMMUNITY TEST\nYou have been given full access to the Community for the load test period. Please utilize as many of the features in the Community (except for chat and News Submissions) as you can. Thanks for your help and we will be announcing the Browser unlock on the NEWS page at the successful conclusion of this test\n -152157 152157\nEAST\t|DEV| \t0\t29\n1\n04/24/2001 05:01pm\nJETT,,\n,\nFW: Questions about moding, more like problems\nCan you help this guy?\n\n\n--- Begin Forwarded Message ---\n\nFrom: Chain\nTo: EAST,\nCC: \nSubject: Questions about moding, more like problems\nDate Sent: 04/24/2001 04:11pm\n\nOkay Blackcrusader told me to contact you. Anyhow, I been trying to Add a new weapon(I Created a file for mod name in gamedata i unziped Scripts.vol in base to my folder and i Added in all the files required that i know of (inventory.cs, Inventoryhud.cs player.cs Weapons.cs all the info for my new weapons and made a dupe in the weapons folder like chaingun but renamed it to what weapon name i wanted then just edit that) but anyhow i did all that. Now when i run my server using these lines (Shortcut whatever, Ispaen.exe 28000 tribes2.exe -dedicated -mod HeavyMetal) it will say like Error canot Exceed 5* and other Errors to then it will cyle thru down to mission name and it will crash/rinse wash repeat. I could use some help on this its really drivingme nuts, i redid everything atleast 10 times not and i keep runing into the same problems. ANY Help would be Apreciated?\n\n -176846 176846\nQIX\t|DEV| \t0\t60\n1\n04/26/2001 07:13pm\nJETT,,\nDEATHACE,,\nFW: SuperAdminList is broken can you please help\nGreg,\n\nPlease look into this at your earliest convenience. Thanks.\n\n-- Dave.\n\n\n--- Begin Forwarded Message ---\n\nFrom: eQ-Deathace\nTo: QIX,\nCC: \nSubject: SuperAdminList is broken can you please help\nDate Sent: 04/26/2001 02:32pm\n\nHi Dave,\nRuss here from BarrysWorld i seem to have a problem\nI used to have AdminList and SuperAdminList with values of the WonID separated with slashn \\ n so 12345\\\n12345\\\n\n\nnow with the new patch its all broken i have tried \n12345 TAB 12345 \n12345\\t12345 \n12345 SPACE 12345 all these do not work \ncan you please tell me how i can add them to the serverprefs file so it actually uses the list like it did before.\n\nthis is very urgent we currently have no admins covering our servers and we need such a facility more than using the SAD password system as passwords get leaked and others cause havoc\n\nplease help asap its very much appreciated \n\nRuss\\n\n\n -184642 184642\nSubMerged\t[F]\t1\t88603\n1\n04/27/2001 04:03pm\nJETT,,\nQIX,,\nHello.\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n -184720 184720\nSubMerged\t[F]\t1\t88603\n1\n04/27/2001 04:08pm\nJETT,,\n,\nRE: RE: Hello.\nIf you don\'t mind me asking..What are you trying to do to fix it? I\'d really like to help...See, I missed the beta, and I am in denial ;)\n\n----------------------------------\n On 04/27/2001 04:07pm jett wrote:\n\nwe are aware.\n\n----------------------------------\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n\n -184839 184839\nSubMerged\t[F]\t1\t88603\n1\n04/27/2001 04:17pm\nJETT,,\n,\nRE: RE: RE: RE: Hello.\nIndeed I am...\nI\'ve got a 1 GHZ Athlon T bird\n384 megs of 2-2-2 RAM\nRadeon 64mb DDR ViVo (overclocked, tweaked)\nSb Live! Value\nWin2k. System is stable as a rock. Latest drivers for everything..Even updated my BIOS.\nI run the game in 1024x768x32...All details at half besides shape + terrain, graphic detail. Those are a notch below full. Mp3 music off. Average 30 fps when people are around outside, 40 when no one is there. Texture compression @ fastest.\nI can run the game in 640x480, lowest possible sound settings, lowest graphic settings, and only get about 50 fps outside, with people around. This same setup gives me 100 + FPS in Quake 3, and a 3200 3D Mark 2001 score. It\'s got me stumped.\n\n----------------------------------\n On 04/27/2001 04:11pm jett wrote:\n\nThere are currently 200 or more system configs. There are various issues with different setups. We are going through them one by one. Are you having problems? \n----------------------------------\n On 04/27/2001 04:08pm SubMerged wrote:\n\nIf you don\'t mind me asking..What are you trying to do to fix it? I\'d really like to help...See, I missed the beta, and I am in denial ;)\n\n----------------------------------\n On 04/27/2001 04:07pm jett wrote:\n\nwe are aware.\n\n----------------------------------\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n\n\n\n -187423 187423\nQIX\t|DEV| \t0\t60\n1\n04/27/2001 07:46pm\nSUBMERGED,,\nJETT,,\nRE: Hello.\nWhat FPS problem? Please be specific so we can answer more appropriately. Video card, system spec, etc. would help us to give you a specific answer.\n\nThanks, man.\n\n===========================\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n -222370 222370\nQIX\t|DEV| \t0\t60\n1\n05/01/2001 10:26am\nJETT,,\n,\nFW: Missile launcher cheat\n\tLet\'s go back to the \"must be fully submerged to fire missile launcher as torpedo\". \n\nIf ANY of your bounding box is above water, then it should act like a missile launcher.\n\n\n--- Begin Forwarded Message ---\n\nFrom: SmOkkin\' Joe\nTo: QIX,\nCC: \nSubject: Missile launcher cheat\nDate Sent: 04/30/2001 06:46pm\n\ni am not sure whether this has been fixed or not but players can stand with their toes in the water and have the choice of the launcher firing manually or in locking mode w/out being totally submerged- therefor the whole player doesn\'t need to be under water and slower.\n\n-SmOkkin\' Joe\n\nAlso, can you post in the news whether or not their will be a recording feature.\nalso how can one find his/her buddies when the filters have refreshed. there are no little white arrows!\n;p\n\n -225407 225407\nMeatPancake\t\t0\t654\n1\n05/01/2001 05:52pm\nJETT,,\n,\nHey\n\tWhere are ya at?\t\n -232799 232799\nSubMerged\t[F]\t1\t88603\n1\n05/02/2001 03:57pm\nJETT,,\n,\nRE: RE: RE: RE: RE: RE: Hello.\n\nAlright, I\'ll try everything you listed, but I don\'t get what \'Interior Shapes\' is. Is that Interior detail under GFX? Or do you mean Interior texture detail...?\n\n-SubMerged[F]\n----------------------------------\n On 05/01/2001 04:13pm jett wrote:\n\nI have done a bunch of tests on that video card this weekend. I found the card to be very stable for one. Second, I found that redeon\'s have good texture swapping and fill, but don\'t have the power during high poly count scenes. You should be able to run with all texture details on high. You do on the other hand have to turn down detail settings. Particularly on interior shapes. You should run the game at 800 x 600 to get optimal frame rates. At those settings, everything should look good and play good.\n\nkeep me informed on how this helps.\n\njett\n\n----------------------------------\n On 04/27/2001 04:17pm SubMerged wrote:\n\nIndeed I am...\nI\'ve got a 1 GHZ Athlon T bird\n384 megs of 2-2-2 RAM\nRadeon 64mb DDR ViVo (overclocked, tweaked)\nSb Live! Value\nWin2k. System is stable as a rock. Latest drivers for everything..Even updated my BIOS.\nI run the game in 1024x768x32...All details at half besides shape + terrain, graphic detail. Those are a notch below full. Mp3 music off. Average 30 fps when people are around outside, 40 when no one is there. Texture compression @ fastest.\nI can run the game in 640x480, lowest possible sound settings, lowest graphic settings, and only get about 50 fps outside, with people around. This same setup gives me 100 + FPS in Quake 3, and a 3200 3D Mark 2001 score. It\'s got me stumped.\n\n----------------------------------\n On 04/27/2001 04:11pm jett wrote:\n\nThere are currently 200 or more system configs. There are various issues with different setups. We are going through them one by one. Are you having problems? \n----------------------------------\n On 04/27/2001 04:08pm SubMerged wrote:\n\nIf you don\'t mind me asking..What are you trying to do to fix it? I\'d really like to help...See, I missed the beta, and I am in denial ;)\n\n----------------------------------\n On 04/27/2001 04:07pm jett wrote:\n\nwe are aware.\n\n----------------------------------\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n\n\n\n\n\n -232947 232947\nSubMerged\t[F]\t1\t88603\n1\n05/02/2001 04:12pm\nJETT,,\n,\nRE: RE: RE: RE: RE: RE: Hello.\nK, I tried everything. Boosted my frame rate from 30 to 40. The lower resolution did it. But in lower resolution, the game looks like crap. I really need to run in 1024x768, it\'s what I\'m used to.\n\nMaybe I\'ll just buy a Geforce 2 Ultra. :\\\n\n----------------------------------\\n On 05/01/2001 04:13pm jett wrote:\n\nI have done a bunch of tests on that video card this weekend. I found the card to be very stable for one. Second, I found that redeon\'s have good texture swapping and fill, but don\'t have the power during high poly count scenes. You should be able to run with all texture details on high. You do on the other hand have to turn down detail settings. Particularly on interior shapes. You should run the game at 800 x 600 to get optimal frame rates. At those settings, everything should look good and play good.\n\nkeep me informed on how this helps.\n\njett\n\n----------------------------------\n On 04/27/2001 04:17pm SubMerged wrote:\n\nIndeed I am...\nI\'ve got a 1 GHZ Athlon T bird\n384 megs of 2-2-2 RAM\nRadeon 64mb DDR ViVo (overclocked, tweaked)\nSb Live! Value\nWin2k. System is stable as a rock. Latest drivers for everything..Even updated my BIOS.\nI run the game in 1024x768x32...All details at half besides shape + terrain, graphic detail. Those are a notch below full. Mp3 music off. Average 30 fps when people are around outside, 40 when no one is there. Texture compression @ fastest.\nI can run the game in 640x480, lowest possible sound settings, lowest graphic settings, and only get about 50 fps outside, with people around. This same setup gives me 100 + FPS in Quake 3, and a 3200 3D Mark 2001 score. It\'s got me stumped.\n\n----------------------------------\n On 04/27/2001 04:11pm jett wrote:\n\nThere are currently 200 or more system configs. There are various issues with different setups. We are going through them one by one. Are you having problems? \n----------------------------------\n On 04/27/2001 04:08pm SubMerged wrote:\n\nIf you don\'t mind me asking..What are you trying to do to fix it? I\'d really like to help...See, I missed the beta, and I am in denial ;)\n\n----------------------------------\n On 04/27/2001 04:07pm jett wrote:\n\nwe are aware.\n\n----------------------------------\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n\n\n\n\n\n -237531 237531\nEAST\t|DEV| \t0\t29\n1\n05/03/2001 10:39am\nEAST,QIX,GOT MILK?,SNOW LEOPARD,HEXABOLIC,BIGDEVDAWG,UBERBOB,SNE/\\\\KER,SYMLINK,DRAWKWARD,TOMIN8R,OLDDAWG,JETT,TWITCH,MONGO,TODESRITTER,FRANKRIZZO,JIMMY,KIDNEY THIEF,INFIRMO,MAXIMUS,LITTLEMEANIE,RICKETS,MISSING,ETCMODEL02,MORSTAF,,\n,\nAll Tribe mailing Test\nDon\'t reply, I\'m only testing.\n -241418 241418\n_Psychosis\t[DHS]\t0\t17621\n1\n05/03/2001 07:03pm\nJETT,,\n,\nProfile title and rank messed up!\nHi Jett, someone said I could contact you about browser problems. Seems my Title and rank in my profile is messed up. It shows it fine in my Tribe as Grand Admiral and rank 4. In my profile however it shows 4 as my title and 2567 as my rank. Anything you can do for that or what?? \n\nThats just a little peeve I guess. Don\'t really make a difference because otherwise this game really and truly kicks butt. Best game I have had the joy of playing since......well....Tribes1 :)\n\nThank You,\n[DHS]_Psychosis\n -245554 245554\nEAST\t|DEV| \t0\t29\n0\n05/04/2001 12:08pm\nJETT,,\n,\nRE: FW: Profile title and rank messed up!\nThx Jett.\n\n----------------------------------\n On 05/04/2001 12:00pm jett wrote:\n\n\ncould you help this guy out?\n\njett\n\n--- Begin Forwarded Message ---\n\nFrom: [DHS]_Psychosis\nTo: JETT,\nCC: \nSubject: Profile title and rank messed up!\nDate Sent: 05/03/2001 07:03pm\n\\nHi Jett, someone said I could contact you about browser problems. Seems my Title and rank in my profile is messed up. It shows it fine in my Tribe as Grand Admiral and rank 4. In my profile however it shows 4 as my title and 2567 as my rank. Anything you can do for that or what?? \n\nThats just a little peeve I guess. Don\'t really make a difference because otherwise this game really and truly kicks butt. Best game I have had the joy of playing since......well....Tribes1 :)\n\nThank You,\n[DHS]_Psychosis\n\n\n -248623 248623\nSubMerged\t[F]\t1\t88603\n0\n05/04/2001 06:07pm\nJETT,,\n,\nRE: RE: RE: RE: RE: RE: RE: RE: Hello.\nHehe, I know...I think I\'m gonna put my Radeon on ebay today. :)\n\n----------------------------------\n On 05/04/2001 12:05pm jett wrote:\n\njust to let you know, the GF 2 Ultra runs Tribes2 in all its glory. Yes, everything on its highest setting with ultra smooth framerate. Plus, it should last for quite some time.\n\njett\n\n----------------------------------\n On 05/02/2001 04:12pm SubMerged wrote:\n\nK, I tried everything. Boosted my frame rate from 30 to 40. The lower resolution did it. But in lower resolution, the game looks like crap. I really need to run in 1024x768, it\'s what I\'m used to.\n\nMaybe I\'ll just buy a Geforce 2 Ultra. :\\\n\n----------------------------------\n On 05/01/2001 04:13pm jett wrote:\n\nI have done a bunch of tests on that video card this weekend. I found the card to be very stable for one. Second, I found that redeon\'s have good texture swapping and fill, but don\'t have the power during high poly count scenes. You should be able to run with all texture details on high. You do on the other hand have to turn down detail settings. Particularly on interior shapes. You should run the game at 800 x 600 to get optimal frame rates. At those settings, everything should look good and play good.\n\nkeep me informed on how this helps.\n\njett\n\n----------------------------------\n On 04/27/2001 04:17pm SubMerged wrote:\n\nIndeed I am...\nI\'ve got a 1 GHZ Athlon T bird\n384 megs of 2-2-2 RAM\nRadeon 64mb DDR ViVo (overclocked, tweaked)\nSb Live! Value\nWin2k. System is stable as a rock. Latest drivers for everything..Even updated my BIOS.\nI run the game in 1024x768x32...All details at half besides shape + terrain, graphic detail. Those are a notch below full. Mp3 music off. Average 30 fps when people are around outside, 40 when no one is there. Texture compression @ fastest.\nI can run the game in 640x480, lowest possible sound settings, lowest graphic settings, and only get about 50 fps outside, with people around. This same setup gives me 100 + FPS in Quake 3, and a 3200 3D Mark 2001 score. It\'s got me stumped.\n\n----------------------------------\\\\\n On 04/27/2001 04:11pm jett wrote:\n\nThere are currently 200 or more system configs. There are various issues with different setups. We are going through them one by one. Are you having problems? \n----------------------------------\n On 04/27/2001 04:08pm SubMerged wrote:\n\nIf you don\'t mind me asking..What are you trying to do to fix it? I\'d really like to help...See, I missed the beta, and I am in denial ;)\n\n----------------------------------\n On 04/27/2001 04:07pm jett wrote:\n\nwe are aware.\n\n----------------------------------\n On 04/27/2001 04:03pm SubMerged wrote:\n\nI\'m gonna make this short, simple...\nAre you guys aware of the FPS problem? I made a post in the Game Feedback forum but no one responded.\n\n\n\n\n\n\n\n\n -266906 266906\n[ES]starbuck\t[ES]\t1\t249643\n0\n05/06/2001 01:24pm\njett,\n,\nTribe Invitation\n\n[ES]starbuck has invited you to join Extermination Squad\nClick link to either [ ]_ACCEPT or [ ]_REJECT this invitation\n diff --git a/console_start.cs b/console_start.cs index 0107967..68998fa 100644 --- a/console_start.cs +++ b/console_start.cs @@ -310,7 +310,7 @@ else if ($LaunchMode $= "DedicatedServer" && $PureServer) { if (setPureServer(1)) - $Con::prompt = "PURE%"; + $Con::prompt = "PURE% "; } // load autoexec once for command-line overrides: @@ -646,6 +646,10 @@ function StartupGui::checkLoginDone( %this, %editAcct, %emailCheck ) { %msg = "Email check failed - You can not request more than one account info email per every 24-hour period."; } + else if ( %code == -2806) + { + %msg = "Invalid Login Name"; + } else if(%errorString !$= "") { %msg = "Error - " @ %errorString; @@ -1063,7 +1067,11 @@ if ($LaunchMode $= "DedicatedServer" || } else { - videoSetGammaCorrection($pref::OpenGL::gammaCorrection); + // WinNT does not currently support gammaCorrection (disable in options) + $Video::setGammaCorrectionSupported = !(($platform $= "windows") && ($platformVersion $= "winnt")); + if($Video::setGammaCorrectionSupported) + videoSetGammaCorrection($pref::OpenGL::gammaCorrection); + if(!createCanvas()) { quit(); @@ -2001,6 +2009,7 @@ else maxLength = "16"; password = "0"; glowOffset = "9 9"; + IRCName = true; }; new ShellTextEditCtrl() { profile = "NewTextEditProfile";