void GScr_SpawnHelicopter() { const char *type; const char *model; gentity_t *newent; gentity_t *ownerent; vec3_t rotation; vec3_t position; ownerent = Scr_GetEntity(0); if ( !ownerent->client ) { Scr_ParamError(0, "Owner entity is not a player"); } Scr_GetVector(1, position); Scr_GetVector(2, rotation); type = Scr_GetString(3); model = Scr_GetString(4); newent = G_Spawn(); Scr_SetString((unsigned short*)&newent->constClassname, (unsigned short)stringIndex.script_vehicle); newent->r.currentOrigin[0] = position[0]; newent->r.currentOrigin[1] = position[1]; newent->r.currentOrigin[2] = position[2]; newent->r.currentAngles[0] = rotation[0]; newent->r.currentAngles[1] = rotation[1]; newent->r.currentAngles[2] = rotation[2]; G_SpawnHelicopter(newent, ownerent, type, model); Scr_AddEntity(newent); }
gentity_s* spawnHelicopter(gentity_s* owner, const vec3_t origin, const vec3_t angles, const char* type, const char* model) { FUNCTION; TTY_Write("G_SpawnStaticEntity\n"); gentity_s* vehicle = G_SpawnStaticEntity(0x3E, 0x10, "vehicle"); VectorCopy(origin, vehicle->r.currentOrigin); VectorCopy(angles, vehicle->r.currentAngles); TTY_Write("Scr_SetString\n"); Scr_SetString(&vehicle->classname, scr_const->script_vehicle); TTY_Write("G_SpawnHelicopter\n"); G_SpawnHelicopter(vehicle, owner, type, model); Scr_AddEntity(SCRIPTINSTANCE_SERVER, vehicle); return vehicle; }