SSGM does some strange things to beacons for some very weird reason.
void ObjectCreate(void *stub, GameObject *o)
{
DLOG;
YaRRCrate::ObjectCreated(o);
if(stricmp(Commands->Get_Preset_Name(o), "Invisible_Object") == 0)
{
Vector3 pos = Commands->Get_Position(o);
for(GenericSLNode *x = BaseGameObjList->HeadNode; x != 0; x = x->NodeNext)
{
GameObject *obj = (GameObject *)x->NodeData;
if(obj && As_BeaconGameObj(obj) != 0)
{
Vector3 objp = Commands->Get_Position(obj);
if((pos.X == objp.X) && (pos.Y == objp.Y))
{
o = obj;
break;
}
}
}
}
if(Commands->Is_A_Star(o) && Is_Soldier(o))
{
Attach_Script_Once(o, "YaRRPlayer", "");
Attach_Script_Once(o, "YaRRVeteran", "");
}
else if(Is_Vehicle(o))
{
Attach_Script_Once(o, "YaRRVehicle", "");
}
else if(Is_Beacon(o))
{
Attach_Script_Once(o, "YaRRBeacon", "");
}
else if(Is_C4(o))
{
Attach_Script_Once(o, "YaRRC4", "");
}
}