12#ifndef SCRIPTS_INCLUDE__ENGINE_OBJ_H
13#define SCRIPTS_INCLUDE__ENGINE_OBJ_H
15#include "engine_vector.h"
19#define CID_Beacon 0x3016
20#define CID_Building 0xD001
22#define CID_ConstructionYard 0xD00A
23#define CID_PowerPlant 0xD003
24#define CID_PowerUp 0x3003
25#define CID_Refinery 0xD002
26#define CID_RepairBay 0xD009
27#define CID_SamSite 0x3007
28#define CID_ScriptZone 0x300E
29#define CID_Simple 0x3004
30#define CID_Soldier 0x3001
31#define CID_SoldierFactory 0xD004
32#define CID_SpecialEffects 0x3013
33#define CID_Vehicle 0x3010
34#define CID_VehicleFactory 0xD005
35#define CID_WarFactory 0xD007
36#define CID_Airstrip 0xD006
37#define CID_Cinematic 0x3011
38#define CID_ComCenter 0xD008
39#define CID_Weapon 0xB001
40#define CID_Ammo 0xB002
41#define CID_Explosion 0xB003
42#define CID_Spawner 0x300D
44int SCRIPTS_API Get_Object_Type(GameObject *obj);
45void SCRIPTS_API Set_Object_Type(GameObject *obj,
int type);
46void SCRIPTS_API Get_Object_Color(GameObject *obj,
unsigned int *red,
unsigned int *green,
unsigned int *blue);
47GameObject SCRIPTS_API *Find_Smart_Object_By_Team(
int Team);
48GameObject SCRIPTS_API *Find_Object_By_Team(
int Team);
49GameObject SCRIPTS_API *Find_Non_Player_Object_By_Team(
int Team);
50GameObject SCRIPTS_API *Find_Object_By_Preset(
int Team,
const char *Preset_Name);
51GameObject SCRIPTS_API *Find_Closest_Non_Building_Object_By_Team(
int Team,Vector3 position);
52GameObject SCRIPTS_API *Find_Closest_Preset_By_Team(
int Team,
const Vector3 &pos,
const char *Preset);
53GameObject SCRIPTS_API *Find_Random_Preset_By_Team(
int Team,
const char *Preset);
54int SCRIPTS_API Get_Object_Count(
int Team,
const char *Preset);
55SimpleDynVecClass<GameObject*> SCRIPTS_API *Get_All_Objects_By_Preset(
int Team,
const char *Preset);
56GameObject SCRIPTS_API *Find_Nearest_Preset(Vector3 position,
const char* preset);
57GameObject SCRIPTS_API *Find_Random_Preset(
const char* preset,
int min,
int max);
58void SCRIPTS_API Send_Custom_To_Team_Buildings(
int Team,GameObject *sender,
int type,
int param,
float delay);
59void SCRIPTS_API Send_Custom_To_Team_Preset(
int Team,
const char *PresetName,GameObject *sender,
int type,
int param,
float delay);
60void SCRIPTS_API Send_Custom_All_Objects_Area(
int type,
const Vector3 &Position,
float Distance,GameObject *sender,
int team);
61void SCRIPTS_API Send_Custom_All_Objects(
int type,GameObject *sender,
int team);
62void SCRIPTS_API Send_Custom_Event_To_Object(GameObject *sender,
const char *Preset,
int type,
int param,
float delay);
63bool SCRIPTS_API Is_Unit_In_Range(
const char *preset,
float range,Vector3 location,
int team,
bool empty);
64bool SCRIPTS_API Get_Is_Powerup_Persistant(GameObject *obj);
65bool SCRIPTS_API Get_Powerup_Always_Allow_Grant(GameObject *obj);
66void SCRIPTS_API Set_Powerup_Always_Allow_Grant(GameObject *obj,
bool Grant);
67int SCRIPTS_API Get_Powerup_Grant_Sound(GameObject *obj);
68void SCRIPTS_API Grant_Powerup(GameObject *obj,
const char *Preset_Name);
69GameObject SCRIPTS_API *Find_Closest_Building(
const Vector3& position);
70Vector3 SCRIPTS_API Get_Velocity( GameObject* obj );
71void SCRIPTS_API Set_Velocity( GameObject* obj, Vector3 velocity );
72Matrix3D SCRIPTS_API Get_Transform( GameObject* obj );
73void SCRIPTS_API Set_Transform( GameObject* obj, Matrix3D transform );
74GameObject SCRIPTS_API * Get_Closest_Armed_Object_To_Object( GameObject* obj,
int team = 2 );
76SCRIPTS_API
bool Verify_Preset_Limit(
int team,
int instance_count, uint32* preset_ids,
int preset_id_count, GameObject* ignore =
nullptr);