BKE_sca.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /*
  2. * ***** BEGIN GPL LICENSE BLOCK *****
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software Foundation,
  16. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  17. *
  18. * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  19. * All rights reserved.
  20. *
  21. * The Original Code is: all of this file.
  22. *
  23. * Contributor(s): none yet.
  24. *
  25. * ***** END GPL LICENSE BLOCK *****
  26. */
  27. #ifndef __BKE_SCA_H__
  28. #define __BKE_SCA_H__
  29. /** \file BKE_sca.h
  30. * \ingroup bke
  31. */
  32. struct Main;
  33. struct Object;
  34. struct bSensor;
  35. struct bController;
  36. struct bActuator;
  37. void link_logicbricks(void **poin, void ***ppoin, short *tot, short size);
  38. void unlink_logicbricks(void **poin, void ***ppoin, short *tot);
  39. void unlink_controller(struct bController *cont);
  40. void unlink_controllers(struct ListBase *lb);
  41. void free_controller(struct bController *cont);
  42. void free_controllers(struct ListBase *lb);
  43. void unlink_actuator(struct bActuator *act);
  44. void unlink_actuators(struct ListBase *lb);
  45. void free_actuator(struct bActuator *act);
  46. void free_actuators(struct ListBase *lb);
  47. void free_sensor(struct bSensor *sens);
  48. void free_sensors(struct ListBase *lb);
  49. struct bSensor *copy_sensor(struct bSensor *sens);
  50. void copy_sensors(struct ListBase *lbn, const struct ListBase *lbo);
  51. void init_sensor(struct bSensor *sens);
  52. struct bSensor *new_sensor(int type);
  53. struct bController *copy_controller(struct bController *cont);
  54. void copy_controllers(struct ListBase *lbn, const struct ListBase *lbo);
  55. void init_controller(struct bController *cont);
  56. struct bController *new_controller(int type);
  57. struct bActuator *copy_actuator(struct bActuator *act);
  58. void copy_actuators(struct ListBase *lbn, const struct ListBase *lbo);
  59. void init_actuator(struct bActuator *act);
  60. struct bActuator *new_actuator(int type);
  61. void clear_sca_new_poins_ob(struct Object *ob);
  62. void clear_sca_new_poins(void);
  63. void set_sca_new_poins_ob(struct Object *ob);
  64. void set_sca_new_poins(void);
  65. void BKE_sca_logic_links_remap(struct Main *bmain, struct Object *ob_old, struct Object *ob_new);
  66. void BKE_sca_logic_copy(struct Object *ob_new, const struct Object *ob);
  67. void sca_move_sensor(struct bSensor *sens_to_move, struct Object *ob, int move_up);
  68. void sca_move_controller(struct bController *cont_to_move, struct Object *ob, int move_up);
  69. void sca_move_actuator(struct bActuator *act_to_move, struct Object *ob, int move_up);
  70. /* Callback format for performing operations on ID-pointers for sensors/controllers/actuators. */
  71. typedef void (*SCASensorIDFunc)(struct bSensor *sensor, struct ID **idpoin, void *userdata, int cb_flag);
  72. typedef void (*SCAControllerIDFunc)(struct bController *controller, struct ID **idpoin, void *userdata, int cb_flag);
  73. typedef void (*SCAActuatorIDFunc)(struct bActuator *actuator, struct ID **idpoin, void *userdata, int cb_flag);
  74. void BKE_sca_sensors_id_loop(struct ListBase *senslist, SCASensorIDFunc func, void *userdata);
  75. void BKE_sca_controllers_id_loop(struct ListBase *contlist, SCAControllerIDFunc func, void *userdata);
  76. void BKE_sca_actuators_id_loop(struct ListBase *atclist, SCAActuatorIDFunc func, void *userdata);
  77. const char *sca_state_name_get(Object *ob, short bit);
  78. #endif