refix explosions
remove debug stuff
use rank badge from smoke.pck

there's no visible difference between the two in ufo, but there is in TFTD
shade smoke
fix sound test
interface rules

methods for defining them in ruleset and applying them in the state constructors

also allows for seperate definition of individual colours on a bar (ie:border)
un-hardcode icon size
apply ruleset values to battlescape control panel

and a minor optimization in battlescapeState constructor
apply ruleset values to various sub-screens

inventory, medikit, minimap, stats screen
actual ruleset values for interfaces
add missing include
add ability to define ocean colour block via ruleset

this will come in handy for TFTD
brace yourself.
fix spotted unit numbers
fix 923
no points for live recovery without a containment
- Post-rebase cleanup.

- Highlight TUs in red on the shot selection menu if insufficient.
- Highlight Acc in red if the weapon has insufficient ammo.
- Display auto shot count as ##%x<Count>.

- Display wounded days with status.

- Handle thrown items in ammo count check.
- Remove user preferences.

- Highlight TUs in red on the shot selection menu if insufficient.
- Highlight Acc in red if the weapon has insufficient ammo.
- Display auto shot count as ##%x<Count>.

Conflicts:
	src/Battlescape/ActionMenuState.cpp

- Handle thrown items in ammo count check.
- Remove user preferences.

- Display sell price info on manufacturing screens.
- Shrink actions list in battlescape.
- Added numeric hotkeys to activate actions.
- Display the selected action briefly after selection.

- Rearranged base info window.
- Added soldiers, stores and quarters info to base info.
- Added current stores to manufacture start screen.

- Fixed ammo count checking for non-shooting actions.
- Added a colorable message display for non-warning text.
- Improved damage display.
- Report wounds added from BattleUnit::damage.

- Added a floating combat log to display events.

- Implemented a Quick Reload action.
- Added an option to base reload TU cost off inventory slot and magazine weight.

- Finished quick reload option.  Handles existing magazine now.

Firing a gun while berserk now requires that the gun actually has a snapshot

- Applied new reload logic to AIs.

- Added white cross-marks on the unit health bar to indicate wounds.

- Apply maximize info screen option to various Geoscape screens.

- Added extra check to prevent quick reload action from being available on non-firearms.

- Flash the aim cursor red/yellow if you do not have enough TU to continue firing.

- Added Stores/Quarters information to Purchase screen.

- BattlescapeGenerator::explodePowerSources() was eventually making a call to displayDamage() and crashing if an alien was hurt by the explosion.
- Added a development build configuration for speed compilation and testing.

- Slight reorganization to displayDamage conditions.

- Added proper translations and strings for combat log and reload features.

- Highlight TUs in red on the shot selection menu if insufficient.
- Highlight Acc in red if the weapon has insufficient ammo.
- Display auto shot count as ##%x<Count>.

- Display wounded days with status.

- Handle thrown items in ammo count check.
- Remove user preferences.

- Highlight TUs in red on the shot selection menu if insufficient.
- Highlight Acc in red if the weapon has insufficient ammo.
- Display auto shot count as ##%x<Count>.

- Display wounded days with status.

- Handle thrown items in ammo count check.
- Remove user preferences.

Merge branch 'master' of https://github.com/Darineth/OpenXcom

- Display sell price info on manufacturing screens.
- Shrink actions list in battlescape.
- Added numeric hotkeys to activate actions.
- Display the selected action briefly after selection.

- Rearranged base info window.
- Added soldiers, stores and quarters info to base info.
- Added current stores to manufacture start screen.

- Fixed ammo count checking for non-shooting actions.
- Added a colorable message display for non-warning text.
- Improved damage display.
- Report wounds added from BattleUnit::damage.

- Added a floating combat log to display events.

- Implemented a Quick Reload action.
- Added an option to base reload TU cost off inventory slot and magazine weight.

- Finished quick reload option.  Handles existing magazine now.

Firing a gun while berserk now requires that the gun actually has a snapshot

