bool object_script_remove(int idx,char *err_str) { obj_type *obj; // can not dispose player object if (idx==server.player_obj_idx) { strcpy(err_str,"Can not dispose player object"); return(FALSE); } // does this object exist? if (server.obj_list.objs[idx]==NULL) { sprintf(err_str,"No object exists with ID: %d",idx); return(FALSE); } // can only delete objects spawned by // a script obj=server.obj_list.objs[idx]; if (!obj->script_spawned) { strcpy(err_str,"Can only delete objects spawned by scripts"); return(FALSE); } // is this a vehicle? If so auto-eject // any object if (obj->vehicle.on) { if (obj->vehicle.attach_obj_idx!=-1) { object_exit_vehicle(obj,TRUE,NULL); } } // trigger the object to be // disposed when outside of scripting // loops obj->dispose_trigger=TRUE; return(TRUE); }
void player_enter_exit_input(obj_type *obj) { if (!input_action_get_state(nc_enter_exit)) { enter_exit_key_down=FALSE; return; } if (enter_exit_key_down) return; // only check on key downs enter_exit_key_down=TRUE; // exit a vehicle? if (obj->vehicle.attach_obj_uid!=-1) { object_exit_vehicle(obj,FALSE,NULL); return; } // enter a vehicle? object_enter_vehicle(obj,NULL); }