import type { eWeaponHash } from '../enums/eWeaponHash'; import type { Entity } from '../classes/Entity'; import type { Ped } from '../classes/Ped'; import type { ScrHandle } from '../types/NativeAliases'; import { Vector2 } from '../types/Vector2'; import { Vector3 } from '../types/Vector3'; import { Vector4 } from '../types/Vector4'; import { Color } from '../types/Color'; import { createFromHandle } from '../types/HandleRegistry'; import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f, int, uint, float, Hash, u8, u16, u32, u64, i8, i16, i32, i64 } from '../types/NativeAliases'; export class Aicoverpoint { /** * Stops running cover anims and releases them * *STOP_RENDERING** - _STOP_SCRIPTED* * * @param ped */ static stopRunningCoverAnims(ped: Ped): void { inv('0x1A7A802B2301EDC0', ped.handle); } /** * weaponHash can also be -1 * * @param ped * @param weaponHash Refer to {@link eWeaponHash} */ static N_0x140B3CB1D424A945(ped: Ped, weaponHash: eWeaponHash): void { inv('0x140B3CB1D424A945', ped.handle, weaponHash); } /** * @param ped */ static taskEnterCover(ped: Ped): void { inv('0x4972A022AE6DAFA1', ped.handle); } /** * Makes ped flinch (if in cover) like they have been shot at * * @param ped */ static requestFlinchCoverAnim(ped: Ped): void { inv('0x2A31D13C5F021D0D', ped.handle); } /** * 1 = In cover while crouched * 2 = In cover while standing * 3 = Not in cover * * @param ped * @returns */ static getCoverPointStateFromPed(ped: Ped): int { return inv('0x5F5B1B7E8E8F94C6', ped.handle, rai()); } /** * @returns data */ static addScriptedCoverPoint(): [number, number] { const result = inv<[number, number]>('0x975BD6351648935F', pvi(), rai()); return [result[0], result[1]]; } /** * @param handle * @returns */ static N_0x53E4D0C079CA6855(handle: number): Entity | null { return createFromHandle('Entity', inv('0x53E4D0C079CA6855', handle, rai())); } /** * coverLayer: see levels_0/levels/rdr3/coverlayers * * @param coverLayer */ static N_0x7A1FDCF35EAA140F(coverLayer: string): void { inv('0x7A1FDCF35EAA140F', coverLayer); } /** * @param ped */ static taskExitCover(ped: Ped): void { inv('0x2BC4A6D92D140112', ped.handle); } /** * @param ped * @returns */ static areLoadCoverAnimsLoaded(ped: Ped): any { return inv('0x8CBE916CFC64AD5C', ped.handle); } /** * @param ped * @returns */ static N_0x957D7E750216D74B(ped: Ped): int { return inv('0x957D7E750216D74B', ped.handle, rai()); } /** * @returns args */ static N_0xEBA51A294C73292E(): number { const result = inv('0xEBA51A294C73292E', pvi()); return result; } /** * @param handle * @returns */ static doesCoverPointExist(handle: number): boolean { return !!inv('0xC276FE69DDA22BAD', handle, rai()); } /** * @returns args */ static addCoverBlockingArea2(): number { const result = inv('0x733077295AB51304', pvi()); return result; } /** * @param ped */ static N_0x3C7A9C2C953128FE(ped: Ped): void { inv('0x3C7A9C2C953128FE', ped.handle); } /** * coverLayer: see levels_0/levels/rdr3/coverlayers * * @param coverLayer */ static N_0x64340DC208D671D5(coverLayer: string): void { inv('0x64340DC208D671D5', coverLayer); } /** * @returns args */ static taskAiSeekCoverToCoverPoint(): number { const result = inv('0x89783FDDF079C88D', pvi()); return result; } }