Merge branch 'master' of https://github.com/Darineth/OpenXcom

- Applied new reload logic to AIs.

- Added white cross-marks on the unit health bar to indicate wounds.

- Apply maximize info screen option to various Geoscape screens.

- Added extra check to prevent quick reload action from being available on non-firearms.

- Flash the aim cursor red/yellow if you do not have enough TU to continue firing.

- Added Stores/Quarters information to Purchase screen.

- BattlescapeGenerator::explodePowerSources() was eventually making a call to displayDamage() and crashing if an alien was hurt by the explosion.
- Added a development build configuration for speed compilation and testing.

- Slight reorganization to displayDamage conditions.

Post-rebase re-merging.

- Added new translations to en-GB language set.

- Fixed combat log crashing when full.
- Fixed quick reload ignoring lack of TUs.

- Added logic to further adjust the Unload TU cost based on the magazine weight with the Adjust Reload Costs option.
  - Quick Reload will now cost Magazine Weight + Hand->Ground cost.
  - Normal Unload will now cost Magazine Weight + Hand->Hand cost.

- Fixed a leftover Combat Log long duration test change in.

- Implemented first level Roles menu for accessing basic role functions.

- First pass at implementing a full Role system for managing unit equipment templates.

- Added a simpler mechanism for the Maximize Info Screens option that also prevents multiple maximized screens from confusing the scale because of constructor/destructor order.

- Adjusted base cost for adjusted ammo reload option.

- Made role icon bob like the original selected unit arrow.

- Completed role ruleset configuration and en-US strings.
- Added "none", "Sniper", and "Rifleman" icons, and placeholder files for the rest.

- Added medic and grenadier icons.
- Cropped sniper simple icon.

- Added Assault, Grenadier, Medic icons.
- Redesigned Sniper icon.

- Fixed Roles not being available in New Battle mode.
- Fixed an incorrect enumeration usage.
- Fixed the sniper role icon palette.

- Re-enabled selected unit bobbing for role icons.
- New mini icon for sniper role.
- Shrunk medic small icon.

- Made shotgun-type weapons simultaneously fire their rounds without using simplified insta-hit logic.

- Fixed State think timer being changed mid-flight on shotgun projectiles.

- Tweaked multi-projectile logic.

- Changed shotgun projectile logic to apply accuracy to an initial shot, then base further spread off of accuracyShotgunSpread on the weapon (if available).

- Finished first draft for demo, heavy, psionic, rocketeer, scout, and specialist role icons.

- Adjusted several role icons, and fixed some palettes.

- Fixed some issues with trajectory calculation on shotgun attacks.

- Further fixes to shotgun projectile mode.
- Store calculated impact on the projectile object rather than a single member variable in ProjectileFlyBState.

- Tweaked several role icons to apply a slightly more embossed effect.

- Shotgun pellet spread now follows a somewhat more realistic normal distribution

Merge branch 'master' of https://github.com/Darineth/OpenXcom

- Fixed shotgun pellet applyAccuracy change to pull the pellet count from the ammo item.

- Improved shot action display to include shotgun shot count.
- Tweaked shotgun pellet impact explosion behavior for simultaneous hits.

- Fixed a bug where _currentAction.result was not cleared after giving a warning for failing a quick reload. This resulted in repeatedly being warned after most actions following it.
- Temporarily changed createNewProjectile so that throwing items can't have shotgun pellets. This was causing crashes when attempting to throw, for example, a cluster rocket.

- Rewrote projectile rendering to use a single pre-pass to generate future drawable objects before looping across visible tiles.
- Capture shotgun attribute at ProjectileFlyBState constructor for use in applyAccuracy later, to prevent issues when running out of ammo.
- Further tweaks to auto/shotgun attacks in shot action menu display.

- Further shotgun pellet logic rewriting to reduce lost or repeated explosions.

