ACE3/addons/missileguidance/functions/fnc_dev_ProjectileCamera.sqf

62 lines
1.6 KiB
Plaintext
Raw Normal View History

Missileguidance -- rewrite to use real-world guidance principles, general refactor (#10019) * update todo with list of weapons * Add AIM-120 with ARH. Change AHR to not always seek all targets * Implement some generic modes of flight * implement augmented proportional navigation * Add zero-effort miss. Seeker now feeds data to navigation * Fix bug with ZEM * remove placeholder * Change out missile types to reflect navigation scheme they use IRL * remove uneeded sets * chane navigation profiles to go for attack direction instead of target * multiple changes * SALH: only update seeker pos if it within small error * IR seeker and AIM-9M * small tweaks * more tweaks * todo: fix nlaw * update todo * implement course state machine * Improve radar simulation * enable chaff decoy * add config entries * Implement optical mavericks * Allow for debug info to be displayed via variable * Change AIM-9 agility * update dragon to not use new guidance * Tweak flight parameters. Add R-77 * Add AIM-120A * add ASRAAM * add R-73/4 * Add all GBU-12s that exist for all planes * update todo * update todo for ground based weapons * Add GPS selector dialog for GPS munitions * add TOO TGP * Add SDB and JDAM * update todo * fix gimbal lock via rotating with quaternions * tweak JDAM guidance * Better attack angle calculation. Does not get exactly right, but works for all cases. Need to implement a PID controller navigation type to get a correct attack angle * Fix SACLOS missiles * Fix NLAW and PLOS The missile pitches up due to initial angle stuff. I don't know if this is behaviour we want to fix or not? * update todo * update todo * Add Vikhr ATGM * Add long range SAMs * fix SAM animations * Add all ground based missiles. Tweak AIM-9 flare angle * remove debugh print * Fix Wiesel ATGM animation. Tweak SACLOS values * Add action to get into jdam settings * fix all script components * Add paremter to allow weathervaning Weapons usually tend toward the velocity vector due to aerodynamics - calculate side slip and use calculation to do this * Add new navigation profile. Tweak javelin mid-course guidance * Process all navigation onFired. Send the correct array to function * fix missing semicolons * Add hellfire mid course guidance * Tweak hellfire attack profile * change how IR seeker performs The angle check is better now. Relative velocites guarenteed * tabs -> spaces * localise aim120 * localise aim9 * localise gbu * fix IR tracker losing lock immediately due to being blocked by launcher * localise manpad * actually localise manpad * localise maverick * localise missile guidance * localise sam * localise sdb * localise vikhr * tabs -> spaces again * init commit 9m14 * update stringtables so they are in titlecase * crash on load * perplexed * fix game crashing on load * Add joystick model * Add realistic 9m14 behaviour the 9m14 control joystick can attach 4 9m14 launchers at a time. Replicate that here * add MCLOS guidance * add the ability to see a light trail * tweak HOT guidance params * tweak metis guidance params * tweak Vikhr guidance * add trail to vikhr * Add Iron Dome interceptor API * Optimise iron dome * Only launch if we are above a threshold angle * add local event for mission makers * change events to allow for any number of arguments * avoid making un-needed calls to the server * Update doppler seeker to allow the tracking and killing of projectiles * Avoid overshooting target * Add settings for various things * Add missile hiding for malyutka * init commit of cruise missile * Various - Add missing units/weapons to cfgPatches (#8175) * Various - Add missing units/weapons to cfgPatches * Update config.cpp * Documentation - Add Mikero binarization note (#8172) * Bump is-svg from 4.2.1 to 4.3.1 in /docs/src (#8177) Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 4.2.1 to 4.3.1. - [Release notes](https://github.com/sindresorhus/is-svg/releases) - [Commits](https://github.com/sindresorhus/is-svg/compare/v4.2.1...v4.3.1) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adjust "New issue" link to lead to template selection page (#8182) We want people to choose a template when creating a new issue * Update linguist settings (#8151) * Typo in usage example (#8201) * Mk6 Mortar - Fix README.md typo (#8205) * Overhaul CSW docs (#8206) * Medical - Add Alternative Survival Chance (#8192) Co-authored-by: TyroneMF <TyroneMF@hotmail.com> Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: Kyle Mckay <5459452+kymckay@users.noreply.github.com> * Fix make.py temp files cleanup (#8189) * Fix Injured Sounds Not Playing At Altitudes Above 70 (#8212) * Particles - Fix macro (#8214) * initial push * Update script_component.hpp * Update script_component.hpp * Update script_component.hpp * Map - Fix stuck map compass size (add 0.1 zoom duration) (#8176) Co-authored-by: jonpas <jonpas33@gmail.com> * Medical - Allow unconscious unit in Taru pods (#8168) Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * Name Tags - Add ability to set custom rank icon (#8174) * Tools - Add script to update HEMTT include folder (#8134) * Tools - Add script to check sqf/config with sqfvm (#8137) * Medical - Add Vehicle Crashes setting (#8149) Co-authored-by: jonpas <jonpas33@gmail.com> * Dragging - Add new dragging animations (#7950) * New custom animation added * Adjusted CfgMoves and the script components * New drop animation and key handler * CBA settings and new ManActions added * Adjustments to the drop animation * Added translations and fixed some stuff * Update CfgMovesBasic.hpp * Fix translations Co-authored-by: Elgin675 <elgin675@hotmail.com> Co-authored-by: Blutze <37950828+Blutze@users.noreply.github.com> * Use the same key to drop object * Update addons/dragging/stringtable.xml Co-authored-by: Jo David <github@jonathandavid.de> * Fix French translation Co-authored-by: Elgin675 <elgin675@hotmail.com> * Lower the weapon accuracy of the drag animations * Removed auto-switch to handgun * Update fnc_startDrag.sqf - Holding a launcher breaks the firing animation. - Now the unit has to hold either a primary weapon or handgun. * Handle the unit's current weapon Co-authored-by: BaerMitUmlaut <BaerMitUmlaut@users.noreply.github.com> * Update addons/dragging/functions/fnc_handlePlayerWeaponChanged.sqf Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * Update addons/dragging/initSettings.sqf Co-authored-by: Elgin675 <elgin675@hotmail.com> Co-authored-by: Blutze <37950828+Blutze@users.noreply.github.com> Co-authored-by: Jo David <github@jonathandavid.de> Co-authored-by: BaerMitUmlaut <BaerMitUmlaut@users.noreply.github.com> Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: jonpas <jonpas33@gmail.com> * Dragging - Fix build issue (#8219) * Documentation - Remove DeTex requirement (#8220) DeTex is subscriber-only now, not required for building ACE3. * User Interface - Add setting for Development Build watermark (#8140) Co-authored-by: jonpas <jonpas33@gmail.com> * RHS USAF Compat - Nightforce NXS scopes updated (#8222) * Interact Menu - Make List default (#8217) * Markers - Add scale slider (#8059) Co-authored-by: commy2 <commy-2@gmx.de> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> * Initial push (#8225) * MicroDAGR - Add mode switching keybinds (#8216) * Initial push * Mode cycling * Use defines * RHS ARF Compat - Fix RPK74M wrong ammo bug (#8223) * Fixed RPK74M wrong ammo bug * Fix wrong deleted lines of code * Edit rjs_weap_rpk74_base to rhs_weap_rpk_base Co-authored-by: Dabako <github@dabakoworld.de> Co-authored-by: PabstMirror <pabstmirror@gmail.com> * Extensions - Various Improvments (#8227) * Translations - Spanish (#8229) Complete to date spanish translation. * Attach - Added attached/detaching events (#8193) * Added ace_attach attached/detach events * Apply suggestions from code review Co-authored-by: Jo David <github@jonathandavid.de> * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Jo David <github@jonathandavid.de> Co-authored-by: jonpas <jonpas33@gmail.com> * Markers - Fix marker scale (#8233) * Cargo - paradrop fixes (#8203) * Small fixes in ace_cargo Makes paradropItem and unloadItem invoke event "ace_cargoUnloaded" with parameters _itemObject, _vehicle and "paradrop" or "unload" respectivelty. paradropItem invoked said event but if item was classname it would send classname to event which is not particularly useful. * Update XEH_postInit.sqf Moved event invocation to unloadItem, this provides ability to always pass object to eventhandlers. * code refactor refactored according to https://github.com/acemod/ACE3/pull/8203#discussion_r610394484 * Update fnc_paradropItem.sqf apply new fix * Revert "Update fnc_paradropItem.sqf" This reverts commit 3db5cc191082a4d8e3cb0c39f0a5c791e2874f0e. * Update fnc_paradropItem.sqf fixed hint that was broken by previous fixes * style check Co-authored-by: commy2 <commy-2@gmx.de> * style check Co-authored-by: commy2 <commy-2@gmx.de> * naming convention replaced object references called _item with _object. * Update fnc_paradropItem.sqf Co-authored-by: commy2 <commy-2@gmx.de> * Parachute - Add failure chance (#8226) * Initial push * disable forgotten define * Improve exitWith check * Requested/suggested changes * Requested changes * Requested changes * Bump lodash from 4.17.20 to 4.17.21 in /docs/src (#8244) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump grunt from 1.0.4 to 1.3.0 in /docs/src (#8246) Bumps [grunt](https://github.com/gruntjs/grunt) from 1.0.4 to 1.3.0. - [Release notes](https://github.com/gruntjs/grunt/releases) - [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG) - [Commits](https://github.com/gruntjs/grunt/compare/v1.0.4...v1.3.0) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump hosted-git-info from 2.5.0 to 2.8.9 in /docs/src (#8247) Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.5.0 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.5.0...v2.8.9) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Markers - Fix JIP scale (#8248) * Night Vision - Add color variants to all generations (#8209) * Fix wrong shot size in birdshot strings (#8253) * Patachute - Add sound effect when cutting (#8239) * Changes poisson disc to centered random. (#8257) It looks nicer and distributes more realistically. I don't know what I was thinking when I first put in poisson disc. * Fix tabs and manpad UBC * fix tabs in aim9 * progress update: tercom now flies to acquisition basket * add TERCOM state defines * work on parsing heightmap * Change GBU navigation * remove testing constants * remove TERCOM guidance * better JDAM simulation Attack heading and impact angle now are followed better * Better flare decoy calculation * Update 9m14_joystick.p3d removed p:\ part from proxy path: was: `\p:\a3\data_f\proxies\gunner_static_low01\gunner.p3d` * Destroy projectile on all clients The projectile needs to be destroyed on all clients to stop it from being simulated. If not destroyed where projectile is local, it will still explode when hitting the ground. If not destroyed on remote clients, the projectile will still be visible but deal no damage * fix NLAW navigation profile * fix uninitialised values * make over-fly trajectory over-fly * remove malyutka * SACLOS tweaks * small changes * fix bug in laser * make pronav use the correct units * change back * add dev function to get ammo which has MG class data * improve lin navigation * Minor style * add spike ATGM * Allow multiple cameras to exist at once. Fix script error * fix bug with angles close to 0 * remove debug * misc updates * Handle pre-tracking * Tweak target acquisition. Reset target after shooting * Tweak how targets are acquired. Fix velocity calculation * tweak navigation to allow for <200m shots * enhance target designation * Stringtable addition * Config changes * more SACLOS tweaks * Some minor fixes * fix undefined array * Only play sound when Spike is launcher. Change onFired to missileguidance * Tweak IR seeker. Fix MCLOS fired from vehicles * Remove debug sets * Update all Line guidance missiles * remove debug sets * tweak javelin to make minimum ranges more realistic * cut spike * add better error messaging * better debug info * Rewrite documentation * Add ability to disable iron dome (disabled by default) * Change name * fix typo * Remove null projectiles from iron dome nonTrackingProjectiles * HEMTT v10 Compatibility * Update addons/field_rations/CfgUIGrids.hpp Co-authored-by: PabstMirror <pabstmirror@gmail.com> * fix PabstMirror review * optionals * Change configs to enclose strings for calculations * Fix NLAW guidance that was causing massive overfly * make tweaks for PLOS movement path * fix NLAW overfly * Fix hemmit merge * fix header * Update fnc_seekerType_SACLOS.sqf * Update to new include paths * Update fnc_midCourseTransition.sqf * initSettings.inc.sqf * Remove weapon additions * revert old weapons, pt1 * revert pt2 * readd javelin * split iron dome * cleanup laser * remove GPS files * remove gps definitions * remove IR * remove MCLOS * remove doppler * final cleanup * restore final final i promise * cleanup arbitrary files * small cleanup * fix hemtt warnings * cleanup unused var * fix preping some missing files (jdam/doppler) * move cam func --------- Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jo David <github@jonathandavid.de> Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: Pascal Dunaj <32539404+t-zilla@users.noreply.github.com> Co-authored-by: BaerMitUmlaut <BaerMitUmlaut@users.noreply.github.com> Co-authored-by: Brett <brett@bmandesigns.com> Co-authored-by: TyroneMF <TyroneMF@hotmail.com> Co-authored-by: Kyle Mckay <5459452+kymckay@users.noreply.github.com> Co-authored-by: Dystopian <sddex@ya.ru> Co-authored-by: commy2 <commy-2@gmx.de> Co-authored-by: R3voA3 <robertseibel@outlook.de> Co-authored-by: Steve Zhao <ampersand38@gmail.com> Co-authored-by: Kyle J. McKeown <Drift91@users.noreply.github.com> Co-authored-by: Salluci <69561145+Salluci@users.noreply.github.com> Co-authored-by: Dániel Boros <43353942+Malbryn@users.noreply.github.com> Co-authored-by: Elgin675 <elgin675@hotmail.com> Co-authored-by: Blutze <37950828+Blutze@users.noreply.github.com> Co-authored-by: Laid3acK <bal2.chris@orange.fr> Co-authored-by: frankplow <post@frankplowman.com> Co-authored-by: JoramD <j.davids@hotmail.nl> Co-authored-by: Dabako <dabako@gmx.de> Co-authored-by: Dabako <github@dabakoworld.de> Co-authored-by: Abogado <regiregi22@hotmail.com> Co-authored-by: Dedmen Miller <dedmen@users.noreply.github.com> Co-authored-by: Lupus the Canine <tymoteusz.2000.0+GitHub@gmail.com> Co-authored-by: Drofseh <Drofseh@users.noreply.github.com> Co-authored-by: LorenLuke <LukeLLL@aol.com> Co-authored-by: SzwedzikPL <szwedzikpl@gmail.com> Co-authored-by: BrettMayson <brett@mayson.io>
2024-08-23 14:21:31 +00:00
#include "..\script_component.hpp"
/*
* Author: tcvm
* tracks a projectile until it explodes
*
* Arguments:
* None
*
* Return Value:
* None
*
* Public: No
*/
params ["_projectile"];
private _camera = "camera" camCreate getPosATL _projectile;
_camera camPrepareFOV 0.7;
_camera cameraEffect ["internal", "back"];
_camera camCommitPrepared 0;
GVAR(debug_camera_close) = false;
private _displayEH = (findDisplay 46) displayAddEventHandler ["KeyDown", {
params ["_displayorcontrol", "_key", "_shift", "_ctrl", "_alt"];
GVAR(debug_camera_close) = (_key == 1);
true
}];
[{
params ["_args", "_pfh"];
_args params ["_projectile", "_camera", "_projectilePos", "_displayEH"];
if (!alive _projectile || GVAR(debug_camera_close)) exitWith {
private _delay = 1.5;
if (GVAR(debug_camera_close)) then {
_delay = 0;
};
(findDisplay 46) displayRemoveEventHandler ["KeyDown", _displayEH];
[{
params ["_camera"];
_camera cameraEffect ["terminate", "back"];
_camera camCommitPrepared 0;
camDestroy _camera;
}, [_camera], _delay] call CBA_fnc_waitAndExecute;
_camera camPrepareTarget _projectilePos;
_camera camCommitPrepared 0;
[_pfh] call CBA_fnc_removePerFrameHandler;
};
private _currentProjectilePos = getPosATLVisual _projectile;
_camera camPrepareTarget _projectile;
_camera camPrepareRelPos [0, -5, 1];
_camera camCommitPrepared 0;
_args set [2, getPosATL _projectile];
}, 0, [_projectile, _camera, getPosATL _projectile, _displayEH]] call CBA_fnc_addPerFrameHandler;