Scripting.pas
Материал из GTAModding.ru
Версия от 16:11, 18 февраля 2009; Seemann (обсуждение | вклад)
unit Scripting; interface uses ScriptingEnums; // converted from aru's C++ Hook source const libname = 'dhook.asi'; type // standard data types i32 = type LongInt; u32 = type LongWord; i16 = type SmallInt; u16 = type Word; i8 = type ShortInt; u8 = type Byte; f32 = type Single; f64 = type Double; b8 = type Boolean; b32 = type LongWord; ScriptAny = type u32; Player = type u32; Vehicle = type u32; Ped = type u32; Group = type u32; Obj = type u32; CoverPoint = type u32; Train = type u32; Interior = type u32; Blip = type u32; Pickup = type u32; TextureDict = type u32; Texture = type u32; Fire = type u32; Vector3 = record X, Y, Z: f32; end; Car = type Vehicle; Char = type Ped; Marker = type Blip; // player procedure AddScore(playerIndex: Player; score: i32); cdecl; external libname; procedure AllowPlayerToCarryNonMissionObjects(playerIndex: Player; allow: b8); cdecl; external libname; procedure AlterWantedLevel(playerIndex: Player; level: u32); cdecl; external libname; procedure AlterWantedLevelNoDrop(playerIndex: Player; level: u32); cdecl; external libname; procedure ApplyWantedLevelChangeNow(playerIndex: Player); cdecl; external libname; procedure ChangePlayerModel(playerIndex: Player; model: eModel); cdecl; external libname; procedure ClearPlayerHasDamagedAtLeastOnePed(playerIndex: Player); cdecl; external libname; function ConvertIntToPlayerIndex(playerId: u32): Player; cdecl; external libname; procedure ClearWantedLevel(playerIndex: Player); cdecl; external libname; procedure CreatePlayer(playerId: u32; x: f32; y: f32; z: f32; var pPlayerIndex: Player); cdecl; external libname; procedure DisablePlayerLockon(playerIndex: Player; disabled: b8); cdecl; external libname; procedure DisablePlayerSprint(playerIndex: Player; disabled: b8); cdecl; external libname; procedure GetPlayerChar(playerIndex: Player; var pPed: Ped); cdecl; external libname; function GetPlayerId(): u32; cdecl; external libname; procedure GetPlayerGroup(playerIndex: Player; var pGroup: Group); cdecl; external libname; procedure GetPlayerMaxArmour(playerIndex: Player; var pMaxArmour: u32); cdecl; external libname; function GetPlayerName(playerIndex: Player): PChar; cdecl; external libname; function GetTimeSincePlayerDroveAgainstTraffic(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerDroveOnPavement(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerHitBuilding(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerHitCar(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerHitObject(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerHitPed(playerIndex: Player): u32; cdecl; external libname; function GetTimeSincePlayerRanLight(playerIndex: Player): u32; cdecl; external libname; function HasPlayerDamagedAtLeastOnePed(playerIndex: Player): b8; cdecl; external libname; function IsPlayerClimbing(playerIndex: Player): b8; cdecl; external libname; function IsPlayerControlOn(playerIndex: Player): b8; cdecl; external libname; function IsPlayerDead(playerIndex: Player): b8; cdecl; external libname; function IsPlayerFreeAimingAtChar(playerIndex: Player; ped: Ped): b8; cdecl; external libname; function IsPlayerFreeForAmbientTask(playerIndex: Player): b8; cdecl; external libname; function IsPlayerPlaying(playerIndex: Player): b8; cdecl; external libname; function IsPlayerPressingHorn(playerIndex: Player): b8; cdecl; external libname; function IsPlayerTargettingAnything(playerIndex: Player): b8; cdecl; external libname; function IsPlayerTargettingChar(playerIndex: Player; ped: Ped): b8; cdecl; external libname; function IsPlayerTargettingObject(playerIndex: Player; obj: Obj): b8; cdecl; external libname; function IsScoreGreater(playerIndex: Player; score: u32): b8; cdecl; external libname; function IsWantedLevelGreater(playerIndex: Player; level: u32): b8; cdecl; external libname; function PlayerHasChar(playerIndex: Player): b8; cdecl; external libname; function PlayerHasFlashingStarsAboutToDrop(playerIndex: Player): b8; cdecl; external libname; function PlayerHasGreyedOutStars(playerIndex: Player): b8; cdecl; external libname; procedure RegisterPlayerRespawnCoords(playerIndex: Player; x: f32; y: f32; z: f32); cdecl; external libname; procedure SetPlayerCanBeHassledByGangs(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerCanDoDriveBy(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerCanUseCover(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerControl(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerControlAdvanced(playerIndex: Player; unknown1: b8; unknown2: b8; unknown3: b8); cdecl; external libname; procedure SetPlayerGroupToFollowAlways(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerInvincible(playerIndex: Player; value: b8); cdecl; external libname; procedure SetPlayerMoodNormal(playerIndex: Player); cdecl; external libname; procedure SetPlayerMoodPissedOff(playerIndex: Player; unknown150: u32); cdecl; external libname; procedure RemovePlayerHelmet(playerIndex: Player; remove: b8); cdecl; external libname; // ped procedure AddAmmoToChar(ped: Ped; weapon: eWeapon; amount: u32); cdecl; external libname; procedure AddArmourToChar(ped: Ped; amount: u32); cdecl; external libname; procedure ClearAllCharProps(ped: Ped); cdecl; external libname; procedure ClearCharLastDamageBone(ped: Ped); cdecl; external libname; procedure ClearCharLastDamageEntity(ped: Ped); cdecl; external libname; procedure ClearCharLastWeaponDamage(ped: Ped); cdecl; external libname; procedure ClearCharProp(ped: Ped; unknown: b8); cdecl; external libname; procedure ClearCharSecondaryTask(ped: Ped); cdecl; external libname; procedure ClearCharTasks(ped: Ped); cdecl; external libname; procedure ClearCharTasksImmediately(ped: Ped); cdecl; external libname; procedure ClearRoomForChar(ped: Ped); cdecl; external libname; procedure CreateChar(Pedtype: u32; model: eModel; x: f32; y: f32; z: f32; var pPed: Ped; unknownTrue: b8); cdecl; external libname; procedure CreateRandomChar(x: f32; y: f32; z: f32; var pPed: Ped); cdecl; external libname; procedure CreateRandomCharAsDriver(vehicle: Vehicle; var pPed: Ped); cdecl; external libname; procedure CreateRandomFemaleChar(x: f32; y: f32; z: f32; var pPed: Ped); cdecl; external libname; procedure CreateRandomMaleChar(x: f32; y: f32; z: f32; var pPed: Ped); cdecl; external libname; procedure DamageChar(ped: Ped; hitPoints: u32; unknown: b8); cdecl; external libname; procedure DamagePedBodyPart(ped: Ped; part: u8 {ePedBodyPart}; hitPoints: u32); cdecl; external libname; procedure DeleteChar(var pPed: Ped); cdecl; external libname; procedure DetachPed(ped: Ped; unknown: b8); cdecl; external libname; procedure DetachPedFromWithinCar(ped: Ped; unknown: b8); cdecl; external libname; function DoesCharExist(ped: Ped): b8; cdecl; external libname; procedure DropObject(ped: Ped; unknownTrue: b8); cdecl; external libname; procedure ExplodeCharHead(ped: Ped); cdecl; external libname; procedure ExtinguishCharFire(ped: Ped); cdecl; external libname; procedure FirePedWeapon(ped: Ped; x: f32; y: f32; z: f32); cdecl; external libname; procedure ForceCharToDropWeapon(ped: Ped); cdecl; external libname; function ForcePedPinnedDown(ped: Ped; force: b8; timerMaybe: u32): ScriptAny; cdecl; external libname; procedure FreezeCharPosition(ped: Ped; frozen: b8); cdecl; external libname; procedure FreezeCharPositionAndDontLoadCollision(ped: Ped; frozen: b8); cdecl; external libname; procedure GetAmmoInCharWeapon(ped: Ped; weapon: eWeapon; var pAmmo: u32); cdecl; external libname; function GetAmmoInClip(ped: Ped; weapon: eWeapon; var pAmmo: u32): b8; cdecl; external libname; function GetAnimGroupFromChar(ped: Ped): PChar; cdecl; external libname; procedure GetCharCoordinates(ped: Ped; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetCharHealth(ped: Ped; var pHealth: u32); cdecl; external libname; procedure GetCharAnimCurrentTime(ped: Ped; animGroup: PChar; animName: PChar; var pValue: f32); cdecl; external libname; procedure GetCharAnimTotalTime(ped: Ped; animGroup: PChar; animName: Pchar; var pValue: f32); cdecl; external libname; procedure GetCharArmour(ped: Ped; var pArmour: u32); cdecl; external libname; function GetCharDrawableVariation(ped: Ped; component: ePedComponent): u32; cdecl; external libname; procedure GetCharExtractedDisplacement(ped: Ped; unknown: b8; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetCharHeading(ped: Ped; var pValue: f32); cdecl; external libname; procedure GetCharHeightAboveGround(ped: Ped; var pValue: f32); cdecl; external libname; function GetCharLastDamageBone(ped: Ped; var pBone: u8 {ePedBone}): ScriptAny; cdecl; external libname; function GetCharMeleeActionFlag0(ped: Ped): b8; cdecl; external libname; function GetCharMeleeActionFlag1(ped: Ped): b8; cdecl; external libname; procedure GetCharModel(ped: Ped; var pModel: eModel); cdecl; external libname; function GetCharMoney(ped: Ped): u32; cdecl; external libname; procedure GetCharPropIndex(ped: Ped; unknown: b8; var pIndex: u32); cdecl; external libname; function GetCharReadyToBeExecuted(ped: Ped): b8; cdecl; external libname; function GetCharReadyToBeStunned(ped: Ped): b8; cdecl; external libname; procedure GetCharSpeed(ped: Ped; var pValue: f32); cdecl; external libname; function GetCharTextureVariation(ped: Ped; component: ePedComponent): u32; cdecl; external libname; procedure GetCharVelocity(ped: Ped; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetCharWeaponInSlot(ped: Ped; slot: eWeaponSlot; var pWeapon: eWeapon; var pUnknown1: ScriptAny; var pUnknown2: ScriptAny); cdecl; external libname; function GetCharWillCowerInsteadOfFleeing(ped: Ped): b8; cdecl; external libname; function GetCurrentCharWeapon(ped: Ped; var pWeapon: eWeapon): ScriptAny; cdecl; external libname; function GetDamageToPedBodyPart(ped: Ped; part: u8 {ePedBodyPart}): u32; cdecl; external libname; procedure GetDeadCharCoordinates(ped: Ped; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetDeadCharPickupCoords(ped: Ped; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetKeyForCharInRoom(ped: Ped; var pKey: u8 {eInteriorRoomKey}); cdecl; external libname; function GetMaxAmmo(ped: Ped; weapon: eWeapon; var pMaxAmmo: u32): ScriptAny; cdecl; external libname; procedure GetMaxAmmoInClip(ped: Ped; weapon: eWeapon; var pMaxAmmo: u32); cdecl; external libname; function GetNumberOfCharDrawableVariations(ped: Ped; component: ePedComponent): u32; cdecl; external libname; function GetNumberOfCharTextureVariations(ped: Ped; component: ePedComponent; unknown1: u32): u32; cdecl; external libname; function GetObjectPedIsHolding(ped: Ped): Obj; cdecl; external libname; procedure GetOffsetFromCharInWorldCoords(ped: Ped; x: f32; y: f32; z: f32; var pOffX: f32; var pOffY: f32; var pOffZ: f32); cdecl; external libname; function GetPedClimbState(ped: Ped): u8 {ePedClimbState}; cdecl; external libname; procedure GetPedType(ped: Ped; var pType: u8 {ePedType}); cdecl; external libname; function HasCharBeenDamagedByCar(ped: Ped; vehicle: Vehicle): b8; cdecl; external libname; function HasCharBeenDamagedByChar(ped: Ped; otherChar: Ped; unknownFalse: b8): b8; cdecl; external libname; function HasCharBeenDamagedByWeapon(ped: Ped; weapon: eWeapon): b8; cdecl; external libname; function HasCharGotWeapon(ped: Ped; weapon: eWeapon): b8; cdecl; external libname; function HasCharSpottedChar(ped: Ped; otherChar: Ped): b8; cdecl; external libname; function HasCharSpottedCharInFront(ped: Ped; otherChar: Ped): b8; cdecl; external libname; function IsCharArmed(ped: Ped; slot: eWeaponSlot): b8; cdecl; external libname; function IsCharDead(ped: Ped): b8; cdecl; external libname; function IsCharDucking(ped: Ped): b8; cdecl; external libname; function IsCharFacingChar(ped: Ped; otherChar: Ped; angle: f32): b8; cdecl; external libname; function IsCharFatallyInjured(ped: Ped): b8; cdecl; external libname; function IsCharGesturing(ped: Ped): b8; cdecl; external libname; function IsCharGettingInToACar(ped: Ped): b8; cdecl; external libname; function IsCharGettingUp(ped: Ped): b8; cdecl; external libname; function IsCharHealthGreater(ped: Ped; health: u32): b8; cdecl; external libname; function IsCharInAir(ped: Ped): b8; cdecl; external libname; function IsCharInAngledArea2D(ped: Ped; x1: f32; y1: f32; x2: f32; y2: f32; unknown: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharInAngledArea3D(ped: Ped; x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; unknown: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharInAnyBoat(ped: Ped): b8; cdecl; external libname; function IsCharInAnyCar(ped: Ped): b8; cdecl; external libname; function IsCharInAnyHeli(ped: Ped): b8; cdecl; external libname; function IsCharInAnyPlane(ped: Ped): b8; cdecl; external libname; function IsCharInAnyPoliceVehicle(ped: Ped): b8; cdecl; external libname; function IsCharInAnyTrain(ped: Ped): b8; cdecl; external libname; function IsCharInArea2D(ped: Ped; x1: f32; y1: f32; x2: f32; y2: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharInArea3D(ped: Ped; x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharInAreaOnFoot2D(ped: Ped; x1: f32; y1: f32; x2: f32; y2: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharInCar(ped: Ped; vehicle: Vehicle): b8; cdecl; external libname; function IsCharInFlyingVehicle(ped: Ped): b8; cdecl; external libname; function IsCharInMeleeCombat(ped: Ped): b8; cdecl; external libname; function IsCharInModel(ped: Ped; model: eModel): b8; cdecl; external libname; function IsCharInTaxi(ped: Ped): b8; cdecl; external libname; function IsCharInWater(ped: Ped): b8; cdecl; external libname; function IsCharInjured(ped: Ped): b8; cdecl; external libname; function IsCharMale(ped: Ped): b8; cdecl; external libname; function IsCharModel(ped: Ped; model: eModel): b8; cdecl; external libname; function IsCharOnAnyBike(ped: Ped): b8; cdecl; external libname; function IsCharOnFire(ped: Ped): b8; cdecl; external libname; function IsCharOnFoot(ped: Ped): b8; cdecl; external libname; function IsCharOnScreen(ped: Ped): b8; cdecl; external libname; function IsCharShooting(ped: Ped): b8; cdecl; external libname; function IsCharShootingInArea(ped: Ped; x1: f32; y1: f32; x2: f32; y2: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCharSittingIdle(ped: Ped): b8; cdecl; external libname; function IsCharSittingInAnyCar(ped: Ped): b8; cdecl; external libname; function IsCharSittingInCar(ped: Ped; vehicle: Vehicle): b8; cdecl; external libname; function IsCharStopped(ped: Ped): b8; cdecl; external libname; function IsCharStuckUnderCar(ped: Ped): b8; cdecl; external libname; function IsCharSwimming(ped: Ped): b8; cdecl; external libname; function IsCharTouchingChar(ped: Ped; otherChar: Ped): b8; cdecl; external libname; function IsCharTouchingObject(ped: Ped; obj: Obj): b8; cdecl; external libname; function IsCharTouchingObjectOnFoot(ped: Ped; obj: Obj): b8; cdecl; external libname; function IsCharTouchingVehicle(p0: ScriptAny; p1: ScriptAny): b8; cdecl; external libname; function IsCharTryingToEnterALockedCar(ped: Ped): b8; cdecl; external libname; function IsCharUsingAnyScenario(ped: Ped): b8; cdecl; external libname; function IsCharUsingScenario(ped: Ped; scenarioName: PChar): b8; cdecl; external libname; function IsCharVisible(ped: Ped): b8; cdecl; external libname; function IsCharWaitingForWorldCollision(ped: Ped): b8; cdecl; external libname; function IsPedAMissionPed(ped: Ped): b8; cdecl; external libname; function IsPedAttachedToAnyCar(ped: Ped): b8; cdecl; external libname; function IsPedAttachedToObject(ped: Ped; obj: Obj): b8; cdecl; external libname; function IsPedBeingJacked(ped: Ped): b8; cdecl; external libname; function IsPedDoingDriveby(ped: Ped): b8; cdecl; external libname; function IsPedFleeing(ped: Ped): b8; cdecl; external libname; function IsPedHoldingAnObject(ped: Ped): b8; cdecl; external libname; function IsPedInCombat(ped: Ped): b8; cdecl; external libname; function IsPedInCover(ped: Ped): b8; cdecl; external libname; function IsPedInGroup(ped: Ped): b8; cdecl; external libname; function IsPedJacking(ped: Ped): b8; cdecl; external libname; function IsPedLookingAtPed(ped: Ped; otherChar: Ped): b8; cdecl; external libname; function IsPedRagdoll(ped: Ped): b8; cdecl; external libname; function IsPedRetreating(ped: Ped): b8; cdecl; external libname; procedure MarkCharAsNoLongerNeeded(var pPed: Ped); cdecl; external libname; procedure ModifyCharMoveState(ped: Ped; state: u8 {ePedMoveState}); cdecl; external libname; procedure RemoveAllCharWeapons(ped: Ped); cdecl; external libname; procedure RemoveCharDefensiveArea(ped: Ped); cdecl; external libname; procedure RemoveCharElegantly(ped: Ped); cdecl; external libname; procedure RemoveCharFromGroup(ped: Ped); cdecl; external libname; function SetAmmoInClip(ped: Ped; weapon: eWeapon; ammo: u32): ScriptAny; cdecl; external libname; procedure SetCharHealth(ped: Ped; health: u32); cdecl; external libname; procedure SetCharWillUseCover(ped: Ped; coverPoint: CoverPoint); cdecl; external libname; procedure SetRoomForCharByKey(ped: Ped; key: u8 {eInteriorRoomKey}); cdecl; external libname; procedure RemovePedHelmet(ped: Ped; removed: b8); cdecl; external libname; procedure RemoveWeaponFromChar(ped: Ped; weapon: eWeapon); cdecl; external libname; {!} procedure GetCharHighestPriorityEvent(ped: Ped; var pValue: u32); cdecl; external libname; {!} function IsCharRespondingToEvent(ped: Ped; pedEvent: u32): b8; cdecl; external libname; // Ped Groups procedure CreateGroup(unknownFalse: b8; var pGroup: Group; unknownTrue: b8); cdecl; external libname; function DoesGroupExist(group: Group): b8; cdecl; external libname; procedure GetGroupLeader(group: Group; var pPed: ped); cdecl; external libname; procedure GetGroupMember(group: Group; index: u32; var pPed: ped); cdecl; external libname; procedure GetGroupSize(group: Group; var pStartIndex: u32; var pCount: u32); cdecl; external libname; function IsGroupLeader(ped: Ped; group: Group): b8; cdecl; external libname; function IsGroupMember(ped: Ped; group: Group): b8; cdecl; external libname; procedure RemoveGroup(group: Group); cdecl; external libname; //vehicles function AreTaxiLightsOn(vehicle: Vehicle): b8; cdecl; external libname; function CreateEmergencyServicesCar(model: eModel; x: f32; y: f32; z: f32): b8; cdecl; external libname; function DoesCarHaveRoof(vehicle: Vehicle): b8; cdecl; external libname; function DoesCarHaveStuckCarCheck(vehicle: Vehicle): b8; cdecl; external libname; function DoesVehicleExist(vehicle: Vehicle): b8; cdecl; external libname; function GetEngineHealth(vehicle: Vehicle): f32; cdecl; external libname; function GetHeightOfVehicle(vehicle: Vehicle; x: f32; y: f32; z: f32; unknownTrue1: b8; unknownTrue2: b8): f32; cdecl; external libname; function GetPetrolTankHealth(vehicle: Vehicle): f32; cdecl; external libname; function HasCarBeenDamagedByCar(vehicle: Vehicle; otherCar: Vehicle): b8; cdecl; external libname; function HasCarBeenDamagedByChar(vehicle: Vehicle; ped: Ped): b8; cdecl; external libname; function HasCarBeenDamagedByWeapon(vehicle: Vehicle; weapon: eWeapon): b8; cdecl; external libname; function HasCarBeenResprayed(vehicle: Vehicle): b8; cdecl; external libname; function IsBigVehicle(vehicle: Vehicle): b8; cdecl; external libname; function IsCarAMissionCar(vehicle: Vehicle): b8; cdecl; external libname; function IsCarAttached(vehicle: Vehicle): b8; cdecl; external libname; function IsCarDead(vehicle: Vehicle): b8; cdecl; external libname; function IsCarDoorDamaged(vehicle: Vehicle; door: eVehicleDoor): b8; cdecl; external libname; function IsCarDoorFullyOpen(vehicle: Vehicle; door: eVehicleDoor): b8; cdecl; external libname; function IsCarInAirProper(vehicle: Vehicle): b8; cdecl; external libname; function IsCarInArea2D(vehicle: Vehicle; x1: f32; y1: f32; x2: f32; y2: f32; unknownFalse: b8): b8; cdecl; external libname; function IsCarInArea3D(vehicle: Vehicle; x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; unknownFalse: u8): b8; cdecl; external libname; function IsCarInWater(vehicle: Vehicle): b8; cdecl; external libname; function IsCarModel(vehicle: Vehicle; model: eModel): b8; cdecl; external libname; function IsCarOnFire(vehicle: Vehicle): b8; cdecl; external libname; function IsCarOnScreen(vehicle: Vehicle): b8; cdecl; external libname; function IsCarPassengerSeatFree(vehicle: Vehicle; seatIndex: u32): b8; cdecl; external libname; function IsCarSirenOn(vehicle: Vehicle): b8; cdecl; external libname; function IsCarStopped(vehicle: Vehicle): b8; cdecl; external libname; function IsCarStoppedAtTrafficLights(vehicle: Vehicle): b8; cdecl; external libname; function IsCarStuckOnRoof(vehicle: Vehicle): b8; cdecl; external libname; function IsCarTouchingCar(vehicle: Vehicle; otherCar: Vehicle): b8; cdecl; external libname; function IsCarTyreBurst(vehicle: Vehicle; tyre: u8 {eVehicleTyre}): b8; cdecl; external libname; function IsCarUpright(vehicle: Vehicle): b8; cdecl; external libname; function IsCarUpsidedown(vehicle: Vehicle): b8; cdecl; external libname; function IsCarWaitingForWorldCollision(vehicle: Vehicle): b8; cdecl; external libname; function IsVehDriveable(vehicle: Vehicle): b8; cdecl; external libname; function IsVehicleExtraTurnedOn(vehicle: Vehicle; extra: u8 {VehicleExtra}): b8; cdecl; external libname; function IsVehicleOnAllWheels(vehicle: Vehicle): b8; cdecl; external libname; function IsVehWindowIntact(vehicle: Vehicle; window: u8 {eVehicleWindow}): b8; cdecl; external libname; procedure AddUpsideDownCarCheck(vehicle: Vehicle); cdecl; external libname; procedure AnchorBoat(boat: Vehicle; anchor: b8); cdecl; external libname; procedure BreakCarDoor(vehicle: Vehicle; door: eVehicleDoor; unknownFalse: b8); cdecl; external libname; procedure BurstCarTyre(vehicle: Vehicle; tyre: u8 {eVehicleTyre}); cdecl; external libname; procedure ChangeCarColour(vehicle: Vehicle; colour1: eColour; colour2: eColour); cdecl; external libname; procedure ClearCarLastDamageEntity(vehicle: Vehicle); cdecl; external libname; procedure ClearCarLastWeaponDamage(vehicle: Vehicle); cdecl; external libname; procedure ClearRoomForCar(vehicle: Vehicle); cdecl; external libname; procedure CloseAllCarDoors(vehicle: Vehicle); cdecl; external libname; procedure CreateCar(nameHash: u32; x: f32; y: f32; z: f32; var pVehicle: Vehicle; unknownTrue: b8); cdecl; external libname; procedure CreateCharAsPassenger(vehicle: Vehicle; charType: u8 {ePedType}; model: eModel; passengerIndex: u32; var pPed: Ped); cdecl; external libname; procedure CreateCharInsideCar(vehicle: Vehicle; charType: u8 {ePedType}; model: eModel; var pPed: Ped); cdecl; external libname; procedure DeleteCar(var pVehicle: Vehicle); cdecl; external libname; procedure DetachCar(vehicle: Vehicle); cdecl; external libname; procedure EnablePedHelmet(ped: Ped; enable: b8); cdecl; external libname; procedure ExplodeCar(vehicle: Vehicle; unknownTrue: b8; unknownFalse: b8); cdecl; external libname; procedure ExtinguishCarFire(vehicle: Vehicle); cdecl; external libname; procedure FixCar(vehicle: Vehicle); cdecl; external libname; procedure FixCarTyre(vehicle: Vehicle; tyre: u8 {eVehicleTyre}); cdecl; external libname; procedure ForceVehicleLights(vehicle: Vehicle; lights: eVehicleLights); cdecl; external libname; procedure FreezeCarPosition(vehicle: Vehicle; frozen: b8); cdecl; external libname; procedure FreezeCarPositionAndDontLoadCollision(vehicle: Vehicle; frozen: b8); cdecl; external libname; procedure GetCarCharIsUsing(ped: Ped; var pVehicle: Vehicle); cdecl; external libname; procedure GetCarColours(vehicle: Vehicle; var pColour1: eColour; var pColour2: eColour); cdecl; external libname; procedure GetCarCoordinates(vehicle: Vehicle; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetCarDeformationAtPos(vehicle: Vehicle; x: f32; y: f32; z: f32; var pDeformation: Vector3); cdecl; external libname; procedure GetCarDoorLockStatus(vehicle: Vehicle; var pValue: eVehicleDoorLock); cdecl; external libname; procedure GetCarForwardX(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarForwardY(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarHeading(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarHealth(vehicle: Vehicle; var pValue: u32); cdecl; external libname; procedure GetCarModel(vehicle: Vehicle; var pValue: eModel); cdecl; external libname; procedure GetCarPitch(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarRoll(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarSpeed(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCarSpeedVector(vehicle: Vehicle; var pVector: Vector3; unknownFalse: b8); cdecl; external libname; procedure GetCarUprightValue(vehicle: Vehicle; var pValue: f32); cdecl; external libname; procedure GetCharInCarPassengerSeat(vehicle: Vehicle; seatIndex: u32; var pPed: Ped); cdecl; external libname; procedure GetDeadCarCoordinates(vehicle: Vehicle; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetDoorAngleRatio(vehicle: Vehicle; door: eVehicleDoor; var pAngleRatio: f32); cdecl; external libname; procedure GetDriverOfCar(vehicle: Vehicle; var pPed: Ped); cdecl; external libname; procedure GetExtraCarColours(vehicle: Vehicle; var pColour1: eColour; var pColour2: eColour); cdecl; external libname; procedure GetKeyForCarInRoom(vehicle: Vehicle; var pKey: u32); cdecl; external libname; procedure GetMaximumNumberOfPassengers(vehicle: Vehicle; var pMax: u32); cdecl; external libname; procedure GetNearestCableCar(x: f32; y: f32; z: f32; radius: f32; var pVehicle: Vehicle); cdecl; external libname; procedure GetNumberOfPassengers(vehicle: Vehicle; var pNumPassengers: u32); cdecl; external libname; procedure GetNumCarColours(vehicle: Vehicle; var pNumColours: u32); cdecl; external libname; procedure GetOffsetFromCarGivenWorldCoords(vehicle: Vehicle; x: f32; y: f32; z: f32; var pOffX: f32; var pOffY: f32; var pOffZ: f32); cdecl; external libname; procedure GetOffsetFromCarInWorldCoords(vehicle: Vehicle; x: f32; y: f32; z: f32; var pOffX: f32; var pOffY: f32; var pOffZ: f32); cdecl; external libname; procedure GetRandomCarModelInMemory(unknownTrue: b8; var pHash: u32; var pUnknown: ScriptAny); cdecl; external libname; procedure KnockPedOffBike(vehicle: Vehicle); cdecl; external libname; procedure LockCarDoors(vehicle: Vehicle; doors: eVehicleDoor); cdecl; external libname; procedure MarkCarAsConvoyCar(vehicle: Vehicle; convoyCar: b8); cdecl; external libname; procedure MarkCarAsNoLongerNeeded(var pVehicle: Vehicle); cdecl; external libname; procedure OpenCarDoor(vehicle: Vehicle; door: eVehicleDoor); cdecl; external libname; procedure PopCarBoot(vehicle: Vehicle); cdecl; external libname; procedure RemoveStuckCarCheck(vehicle: Vehicle); cdecl; external libname; procedure RemoveUpsidedownCarCheck(vehicle: Vehicle); cdecl; external libname; procedure RemoveVehicleWindow(vehicle: Vehicle; window: u8 {eVehicleWindow}); cdecl; external libname; procedure SetEngineHealth(vehicle: Vehicle; health: f32); cdecl; external libname; procedure ShutCarDoor(vehicle: Vehicle; door: eVehicleDoor); cdecl; external libname; // trains procedure CreateMissionTrain(unknown1: u32; x: f32; y: f32; z: f32; unknown2: b8; var pTrain: Train); cdecl; external libname; procedure DeleteMissionTrain(var pTrain: Train); cdecl; external libname; function GetCurrentStationForTrain(train: Train): u8 {eTrainStation}; cdecl; external libname; function GetNextStationForTrain(train: Train): u8 {eTrainStation}; cdecl; external libname; function GetStationName(train: Train; station: u8 {eTrainStation}): PCHar; cdecl; external libname; procedure MarkMissionTrainAsNoLongerNeeded(train: Train); cdecl; external libname; procedure MarkMissionTrainsAsNoLongerNeeded(); cdecl; external libname; // objects procedure ClearObjectLastDamageEntity(obj: Obj); cdecl; external libname; procedure ClearRoomForObject(obj: Obj); cdecl; external libname; procedure CreateObject(model: eModel; x: f32; y: f32; z: f32; var pObj: Obj; unknownTrue: b8); cdecl; external libname; procedure CreateObjectNoOffset(model: eModel; x: f32; y: f32; z: f32; var pObj: Obj; unknownTrue: b8); cdecl; external libname; procedure DeleteObject(var pObj: Obj); cdecl; external libname; procedure DetachObject(obj: Obj; unknown: b8); cdecl; external libname; function DoesObjectExist(obj: Obj): b8; cdecl; external libname; function DoesObjectHavePhysics(obj: Obj): b8; cdecl; external libname; function DoesObjectOfTypeExistAtCoords(x: f32; y: f32; z: f32; radius: f32; model: eModel): b8; cdecl; external libname; procedure FreezeObjectPosition(obj: Obj; frozen: b8); cdecl; external libname; function GetCarObjectIsAttachedTo(obj: Obj): Vehicle; cdecl; external libname; procedure GetObjectCoordinates(obj: Obj; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; function GetObjectFragmentDamageHealth(obj: Obj; unknown: b8): f32; cdecl; external libname; procedure GetObjectHeading(obj: Obj; var pHeading: f32); cdecl; external libname; procedure GetObjectHealth(obj: Obj; pHealth: f32); cdecl; external libname; procedure GetObjectModel(obj: Obj; var pModel: eModel); cdecl; external libname; procedure GetObjectRotationVelocity(obj: Obj; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetObjectSpeed(obj: Obj; var pSpeed: f32); cdecl; external libname; procedure GetObjectVelocity(obj: Obj; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; procedure GetOffsetFromObjectInWorldCoords(obj: Obj; x: f32; y: f32; z: f32; var pOffX: f32; var pOffY: f32; var pOffZ: f32); cdecl; external libname; function GetPedObjectIsAttachedTo(obj: Obj): Ped; cdecl; external libname; function HasObjectBeenDamaged(obj: Obj): b8; cdecl; external libname; function HasObjectBeenDamagedByCar(obj: Obj; vehicle: Vehicle): b8; cdecl; external libname; function HasObjectBeenDamagedByChar(obj: Obj; ped: Ped): b8; cdecl; external libname; function HasObjectBeenUprooted(obj: Obj): b8; cdecl; external libname; function HasObjectCollidedWithAnything(obj: Obj): b8; cdecl; external libname; function HasPoolObjectCollidedWithCushion(obj: Obj): b8; cdecl; external libname; function HasPoolObjectCollidedWithObject(obj: Obj; otherObj: obj): b8; cdecl; external libname; function IsObjectInWater(obj: Obj): b8; cdecl; external libname; function IsObjectOnFire(obj: Obj): b8; cdecl; external libname; function IsObjectOnScreen(obj: Obj): b8; cdecl; external libname; function IsObjectStatic(obj: Obj): b8; cdecl; external libname; function IsObjectUpright(obj: Obj; angle: f32): b8; cdecl; external libname; function IsObjectWithinBrainActivationRange(obj: Obj): b8; cdecl; external libname; procedure LoadAllObjectsNow(); cdecl; external libname; procedure MakeObjectTargettable(obj: Obj; targettable: b8); cdecl; external libname; procedure MarkObjectAsNoLongerNeeded(var pObj: Obj); cdecl; external libname; // models function HasModelLoaded(pModel: eModel): b8; cdecl; external libname; procedure RequestModel(pModel: eModel); cdecl; external libname; procedure GetCurrentBasicCopModel(var pModel: eModel); cdecl; external libname; procedure GetCurrentBasicPoliceCarModel(var pModel: eModel); cdecl; external libname; procedure GetCurrentCopModel(var pModel: eModel); cdecl; external libname; procedure GetCurrentPoliceCarModel(var pModel: eModel); cdecl; external libname; procedure GetCurrentTaxiCarModel(var pModel: eModel); cdecl; external libname; function GetDisplayNameFromVehicleModel(model: eModel): PChar; cdecl; external libname; procedure GetModelDimensions(model: eModel; var pMinVector: Vector3; var pMaxVector: Vector3); cdecl; external libname; function GetModelNameForDebug(model: eModel): PChar; cdecl; external libname; function IsThisModelABike(model: eModel): b8; cdecl; external libname; function IsThisModelABoat(model: eModel): b8; cdecl; external libname; function IsThisModelACar(model: eModel): b8; cdecl; external libname; function IsThisModelAHeli(model: eModel): b8; cdecl; external libname; function IsThisModelAPed(model: eModel): b8; cdecl; external libname; function IsThisModelAPlane(model: eModel): b8; cdecl; external libname; function IsThisModelATrain(model: eModel): b8; cdecl; external libname; function IsThisModelAVehicle(model: eModel): b8; cdecl; external libname; procedure MarkModelAsNoLongerNeeded(model: eModel); cdecl; external libname; // Interiors procedure ActivateInterior(interior: Interior; unknownTrue: b8); cdecl; external libname; procedure GetInteriorAtCoords(x: f32; y: f32; z: f32; var pInterior: Interior); cdecl; external libname; procedure GetInteriorFromCar(vehicle: Vehicle; var pInterior: Interior); cdecl; external libname; procedure GetInteriorFromChar(ped: Ped; var pInterior: Interior); cdecl; external libname; procedure GetInteriorHeading(interior: Interior; var pHeading: f32); cdecl; external libname; procedure GetOffsetFromInteriorInWorldCoords(interior: Interior; x: f32; y: f32; z: f32; var pOffset: f32); cdecl; external libname; procedure GetRoomKeyFromObject(obj: Obj; var pRoomKey: u8 {eInteriorRoomKey}); cdecl; external libname; procedure RequestInteriorModels(model: eModel; interiorName: PChar); cdecl; external libname; // Blip procedure AddBlipForCar(vehicle: Vehicle; var pBlip: Blip); cdecl; external libname; procedure AddBlipForChar(ped: Ped; var pBlip: Blip); cdecl; external libname; procedure AddBlipForContact(x: f32; y: f32; z: f32; var pBlip: Blip); cdecl; external libname; procedure AddBlipForCoord(x: f32; y: f32; z: f32; var pBlip: Blip); cdecl; external libname; procedure AddBlipForObject(obj: Obj; var pBlip: Blip); cdecl; external libname; procedure AddBlipForPickup(pickup: Pickup; var pBlip: Blip); cdecl; external libname; procedure AddSimpleBlipForPickup(pickup: Pickup); cdecl; external libname; procedure ChangeBlipAlpha(blip: Blip; alpha: ScriptAny); cdecl; external libname; procedure ChangeBlipColour(blip: Blip; colour: eColour); cdecl; external libname; procedure ChangeBlipDisplay(blip: Blip; display: u8 {eBlipDisplay}); cdecl; external libname; procedure ChangeBlipNameFromAscii(blip: Blip; blipName: PChar); cdecl; external libname; procedure ChangeBlipNameFromTextFile(blip: Blip; gxtName: PChar); cdecl; external libname; procedure ChangeBlipPriority(blip: Blip; priority: u8 {eBlipPriority}); cdecl; external libname; procedure ChangeBlipScale(blip: Blip; scale: f32); cdecl; external libname; procedure ChangeBlipSprite(blip: Blip; sprite: eBlipSprite); cdecl; external libname; procedure DimBlip(blip: Blip; unknownTrue: b8); cdecl; external libname; function DoesBlipExist(blip: Blip): b8; cdecl; external libname; procedure FlashBlip(blip: Blip; flag: b8); cdecl; external libname; procedure FlashBlipAlt(blip: Blip; flag: b8); cdecl; external libname; procedure GetBlipColour(blip: Blip; var pColour: eColour); cdecl; external libname; procedure GetBlipCoords(blip: Blip; var pVector: Vector3); cdecl; external libname; function GetBlipInfoIdType(blip: Blip): eBlipType; cdecl; external libname; function GetBlipInfoIdCarIndex(blip: Blip): Vehicle; cdecl; external libname; function GetBlipInfoIdDisplay(blip: Blip): b8; cdecl; external libname; function GetBlipInfoIdObjectIndex(blip: Blip): Obj; cdecl; external libname; function GetBlipInfoIdPedIndex(blip: Blip): Ped; cdecl; external libname; function GetBlipInfoIdPickupIndex(blip: Blip): Pickup; cdecl; external libname; function GetBlipName(blip: Blip): PChar; cdecl; external libname; function GetBlipSprite(blip: Blip): eBlipSprite; cdecl; external libname; function GetFirstBlipInfoId(bliptype: u8 {eBlipType}): Blip; cdecl; external libname; function GetNextBlipInfoId(bliptype: u8 {eBlipType}): Blip; cdecl; external libname; function IsBlipShortRange(blip: Blip): b8; cdecl; external libname; procedure RemoveBlip(blip: Blip); cdecl; external libname; // Pickups procedure AddPickupToInteriorRoomByName(pickup: Pickup; roomName: PChar); cdecl; external libname; procedure CreateMoneyPickup(x: f32; y: f32; z: f32; amount: u32; unknownTrue: b8; var pPickup: Pickup); cdecl; external libname; procedure CreatePickup(model: eModel; pickupType: u8 {ePickupType}; x: f32; y: f32; z: f32; var pPickup: Pickup; unknownFalse: b8); cdecl; external libname; procedure CreatePickupRotate(model: eModel; pickupType: u8 {ePickupType}; unknown: u32; x: f32; y: f32; z: f32; rX: f32; rY: f32; rZ: f32; var pPickup: Pickup); cdecl; external libname; procedure CreatePickupWithAmmo(model: eModel; pickupType: u8 {ePickupType}; unknown: u32; x: f32; y: f32; z: f32; var pPickup: Pickup); cdecl; external libname; function DoesPickupExist(pickup: Pickup): b8; cdecl; external libname; procedure GetPickupCoordinates(pickup: Pickup; var pX: f32; var pY: f32; var pZ: f32); cdecl; external libname; function HasPickupBeenCollected(pickup: Pickup): b8; cdecl; external libname; procedure PickupsPassTime(time: u32); cdecl; external libname; procedure RemovePickup(pickup: Pickup); cdecl; external libname; procedure RemoveTemporaryRadarBlipsForPickups(); cdecl; external libname; // World procedure ClearArea(x: f32; y: f32; z: f32; radius: f32; unknown: b8); cdecl; external libname; procedure ClearAreaOfCars(x: f32; y: f32; z: f32; radius: f32); cdecl; external libname; procedure ClearAreaOfChars(x: f32; y: f32; z: f32; radius: f32); cdecl; external libname; procedure ClearAreaOfCops(x: f32; y: f32; z: f32; radius: f32); cdecl; external libname; procedure ClearAreaOfObjects(x: f32; y: f32; z: f32; radius: f32); cdecl; external libname; procedure ClearPedNonCreationArea(); cdecl; external libname; procedure ClearPedNonRemovalArea(); cdecl; external libname; procedure ExtinguishFireAtPoint(x: f32; y: f32; z: f32; radius: f32); cdecl; external libname; procedure ForceTimeOfDay(hour: u32; minute: u32); cdecl; external libname; procedure ForceWeather(weather: eWeather); cdecl; external libname; procedure ForceWeatherNow(weather: eWeather); cdecl; external libname; procedure ForceWind(wind: f32); cdecl; external libname; procedure ForwardToTimeOfDay(hour: u32; minute: u32); cdecl; external libname; procedure FreezePositionOfClosestObjectOfType(x: f32; y: f32; z: f32; radius: f32; model: eModel; frozen: b8); cdecl; external libname; function GetClosestCar(x: f32; y: f32; z: f32; radius: f32; unknownFalse: b8; unknown70: u32): Vehicle; cdecl; external libname; function GetClosestChar(x: f32; y: f32; z: f32; radius: f32; unknown1: b8; unknown2: b8; var pPed: Ped): b8; cdecl; external libname; procedure GetCurrentWeather(var pWeather: eWeather); cdecl; external libname; function GetGroundZFor3DCoord(x: f32; y: f32; z: f32; var pGroundZ: f32): ScriptAny; cdecl; external libname; function GetNumberOfFiresInRange(x: f32; y: f32; z: f32; radius: f32): u32; cdecl; external libname; procedure GetSafePickupCoords(x: f32; y: f32; z: f32; var pSafeX: f32; var pSafeY: f32; var pSafeZ: f32); cdecl; external libname; function GetSafePositionForChar(x: f32; y: f32; z: f32; unknownTrue: b8; var pSafeX: f32; var pSafeY: f32; var pSafeZ: f32): b8; cdecl; external libname; function HasClosestObjectOfTypeBeenDamagedByChar(x: f32; y: f32; z: f32; radius: f32; objectModel: eModel; ped: Ped): b8; cdecl; external libname; function IsAreaOccupied(x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; unknownFalse1: b8; unknownTrue: b8; unknownFalse2: b8; unknownFalse3: b8; unknownFalse4: b8): b8; cdecl; external libname; function IsBulletInArea(x: f32; y: f32; z: f32; radius: f32; unknownTrue: b8): b8; cdecl; external libname; function IsBulletInBox(x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; unknown: b8): b8; cdecl; external libname; procedure RemoveAllPickupsOfType(pickupType: u8 {ePickupType}); cdecl; external libname; procedure SwitchAmbientPlanes(flag: b8); cdecl; external libname; procedure SwitchArrowAboveBlippedPickups(flag: b8); cdecl; external libname; procedure SwitchRandomBoats(flag: b8); cdecl; external libname; procedure SwitchRandomTrains(flag: b8); cdecl; external libname; procedure SwitchGarbageTrucks(flag: b8); cdecl; external libname; procedure SwitchMadDrivers(flag: b8); cdecl; external libname; // Garages procedure CloseGarage(garageName: PChar); cdecl; external libname; function IsCarInGarageArea(garageName: PChar; vehicle: Vehicle): b8; cdecl; external libname; function IsGarageClosed(garageName: PChar): ScriptAny; cdecl; external libname; function IsGarageOpen(garageName: PChar): ScriptAny; cdecl; external libname; procedure OpenGarage(name: PChar); cdecl; external libname; // Text (GXT stuff) procedure DisplayText(x: f32; y: f32; gxtName: PChar); cdecl; external libname; procedure DisplayTextWith2Numbers(x: f32; y: f32; gxtName: PChar; number1: i32; number2: i32); cdecl; external libname; procedure DisplayTextWithFloat(x: f32; y: f32; gxtName: PChar; value: f32; unknown: u32); cdecl; external libname; procedure DisplayTextWithLiteralString(x: f32; y: f32; gxtName: PChar; literalStr: PChar); cdecl; external libname; procedure DisplayTextWithNumber(x: f32; y: f32; gxtName: PChar; value: i32); cdecl; external libname; procedure DisplayTextWithString(x: f32; y: f32; gxtName: PChar; gxtStringName: PChar); cdecl; external libname; procedure DisplayTextWithTwoLiteralStrings(x: f32; y: f32; gxtName: PChar; literalStr1: PChar; literalStr2: PChar); cdecl; external libname; procedure DisplayTextWithTwoStrings(x: f32; y: f32; gxtName: PChar; gxtStringName1: PChar; gxtStringName2: PChar); cdecl; external libname; function GetLengthOfStringWithThisTextLabel(gxtName: PChar): u32; cdecl; external libname; function GetFirstNCharactersOfString(gxtName: PChar; chars: u32): PChar; cdecl; external libname; function GetNthIntegerInString(gxtName: PChar; index: u32): PChar; cdecl; external libname; function GetStringFromHashKey(hashKey: u32): PChar; cdecl; external libname; function HasAdditionalTextLoaded(textIndex: u32): b8; cdecl; external libname; function HasThisAdditionalTextLoaded(textName: PChar; textIndex: u32): b8; cdecl; external libname; function IsStreamingAdditionalText(textIndex: u32): b8; cdecl; external libname; procedure LoadAdditionalText(textName: PChar; textIndex: u32); cdecl; external libname; procedure LoadTextFont(font: u8 {eTextFont}); cdecl; external libname; procedure RequestAdditionalText(textName: PChar; textIndex: u32); cdecl; external libname; {!} procedure PrintStringWithLiteralStringNow(gxtName: PChar; literalStr: PChar; ms: u32; enable: u32); cdecl; external libname; // Textures function GetTexture(dictionary: TextureDict; textureName: PChar): Texture; cdecl; external libname; function GetTextureFromStreamedTxd(txdName: PChar; textureName: PChar): Texture; cdecl; external libname; function GetTxd(txdName: PChar): TextureDict; cdecl; external libname; function HasStreamedTxdLoaded(txdName: PChar): b8; cdecl; external libname; function LoadTxd(txdName: PChar): TextureDict; cdecl; external libname; procedure MarkStreamedTxdAsNoLongerNeeded(txdName: PChar); cdecl; external libname; procedure ReleaseTexture(texture: Texture); cdecl; external libname; procedure RequestStreamedTxd(txdName: PChar; unknown: b8); cdecl; external libname; procedure RemoveTxd(txd: TextureDict); cdecl; external libname; // Stats procedure DecrementIntStat(stat: eIntStatistic; amount: u32); cdecl; external libname; function GetIntStat(stat: eIntStatistic): u32; cdecl; external libname; procedure IncrementFloatStatNoMessage(stat: eFloatStatistic; value: f32); cdecl; external libname; procedure IncrementIntStat(stat: eIntStatistic; value: u32); cdecl; external libname; procedure IncrementIntStatNoMessage(stat: eIntStatistic; value: u32); cdecl; external libname; procedure SetIntStat(stat: eIntStatistic; value: u32); cdecl; external libname; // Pad (controls) function GetPadPitchRoll(padIndex: u32; var pPitch: f32; var pRoll: f32): b8; cdecl; external libname; procedure GetPositionOfAnalogueSticks(padIndex: u32; var pLeftX: u32; var pLeftY: u32; var pRightX: u32; var pRightY: u32); cdecl; external libname; function IsButtonJustPressed(padIndex: u32; button: u8 {ePadButton}): b8; cdecl; external libname; function IsButtonPressed(padIndex: u32; button: u8 {ePadButton}): b8; cdecl; external libname; // Sound function GetSoundId(): u8 {eSound}; cdecl; external libname; function HasSoundFinished(sound: u8 {eSound}): b8; cdecl; external libname; procedure StopSound(sound: u8 {eSound}); cdecl; external libname; // Game/Misc procedure AbortAllGarageActivity(); cdecl; external libname; procedure ActivateCheat(cheat: eCheat); cdecl; external libname; procedure ActivateFrontEnd(); cdecl; external libname; procedure ActivateSaveMenu(); cdecl; external libname; procedure AddExplosion(x: f32; y: f32; z: f32; p3: u32; p4: f32; p5: u32; p6: u32; p7: f32); cdecl; external libname; procedure AllowEmergencyServices(allow: b8); cdecl; external libname; procedure AllowGameToPauseForStreaming(allow: b8); cdecl; external libname; procedure AllowStuntJumpsToTrigger(allow: b8); cdecl; external libname; function AreWidescreenBordersActive(): b8; cdecl; external libname; function AwardAchievement(achievement: u8 {eAchievement}): ScriptAny; cdecl; external libname; function CanPhoneBeSeenOnScreen(): b8; cdecl; external libname; procedure CancelOverrideRestart(); cdecl; external libname; procedure ClearShakePlayerPadWhenControllerDisabled(); cdecl; external libname; procedure ClearTimeCycleModifier(); cdecl; external libname; procedure DeactivateFrontEnd(); cdecl; external libname; function DidSaveCompleteSuccessfully(): b8; cdecl; external libname; procedure DisableFrontEndRadio(); cdecl; external libname; procedure DisablePauseMenu(disabled: b8); cdecl; external libname; procedure DisablePoliceScanner(); cdecl; external libname; procedure DisplayAmmo(display: b8); cdecl; external libname; procedure DisplayAreaName(display: b8); cdecl; external libname; procedure DisplayCash(display: b8); cdecl; external libname; procedure DisplayFrontEndMapBlips(display: b8); cdecl; external libname; procedure DisplayHUD(display: b8); cdecl; external libname; procedure DisplayRadar(display: b8); cdecl; external libname; procedure DisplaySniperScopeThisFrame(); cdecl; external libname; procedure DoAutoSave(); cdecl; external libname; procedure DoScreenFadeIn(timeMS: u32); cdecl; external libname; procedure DoScreenFadeInUnhacked(timeMS: u32); cdecl; external libname; procedure DoScreenFadeOut(timeMS: u32); cdecl; external libname; procedure DoScreenFadeOutUnhacked(timeMS: u32); cdecl; external libname; procedure EnableFrontEndRadio(); cdecl; external libname; procedure EnableMaxAmmoCap(enable: b8); cdecl; external libname; procedure EnablePoliceScanner(); cdecl; external libname; procedure EnableSceneStreaming(enable: b8); cdecl; external libname; procedure FakeDeathArrest(); cdecl; external libname; procedure FireSingleBullet(x: f32; y: f32; z: f32; targetX: f32; targetY: f32; targetZ: f32; unknown: u32); cdecl; external libname; procedure FlashWeaponIcon(flag: b8); cdecl; external libname; procedure ForceInitialPlayerStation(stationName: PChar); cdecl; external libname; procedure ForceLoadingScreen(force: b8); cdecl; external libname; procedure FreezeRadioStation(stationName: PChar); cdecl; external libname; procedure GetCorrectedColour(r: u32; g: u32; b: u32; var pR: u32; var pG: u32; var pB: u32); cdecl; external libname; function GetCreateRandomCops(): b8; cdecl; external libname; function GetCurrentDayOfWeek(): u32; cdecl; external libname; function GetCurrentEpisode(): u32; cdecl; external libname; function GetCurrentLanguage(): eLanguage; cdecl; external libname; function GetEpisodeIndexFromSummons(): u32; cdecl; external libname; procedure GetGameTimer(var pTimer: u32); cdecl; external libname; function GetHashKey(value: PChar): u32; cdecl; external libname; function GetHoursOfDay(): u32; cdecl; external libname; procedure GetHUDColour(hudtype: u8 {eHUDType}; var pR: u32; var pG: u32; var pB: u32; var pUnknown: ScriptAny); cdecl; external libname; function GetIdOfThisThread(): u32; cdecl; external libname; function GetIsDepositAnimRunning(): b8; cdecl; external libname; function GetIsHiDef(): b8; cdecl; external libname; function GetIsWidescreen(): b8; cdecl; external libname; function GetMapAreaFromCoords(x: f32; y: f32; z: f32): u8 {eMapArea}; cdecl; external libname; function GetMinutesOfDay(): u32; cdecl; external libname; function GetMinutesToTimeOfDay(hour: u32; minute: u32): u32; cdecl; external libname; function GetMissionFlag(): b8; cdecl; external libname; procedure GetMaxWantedLevel(var pMaxWantedLevel: u32); cdecl; external libname; function GetNameOfInfoZone(x: f32; y: f32; z: f32): PChar; cdecl; external libname; function GetNameOfZone(x: f32; y: f32; z: f32): PChar; cdecl; external libname; function GetNumStreamingRequests(): u32; cdecl; external libname; function GetNumberOfInstancesOfStreamedScript(scriptName: PChar): u32; cdecl; external libname; function GetPlayerRadioStationIndex(): eRadioStation; cdecl; external libname; function GetPlayerRadioStationName(): PChar; cdecl; external libname; function GetTimeSinceLastArrest(): u32; cdecl; external libname; function GetTimeSinceLastDeath(): u32; cdecl; external libname; function HasAchievementBeenPassed(achievement: u8 {eAchievement}): b8; cdecl; external libname; function HasDeathArrestExecuted(): b8; cdecl; external libname; function HasResprayHappened(): b8; cdecl; external libname; function HasScriptLoaded(scriptName: PChar): b8; cdecl; external libname; function HaveAnimsLoaded(animName: PChar): b8; cdecl; external libname; procedure HideHelpTextThisFrame(); cdecl; external libname; procedure HideHUDAndRadarThisFrame(); cdecl; external libname; function IsAussieVersion(): b8; cdecl; external libname; function IsAutoAimingOn(): b8; cdecl; external libname; function IsAutoSaveInProgress(): b8; cdecl; external libname; function IsInteriorScene(): b8; cdecl; external libname; function IsFrontEndFading(): b8; cdecl; external libname; function IsGameInControlOfMusic(): b8; cdecl; external libname; function IsGermanVersion(): b8; cdecl; external libname; function IsHelpMessageBeingDisplayed(): b8; cdecl; external libname; function IsHintRunning(): b8; cdecl; external libname; function IsHUDPreferenceSwitchedOn(): b8; cdecl; external libname; function IsHUDReticuleComplex(): b8; cdecl; external libname; function IsInSpectatorMode(): b8; cdecl; external libname; function IsLookInverted(): b8; cdecl; external libname; function IsMemoryCardInUse(): b8; cdecl; external libname; function IsMessageBeingDisplayed(): b8; cdecl; external libname; function IsMinigameInProgress(): b8; cdecl; external libname; function IsMissionCompletePlaying(): b8; cdecl; external libname; function IsMobilePhoneCallOngoing(): b8; cdecl; external libname; function IsMobilePhoneRadioActive(): b8; cdecl; external libname; function IsPauseMenuActive(): b8; cdecl; external libname; function IsPayNSprayActive(): b8; cdecl; external libname; function IsPlayerBeingArrested(): b8; cdecl; external libname; function IsRadioRetuning(): b8; cdecl; external libname; function IsScreenFadedIn(): b8; cdecl; external libname; function IsScreenFadedOut(): b8; cdecl; external libname; function IsScreenFading(): b8; cdecl; external libname; function IsScreenFadingIn(): b8; cdecl; external libname; function IsScreenFadingOut(): b8; cdecl; external libname; function IsSniperInverted(): b8; cdecl; external libname; function IsSystemUIShowing(): b8; cdecl; external libname; function IsThisAMinigameScript(): b8; cdecl; external libname; function IsThreadActive(threadId: u32): b8; cdecl; external libname; procedure MarkScriptAsNoLongerNeeded(scriptName: PChar); cdecl; external libname; procedure PauseGame(); cdecl; external libname; procedure PlayMovie(); cdecl; external libname; procedure PopulateNow(); cdecl; external libname; procedure RequestAnims(animName: PChar); cdecl; external libname; procedure ReleaseMovie(); cdecl; external libname; procedure ReleaseTimeOfDay(); cdecl; external libname; procedure ReleaseWeather(); cdecl; external libname; procedure RemoveAnims(animName: PChar); cdecl; external libname; procedure RemoveCoverPoint(coverPoint: CoverPoint); cdecl; external libname; procedure RemoveIpl(iplName: PChar); cdecl; external libname; procedure RemoveScriptFire(fire: Fire); cdecl; external libname; procedure RequestIpl(iplName: PChar); cdecl; external libname; procedure SetTimerA(value: u32); cdecl; external libname; procedure SetTimerB(value: u32); cdecl; external libname; function TimerA(): u32; cdecl; external libname; function TimerB(): u32; cdecl; external libname; function TimeStep(): u32; cdecl; external libname; procedure UnlockLazlowStation(); cdecl; external libname; procedure UnregisterScriptWithAudio(); cdecl; external libname; procedure UnPauseGame(); cdecl; external libname; procedure _TerminateThisScript(tid: Pointer); cdecl; external libname name 'TerminateThisScript'; procedure _Wait(tid: Pointer; timeMS: u32); cdecl; external libname name 'Wait'; // General function AbsF(value: f32): f32; cdecl; external libname; function AbsI(value: f32): f32; cdecl; external libname; function ASin(value: f32): f32; cdecl; external libname; function ATan(value: f32): f32; cdecl; external libname; function Ceil(value: f32): i32; cdecl; external libname; function Cos(value: f32): f32; cdecl; external libname; function ToFloat(value: u32): f32; cdecl; external libname; function Floor(value: f32): u32; cdecl; external libname; procedure GenerateRandomFloatInRange(min: f32; max: f32; var pValue: f32); cdecl; external libname; procedure GenerateRandomIntInRange(min: u32; max: u32; var pValue: u32); cdecl; external libname; procedure GetAngleBetween2DVectors(x1: f32; y1: f32; x2: f32; y2: f32; var pResult: f32); cdecl; external libname; procedure GetDistanceBetweenCoords2D(x1: f32; y1: f32; x2: f32; y2: f32; var pDist: f32); cdecl; external libname; procedure GetDistanceBetweenCoords3D(x1: f32; y1: f32; z1: f32; x2: f32; y2: f32; z2: f32; var pDist: f32); cdecl; external libname; function GetFirstNCharactersOfLiteralString(literalString: PChar; chars: u32): PChar; cdecl; external libname; procedure GetHeadingFromVector2D(x: f32; y: f32; var pHeading: f32); cdecl; external libname; function GetLengthOfLiteralString(literalString: PChar): u32; cdecl; external libname; function IsStringNull(str: PChar): b8; cdecl; external libname; function Sin(value: f32): f32; cdecl; external libname; function Sqrt(value: f32): f32; cdecl; external libname; function Tan(value: f32): f32; cdecl; external libname; implementation end.