- Display estimated accuracy even without UFOExtender accuracy mode.
- Fixed an issue where the initial shotgun tracer round was fired with shotgun mode, causing it to ignore standard accuracy rules.

- Added kneelModifier to RuleItem so that weapons may define exactly what accuracy multiplier they get for kneeling.

- Fixed LoS check being skipped on normal shots.

- Display grenade primed indicator on battlescape.

- Combat log adjustments.
- Fixed bad translation string for Reloaded combat log display.

- Early attempt - explosions occur synchronously.

- Async explosion logic round 1.

- Final round of async shot/explosion logic.

- Cleanup/fix branch.

- Fixed target voxel deviation for shotgun-type weapons on auto fire.

- Do not change state interval in ExplosionBState when being run as a sub-state.

- Added blastDropoff to item ruleset, which controls how quickly an explosion loses damage as it spreads outward
- Modified explosion-related functions so that the visual size and sound of an explosion is determined by blast radius instead of power

- Allow mousewheel scrolling through oversized ground inventories.

- Fixed incorrect max on mouse wheel inventory scrolling.

- Fix inventory not being re-rendered for some actions.

- Combat log improvements for non-damage or stun damage attacks.
- Further tweaks to mousewheel inventory scrolling.

- Slight tweak to RoleIconNone.

- Added reactionsModifier as a setting to RuleItem

- Implemented per-weapon AI range handling.

New item rules:
aiRangeClose, aiRangeMid, aiRangeLong, aiRangeMax
aiAttackPriorityClose, aiAttackPriorityMid, aiAttackPriorityLong, aiAttackPriorityMax.

- Adjusted reserved TU fallback logic to handle weapons with non-standard shot configurations.
- Force AI to use normal TU reserve logic instead of custom percentages.

- Fix firing animation getting stuck.

- Fixed an issue causing crashes with the modified explosion graphics/sound code

- Implemented Overwatch ability.

- Grant hostile units the weapon kneel modifier if it is above the base 115.

- Commented alien unit kneel special case.

- Fixed death message spam for multi-hit weapons.
- Fixed canMakeReactionShot not checking required TUs on snapshot.

- Adjusted Overwatch cost to be a minimum of 90% of the unit's TU.
- Added a simple display for overwatch to indicate the target region.

- Clear Overwatch state on new turn.

- Add Role to Soldier Info screen.
- Apply "one in a million" AI fix.

- Fixed InventoryState not popping the maximized state properly.
- Added an Inventory button to the soldier info screen.

- Post-rebase cleanup.
- Modified SavedGame loading of role configuration to eliminate SavedGame constructor conflicts.
- Applied custom string changes to en-GB.yml.

- Show all spotted units in spotted list, not just those spotted by the current unit.

- Added tracer logic to display line of fire when targeting.
- Fixed roles not being loaded in time for use in New Battle games.

- Fixed logic issue causing the trajectory calculation to fail with any compilation optimizations turned on.
- Fixed an issue where the trajectory trace was being created for non-visible higher Z level tiles and all rendered at once when the higher Z level became visible.

- Added a drawing hack to draw throwing arcs above the currently drawn map Z-level.

- Implemented an Instant grenade fuse option.

- Fixed Stun/Hit melee action showing ammo-related errors.

- Fixed rounding error on reaction fire distance calculation.  Lying documentation!!!!!!
- Added smoke-driven accuracy falloff.

- Fix Psionic attacks not display in log.
- Fix instaprime grenades not saving to EquipmentLayoutItem.

- Sort Interceptor list by distance to target.

- Fixes to psionics caused by modified Explosion logic.

- Inventory stats display changes.

- Display basic craft stats on Craft Info state.

- Added negative health and unit bleedout functionality.

- Fixed a logic error that broke health healing when healing a fatal wound.

- Show all red on medikit view if the target unit is bleeding out.

- Fix fatal wounds going negative.

- Separated ExplosionBState animation interval from the main state loop using a separate timer.

