text:
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [23.2.0] - 2023-06-16
### Changes

 Big Feature: MSAA

> The return of a long forgotten feature, with optimizations and improvements
> Noticeable reduction to artifacts caused by subpixel geometry and glinting.

 Big Feature: SCPUI

> A modernized approach to defining menus in FS
> Tired of having your Menus in FSO be at a resolution of potato? Use SCPUI to have them rendered from Fake-HTML to the actual screensize as opposed to a prebuilt graphics!
> Tired of being limited to whatever people in the SCP hardcoded in for buttons? Use SCPUI to define buttons and all other manner of shenanigans as Lua-code just as you like.
> Tired of needing to replace a bajillion interface graphics to reskin FSO? Use SCPUI, and especially Mjn's existing collection of Lua, CSS, Fake-HTML and images, and you only need to replace about 250 graphics.

 Big Feature: Localized Volumetric Nebulae

> Allows specifying a POF as the "hull" of a nebula, which will be rendered using ray marching
> Further details can be found on the [GitHub Pull Request](https://github.com/scp-fs2open/fs2open.github.com/pull/5231)
> Note: As this is a new feature, many improvements and optimizations remain to be made
> Adapted from Andrew Schneider's 2015 SIGGRAPH talk "The real-time volumetric cloudscapes of Horizon: Zero Dawn"

Game:

- Per bank autoaim

Animation:

- Fix CTD on bad legacy animation data
- Add proper time wrapping for Animations
- Actually handle a mssing `Fade_anim` properly

Controls:

- Organize and map additional keys to librocket
- Catch when SDL fails to open a joystick that is enumerated by the OS

FRED:

- Add SpaceMouse support
- Add pre-parse enums support
- Add music player to FRED
- Enhanced SEXP comments
- FRED Dialog for Volumetrics
- QoL improvements to Object Editor
- Add FRED support for the "required weapon" feature
- SEXP Tree search and filter

QtFRED:

- Campaign Editor
- Add SpaceMouse support
- Make 'player starts in chase view' a toggle

Graphics:

- "The other great shader flag removal effort"
- Enhance handling of motion debris
- Expose texture filtering as a built-in option
- Improved particle culling and performance
- Optimized trail renderer
- Beam Particles
- Multiple lighting profiles
- Use volume particles for poofs
- Optimize for simple trails
- Kink shamed the laser bitmaps

HUD:

- Flag to apply HUD shudder to chase view
- Add missing HUD gauges
- Explicitly do not split lines when making the message log

Localization:

- Add some XSTR entries

Modding:

- Mapify built-in strings
- Allow `gameplay_profiles.tbl` to be an alias of `ai_profiles.tbl`
- Modular rank table
- Toggle auto-assigning personas
- Add some parameters for corkscrew starting angle
- Add clip planes to `game_settings.tbl`
- Add `+Use ship` as a Template
- Modular messages table
- Add arbitrary curves support
- Traitor overrides
- Add support for loose lz4 compressed files
- Add per-species warp effects

Models:

- Fix submodel sanity check
- Fix techroom modelnum references
- Adjust movement sanity checks to account for more situations
- Modular POF Features 2
- Add fov values to .pof models
- Add a Translation Moveable
- Remove model octants
- Fix glowpoints on animated submodels
- Update type_flags when dock name changes
- Add additional checks for Animation List handling of nonexistent polymodel instances
- Virtual POFs: Modify Subsystems
- Validate chunk size to avoid alignment crash and add align skip flag

Multiplayer:

- Generic Lua Multiplayer RPC

Performance:

- Increase sound update rate
- Add `line of sight` as an optional AI override

SEXPs:

- `turret-fired-since`, returns `true` if the specified turret has fired in the last `N` milliseconds
- `is-ship-emp-active`, returns `true` if the specified ship or list of ships is currently under an EMP effect
- `turret-has-primary` and `turret-has-secondary`, returns `true` if the specified turret contains the specified weapon
- `has-armor-type`, returns `true` if the specified ship or subsystem has the specified armor type
- `OPF_ANY_HUD_GAUGE` and `OPF_EVENT_NAME`, new Lua SEXP parameters
- Enhance Dynamic SEXPs with parent parameters
- Add "afterburn hard" AI goal flag

Scripting:

- Add option to deprecate hooks
- Get audiostream duration in float seconds
- Lua method to check if the game has focus
- `On warp complete` hook
- Allow Lua to set the Discord presence to custom strings
- Add virtvars for goal satisfaction and score
- Allow scripts to read and add LuaEnums
- Funcs and virtvars for SCPUI pause screen
- Expose pausing weapon sounds
- Make collision_group_id accessible to parse objects
- Pass shortcut key character to Lua as a hook variable
- Lua method to free all loaded models
- `On Asteroid Created` hook
- SCPUI methods required for handling closeup briefing icons
- Expose some Nebula settings to Lua
- SCPUI mission log
- SCPUI APIsfor the Game Help UI, medals access, and control config
- Force expand wings instead of toggle for SCPUI
- Add misc. validity checks
- Convert hotkey types to enum
- Finalize SCPUI API
- Blocking `On Frame` executor
- SCPUI Hud Config API
- Configurable restriction for ships that accept Lua player orders
- Add `ship::isPlayer()`
- Lua access to default countermeasures class
- Flag to check if a ship or weapon class is player allowed
- Add hooks for comm menu opening/closing

Technical:

- Improve CFLAGS handling

## [22.2.0] - 2022-08-06

```
Changelog note:
As of this version, in an attempt to make the changelog easier to navigate and read,
each section will have collapsible subsections, ordered alphabetically by topic.
Headlining features will always be on top.
```
### Added

 Big Feature: SEXP Containers

> As opposed to a SEXP variable, which stores only one value, a SEXP container stores a collection of values.
> Consequently, containers allow for handling data in much more sophisticated ways than variables.
> Containers come in two types:
> * List container - an ordered sequence of values, sort of a cross between Python lists and deques
> * Map container - pairs of keys associated with data, like Lua tables or Python dictionaries
> Further details in the [SEXP Containers announcement thread](https://www.hard-light.net/forums/index.php?topic=98209.0)

 Big Feature: LuaAI

> LuaAI allows scripters to add a new AI Goal (like ai-chase) that will run script instead of internal logic.
> Adding a Lua AI section in a -sexp.tbm and a few functions to a corresponding -sct.tbm to define the AI logic in certain conditions. More documentation on these functions is available in the LuaAISEXP-Object of the Scripting Docs.

AI:

- `$AI ignores aspect lock for leading:` Flag, which lets AI continue to lead their target while performing an Aspect Lock

Animation:

- `pause on reverse` Flag

Controls:

- Handle international keyboard layouts
- Re-Add `-joy-info` command line flag, for slightly quicker Joystick GUID retrieval
- Add `-controlconfig_tbl` command line flag to print out a template controlconfigdefaults.tbl

FRED:

- Support the full number of nebula poofs using a multi-select list
- Add the ability to edit nebula fog colors, since that previously was not part of the FRED UI
- Flags `same-arrival-warp-when-docked` and `same-departure-warp-when-docked` to allow docked ships to still use custom warp parameters
- Allow highlighting custom-colored events by drawing a border on them
- Can now rotate objects relative to other objects in the Object Editor
- Dialog to calculate relative distance and orientation between ships
- Flag "Point using uvec" to point ships while incorporating the ship's uvec
- `ai-attackable-if-no-collide` flag, which prevents turrets from ignoring a target with `no_collide`

QtFRED:

- Reinforcements Dialog
- Implemented Replace Data for Number and String
- Texture Replacement Dialog
- TBL Viewer in the Ship Editor

Graphics:

- Allow particles to use a random chance for spawning through the `+Chance` parameter
- Command-line parameter `-fov_cockpit` which allows setting an FoV for the cockpit model separately from the viewport FoV. This allows using custom FoVs without distorting the cockpit
- Allow user to export environment map to a PNG from the F3 Lab by pressing M
- Weapon lights: Configurable lighting data for weapons, both on a per-weapon basis and globally via lighting profiles
- Implemented debug sphere queuing and rendering

Localization:

- Make strings for Match Speed Indicator, Glide Indicator, and Afterburner Indicator translateable

Modding:

- `game_settings.tbl` setting `$Supernova hits at zero:`, which causes Supernovae to hit when the timer gets to 0, instead of the default of hitting 5 seconds before the time is up
- `game_settings.tbl` settings `$Show-subtitle uses pixels:` and `$Show-subtitle base resolution:`, which can be used in conjunction to scale subtitles
- `game_settings.tbl` setting `$Always warn player about unbound keys used in Directives Gauge:`, to show such warning to players when needed (without it these warnings only apply to Training Missions)
- Ship flags `fail-sound-locked-primary` and `fail-sound-locked-secondary` to allow the firing fail sound to play if the player tries to fire weapons that are locked
- Subsystem Flag "hide turret from loadout stats"
- Allow weapon to override turret name with `$Turret Name:`

Multiplayer:

- Save PXO stats to local pilot file

Performance:

- Preload subspace tunnel if the `mission-set-subspace` SEXP is used in the mission

SEXPs:

- `cancel-future-waves`, for stopping wings that still had waves queued from spawning
- Added optional flag to `show-subtitle-text` and `show-subtitle-image` to not change the subtitle aspect ratio
- `set-nav-color` and `set-nav-visited-color`, which allows setting custom colors to Navpoints in a mission

Scripting:

- Support for decals (see `decaldefinition` in the Scripting documentation)
- Missile list iterator: `mn.getMissileList()`
- Campaign Start hook: `On Campaign Begin`
- Player Loaded hook: `On Player Loaded`
- Added a few functions to get information on HUD gauges (check `HudGauge` in the Scripting documentation)
- Function `ship.checkVisibility` which checks if a ship can appear on the viewer's radar
- Function `hu.flashTargetBox` which causes the target box to flash
- Function `hu.getTargetDistance` to return the distance to target as reported by the HUD
- Function `mn.hasLineOfSight` which checks if one point has line of sight to the other
- Function `mn.getLineOfSightFirstIntersect` which checks for line of sight and returns the distance of the first interruption if not
- Variable `gr.CurrentResizeMode`, which can get or set the scaling mode to be used by the `gr.*` drawing methods
- Function `gr.draw3dLine`, which draws a line in space between two points
- Allow SCPUI to run `$On Briefing Stage:` hooks
- New bindings to allow proper hooking into control actions based on the control's enumeration name
- Allow scripted controls to override hardcoded functionality
- Fennel script support
- Lua BitOp 1.0.2 extension library, allowing the usage of bit operations

Technical:

- Class encapsulation for Volition's linked list
- Improve a debug console message to be more informative
- Type-safe `TIMESTAMP` class
- Add `timestamp_since()` function
- Add methods to compare timestamps, calculate deltas from an existing timestamp and a number of milliseconds, and to calculate deltas between timestamps
- Create a command line option for logging data packets
- Add more information to Multi-related debug logging
- Enable Doxygen for QTFred
- Set up Mac builds on CI, allowing builds to be published automatically for Mac
- Add some logging to `waitAsync`

### Changed

Game:

- Only display one popup when the player gets to the main hall
- Allow an unlimited number of ship flags to be parsed at once

AI:

- Improve Player Orders to allow for a nearly unlimited number of player orders, as opposed to the 32 before
- Update `ai_turn_towards_vector` to use a target velocity for banking

Audio:

- Allow unlimited soundtracks and spooled music (Previously limited to 30 and 50 respectively)
- Allow unlimited sound effects
- Dynamically set the maximum number of audio channels based on how many the user's system can support

FRED:

- CTRL+V is now add-paste (used to be CTRL+P)
- CTRL+SHIFT+V is now overwrite-paste (used to be CTRL+V)
- Replace `Always_show_goals` with `Toggle_showing_goals` which toggles whether the goals are shown, and works in any mission (instead of only Training Missions)
- No longer disable icon dropdowns for models that have their own icons
- No longer change the ship class when the icon type is a special popup
- Make the number of player orders FRED can handle dynamic
- Restore original Error Checking behavior where the function would exit after one check (for consistency)
- Exclude player ships from Error Checking for ships in a wing sharing the same orders
- Split "No subsystems found" and "Not all subsystems have a record in ships.tbl" warnings into two different warning flags

Graphics:

- Improved light attenuation to look more real
- Increase POF vertex limit, allowing up to `2^32 - 1` vertices to be used by a single subobject

Performance:

- Delay `ai_new_maybe_reposition_attack_subsys` to only run once a second. Before this change, it could take around 13% of runtime in crowded missions
- Cached subsystem indexing, speeding up subsystem lookups, which run for multiple ships, multiple times per frame

Scripting:

- Enhance help text for Lua SEXPs
- Converted the following Lua Hooks to the new format to add documentation: `On Death`, `On Game Init`, `On Ship Collision`

Technical:

- Turn `insertion_sort` into a templated function that uses assignment
- CMake: Update `PREBUILT_VERSION_NAME` to latest (mac libs)
- Optimized space used in the new POF version
- Cleanup model code
- Cleanup beam light functions by consolidating some duplicated code and removing unreachable logic
- Cleanup wing wave code
- Move special parsing functions into new `parsehi.cpp` and `parsehi.h` files
- Actually clear delayed SSM parsing data when it's no longer needed
- Allow C++ to interact more with LuaTables, allowing it to extract userdata like objects or ships from them
- Use `SCP_string` for constructing multi/event log lines
- Replace `+Orders Accepted:` Bitfield with flag list
- Handle deprecated command line flags programmatically, avoiding lots of code duplication
- Set up debug_filter.cfg to have default filters that can be turned off

### Removed

FRED:

- Remove the `Allow Daisy-Chained Docking` mission flag
- Remove "Delete Item" from the right-click menu in the Event Editor

Technical:

- Remove light filtering data which didn't work and increased code complexity
- Remove a pointless assert that checked if `SEXP_NODE_INCREMENT` (a define, set at 250) was greater than zero

### Fixed

Game:

- Missing whitespace in credits
- Stopped destroyed submodels from showing in Techroom
- Prevent a crash when an object dies in the same frame as their goal
- Always record primary bank ammo capacity during ship creation, preventing situations where a ballistic weapon would accidentally be set to zero ammo
- Properly remove ships from the Techroom when they're not in the Tech Database
- Load the correct Techroom data after a Tech Database Reset
- Don't tick Supernova timer while the game is paused
- Make `set-camera-facing` use default identity orientation when the `$Use host orientation` flag is active and no host is present
- When a hotkey text replacement string refers to an unbound control, use the name of the binding instead of "none"
- Fix usage of default tech database flags
- Prevent a crash in the loadout screen with a weapons-locked ship
- Fix two crashes in the F3 lab
- End the campaign properly when a mission is skipped, preventing crashing in some situations
- Prevent a crash when a message is sent from an invalid source
- Prevent a broken campaign state if the player quits the game from the options menu during the debriefing
- Add some checks before converting a message to Command
- Prevent accidentally skipping cutscenes caused by hitting the spacebar during a loading screen
- Fixed an issue where ships would start with the wrong hull values in Red Alert missions

AI:

- Fix turret swarm weapons by removing a few checks that are no longer valid
- Fix a few issues with maneuvers

Animations:

- Fix broken turret animations in the Techroom

Audio:

- Fix cockpit engine sound volume changing unexpectedly
- Fix a timing bug that would sometimes prevent music from being initialized when re-playing a mission
- Check all possible extensions for audio files

Controls:

- Flush the mouse state after toggling between `Use_mouse_to_fly` states, preventing situations where a stale mouse state would be used
- Fix a conflict between Free Look View controls and directional thrust controls

FRED:

- Prevent Ship Select Dialog from crashing if there are too many IFFs
- Support saving nebula fog colors
- Properly save `nav-carry-status` flag
- Don't treat a bare `<argument>` as an error
- Prevent adding duplicated variables and display an error to the user when they try
- Clean up some parse problems
- Fix assignment of alt-name when using the hash
- Guard against off-by-one errors in `replace_one` and `replace_all`
- Improve error checking of campaign loop branches
- Improve error reporting for bad SEXP nodes
- Prevent a crash with paste/add-paste when the clipboard was empty
- Prevent rounding/conversion issues that caused FRED to think an angle or position was modified when it wasn't
- Skip absent ships or wings when running `clear-goals`, instead of stopping the whole operation

Graphics:

- Disable Lightshafts while the Supernova glare effect is active. This partial fix ensures the glare shows up with the correct brightness
- Update and correctly load environment maps in F3 Lab
- Correctly set textures and Team Colors with `change-ship-class`
- Fixes Team Colors not working with `show-ship`
- Correct positioning and angles for background bitmaps and suns
- Clean up ship arrival and departure effects
- Fix clearing a skybox model when it isn't the mission default
- Fix an assertion with Fireball LODs which would wrongly trigger if the number of LODs was the same as the maximum

HUD:

- Make HUD Target distance consistent
- Fix a crash with scripted HUDs
- Correctly update RTT Cockpit Gauges with `change-ship-class`
- Ignore HUD brackets with a size of zero or less (instead of just crashing)
- Squad menu wasn't scrolling properly with PageDown in some cases
- Fix issues with loading of hud config presets
- Fix parsing issues with HUD color presets
  - Continue parsing remaining gauges if one isn't found
  - Use translated strings both when saving and loading
- Fix an issue where a target's orders would be displayed wrongly in the target box
- Fix asteroid brackets disappearing or displaying wrong values

Modding:

- Delay processing `$Player Weapon Precedence:` until after parsing, avoiding ships starting with the wrong weapons in some situations
- Make the `$Player Weapon Precedence:` list actually give precedence
- Empty `+Orders Accepted List:` entries were causing the ship to accept the default orders, instead of no orders as would be correct
- Show a Warning if a turret submodel is not an immediate child of the base object and handle it as a single-part object to prevent a crash

Multiplayer:

- Limit client collisions to prevent bugs, such as flinging players with high pings who collided multiple times between packet updates
- Fix multiple timestamp issues
  - Multi messaging and multi pause screen
  - Make sure maintenance stuff (pings, voice, file xfer, etc.) isn't affected by pausing or time compression
  - Sync issues caused by options menu and screenshots
- Prevent an error with long messages in PXO Chat by using proper buffer size
- Fix some issues with Multiplayer SEXPs
  - Try to handle incompatible sexp packets better
  - Fix operator name issue with debug messages
  - Enable the new show-subtitle-text options
- Improve interpolation, fixing the jerkiness that used to occur when the interpolation code basically guessed the timing on when packets were coming in
- Fix rollback primary collisions, vastly improving accuracy on moving targets even at high pings
- Fix the standalone ship being added to ship list
- Stop non-printable keys adding text to multi message buffer
- Prevent the standalone from crashing if a player tried to switch secondaries in a ship that doesn't have secondaries
- Fix a standalone crash from disabled uniform buffer manager
- Prevent a crash related to Observer-type players
- Fix network issues on MacOS

Scripting:

- Make hook conditions consistent and handle combinations that didn't work properly before
- Fix `maybePlayCutscene` arguments
- Add `isActive` checks for new-style script hooks
- Sync the two `VIRTVAR`s for Orientation in subsystems and submodel instances, which behaved in different ways
- Fixed a few timing and framerate related issues for playing movies via script
- Ensure the Lua interpreter has enough space in its stack, and allow reserving more space if necessary
- Fixed an memory leak in the Lua interpreter caused by string-eval sexps, which never cleaned up the generated code

SEXPs:

- Avoid setting .rest for `Locked_sexp_true/false` with malformed SEXPs
- Fix some memory management problems in the `for-*` operators, avoiding a memory leak
- Fix crash when removing form-on-wing order with `remove-goal`
- Fix `show-subtitle` SEXP which was missing the `width` argument
- Reset volumes changed via `adjust-audio-volume` when the mission closes
- Prevent too many dynamic SEXPs from breaking the SEXP system

Technical:

- Check if index is valid before accessing `Weapon_info`, preventing CTDs under certain conditions
- When `weapon_create` was called while `MAX_WEAPONS` was reached, the previous algorithm didn't achieve desired results, and simply locked up the game. Instead, we now simply won't allow a new weapon to be created in such condition
- Refactored Supernova code and fixed some state transition issues in it
- Prevent crashes in the event of a subsystem mismatch during `change_ship_type`
- Change include order to fix compilation of unit tests on Mac
- Patch freeing of SEXP nodes, preventing a crash in certain conditions
- Fix a memory leak in model code
- Fix a crash in the Ship Creation code if a ship's name was exactly the maximum allowed length
- Removed vestigial bit-depth asserts for aabitmaps, preventing crashes with certain image types
- Prevent a crash when Escort Priority was parsed for a ship not present in the Escort List
- Fix a bunch of graphics functions to respect GR_STUB, preventing problems in standalone server
- Clean up line endings in several files (replaced CRLF with LF basically everywhere)
- Fixed a timestamp issue which helps lay the groundwork to add In-Game Joining to multiplayer
- Prevent pilot and campaign files from having invalid values, by clamping them within the expected ranges when saving and loading
  - Also warn the player if such an invalid value was detected, telling them which setting had the wrong value and what it was reset to
  - Try to avoid assertions by preventing invalid types from being handled by `obj_team()`
- Shut down the SEXP system before the Scripting system, otherwise a crash could happen if the SEXP system held references to Lua

----

## [22.0.0] - 2022-04-01 ([Thread](https://www.hard-light.net/forums/index.php?topic=98125.0))
### Changed
- Controls5 PR (aka multi-joy)
- Timing system upgrade
- Model animation code upgrades

## [21.4.0] - 2021-09-27 ([Thread](https://www.hard-light.net/forums/index.php?topic=97802.0))
### Changed
- Multiple features; see thread
- Multiple bugfixes; see thread
### Deprecations
- `script-eval` has been deprecated in favor of `script-eval-block`
- renamed `hud-set-retail-gauge-active` to `hud-set-builtin-gauge-active`

## [21.2.0] - 2021-05-02 ([Thread](https://www.hard-light.net/forums/index.php?topic=97561.0))
### Changed
- Added a dynamic action system for more modder control of effects
- Removed fireball limit
- Fixed bomb intercept in multiplayer
- Changed nebula fog distance from a linear to exponential model
- Turrets on moving subobjects enabled
- LZ4 Compression added for game files

## [21.0.0] - 2021-01-27 ([Thread](https://www.hard-light.net/forums/index.php?topic=97293.0))
### Changed
- More OpenGL optimizations
- Full type information output for Lua documentation. Very useful for writing Lua scripts.
- A new -weaponspew command-line option for printing MediaVP-style statistics, plus a weapon comparison spreadsheet, to the debug log.
- Improved ship lookup behavior in SEXPs for improved performance.
- BPTC/BC7 texture compression support
- Refactoring and new features for the ship lab.
- Missile multi-lock. It's finally in an official build!
- Enhancements to the model code in preparation for cool features in 21.2.
- IPv6 support for multiplayer
- A lot of general fixes for multiplayer.
### Deprecated
- Dropped support for Windows XP
- Scripting:
  - `ba.getFrametime()`: The parameter value was used incorrectly inside the implementation. To avoid breaking existing scripts and to improve readability this has been split into `ba.getMissionFrametime()` and `ba.getRealFrametime()`.
  - `gr.drawMonochromeImage()`: `gr.drawImage()` got a new parameter for drawing monochrome images and is more flexible in general so the monochrome variant is no longer needed.

## [19.0.0] - 2020-01-25 ([Thread](https://www.hard-light.net/forums/index.php?topic=96226.0))
### Meta
- With this release we decided to drop the "`3.Major_revision.Minor_revision`" versioning scheme in favor of a year based scheme since the Major and Minor versions did not have much meaning anymore. Instead the scheme will now be "`<year>.<number that is incremented every release>.0`". The last 0 is still there because some of our systems expect that. It will be gone at some point.
### Added
- Full Unicode text support: You can now use non-ASCII characters without having to worry about special fonts and special characters. This is an opt-in mod flag.
- Translation features for making it easier to only distribute one version of a mod which includes all languages.
- OpenAL Soft is included by default in binary distributions of FSO now.
- System for dynamically adding new SEXPs. With this a Lua script can expose functionality to the mission which can be used exactly the same as a standard SEXP with all the usual editing features in FRED.
- Support for displaying decals on the surface of an object.
- Integrated support for the [Discord Rich Presence API](https://discordapp.com/rich-presence).
- New markup based user interface system using [libRocket](https://github.com/libRocket/libRocket).
### Changed
- Exposed the movie player to the scripting API for advanced display features
- Various OpenGL optimizations for better graphics performance:
  - Animations now use texture arrays
  - Model uniforms get sent to the GPU using uniform buffers for less overhead
  - Various other minor changes
- Converted pilot files from custom binary format to JSON
- Replaced Blinn-Phong BRDF with GGX BRDF
### Fixed
- Refactored bitmap slot handling and removed the fixed upper limit on the number of bitmaps. No more bmpman corruption!

## [3.8.0] - 2017-08-22 ([Release Thread](https://www.hard-light.net/forums/index.php?topic=93812.0))
### Added
- Support for APNG animations: [APNG](https://en.wikipedia.org/wiki/APNG) is a variant of the established PNG format which allows to store animations instead of single frames in a PNG file. This change allows to use these animation files in FSO which significantly improves usability for modders since they no longer have to store all individual frames as separate images.
- Physically-Based Rendering (PBR): This upgrade of our rendering engine allows to use [PBR](https://en.wikipedia.org/wiki/Physically_based_rendering) assets to make models look more realistic and allow more artistic freedom for modders since they have more control over how a model looks. This also added support for HDR lighting which should improve the overall graphics experience.
- Native particle systems: Particles have always been supported by FSO but the effects that could be created by them were very limited. There were some attempts to fix this by using Lua scripting for more advanced features but that suffered from performance issues. With these new particle systems that feature has been integrated directly into the engine which should improve performance and allow for better effects in the future.
- TrueType Font support: [TrueType](https://en.wikipedia.org/wiki/TrueType) fonts improve the text rendering capabilities of FSO by allowing to use freely scaleable font faces instead of the previous bitmap fonts.
### Changed
- We now use SDL2 on all platforms: SDL is a library for abstracting away the differences between different platforms. We now use SDL2 for all platforms which reduces the amount of platform-specific code tremendously and should result in better usability on all platforms. This was a major change that has been in development for several years. Here are a few key features that were added:
  - Pilot and configuration data is now stored in the correct location across all platforms (this allows to run FSO on Windows from the Program Files directory without administrator rights)
  - All platforms now use the ini files for storing settings. This fixes a lot of issues with the registry on Windows.
  - Better support for input devices. Since SDL handles keyboard, mouse and joystick input we now have better support on newer OS versions. Note: This does not mean that we support multiple joysticks (yet). There is ongoing development effort to support this but this release does not have that yet.
- CMake build system generation: This isn't relevant for players but we are now using [CMake](https://en.wikipedia.org/wiki/CMake) for handling compiling our builds. This improves cross-platform support and allows to implement advanced compilation features across multiple platforms. Modders will like the new "FastDebug" builds which are like the previous "Debug" builds but are compiled with all the optimizations of normal Release builds. That should make modding a lot easier since you can now debug your mod with almost the same performance as a Release build.
- Improved shield effects: Rendering of the shields is now handled by special shaders which improves the overall quality of the effects and allows more freedom for future effects.
- Use OpenGL Core Profile for rendering: This is another major graphical upgrade which adds support for the OpenGL Core profile across all platforms (this was also made possible by the SDL2 integration). This upgrade allows us to use more modern rendering techniques and is especially useful for our Linux users who use the open-source Mesa drivers since our shaders failed to compile with those drivers. Now everyone will be able to enjoy the new graphical features added in this and previous releases. This also made some internal changes to how we handle rendering which improves the usability of our rendering engine within our code.
- Use FFmpeg for video & audio decoding: [FFmpeg](https://www.ffmpeg.org/) is a multi-media library which exposes functionality for decoding video and audio files to their raw form so that we can use that data. Thanks to this library we can now play 1080p cutscenes without any stuttering or frame-timing issues. It also allows to use more advanced audio and video codecs such as H.264 for video or Opus for audio.

## [3.7.4] - 2016-07-04 ([Release thread](http://www.hard-light.net/forums/index.php?topic=92181.0))
### Changed
- Major graphics update including deferred lighting and shadows
- Enhanced sound (up to 128 channels)
### Fixed
- "Tons" of bugfixes

## [3.7.2] - 2015-04-23 ([Release thread](http://www.hard-light.net/forums/index.php?topic=89597.0))
### Added
- MediaVPS 2014 Support
- Autospread on model point shields
- WebUI based multiplayer standalone server (for non-Windows platforms)
- Toggle subsytem scanning, scannable, cargo revealed, hidden from sensors, stealth and friendly stealth added to the `alter-ship-flag` SEXP
- Support added to add more languages besides English, French, German and Polish, leading the way to better localization!
- `player-is-cheating` SEXP
- New ship flag to enable smarter AI use of afterburners. Now it can use them while flying waypoints or attacking capital ships (use the `free-afterburner-use` flag with `alter-ship-flag`)
- Experimental configurations to make AVX builds (see [this post](http://www.hard-light.net/forums/index.php?topic=85566.0) for more explanations)
- Frame profiling code, see what exactly is slowing down FreeSpace. (Mostly for devs or coders)
### Changed
- Unstretched interface screens
- Automatically non stretched HUD gauges and simpler modder options for placing HUD gauges
- `show-subtitle-text` can now display messages as well as raw text
- Allow a user-specified number of credit images
- event.log can now snapshot events checked in a frame and record the status of an event the previous time it was checked as well as the current state
- Allow the specification of the positions of medals, callsigns and labels on the medal screen.
- The number of medals is now dynamic!
- `is-facing` now works for things that aren't ships (like waypoints!)
- allowing `fade-in` and `fade-out` sexps to use any color, not just black, white and red.

## [3.7.0] - 2013-08-31 ([Release thread](http://www.hard-light.net/forums/index.php?topic=85435.0))
### Major Change
- New Flexible Pilot Save File Code (combines single/multi pilots & allows safe switching between unfinished campaigns)
### Changed
- Raised the per-model debris limit to 48 (previously 32).
- Increased the per-frame debris limit to 96 (previously 64)

## [3.6.18] - 2013-03-01 ([Release thread](http://www.hard-light.net/forums/index.php?topic=83889.0))
### Fixed
- Critical damage bug which caused heavy balance issues in the game

## [3.6.16] - 2013-01-31 ([Release thread](http://www.hard-light.net/forums/index.php?topic=83577.0))
### Added
- Diaspora TC support
### Changed
- Performance Improvements

## [3.6.14] - 2012-10-23 - ([Release thread](https://www.hard-light.net/forums/index.php?topic=82648.0))
### Added
- Objecttype tables support for deciding how enemies respond to ship classes when disabled
- Allow modders to set a [mood](http://www.hard-light.net/forums/index.php?topic=81991.msg1639770#msg1639770) for builtin messages and then switch the mood for the mission on the fly using a SEXP
- Allow modders to set the chance of builtin messages being sent, how many will be sent per mission and how long is the delay between two messages
- Allow campaigns to be hidden in the campaign and tech rooms ([Game settings.tbl](https://wiki.hard-light.net/index.php/Game_settings.tbl#.23Ignored_Campaign_File_Names))
- Allow mods to set a default campaign ([Game settings.tbl](https://wiki.hard-light.net/index.php/Game_settings.tbl#.24Default_Campaign_File_Name:))
- New SEXPs
  - `set-player-orders`
  - `is-event\goal-true\false-msecs-delay`
  - `get\set-num-countermeasures`
  - `directive-value`
  - `invalidate-all-arguments`
  - `validate-all-arguments`
  - `has-primary-weapon`
  - `has-secondary-weapon`
  - [`hud-display-gauge`](http://www.hard-light.net/forums/index.php?topic=68837.msg1361711#msg1361711)
  - `get-object-speed-x`
  - `get-object-speed-y`
  - `get-object-speed-z`
### Changed
- Major HUD gauges overhaul
- Split the Locked flag so that you can lock Ships or Weapons on the game loadout screen independently
- Mixed ammo for primary and secondary weapons - [`$Substitute`](http://www.hard-light.net/wiki/index.php/Weapons.tbl#.24Substitute:) - Allows you to have a weapon that fires other weapon ammo in a specific pattern (say a Gatling gun with tracers).
- [`show-subtitle`](https://wiki.hard-light.net/index.php/SCP_SEXPs#show-subtitle) SEXP supports custom fonts
- The active support ship limit per side is now dynamic.  See [`set-support-ship`](https://wiki.hard-light.net/index.php/SCP_SEXPs#set-support-ship) for more info.
### Fixed
- Various multiplayer SEXP fixes
- `rotating-subsys-set-time` now accelerates properly
- [Fixed a whole heap of memory, logic and coding errors](http://www.hard-light.net/forums/index.php?topic=78044.0) -- using PVS-Studio: C/C++ source code analysis and checking tool

----

## [Older Changes] - Unformatted
```
ChangeLog for fs2_open.  All times are UTC.

==================================================================
( massive gap in updates, maybe this will be filled in someday...)
==================================================================

2002-10-30 22:57  randomtiger

	* code/: code.dsp (<IP_ADDRESS>), graphics/grd3d.cpp (<IP_ADDRESS>),
	graphics/grd3dinternal.h (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>), model/modelinterp.cpp (<IP_ADDRESS>):

	Changed DX8 code to not use set render and texture states if they
	are already set to that value.	Disabled buffer saving and
	restoring code when windowed to stop DX8 debug runs from crashing.
	- RT

2002-10-30 20:22  inquisitor

	* code/cmdline/cmdline.h (2.10):

	Bad Committ, Rolling back

2002-10-30 06:29  DTP

	* code/cfile/: cfilesystem.cpp (2.5), cfile.cpp (2.5):

	doh!, used upper case in include, dont know how much it matters for
	*nix systems, but here it is

2002-10-30 06:26  DTP

	* code/cfile/cfilesystem.cpp (2.4):

	DTP Implemented basic VP files handling. mission and campaign files
	inside VP files found in mod dir still not supported, cheking /
	creating directories not implented either

2002-10-29 22:41  sesquipedalian

	* code/parse/: sexp.cpp (2.3), sexp.h (2.3):

	no message

2002-10-28 02:28  DTP

	* code/cmdline/cmdline.h (2.9):

	Crap, somebody may restore cmdline.h to 2 version before this.

2002-10-28 00:40  randomtiger

	* code/graphics/grd3d.cpp (<IP_ADDRESS>):

	Implemented screen saving code for restoring when drawing popups, a
	bit slow but works. - RT

2002-10-27 23:59  DTP

	* code/cfile/: cfile.cpp (2.4), cfile.h (2.3):

	DTP; started basic implementation of mod-support plain files only
	for now. fs2_open.exe -mod X will look for files in fs2/ X
	/all-legal-subdirectories. no checking/creating dirs yet.
	directories must be there.

2002-10-27 23:55  DTP

	* code/cmdline/: cmdline.cpp (2.9), cmdline.h (2.8):

	DTP; started basic implementation of mod-support plain files only
	for now. fs2_open.exe -mod X will look for files in fs2/ X
	/all-legal-subdirectories. no checking/creating dirs yet.
	directories must be there.

2002-10-26 09:55  unknownplayer

	* code/: freespace2/freespace.cpp (<IP_ADDRESS>), nebula/neb.cpp
	(<IP_ADDRESS>):

	Fixed the nebula flicker bug. Check the NO_DIRECT3D conditional
	compile sections in the future for bits of code which may cause
	problems due to hacks correcting for DirectX5 that no longer apply.

2002-10-26 01:24  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), bmpman/bmpman.h (<IP_ADDRESS>),
	graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3drender.cpp (<IP_ADDRESS>),
	graphics/grd3dtexture.cpp (<IP_ADDRESS>):

	Fixed debug bitmap compiling bug.  Fixed tga bug. - RT

2002-10-22 23:02  randomtiger

	* code/: cmdline/cmdline.cpp (2.8), cmdline/cmdline.h (2.7),
	debugconsole/timerbar.h (1.2), hud/hudtargetbox.cpp (2.4),
	model/modelinterp.cpp (2.5):

	Made Phreaks alternative scanning style optional under the command
	line tag "-phreak" Fixed bug that changes HUD colour when
	targetting debris in a full nebula. - RT

2002-10-22 17:46  randomtiger

	* Freespace2.dsp (<IP_ADDRESS>), code/bmpman/bmpman.cpp (<IP_ADDRESS>),
	code/bmpman/bmpman.h (<IP_ADDRESS>), code/graphics/grd3dtexture.cpp
	(<IP_ADDRESS>):

	Fixed new TGA code texturing bug. - RT

2002-10-22 17:42  randomtiger

	* code/: freespace2/freespace.cpp (2.13),
	missionui/missionpause.cpp (2.3):

	Fixed lighting bug that caused special pause to crash on debug
	build.	Also added TAB functionality for special pause that toggles
	HUD. - RT

2002-10-21 16:33  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), bmpman/bmpman.h (<IP_ADDRESS>),
	graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3dinternal.h (<IP_ADDRESS>),
	graphics/grd3drender.cpp (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>):

	Added D3D only 32 bit TGA functionality. Will load a texture as big
	as your graphics card allows. Code not finished yet and will forge
	the beginnings of the new texture system. - RT

2002-10-20 22:21  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), graphics/grd3d.cpp
	(<IP_ADDRESS>), graphics/grd3drender.cpp (<IP_ADDRESS>), palman/palman.cpp
	(<IP_ADDRESS>):

	Some incomplete code to handle background drawing when message
	boxes are drawn.  It doesnt work but its a good base for someone to
	start from. - RT

2002-10-19 23:56  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), bmpman/bmpman.h (<IP_ADDRESS>),
	globalincs/pstypes.h (<IP_ADDRESS>), graphics/grd3d.cpp (<IP_ADDRESS>),
	graphics/grd3dtexture.cpp (<IP_ADDRESS>):

	Changed generic bitmap code to allow maximum dimensions to be
	determined by 3D's engines maximum texture size query.	Defaults to
	256 as it was before. Also added base code for reworking the
	texture code to be more efficient. - RT

2002-10-19 19:29  bobboau

	* code/: controlconfig/controlsconfig.h (2.2),
	controlconfig/controlsconfigcommon.cpp (2.3), model/model.h (2.5),
	model/modelinterp.cpp (2.4), model/modelread.cpp (2.4),
	model/modelsinc.h (2.4), object/object.cpp (2.2), osapi/outwnd.cpp
	(2.2), physics/physics.cpp (2.2), physics/physics.h (2.2),
	playerman/playercontrol.cpp (2.2), ship/ai.h (2.2), ship/aibig.cpp
	(2.2), ship/aicode.cpp (2.8), ship/ship.cpp (2.7), ship/ship.h
	(2.4), ship/shipcontrails.cpp (2.3), ship/shipcontrails.h (2.1),
	ship/shiphit.cpp (2.6), starfield/starfield.cpp (2.3),
	weapon/beam.cpp (2.4), weapon/beam.h (2.3), weapon/weapon.h (2.2),
	weapon/weapons.cpp (2.2):

	inital commit, trying to get most of my stuff into FSO, there
	should be most of my fighter beam, beam rendering, beam sheild hit,
	ABtrails, and ssm stuff. one thing you should be happy to know is
	the beam texture tileing is now set in the beam section section of
	the weapon table entry

2002-10-19 03:50  randomtiger

	* code/: cmdline/cmdline.cpp (2.7), cmdline/cmdline.h (2.6),
	freespace2/freespace.cpp (2.12), io/keycontrol.cpp (2.4),
	menuui/readyroom.cpp (2.2), missionui/missionpause.cpp (2.2),
	missionui/missionpause.h (2.2):

	Added special pause mode for easier action screenshots.  Added new
	command line parameter for accessing all single missions in tech
	room. - RT

2002-10-17 20:40  randomtiger

	* code/: controlconfig/controlsconfig.h (2.1),
	controlconfig/controlsconfigcommon.cpp (2.2), hud/hud.cpp (2.2),
	hud/hud.h (2.2), io/keycontrol.cpp (2.3),
	mission/missionmessage.cpp (2.2):

	Added ability to remove HUD ingame on keypress shift O So I've
	added a new key to the bind list and made use of already existing
	hud removal code.

2002-10-16 00:41  randomtiger

	* code/graphics/: 2d.cpp (<IP_ADDRESS>), 2d.h (<IP_ADDRESS>), grd3d.cpp
	(<IP_ADDRESS>), grd3d.h (<IP_ADDRESS>), grd3drender.cpp (<IP_ADDRESS>):

	Fixed small bug that was stopping unactive text from displaying
	greyed out Also added ability to run FS2 DX8 in 640x480, however I
	needed to make a small change to 2d.cpp which invloved calling the
	resolution processing code after initialising the device for D3D
	only.  This is because D3D8 for the moment has its own internal
	launcher.  Also I added a fair bit of documentation and tidied some
	stuff up. - RT

2002-10-14 21:52  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), graphics/grd3d.cpp
	(<IP_ADDRESS>), graphics/grd3drender.cpp (<IP_ADDRESS>),
	graphics/grd3dtexture.cpp (<IP_ADDRESS>):

	Finally tracked down and killed off that 8 bit alpha bug.  So the
	font, HUD and 8 bit ani's now work fine. - RT

2002-10-14 19:49  phreak

	* code/graphics/gropenglw32x.cpp (1.4):

	screenshots, yay!

2002-10-13 21:43  phreak

	* code/graphics/gropenglw32x.cpp (1.3):

	further optimizations

2002-10-12 17:48  phreak

	* code/graphics/gropenglw32x.cpp (1.2):

	fixed text

2002-10-11 21:35  phreak

	* code/graphics/gropenglw32.cpp (1.2):

	dont use this one

2002-10-11 21:30  phreak

	* code/graphics/: gropenglw32.cpp (1.1), gropenglw32x.cpp (1.1):

	first run at opengl for w32, only useful in main hall, barracks and
	campaign room

2002-10-11 18:50  randomtiger

	* code/graphics/: 2d.cpp (<IP_ADDRESS>), 2d.h (<IP_ADDRESS>), grd3d.cpp
	(<IP_ADDRESS>), grd3d.h (<IP_ADDRESS>), grd3dinternal.h (<IP_ADDRESS>),
	grd3drender.cpp (<IP_ADDRESS>), grd3dtexture.cpp (<IP_ADDRESS>):

	Checked in fix for 16 bit problem, thanks to Righteous1 Removed a
	fair bit of code that was used by the 16 bit code path which no
	longer exists.	32 bit and 16 bit should now work in exactly the
	same way. - RT

2002-10-08 14:33  randomtiger

	* code/: graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3drender.cpp
	(<IP_ADDRESS>), graphics/grd3dtexture.cpp (<IP_ADDRESS>), osapi/outwnd.cpp
	(<IP_ADDRESS>):

	OK, I've fixed the z-buffer problem.  However I have abandoned
	using w-buffer for now because of problems.  I think I know how to
	solve it but Im not sure it would make much difference given the
	way FS2 engine works.  I have left code in there of use if anyone
	wants to turn their hand to it. However for now we just need to
	crack of the alpha problem then we will have FS2 fully wokring in
	DX8 on GF4 in 32 bit.

2002-10-05 16:46  randomtiger

	* code/: code.dsp (1.10), debugconsole/timerbar.cpp (1.1),
	debugconsole/timerbar.h (1.1), freespace2/freespace.cpp (2.11),
	globalincs/systemvars.h (2.2), graphics/grd3d.cpp (2.3),
	graphics/grd3dinternal.h (2.2), graphics/grd3drender.cpp (2.4),
	menuui/credits.cpp (2.3):

	Added us fs2_open people to the credits. Worth looking at just for
	that.  Added timer bar code, by default its not compiled in.  Use
	TIMEBAR_ACTIVE in project and dependancy code settings to activate.
	 Added the new timebar files with the new code.

2002-10-04 00:48  randomtiger

	* code/graphics/: grd3d.cpp (<IP_ADDRESS>), grd3dinternal.h (<IP_ADDRESS>),
	grd3drender.cpp (<IP_ADDRESS>), grd3dtexture.cpp (<IP_ADDRESS>):

	Fixed video memory leaks Added code to cope with lost device, not
	tested Got rid of some DX5 stuff we definately dont need Moved some
	enum's into internal,h because gr_d3d_set_state should be able to
	be called from any dx file Cleaned up some stuff - RT

2002-10-03 08:32  unknownplayer

	* code/: graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>), osapi/osapi.cpp (<IP_ADDRESS>):

	Hacked in a windowed mode so we can properly debug this without
	using monitors (although I drool at the concept of having that!)

2002-10-02 17:52  randomtiger

	* code/: debugconsole/dbugfile.cpp (<IP_ADDRESS>),
	debugconsole/dbugfile.h (<IP_ADDRESS>), graphics/grd3d.cpp (<IP_ADDRESS>),
	graphics/grd3drender.cpp (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>):

	Fixed blue lighting bug.  Put filtering flag set back in that I
	accidentally removed Added some new functionality to my debuging
	system - RT

2002-10-02 11:40  randomtiger

	* code/: code.dsp (<IP_ADDRESS>), bmpman/bmpman.cpp (<IP_ADDRESS>),
	bmpman/bmpman.h (<IP_ADDRESS>), graphics/2d.cpp (<IP_ADDRESS>),
	graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3d.h (<IP_ADDRESS>),
	graphics/grd3dinternal.h (<IP_ADDRESS>), graphics/grd3drender.cpp
	(<IP_ADDRESS>), graphics/grd3dtexture.cpp (<IP_ADDRESS>),
	pcxutils/pcxutils.cpp (<IP_ADDRESS>):

	Bmpmap has been reverted to an old non d3d8 version.  All d3d8 code
	is now in the proper place.  PCX code is now working to an extent.
	Problems with alpha though.  Ani's work slowly with alpha problems.
	 Also I have done a bit of tidying - RT

2002-09-28 22:13  randomtiger

	* code/: anim/animplay.cpp (<IP_ADDRESS>), bmpman/bmpman.cpp (<IP_ADDRESS>),
	graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3dinternal.h (<IP_ADDRESS>),
	graphics/grd3drender.cpp (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>), weapon/weapons.cpp (<IP_ADDRESS>):

	Sorted out some bits and pieces. The background nebula blends now
	which is nice. – RT

2002-09-28 12:20  randomtiger

	* code/graphics/: grd3d.cpp (<IP_ADDRESS>), grd3drender.cpp (<IP_ADDRESS>),
	grd3dtexture.cpp (<IP_ADDRESS>):

	Just a tiny code change that lets stuff work in 16 bit.  For some
	reason 16 bit code was taking a different code path for displaying
	textures.  So until I unstand why, Im cutting off that codepath
	because it isnt easy to convert into DX8.

2002-09-28 00:18  randomtiger

	* code/: bmpman/bmpman.cpp (<IP_ADDRESS>), bmpman/bmpman.h (<IP_ADDRESS>),
	graphics/grd3drender.cpp (<IP_ADDRESS>), graphics/grd3dtexture.cpp
	(<IP_ADDRESS>):

	Did some work on trying to get textures to load from pcx, define
	TX_ATTEMPT for access to it.  Converted some DX7 blending calls to
	DX8 which a fair difference to ingame visuals.

	- RT

2002-09-24 18:56  randomtiger

	* Freespace2.dsp (<IP_ADDRESS>), code/code.dsp (<IP_ADDRESS>),
	code/anim/animplay.cpp (<IP_ADDRESS>), code/bmpman/bmpman.cpp (<IP_ADDRESS>),
	code/bmpman/bmpman.h (<IP_ADDRESS>), code/cfile/cfile.cpp (<IP_ADDRESS>),
	code/cmeasure/cmeasure.cpp (<IP_ADDRESS>),
	code/controlconfig/controlsconfig.cpp (<IP_ADDRESS>),
	code/cutscene/cutscenes.cpp (<IP_ADDRESS>), code/cutscene/movie.cpp
	(<IP_ADDRESS>), code/cutscene/movie.h (<IP_ADDRESS>),
	code/debugconsole/console.cpp (<IP_ADDRESS>),
	code/debugconsole/dbugfile.cpp (<IP_ADDRESS>),
	code/debugconsole/dbugfile.h (<IP_ADDRESS>),
	code/freespace2/freespace.cpp (<IP_ADDRESS>),
	code/freespace2/freespace.rc (<IP_ADDRESS>),
	code/freespace2/freespaceresource.h (<IP_ADDRESS>),
	code/gamehelp/gameplayhelp.cpp (<IP_ADDRESS>), code/globalincs/pstypes.h
	(<IP_ADDRESS>), code/graphics/2d.cpp (<IP_ADDRESS>), code/graphics/bitblt.cpp
	(<IP_ADDRESS>), code/graphics/grd3d.cpp (<IP_ADDRESS>), code/graphics/grd3d.h
	(<IP_ADDRESS>), code/graphics/grd3dinternal.h (<IP_ADDRESS>),
	code/graphics/grd3drender.cpp (<IP_ADDRESS>),
	code/graphics/grd3dtexture.cpp (<IP_ADDRESS>),
	code/graphics/grdirectdraw.cpp (<IP_ADDRESS>), code/hud/hudconfig.cpp
	(<IP_ADDRESS>), code/hud/hudmessage.cpp (<IP_ADDRESS>),
	code/menuui/barracks.cpp (<IP_ADDRESS>), code/menuui/credits.cpp
	(<IP_ADDRESS>), code/menuui/mainhallmenu.cpp (<IP_ADDRESS>),
	code/menuui/mainhalltemp.cpp (<IP_ADDRESS>), code/menuui/optionsmenu.cpp
	(<IP_ADDRESS>), code/menuui/playermenu.cpp (<IP_ADDRESS>),
	code/menuui/readyroom.cpp (<IP_ADDRESS>), code/menuui/techmenu.cpp
	(<IP_ADDRESS>), code/menuui/trainingmenu.cpp (<IP_ADDRESS>),
	code/mission/missioncampaign.cpp (<IP_ADDRESS>),
	code/mission/missiongoals.cpp (<IP_ADDRESS>),
	code/mission/missionhotkey.cpp (<IP_ADDRESS>),
	code/mission/missionload.cpp (<IP_ADDRESS>),
	code/missionui/missionbrief.cpp (<IP_ADDRESS>),
	code/missionui/missioncmdbrief.cpp (<IP_ADDRESS>),
	code/missionui/missiondebrief.cpp (<IP_ADDRESS>),
	code/missionui/missionloopbrief.cpp (<IP_ADDRESS>),
	code/missionui/missionpause.cpp (<IP_ADDRESS>),
	code/missionui/missionshipchoice.cpp (<IP_ADDRESS>),
	code/missionui/missionweaponchoice.cpp (<IP_ADDRESS>),
	code/missionui/redalert.cpp (<IP_ADDRESS>),
	code/network/multi_dogfight.cpp (<IP_ADDRESS>),
	code/network/multi_ingame.cpp (<IP_ADDRESS>),
	code/network/multi_pinfo.cpp (<IP_ADDRESS>),
	code/network/multiteamselect.cpp (<IP_ADDRESS>),
	code/network/multiui.cpp (<IP_ADDRESS>), code/pcxutils/pcxutils.cpp
	(<IP_ADDRESS>), code/popup/popup.cpp (<IP_ADDRESS>), code/render/3ddraw.cpp
	(<IP_ADDRESS>), code/ship/ship.cpp (<IP_ADDRESS>), code/stats/medals.cpp
	(<IP_ADDRESS>), code/ui/gadget.cpp (<IP_ADDRESS>), code/weapon/weapons.cpp
	(<IP_ADDRESS>):

	DX8 branch commit

	This is the scub of UP's previous code with the more up to date RT
	code.  For full details check previous dev e-mails

2002-09-20 20:09  phreak

	* code/freespace2/freespace.cpp (2.10):

	did glare stuff in game_sunspot_process()

2002-09-20 20:05  phreak

	* code/starfield/starfield.cpp (2.2):

	glare parser stuff in stars_init()

2002-09-20 20:04  phreak

	* code/starfield/starfield.h (2.2):

	added glare variable for ambient suns if glare is 0 then the sun
	glare whiteout is not shown when looking at the sun

2002-09-20 20:02  phreak

	* code/hud/hudtarget.cpp (2.2):

	lead indicator for dumbfire missiles

2002-09-20 20:01  phreak

	* code/hud/hudtargetbox.cpp (2.3):

	extra effects during cargo scan

2002-09-10 21:58  unknownplayer

	* code/graphics/directx8/GrD3d81Stubs.cpp (1.1):

	file GrD3d81Stubs.cpp was initially added on branch directx8.

2002-09-10 21:58  unknownplayer

	* code/: freespace2/freespace.cpp (<IP_ADDRESS>), graphics/2d.cpp
	(<IP_ADDRESS>), graphics/grdirectdraw.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.h (<IP_ADDRESS>),
	graphics/directx8/GrD3d81Stubs.cpp (<IP_ADDRESS>):

	Added the DX8 stub file, plus new CODE!

2002-09-08 02:36  unknownplayer

	* code/: code.dsp (<IP_ADDRESS>), graphics/2d.cpp (<IP_ADDRESS>),
	graphics/grd3d.cpp (<IP_ADDRESS>), graphics/grd3drender.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.h (<IP_ADDRESS>):

	Framework for the new D3DRENDER class is in place, and gr_screen
	function structures are now there too. The way it's done is
	probably kind of inefficient, but until we're further along
	actually drawing polygons we should keep it that way for
	consistency's sake.

2002-09-01 08:18  unknownplayer

	* Freespace2.dsp (<IP_ADDRESS>), code/code.dsp (<IP_ADDRESS>),
	code/globalincs/pstypes.h (<IP_ADDRESS>), code/graphics/2d.cpp
	(<IP_ADDRESS>), code/graphics/directx8/GrD3D81.cpp (<IP_ADDRESS>),
	code/graphics/directx8/GrD3D81.h (<IP_ADDRESS>),
	code/menuui/mainhallmenu.cpp (<IP_ADDRESS>):

	Started writing some code for the new DX8.1 class and hit a serious
	snag to do with window handling and DirectDraw (and possibly my
	unfamiliarity with DX). It seems we may need to make some changes
	further up the code because we no longer use DX through DD in 8.1
	and the V code did that a lot (to go fullscreen and such check out
	the device creation code)

2002-08-31 04:50  unknownplayer

	* code/: code.dsp (<IP_ADDRESS>), graphics/2d.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.cpp (<IP_ADDRESS>),
	graphics/directx8/GrD3D81.h (<IP_ADDRESS>):

	Removed some older DX81 stuff I added before and changed some other
	things.  I'm currently thinking that I'm going to run with putting
	everything into a specialized class with the d3d_init and
	d3d_cleanup functions as gods.	(Creation / Destruction functions -
	i.e. gods :)

2002-08-31 04:48  unknownplayer

	* code/graphics/directx8/grd3d81internal.h (<IP_ADDRESS>):

	These are all officially now out of FS2 unless you have a specific
	reason to need them. I'm running with the idea that we make a C++
	class and use that as an effective way to control the code.
	Rewriting V's stuff is just insanely difficult.

2002-08-28 21:47  randomtiger

	* Freespace2.dsp (1.10), code/cutscene/cutscenes.cpp (<IP_ADDRESS>),
	code/cutscene/movie.cpp (<IP_ADDRESS>):

	Tiny change to DX branch to keep movie code optional (default off)

2002-08-28 12:39  randomtiger

	* code/: code.dsp (<IP_ADDRESS>), cutscene/cutscenes.cpp (<IP_ADDRESS>),
	cutscene/movie.cpp (<IP_ADDRESS>), debugconsole/dbugfile.cpp (<IP_ADDRESS>),
	debugconsole/dbugfile.h (<IP_ADDRESS>), directx/dx8show.cpp (<IP_ADDRESS>),
	directx/dx8show.h (<IP_ADDRESS>), freespace2/freespace.cpp (<IP_ADDRESS>),
	menuui/mainhallmenu.cpp (<IP_ADDRESS>), mission/missioncampaign.cpp
	(<IP_ADDRESS>), osapi/osapi.cpp (<IP_ADDRESS>), osapi/osapi.h (<IP_ADDRESS>):

	OK, this should be a commit to the DX branch or Im going to be in a
	lot of trouble.  The movie and dx8show files have been cleaned up
	big time.  My debug system is in but has NO EFFECT at all unless a
	compiler flag is turned on, check h file for details.  Aside from
	that a few changes to help the movie code work properly.  Works on
	most things including GF4 and Voodoo 3. However may not work
	properly on a voodoo 2.  Im going to leave this as a bug for now,
	serves you right for buying voodoo!

2002-08-28 10:51  randomtiger

	* code/: code.dsp (1.9), debugconsole/dbugfile.cpp (2.1),
	debugconsole/dbugfile.h (2.1), freespace2/freespace.cpp (2.9):

	Woh! I sure as hell didnt modify all these files it says I did.  I
	will put this down to the branch! Note: I did start from a fresh
	checkout!

2002-08-27 13:38  penguin

	* Freespace2.dsp (1.9), code/code.dsp (1.8),
	code/cmdline/cmdline.cpp (2.6), code/cmdline/cmdline.h (2.5),
	code/cutscene/cutscenes.cpp (2.4), code/cutscene/movie.cpp (2.2),
	code/cutscene/movie.h (2.2), code/directx/DShow.h (1.2),
	code/directx/ddraw.lib (1.2), code/directx/dx8show.cpp (1.2),
	code/directx/dx8show.h (1.2), code/directx/dxguid.lib (1.2),
	code/directx/strmiids.lib (1.2), code/freespace2/freespace.cpp
	(2.8), code/menuui/mainhallmenu.cpp (2.5),
	code/mission/missioncampaign.cpp (2.5):

	Moved DirectX8 stuff to directx8 branch; reverted to previous

2002-08-27 13:25  penguin

	* code/directx/: DShow.h (<IP_ADDRESS>), ddraw.lib (<IP_ADDRESS>),
	dx8show.cpp (<IP_ADDRESS>), dx8show.h (<IP_ADDRESS>), dxguid.lib (<IP_ADDRESS>),
	strmiids.lib (<IP_ADDRESS>):

	Moved to directx8 branch

2002-08-27 13:21  penguin

	* code/: freespace2/freespace.cpp (<IP_ADDRESS>),
	menuui/mainhallmenu.cpp (<IP_ADDRESS>), mission/missioncampaign.cpp
	(<IP_ADDRESS>), code.dsp (<IP_ADDRESS>), cmdline/cmdline.cpp (<IP_ADDRESS>),
	cmdline/cmdline.h (<IP_ADDRESS>), cutscene/cutscenes.cpp (<IP_ADDRESS>),
	cutscene/movie.cpp (<IP_ADDRESS>), cutscene/movie.h (<IP_ADDRESS>),
	Freespace2.dsp (<IP_ADDRESS>):

	Moved to directx8 branch

2002-08-18 19:48  randomtiger

	* Freespace2.dsp (1.8), code/code.dsp (1.7),
	code/cmdline/cmdline.cpp (2.5), code/cmdline/cmdline.h (2.4),
	code/cutscene/cutscenes.cpp (2.3), code/cutscene/movie.cpp (2.1),
	code/cutscene/movie.h (2.1), code/directx/DShow.h (1.1),
	code/directx/ddraw.lib (1.1), code/directx/dx8show.cpp (1.1),
	code/directx/dx8show.h (1.1), code/directx/dxguid.lib (1.1),
	code/directx/strmiids.lib (1.1), code/freespace2/freespace.cpp
	(2.7), code/menuui/mainhallmenu.cpp (2.4),
	code/mission/missioncampaign.cpp (2.4):

	Added new lib files: strmiids and ddraw to get dshow working Added
	new command line parameter to active direct show movie play:
	-dshowvid Uncommented movie_play calls and includes

2002-08-15 04:41  penguin

	* code/globalincs/systemvars.h (2.1):

	Added #include, needed for FRED

2002-08-13 03:40  penguin

	RELEASED: fs2_open 3.2 (tag: fs2_open3_2)

2002-08-13 03:34  penguin

	* code/freespace2/freespace.cpp (2.6):

	1. Disable CD checking
	2. Add CVS tag to version string

2002-08-13 03:32  penguin

	* code/globalincs/version.h (2.2):

	Bumped to version 3.2

2002-08-07 00:45  DTP

	* code/graphics/grd3drender.cpp (2.3):

	Implented -GF4FIX commandline switch & #include "cmdline/cmdline.h"

2002-08-07 00:44  DTP

	* code/cmdline/: cmdline.cpp (2.4), cmdline.h (2.3):

	Implented -GF4FIX commandline switch

2002-08-06 16:50  phreak

	* code/hud/hudtargetbox.cpp (2.2):

	added wireframe targetbox feature

2002-08-06 16:50  phreak

	* code/hud/hudtargetbox.h (2.1):

	added Targetbox_wire variable to check what mode the hud targetbox
	uses

2002-08-06 16:49  phreak

	* code/io/keycontrol.cpp (2.2):

	added keybing for wireframe hud, fixed previous missile cheat

2002-08-06 04:39  penguin

	* code/hud/hudwingmanstatus.cpp (2.2):

	Use text strings for wingmen names instead of ANI

2002-08-06 03:50  penguin

	* code/ui/ui.h (2.2):

	inserted "class" keyword on "friend" definitions (ANSI C++ )

2002-08-06 02:42  penguin

	* Freespace2.dsp (1.7), code/code.dsp (1.6):

	Fixed problem w/ compile options for Debug mode

2002-08-06 01:49  penguin

	* code/Makefile (2.4):

	Removed a couple more include dirs I missed

2002-08-06 01:49  penguin

	* code/: globalincs/pstypes.h (2.4), render/3dclipper.cpp (2.2),
	render/3ddraw.cpp (2.2):

	Renamed ccode members to cc_or and cc_and

2002-08-04 05:43  penguin

	* ChangeLog (1.1), code/ChangeLog (1.3):

	Moved ChangeLog to top-level directory

2002-08-04 05:13  penguin

	RELEASED: fs2_open 3.1 (tag: fs2_open3_1)

2002-08-04 05:13  penguin

	* code/network/stand_gui.cpp (2.3):

	Change version display

	* code/menuui/playermenu.cpp (2.2):

	Display fs2_open version instead of "Freespace 2"

	* code/menuui/mainhallmenu.cpp (2.3):

	Change version display location

	* code/globalincs/version.h (2.1):

	Update version number to 3.1

	* code/freespace2/freespace.cpp (2.5):

	Don't write version to registry; change way version string is
	formatted

	* code/ChangeLog (1.1), ChangeLog (1.2):

	Moved ChangeLog to top-level directory

2002-08-03 19:42  randomtiger

	* code/graphics/grd3drender.cpp (2.2):

	Fixed Geforce 4 bug that caused font and hall video distortion.
	Very small change in 'gr_d3d_aabitmap_ex_internal'

	Tested and works on the following systems

	OUTSIDER Voodoo 3 win98 OUTSIDER Geforce 2 win2000 Me Geforce 4 PNY
	4600 XP JBX-Phoenix Geforce 4 PNY XP Mehrunes GeForce 3 XP
	WMCoolmon nVidia TNT2 M64 win2000 Orange GeForce 4 4200 XP
	ShadowWolf_IH Monster2 win98 ShadowWolf_IH voodoo 2 win98

2002-08-03 18:34  wmcoolmon

	* code/code.dsp (1.5), Freespace2.dsp (1.6):

	Fixed Win32 debug configuration

2002-08-03 17:42  wmcoolmon

	* Freespace2.dsp (1.5), code/code.dsp (1.4):

	Sync with makefile 1.4

2002-08-01 04:04  penguin

	* code/ChangeLog (1.2):

	updated

2002-08-01 02:00  penguin

	* fs2_open.w32.mak (1.4):

	The big include file move

====
NOTE:
====
	below this point, all files are relative to the 'code' directory

2002-08-01 01:41  penguin

	* Makefile (2.3), anim/animplay.cpp (2.1), anim/animplay.h (2.1),
	anim/packunpack.cpp (2.1), anim/packunpack.h (2.1),
	asteroid/asteroid.cpp (2.1), asteroid/asteroid.h (2.1),
	bmpman/bmpman.cpp (2.2), cfile/cfile.cpp (2.3), cfile/cfile.h
	(2.2), cfile/cfilearchive.cpp (2.2), cfile/cfilelist.cpp (2.2),
	cfile/cfilesystem.cpp (2.3), cmdline/cmdline.cpp (2.3),
	cmeasure/cmeasure.cpp (2.1), cmeasure/cmeasure.h (2.1),
	controlconfig/controlsconfig.cpp (2.1),
	controlconfig/controlsconfigcommon.cpp (2.1),
	cryptstring/cryptstring.cpp (2.1), cutscene/cutscenes.cpp (2.2),
	cutscene/cutscenes.h (2.1), debris/debris.cpp (2.1),
	debugconsole/console.cpp (2.1), demo/demo.cpp (2.2), directx/vd3d.h
	(2.1), directx/vd3dcaps.h (2.1), directx/vd3di.h (2.2),
	directx/vd3drm.h (2.1), directx/vd3drmdef.h (2.2),
	directx/vd3drmobj.h (2.1), directx/vd3drmwin.h (2.2),
	directx/vd3dtypes.h (2.2), directx/vdplobby.h (2.1),
	directx/vdsound.h (2.1), fireball/fireballs.cpp (2.1),
	fireball/fireballs.h (2.1), fireball/warpineffect.cpp (2.1),
	freespace2/freespace.cpp (2.4), freespace2/freespace.h (2.1),
	freespace2/levelpaging.cpp (2.1), gamehelp/contexthelp.cpp (2.1),
	gamehelp/gameplayhelp.cpp (2.1), gamesequence/gamesequence.cpp
	(2.1), gamesequence/gamesequence.h (2.1), gamesnd/eventmusic.cpp
	(2.1), gamesnd/eventmusic.h (2.1), gamesnd/gamesnd.cpp (2.1),
	gamesnd/gamesnd.h (2.1), glide/glide.cpp (2.2), glide/glide.h
	(2.2), globalincs/alphacolors.cpp (2.1), globalincs/crypt.cpp
	(2.1), globalincs/pstypes.h (2.3), globalincs/systemvars.cpp (2.1),
	globalincs/version.cpp (2.1), globalincs/windebug.cpp (2.1),
	graphics/2d.cpp (2.3), graphics/2d.h (2.1), graphics/aaline.cpp
	(2.2), graphics/bitblt.cpp (2.1), graphics/circle.cpp (2.1),
	graphics/colors.cpp (2.1), graphics/font.cpp (2.3), graphics/font.h
	(2.2), graphics/gradient.cpp (2.2), graphics/grd3d.cpp (2.2),
	graphics/grd3dinternal.h (2.1), graphics/grd3drender.cpp (2.1),
	graphics/grd3dtexture.cpp (2.1), graphics/grdirectdraw.cpp (2.1),
	graphics/grglide.cpp (2.1), graphics/grglideinternal.h (2.1),
	graphics/grglidetexture.cpp (2.1), graphics/grinternal.h (2.1),
	graphics/gropengl.cpp (2.3), graphics/grsoft.cpp (2.2),
	graphics/grzbuffer.cpp (2.1), graphics/line.cpp (2.2),
	graphics/pixel.cpp (2.1), graphics/rect.cpp (2.1),
	graphics/scaler.cpp (2.2), graphics/scaler.h (2.1),
	graphics/shade.cpp (2.2), graphics/tmapgenericscans.cpp (2.1),
	graphics/tmapper.cpp (2.2), graphics/tmapscanline.cpp (2.1),
	graphics/tmapscantiled128x128.cpp (2.1),
	graphics/tmapscantiled16x16.cpp (2.1),
	graphics/tmapscantiled256x256.cpp (2.1),
	graphics/tmapscantiled32x32.cpp (2.1),
	graphics/tmapscantiled64x64.cpp (2.1),
	graphics/directx8/GrD3D81.cpp (1.2),
	graphics/directx8/grd3d81internal.h (1.2), hud/hud.cpp (2.1),
	hud/hud.h (2.1), hud/hudartillery.cpp (2.1), hud/hudartillery.h
	(2.1), hud/hudbrackets.cpp (2.1), hud/hudbrackets.h (2.1),
	hud/hudconfig.cpp (2.2), hud/hudconfig.h (2.1), hud/hudescort.cpp
	(2.1), hud/hudets.cpp (2.1), hud/hudets.h (2.1), hud/hudlock.cpp
	(2.1), hud/hudmessage.cpp (2.1), hud/hudobserver.cpp (2.1),
	hud/hudobserver.h (2.1), hud/hudreticle.cpp (2.1), hud/hudreticle.h
	(2.1), hud/hudshield.cpp (2.2), hud/hudsquadmsg.cpp (2.1),
	hud/hudsquadmsg.h (2.1), hud/hudtarget.cpp (2.1), hud/hudtarget.h
	(2.1), hud/hudtargetbox.cpp (2.1), hud/hudwingmanstatus.cpp (2.1),
	inetfile/cftp.cpp (2.1), inetfile/chttpget.cpp (2.2),
	inetfile/inetgetfile.cpp (2.1), inetfile/inetgetfile.h (2.1),
	io/joy.cpp (2.1), io/joy_ff.cpp (2.2), io/key.cpp (2.3), io/key.h
	(2.1), io/keycontrol.cpp (2.1), io/keycontrol.h (2.1), io/mouse.cpp
	(2.3), io/mouse.h (2.2), io/sw_force.h (2.1), io/swff_lib.cpp
	(2.1), io/timer.cpp (2.2), io/timer.h (2.2), io/xmouse.cpp (2.1),
	jumpnode/jumpnode.cpp (2.1), jumpnode/jumpnode.h (2.1),
	lighting/lighting.cpp (2.1), localization/fhash.cpp (2.1),
	localization/localize.cpp (2.1), math/fix.cpp (2.2),
	math/floating.cpp (2.1), math/fvi.cpp (2.1), math/fvi.h (2.1),
	math/spline.cpp (2.1), math/spline.h (2.1), math/staticrand.cpp
	(2.1), math/vecmat.cpp (2.1), math/vecmat.h (2.1),
	menuui/barracks.cpp (2.2), menuui/credits.cpp (2.2),
	menuui/fishtank.cpp (2.1), menuui/mainhallmenu.cpp (2.2),
	menuui/mainhalltemp.cpp (2.1), menuui/optionsmenu.cpp (2.1),
	menuui/optionsmenu.h (2.1), menuui/optionsmenumulti.cpp (2.1),
	menuui/playermenu.cpp (2.1), menuui/readyroom.cpp (2.1),
	menuui/snazzyui.cpp (2.1), menuui/snazzyui.h (2.1),
	menuui/techmenu.cpp (2.1), menuui/trainingmenu.cpp (2.1),
	mission/missionbriefcommon.cpp (2.1), mission/missionbriefcommon.h
	(2.1), mission/missioncampaign.cpp (2.3), mission/missioncampaign.h
	(2.1), mission/missiongoals.cpp (2.1), mission/missiongoals.h
	(2.1), mission/missiongrid.cpp (2.1), mission/missionhotkey.cpp
	(2.1), mission/missionload.cpp (2.1), mission/missionload.h (2.2),
	mission/missionlog.cpp (2.1), mission/missionmessage.cpp (2.1),
	mission/missionmessage.h (2.1), mission/missionparse.cpp (2.1),
	mission/missionparse.h (2.3), mission/missiontraining.cpp (2.1),
	missionui/chatbox.cpp (2.1), missionui/missionbrief.cpp (2.1),
	missionui/missionbrief.h (2.1), missionui/missioncmdbrief.cpp
	(2.1), missionui/missiondebrief.cpp (2.2),
	missionui/missionloopbrief.cpp (2.1), missionui/missionpause.cpp
	(2.1), missionui/missionpause.h (2.1),
	missionui/missionscreencommon.cpp (2.1),
	missionui/missionscreencommon.h (2.1),
	missionui/missionshipchoice.cpp (2.1),
	missionui/missionshipchoice.h (2.1),
	missionui/missionweaponchoice.cpp (2.1),
	missionui/missionweaponchoice.h (2.1), missionui/redalert.cpp
	(2.1), missionui/redalert.h (2.1), model/model.h (2.4),
	model/modelcollide.cpp (2.1), model/modelinterp.cpp (2.3),
	model/modeloctant.cpp (2.1), model/modelread.cpp (2.3),
	model/modelsinc.h (2.3), nebula/neb.cpp (2.1),
	nebula/neblightning.cpp (2.1), network/fs2ox.cpp (1.2),
	network/multi.cpp (2.2), network/multi.h (2.2),
	network/multi_campaign.cpp (2.2), network/multi_data.cpp (2.3),
	network/multi_dogfight.cpp (2.1), network/multi_endgame.cpp (2.2),
	network/multi_ingame.cpp (2.1), network/multi_kick.cpp (2.1),
	network/multi_log.cpp (2.2), network/multi_obj.cpp (2.2),
	network/multi_observer.cpp (2.2), network/multi_oo.cpp (2.1),
	network/multi_oo.h (2.1), network/multi_options.cpp (2.2),
	network/multi_pause.cpp (2.2), network/multi_pinfo.cpp (2.1),
	network/multi_ping.cpp (2.1), network/multi_pmsg.cpp (2.3),
	network/multi_rate.cpp (2.1), network/multi_respawn.cpp (2.2),
	network/multi_team.cpp (2.1), network/multi_update.cpp (2.1),
	network/multi_voice.cpp (2.2), network/multi_xfer.cpp (2.2),
	network/multilag.cpp (2.1), network/multimsgs.cpp (2.2),
	network/multiteamselect.cpp (2.2), network/multiui.cpp (2.4),
	network/multiui.h (2.1), network/multiutil.cpp (2.3),
	network/multiutil.h (2.1), network/psnet.cpp (2.2), network/psnet.h
	(2.1), network/psnet2.cpp (2.3), network/psnet2.h (2.4),
	network/stand_gui.cpp (2.2), object/collidedebrisship.cpp (2.1),
	object/collidedebrisweapon.cpp (2.1), object/collideshipship.cpp
	(2.2), object/collideshipweapon.cpp (2.1),
	object/collideweaponweapon.cpp (2.1), object/objcollide.cpp (2.1),
	object/objcollide.h (2.1), object/object.cpp (2.1), object/object.h
	(2.1), object/objectsnd.cpp (2.2), object/objectsort.cpp (2.1),
	observer/observer.cpp (2.1), observer/observer.h (2.1),
	osapi/osapi.cpp (2.2), osapi/osapi.h (2.2), osapi/osapi_unix.cpp
	(2.2), osapi/osregistry.cpp (2.1), osapi/osregistry_unix.cpp (2.2),
	osapi/outwnd.cpp (2.1), osapi/outwnd_unix.cpp (2.2),
	palman/palman.cpp (2.1), parse/encrypt.cpp (2.1), parse/parselo.cpp
	(2.1), parse/parselo.h (2.2), parse/sexp.cpp (2.2), parse/sexp.h
	(2.2), particle/particle.cpp (2.1), pcxutils/pcxutils.cpp (2.1),
	pcxutils/pcxutils.h (2.1), physics/physics.cpp (2.1),
	physics/physics.h (2.1), playerman/managepilot.cpp (2.2),
	playerman/managepilot.h (2.1), playerman/player.h (2.1),
	playerman/playercontrol.cpp (2.1), popup/popup.cpp (2.1),
	popup/popupdead.cpp (2.1), radar/radar.cpp (2.1), render/3d.h
	(2.1), render/3dclipper.cpp (2.1), render/3ddraw.cpp (2.1),
	render/3dinternal.h (2.1), render/3dlaser.cpp (2.1),
	render/3dmath.cpp (2.1), render/3dsetup.cpp (2.1),
	scramble/scramble.cpp (2.1), ship/afterburner.cpp (2.1),
	ship/afterburner.h (2.1), ship/ai.cpp (2.1), ship/ai.h (2.1),
	ship/aibig.cpp (2.1), ship/aicode.cpp (2.7), ship/aigoals.cpp
	(2.1), ship/aigoals.h (2.1), ship/awacs.cpp (2.1), ship/shield.cpp
	(2.3), ship/ship.cpp (2.6), ship/ship.h (2.3),
	ship/shipcontrails.cpp (2.2), ship/shipfx.cpp (2.1),
	ship/shiphit.cpp (2.5), sound/acm.cpp (2.1), sound/acm.h (2.1),
	sound/audiostr.cpp (2.1), sound/channel.h (2.1), sound/ds.cpp
	(2.1), sound/ds.h (2.1), sound/ds3d.cpp (2.2), sound/dscap.cpp
	(2.1), sound/rbaudio.cpp (2.1), sound/rtvoice.cpp (2.1),
	sound/sound.cpp (2.2), starfield/nebula.cpp (2.1),
	starfield/starfield.cpp (2.1), starfield/starfield.h (2.1),
	starfield/supernova.cpp (2.1), stats/medals.cpp (2.2),
	stats/medals.h (2.1), stats/scoring.cpp (2.1), stats/scoring.h
	(2.1), stats/stats.cpp (2.2), stats/stats.h (2.1),
	tgautils/tgautils.cpp (2.1), ui/button.cpp (2.1), ui/checkbox.cpp
	(2.1), ui/gadget.cpp (2.1), ui/icon.cpp (2.1), ui/inputbox.cpp
	(2.1), ui/keytrap.cpp (2.1), ui/listbox.cpp (2.1), ui/radio.cpp
	(2.1), ui/scroll.cpp (2.1), ui/slider.cpp (2.1), ui/slider2.cpp
	(2.1), ui/ui.h (2.1), ui/uidefs.h (2.1), ui/uidraw.cpp (2.1),
	ui/uimouse.cpp (2.1), ui/window.cpp (2.1), vcodec/codec1.cpp (2.3),
	weapon/beam.cpp (2.3), weapon/beam.h (2.2), weapon/corkscrew.cpp
	(2.1), weapon/corkscrew.h (2.1), weapon/emp.cpp (2.1),
	weapon/flak.cpp (2.1), weapon/muzzleflash.cpp (2.1),
	weapon/shockwave.cpp (2.1), weapon/shockwave.h (2.1),
	weapon/swarm.cpp (2.1), weapon/swarm.h (2.1), weapon/trails.cpp
	(2.1), weapon/trails.h (2.1), weapon/weapon.h (2.1),
	weapon/weapons.cpp (2.1), windows_stub/stubs.cpp (2.4):

	The big include file move

2002-07-30 18:11  wmcoolmon

	* ship/ship.cpp (2.5):

	Fixed a bug I added in ship_do_rearm_frame

2002-07-30 17:57  wmcoolmon

	* ship/ship.cpp (2.4):

	Modified to add hull repair capabilities and toggling of them via a
	mission flag, MISSION_FLAG_SUPPORT_REPAIRS_HULL

2002-07-30 17:35  wmcoolmon

	* mission/missionparse.h (2.2):

	Added mission flag "MISSION_FLAG_SUPPORT_REPAIRS_HULL" for toggling
	Support Ship hull repair on and off

2002-07-30 14:29  unknownplayer

	* code.dsp (1.3), graphics/2d.cpp (2.2), graphics/grd3d.cpp (2.1),
	graphics/directx8/GrD3D81.cpp (1.1), graphics/directx8/GrD3D81.h
	(1.1), graphics/directx8/GrD3D81Render.cpp (1.1),
	graphics/directx8/GrD3D81Texture.cpp (1.1),
	graphics/directx8/grd3d81internal.h (1.1), network/psnet2.cpp
	(2.2):

	Started work on DX8.1 implementation. Updated the project files to
	encompass the new files. Disable the compiler tag to use old DX
	code (THERE IS NO NEW CODE YET!)

2002-07-29 22:24  penguin

	* network/: fs2ox.cpp (1.1), fs2ox.h (1.1):

	First attempt at "fs2_open exchange" (PXO substitute) screen

2002-07-29 22:14  penguin

	* ChangeLog (1.1):

	We finally have a ChangeLog

2002-07-29 20:48  penguin

	* Ship/shiphit.cpp (2.4):

	Moved extern declaration of ssm_create outside of block (it
	wouldn't compile w/ gcc)

2002-07-29 20:12  penguin

	* FREESPACE2/freespace.cpp (2.3), Graphics/font.cpp (2.2),
	Graphics/gradient.cpp (2.1), Graphics/line.cpp (2.1), Io/key.cpp
	(2.2), Io/mouse.cpp (2.2), Math/fix.cpp (2.1),
	Mission/missioncampaign.cpp (2.2), Stats/stats.cpp (2.1),
	VCodec/codec1.cpp (2.2):

	added #ifdef _WIN32 around windows-specific system headers

2002-07-29 20:12  penguin

	* OsApi/: osregistry_unix.cpp (2.1), outwnd_unix.cpp (2.1):

	removed bogus #include windows.h

2002-07-29 19:52  penguin

	* CFile/cfilesystem.cpp (2.2):

	added #ifdef _WIN32 around windows-specific system headers

2002-07-29 19:37  penguin

	* CFile/cfilelist.cpp (2.1):

	added #ifdef _WIN32 around windows-specific system headers

2002-07-29 19:17  penguin

	* CFile/cfilearchive.cpp (2.1):

	added #ifdef _WIN32 around windows-specific system headers

2002-07-29 19:04  penguin

	* CFile/cfile.cpp (2.2):

	added #ifdef _WIN32 around windows-specific system headers

2002-07-29 08:31  DTP

	* Model/model.h (2.3):

	Forgot to Bump MAX_MODEL_SUBSYSTEMS from 128 to 200

2002-07-29 08:28  DTP

	* Model/model.h (2.2):

	BUMPED MAX_POLYGON_MODELS TO 198 , MAX_SHIP_TYPES - 2 = 198

2002-07-29 08:24  DTP

	* Ship/ship.h (2.2):

	Bumped all MAX_SHIPS, and SHIP_LIMIT to 400.(let the mission
	designers decide what is good, and what is bad

2002-07-29 08:22  DTP

	* Ship/ship.cpp (2.3):

	Bumped MAX_SHIP_SUBOBJECTS to 2100(2100 /(average fighter has 7
	subsystems) = 400 fighters

2002-07-29 08:19  DTP

	* Ship/shiphit.cpp (2.3):

	Bumped MAX_SUBSYS_LIST from 32 to 200

2002-07-29 08:05  DTP

	* Network/multiui.cpp (2.3):

	-almission(autoload mission) commandline arguement handling
	implemented

2002-07-29 07:56  DTP

	* MenuUI/mainhallmenu.cpp (2.1):

	FIX; Startgame arguement dont go ahead when a singleplayer pilot is
	selected

2002-07-29 06:35  DTP

	* Cmdline/: cmdline.cpp (2.2), cmdline.h (2.2):

	added -almission commandline arguement, will autoload mission i.e
	fs2_open.exe -almission kickass will autoload kickass.fs2 which
	should be a multiplayer mission.

2002-07-28 15:07  DTP

	* Network/multiui.cpp (2.2):

	FIX -stargame commandline arguement will now let you quit, a thing
	not possible before when using the startgame arguement

2002-07-26 16:17  penguin

	* Object/collideshipship.cpp (2.1):

	renamed 'big' and 'small' (conflict w/ MS include file)

2002-07-26 16:12  penguin

	* Network/psnet2.h (2.3):

	fixed bug where winsock.h wasn't defined

2002-07-26 03:11  wmcoolmon

	* Weapon/beam.cpp (2.2):

	Added Bobboau's beam tiling code

2002-07-25 04:50  wmcoolmon

	* Ship/shield.cpp (2.2), Ship/ship.cpp (2.2), Weapon/beam.cpp
	(2.1), Weapon/beam.h (2.1):

	Added Bobboau's fighter-beam code.

2002-07-22 01:39  penguin

	* FREESPACE2/freespace.cpp (2.2):

	Added ifndef NO_STANDALONE

2002-07-22 01:37  penguin

	* Sound/rtvoice.h (2.1):

	Stub defines for NO_SOUND

2002-07-22 01:22  penguin

	* Network/: multi.cpp (2.1), multi.h (2.1), multi_campaign.cpp
	(2.1), multi_data.cpp (2.2), multi_endgame.cpp (2.1),
	multi_options.cpp (2.1), multi_pause.cpp (2.1), multi_pmsg.cpp
	(2.2), multi_voice.cpp (2.1), multimsgs.cpp (2.1), multiui.cpp
	(2.1), multiutil.cpp (2.2), psnet.cpp (2.1), psnet2.cpp (2.1),
	psnet2.h (2.2), stand_gui.cpp (2.1), stand_gui.h (2.1):

	Linux port -- added NO_STANDALONE ifdefs

2002-07-22 01:14  penguin

	* Makefile (2.2):

	Made more compatible w/ Win32; defines for NO_SOUND, NO_JOYSTICK,
	NO_NETWORK

2002-07-22 01:10  penguin

	* windows_stub/stubs.cpp (2.3):

	Moved the dummy "sound" definitions to main program (freespace.cpp)

2002-07-22 01:06  penguin

	* windows_stub/config.h (2.2):

	More defines for winsock compatibility

2002-07-22 01:04  penguin

	* GlobalIncs/pstypes.h (2.2):

	took out GAME_CD_CHECK define

2002-07-20 23:51  DTP

	* Hud/hudshield.cpp (2.1):

	Bumped Max Shield Icons to 80

2002-07-20 23:50  DTP

	* MissionUI/missiondebrief.cpp (2.1):

	Fixed multiplayer music. succes music on all Primary goals
	complete, fail music if otherwise

2002-07-20 23:49  DTP

	* Ship/ship.cpp (2.1):

	Fixed Secondary bank bug, where next valid secondary bank inherits
	current valid banks FULL fire delay

2002-07-20 19:21  DTP

	* Parse/parselo.h (2.1):

	bumped MAX_MISSION_TEXT to 1000000 in code/parse/parselo.h

2002-07-18 20:07  penguin

	* Hud/hudconfig.cpp (2.1):

	Fixed bug (potential access of unitialized pointer) in
	hud_config_render_gauges() -- thanks to DTP for finding it!

2002-07-18 14:36  unknownplayer

	* Ship/aicode.cpp (2.6):

	no message

2002-07-18 09:55  unknownplayer

	* Ship/aicode.cpp (2.5):

	Revised AI primary selection code again to be more intelligent.

2002-07-18 05:38  unknownplayer

	* Ship/aicode.cpp (2.4):

	Rewrote my original algorithm to search by proportional hull
	damage.  Does the same thing a little better.

2002-07-18 03:27  unknownplayer

	* Ship/aicode.cpp (2.3):

	Fixed AI problems with using the maxim on fighters.

2002-07-18 03:26  unknownplayer

	* Ship/shield.cpp (2.1):

	Added some commentry to the low detail shield function.

2002-07-18 03:25  unknownplayer

	* Ship/shiphit.cpp (2.2):

	no message

2002-07-17 23:59  unknownplayer

	* code.dsp (1.2):

	Altered project files to properly build debug info. Should save you
	all some time.

2002-07-17 23:58  unknownplayer

	* Ship/aicode.cpp (2.2):

	Minor commenting added to two functions.

2002-07-17 20:04  wmcoolmon

	* Ship/shiphit.cpp (2.1):

	Added SSM code for Tag C from Bobboau. Note that strings.tbl may
	need to be updated.

2002-07-16 14:39  unknownplayer

	* Graphics/gropengl.cpp (2.2):

	Updated to enable compilation under MSVC++ - all changes are marked
	with my name ##UnknownPlayer##

2002-07-16 14:37  unknownplayer

	* code.dsp (1.1):

	This is the code project file.

license: Unlicense


text:
### Acquisition

 - Landing page through referral
 - Is @recipient
 - Saw @sender tipping @recipient on Twitter

### Activation
**Landing Page**

Sees walkthough/examples
Sign in with Twitter
Deposit BTCs (big barrier), then "congrats you x in your tipping purse"
Keep it up @recipient, here's 1 BTC, @TipperCoin
Congrats @sender, your tip went through, see it here TipperCoin.com/profile

Sees walkthough/examples
Doesn't auth via twitter, tried sending anyway

1. Option One
Hi @sender, complete your tip by depositing on TipperCoin.com/profile/@sender
Address, OR, Authenticate via twitter
If address, transaction goes anonymously
If auth, deposit, then goes through

2. Option Two (preferrable given less complexity)
Hi @sender, to make your first tip, please create an account at TipperCoin.com/create?screen_name='screename'

**Is @recipient**
Keep it up @recipient, here's 0.01 BTC, @tipacoin
Hi @recipient, @sender just tipped you 0.001 BTC! Find it at TipperCoin.com/profile/@recipient
Goes to their own profile page, see it's legit
"Is this you? Authenticate via twitter"
Authenticate via twitter

**Saw @sender tipping @recipient**
Clicks @TipperCoin
Clicks a couple of profile links
Sees landing page
As per above

### Send

**@sender doesn't have enough btc**
Hi @sender, complete your tip by topping up your account TipperCoin.com/#/account?deposit=1000000
Deposit page
Not enough, deposit 0.0000 BTC then try again.
Or, tip a lower amount

### Retention
Tip Suggestions
@sender just tipped 0.001 BTC to @recipient, think you can beat that?
Tip Roulette, Follow us and get the occasional tip
@recipient just did this, be the first to give him a tip!

### Issues
Big bottle neck is getting people to deposit into TipperCoin

Steps would be:
See amount
See address
New Tab, or open Desktop Client
Login with password
Find address again
Copy/paste
Find amount again
Copy/paste
Click send

license: MIT

repository: Stirling/auroratip

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: Stirling/auroratip


text:
# Propolis emarginata (Cooke & Massee) Sherwood, 1977 SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Mycotaxon 5(1): 323 (1977)

#### Original name
Stictis emarginata Cooke & Massee, 1889

### Remarks
null

repository: mdoering/backbone

path: /life/Fungi/Ascomycota/Leotiomycetes/Rhytismatales/Rhytismataceae/Marthamyces/Marthamyces emarginatus/ Syn. Propolis emarginata/README.md

repo_name: mdoering/backbone


text:
# IMF Delivery Schema

Based on the collective experience of the IMF users including content producers, service providers, media distributors, and system manufacturers, a working group was established to assess the feasibility and examine the limitations of automating the delivery specification and IMF validation process. The result of this open and collaborative effort is the definition of this IMF Delivery Schema XML document that accurately describes CPL constraints for IMF deliveries. The Delivery Schema serves the following dual purpose:

1. Provide information for someone creating an IMF for delivery to the entity who specifies the delivery.
2. Specify how to validate an IMP against the specifications provided by the intended recipient.

Please use GitHub [issue tracking](https://github.com/imfug/delivery-schema/issues) to file any issues that you come across or feature requests that you would like to discuss.

This project is lead by the IMF User Group membership. To learn more about the IMF User Group, please visit [imfug.com](https://www.imfug.com/)

**Repository Layout:**

*(Links pointing to latest version in master branch. Tagged releases available [here](https://github.com/imfug/delivery-schema/releases).)*

[/documentation](documentation/specification) - prose specification for the IMF Delivery Schema

/examples - example delivery specification XML documents that conform to the IMF Delivery Schema

/schema - the actual IMF Delivery Schema XSD file

repository: imfug/delivery-schema

repo_name: imfug/delivery-schema


text:
# Base Web Project Gulp

Base Web Project using: Gulp, Browsersync, Webpack 2, Babel and Karma.

Development server is a combination of Browsersync + Webpack.
Webpack Hot Middleware watches js files and reloads browser.

## Developer Setup

Prerequisites
-------------

* [NVM](https://github.com/creationix/nvm) or [Node.js](https://nodejs.org)
* [Gulp Command Line Interface (CLI)](https://github.com/gulpjs/gulp-cli)

Requirements
-------------

* Nodejs v.8.0.0

        nvm ls-remote
        nvm install 8.0.0
        nvm use 8.0.0

* Please download the [Editor Config](http://editorconfig.org/) plugin for your code editor

* From the Terminal:

        npm install -g gulp-cli
        npm run start
        gulp

## Starting Up The Project

Run ```npm install``` to setup project dependencies.

Run ```gulp``` to build the project for development and open a browser instance with watch.

Run ```gulp prod``` to build the project for production.

Run ```gulp server``` to serve the distribution files.

Run ```gulp unit``` to run unit tests using Karma + Webpack + ChromeHeadless + Code Coverage non transpiled code.


text:
# Archon Arena

![https://i.imgur.com/Kn5La99.png](https://i.imgur.com/Kn5La99.png)

## Frontend

### Setup

```
yarn
```

### Run locally

1. Open _src/matchmaking/GameRenderer.tsx_
2. Follow the instructions in the file
3. `yarn start`
4. Navigate to `http://localhost:3000/game`

## Backend Functions

The code inside `functions` usually does not need to be changed.

### Install

```
yarn
```

### Run locally

Get the file "forge-of-the-archons-firebase-adminsdk-key.json" from someone and drop it in `/functions`

```
yarn serve
```

## Deploy

```
firebase login
yarn build
firebase deploy
```

repository: SkyJedi/archon-arena

gha_language: TypeScript

gha_license_id: MIT

repo_name: SkyJedi/archon-arena


text:
Compactor
---------

     # once
     mvn package

     # run with enough RAM by setting $MAVEN_OPTS or
     # use default settings from the script if you have (32+db size)G machine
     ./sheldon_compactor --mode GLOPS --config propsFile --source oldStoreDir --target newStoreDir

     #
     # for mp.com users only; this serves as an example to other uses
     #
     # --node-handler .SheldonNodePreprocessor --edge-handler .SheldonEdgePreprocessor
     # --node-indexer .SheldonNodeIndexer --edge-indexer .SheldonEdgeIndexer

What it does
------------

Copy neo4j database in oldStoreDir configured with propsFile to newStoreDir applying handlers and indexers as requested.

As a result, your database gets way smaller.

How it does that
----------------

Compactor uses the high performance concurrency framework disruptor. If you
have to touch the code, make sure you understand disruptor before doing so.

Basically compactor runs in two phases, one for nodes, and one for edges.

Each phase consists of a sequence of stages that is passed by each
item (node/edge):

* read item
* write item to new db
* figure out what to index
* write index

Each stage is executed in parallel to the maximum degree possible, i.e.
while the index is being written to other stages may already build up
more data for the index.

How to influence what gets done how
-----------------------------------

* Edit `src/main/java/com/moviepilot/sheldon/compactor/config/Defaults.java` to change global default parameters
* Edit `src/main/java/com/moviepilot/sheldon/compactor/main/Main.java` to change startup, arguments and db setup
  (look here for hidden options, too)
* Edit `src/main/java/com/moviepilot/sheldon/compactor/Compactor.java` to change the general workflow of node and edge
  processing
* Edit the pre-processors and indexers as required

Versions
--------

* Consider using the stable branch on github if you hit troubles
* The pom version is not very telling; Usually it is kept in sync with internal versioning of mp.com; ignore for now

Dependencies
------------

* neo4j
* GNU Trove collection classes for speedy maps
* disruptor
* java-sizeof
* snakeyaml

Caveats
-------

Almost no tests. Written in an emergency. Turned out to work quite nicely.

Uses RelationshipType.name() and DynamicRelationshipType.withName() during compaction.

Released so you may use it in case you need something like this.

Tuning
------

* Use --ring-size-info to see stats about the size of the allocated ring
** --ring-size
** --index-flush-min-count
** --index-flush-max-count
** --num-props
** --num-index-entries
** --num-index-props
** --num-index-writers
** --index-batch-size

mp.com users
------------

* --num-index-writers 2


text:
## Game Cheats
```Bash
Double Dragon

Fight as Duku or Shorko:

Highlight the following fighters at the character selection screen for
three seconds before moving to the next fighter: Billy, Marian, Chung
Fu, Jimmy. The word "Bingo" will confirm correct code entry. Duku or
Shorko may now be selected as a fighter.
```

branch_name: refs/heads/main


text:
This repository contains the elements needed to build a Docker image which can be used to run Hadoop in a distributed fashion.
The configuration of the cluster is based on [this tutorial](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html).

## Obtaining ##

The Hadoop image can be obtained in one of at least two ways:
by pulling it from Docker Hub or building it using the provided Makefile.

### Pulling ###

To pull the image from Docker Hub, type:

```bash
docker pull jamesmcclain/hadoop:2.7.6
```

### Building ###

To build the image with the provided Makefile, type:

```bash
make
```

## Running the Leader ###

The leader contains a YARN Resource Manager, a Hadoop NameNode, a MapReduce History Server, and everything contained by a follower.
To run the leader, type:

```bash
docker network create --driver bridge hadoop
docker run -it --rm --net=hadoop -p 8088:8088 -p 50070:50070 -p 19888:19888 --hostname leader --name leader jamesmcclain/hadoop:2.7.6
```

## Running a Follower ###

A follower contains a YARN NodeManager and a Hadoop DataNode.
To run a follower, type:

```bash
docker run -it --rm --net=hadoop --hostname follower1 --name follower1 --entrypoint /scripts/follower.sh jamesmcclain/hadoop:2.7.6
```

repository: jamesmcclain/HadoopDocker

gha_language: Shell

repo_name: jamesmcclain/HadoopDocker


text:
---
permalink: "/Announcing-Samsung-Internet-v5-4-stable-/"
title: Announcing Samsung Internet v5.4 stable!
category: "Web Development"
cover: img.jpg
author: Peter O'Shaughnessy
authorImg: https://miro.medium.com/fit/c/240/240/1*ky-noIIf_ZZIoGDsvfW3AA.jpeg
---

### Announcing Samsung Internet v5.4 stable!

#### Rolling out over the next few days, featuring DeX support, PWA ambient badging, Physical Web and more!

Thank you to all [our beta](https://medium.com/samsung-internet-dev/samsung-internet-beta-now-available-without-sign-up-e0d5d4010838) testers! Samsung Internet version 5.4 is now being released in our stable channel. As usual with our gradual roll-outs, it will become available worldwide over the next few days [via the Play Store](https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser) and Galaxy Apps store. Version 5.4 includes all the latest browser features and enhancements that [launched with v5.2 on the S8](https://medium.com/samsung-internet-dev/unpacking-the-latest-samsung-internet-fb1eac41cb7a), making them available to all supported devices — including Nexus and Pixel phones, for the first time for our stable release!

![](https://cdn-images-1.medium.com/max/800/1*eC946I8frupaZSZdg5tT9Q.png)

The features from v5.4 Beta are arriving in v5.4 Stable!

[Diego](https://medium.com/u/33cea791460a) [wrote about some of the new features with the S8 launch](https://medium.com/samsung-internet-dev/unpacking-the-latest-samsung-internet-fb1eac41cb7a) and [Ada](https://medium.com/u/c2890cdd7a64) [shared about some of the others with the beta launch,](https://medium.com/samsung-internet-dev/samsung-internet-beta-now-available-without-sign-up-e0d5d4010838) but let’s recap and introduce those we haven’t shared before too!:

#### Desktop experience

The new [Samsung DeX](http://www.samsung.com/global/galaxy/apps/samsung-dex/) allows the Galaxy S8 and S8+ to power an entire desktop experience. The Samsung Internet browser is now optimised for desktop browsing.

This means the Progressive Web App [ambient badging behaviour](https://medium.com/samsung-internet-dev/what-does-it-mean-to-be-an-app-ace43eb6b94d) pioneered on our mobile browser is now available on the desktop!

If you’re interested in how PWAs can work great across mobile and desktop, be sure to check out [Ada](https://medium.com/u/c2890cdd7a64)’s blog post: [_Samsung DeX brings a new dimension to mobile web_](http://I%20have%20prepared%20copy%20for%20the%20Medium%20DeX%20article.%20I%20will%20take%20screenshots%20and%20videos%20today%20to%20annotate%20it:%20https://medium.com/samsung-internet-dev/samsung-dex-brings-a-new-dimension-to-the-mobile-web-f80d7edcab29)!

#### Web Payments

Samsung Internet in DeX mode enables a new desktop shopping experience. You can use the biometric authentication available from the phone to finalise the payment — using the fingerprint or iris scanner.

As part of the W3C standard Web Payments integration, Samsung Internet will now be ready to support Samsung Pay as an additional payment option, in locations where Samsung Pay online payments are supported. We’ll be sure to share more about this soon and update you as it becomes available in new locations.

#### Progressive Web App indication

Progressive Web Apps are now indicated in the URL bar. The usual button to bookmark the site (a star) gets dynamically replaced by a new + icon. Tapping this icon gives the option to easily save the PWA icon to your homescreen:

![](https://cdn-images-1.medium.com/max/800/1*9J8i1v5k1L14MCYKSkV8og.png)

Twitter Lite PWA in Samsung Internet

This lets you easily launch the web app in standalone mode, like a native app. There’s [further info and discussion about the PWA criteria here](https://medium.com/samsung-internet-dev/what-does-it-mean-to-be-an-app-ace43eb6b94d) and we’d love to hear your feedback.

If you would like to know more about Progressive Web Apps, [Ada](https://medium.com/u/c2890cdd7a64) wrote a great intro [here in Smashing Magazine](https://www.smashingmagazine.com/2016/09/the-building-blocks-of-progressive-web-apps/). I also wrote about how they can combine the best of native and the best of web here in [_Beyond The Browser_](https://medium.com/samsung-internet-dev/beyond-the-browser-3690a589bf7c).

#### CloseBy (Physical Web)

Physical Web beacons help to bridge the digital world and the real world around you. By broadcasting URLs over Bluetooth, they reduce the friction of navigating to relevant web content. With our CloseBy service, Physical Web support has now arrived in our stable browser, helping you to “walk up and use anything”.

![](https://cdn-images-1.medium.com/max/800/1*8Wa2VqfuhEnYcJ9GNOxaFA.jpeg)

Enabling CloseBy in the Extensions settings

For further background, see [_Bringing the real world to your browser with CloseBy_](https://medium.com/samsung-internet-dev/bringing-the-real-world-to-your-browser-with-closeby-830cd162547e).

#### Content Blocker Status UI

As [Ada](https://medium.com/u/c2890cdd7a64) [recently shared](https://medium.com/samsung-internet-dev/staying-safe-online-with-samsung-internet-3941ffc72a00), Samsung Internet’s content blocking extensions can help your browsing to be quicker, less cluttered and more secure. Our new Content Blocker Status UI can be found in the menu. It displays how many contents have been blocked on the current page.

![](https://cdn-images-1.medium.com/max/800/1*RRZ_C7LpkwGoi6TIrzCTXA.png)

After enabling content blocking, you can view the number of blocked requests

#### Tab Swipe

It is now possible to quickly switch between tabs using a gesture. Swipe left or right in the URL bar or the bottom toolbar in order to navigate to your previous/next tab:

![](https://cdn-images-1.medium.com/max/800/1*b8gvb4Kuv_Ce8IqFzYN7QQ.gif)

Tab Swipe feature

#### Quick Menu

Once enabled in the Extensions settings, a Quick Menu button (3 dots in a circle) will be displayed on the left hand side of the screen. This provides quick access to useful options such as sharing, zoom and text size.

![](https://cdn-images-1.medium.com/max/800/1*zmmJekxUfDghS-uto8EONg.png)

Options displayed after tapping the Quick Menu

We hope you enjoy our new version 5.4 and as always, we look forward to your continued feedback!

Tagged in [Web Development](https://medium.com/tag/web-development), [Web Browser](https://medium.com/tag/web-browser), [Android](https://medium.com/tag/android), [Samsung](https://medium.com/tag/samsung), [Samsung Internet](https://medium.com/tag/samsung-internet)

By [Peter O'Shaughnessy](https://medium.com/@poshaughnessy) on [May 17, 2017](https://medium.com/p/fd941e0dcd58).

[Read this article on Medium](https://medium.com/@poshaughnessy/announcing-samsung-internet-v5-4-stable-fd941e0dcd58)

gha_language: HTML


text:
# snake
written in C

ancient snake game

## How to Play

Control the snake using A,S,W,D buttons. After compiling the project if you see weird charachters on the screen, try to activate virtual terminal in regedit. VirtualTerminalAddition.reg file is included to activate the virtual terminal easily.

![giffy](https://raw.githubusercontent.com/ademkaya/snake/master/base/snakeApp/ezgif-4-57e4d30683e2.gif)

repository: ademkaya/snake

repo_name: ademkaya/snake


text:
# Before and after groups

The function specified with the `BeforeGroups` annotation is executed once before all the tests belonging to the specified group is executed and the function specified with the `AfterGroups` annotation is executed once after all the tests belonging to the specified group is executed.

For more information, see [Testing Ballerina Code](https://ballerina.io/learn/test-ballerina-code/execute-tests/#understand-the-test-execution-behavior) and the [`test` module](https://lib.ballerina.io/ballerina/test/latest/).

::: code testerina_before_and_after_groups.bal :::

::: out testerina_before_and_after_groups.out :::

gha_language: Java