- Medikit info display improvements.
- Set health to 10% when being stabilized from bleeding to death.
- Display more damage info in the combat log in debug mode.

- Changed bleedout mechanic to be wound-based.
- Changed stabilization heals from medikits to be overcharged wound heals, but zero health restoration.
- Improved medikit info display.

- Improved interception distance sorting to use the craft's in-flight position when possible.

- Allow overwatch to carry over between turns.
- Fix some language file entries for accuracy displays.

- Changed the firing trajectory system to use an aimcone-style system instead of the existing hit-or-wild-miss system.

- Fixed STABLIZED typo.
- Changed wounded recovery time to be percentage based rather than absolute value based.
- Fixed overwatch being able to fire infinite times.
- Added visual indicator to highlight units on overwatch.
- Reduced LOS penalty on grenades to 75% maximum.
- Allow fatal wound bleeding to cause bleedout extra wounds.
- Fixed autoshot causing crashes if initiating fire with only 1 ammo left.

OpenXCOM+!!!

- Prevent psi attack targeting from using intellect to select a previously spotted target.
- Added a new fog of war-style field of view display mechanic.

- Attempt to prevent alien spotting incorrectly?

Merge branch 'master' of https://github.com/Darineth/OpenXcom

- Fixed weapon accuracy mods not being applied.

- Rebased.

- Implemented enforced squadsight logic for alien psi targeting.

- Added a bleeding out icon to dying soldiers on the battlefield.

- Added missing bleeding icon.
- Modified movement reaction fire triggers to only cause spotting to protect from the spotted unit rather than all enemies for normal reaction fire, not overwatch.
- Prevent weapon reaction modifiers from being used when on the defensive.
- Fixed bleedout icons not drawing when a live unit was on the tile.

- Fix post-rebase merge issue.

- Added an overall bleeding out indicator next to the spotted enemies list.

- Allow tanks to click open doors.
- Display the overall bleedout indicator regardless of selected unit.

- The initial tracer round fired by shotguns should now use the new trajectory system.

- Display distance to target along with accuracy percentage.

- Prevent a crash when capturing the last alien on the map with Mind Control.

- Preliminary work to allow grenades as ammo items.

- Fixed an issue with grenades as ammo.

- Allow racial research to display race type and basic damage percent in combat log.
- Allow unit interrogation to display full unit name and hp/damage in combat log.

- Display hovered unit name on the map.

- Minor BattleItem tweaks.

- Clear base as retaliation target on successful defense.

- Add Role Icon to unit tooltip.

- Initial implementation of "channeled" mind control.

- Implemented backlash damage for mind controlled units.

- Prevent mind controlled units from entering panic or berserk modes.
- Fix an issue with unit deaths causing projectile slowdown due to chained explosions.
- Increased backlash damage for mind controllers.

- Tweaked backlash damage formula to be percentage based on the controller's HP.
- Fixed a couple issues with mind control.

- Increased backlash psychic damage to 40%-60%.
- Reduced psychic stun damage to 25%-50%.

- Implemented an ammo mechanic for psi amps.
- Allow AI units to attempt to counter-mindcontrol.
- Display an indicator over the controlling or controlled unit.

- Fixed an issue with weapons that do not require ammo.
- Fixed psi amp not auto loading or allowing reload options.
- Fixed ongoing action not being properly initialized in all constructors.

- Implemented Clairvoyance and Mind Blast psionic powers.

- Mind Blast tweaks.

- Fixed known enemy units not being cleared between turns.

- Fixed psi amp ammo not being recoverable.
- Fixed an issue with basescape unit inventory access corrupting saves with the temporary battlescape game.
- Fixed bleedout status not being saved causing units to regain bleedout 10 wounds.

- Display role on craft soldier list.
- Attempt to prevent mind blast from being able to hit a secondary target.

- Include Xusilak's X-COM Overhaul mod files.

- Plasma machine gun sprite update.

- Further plasma blaster tweaks.
- InventoryState tweaks to support new interface rule layout stuff.