123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #ifndef thing_H_INCLUDED
- #define thing_H_INCLUDED
- #include "camera.h"
- #include "bump.h"
- #include "sprite.h"
- typedef struct Thing_ Thing;
- /* Thing types. Generally speaking, there are
- things that can move and those that cannot.
- Chipmunks treats them differently in the sense that
- static things will all use a single (or one of
- a few) static bodies, which does not need to be
- freed when the thing isn't needed anymore.
- */
- #define THING_UNUSED -1
- #define THING_WALL 1
- #define THING_WATER 2
- #define THING_STAIR 3
- #define THING_ACTOR 4
- #define THING_MOBILE 5
- #define THING_ZONE 6
- #define THING_SEARCH 10
- #define THING_ATTACK 11
- #define THING_EFFECT 12
- #define THING_LINKED_MAX 16
- enum Thingflags_ {
- THING_FLAGS_OWNBODY = 1,
- THING_FLAGS_OWNSHAPE = 2,
- /* Thing doesn't change direction even when moving. */
- THING_FLAGS_LOCK_DIRECTION = 4,
- /* Persistent things are to be copied from one map to the next.
- Especially useful (and automatcical) for PCs. */
- THING_FLAGS_PERSISTENT = 8,
- THING_FLAGS_NO_SHADOW = 16, /* > Thing does not cast a shadow. */
- };
- int thing_id(Thing * thing);
- int thing_id_(Thing * thing, int newid);
- Thing * thing_z_(Thing * self, int z);
- int thing_setflag(Thing * self, int flag);
- int thing_unsetflag(Thing * self, int flag);
- int thing_flag_(Thing * self, int flag, int set);
- int thing_flag(Thing * self, int flag);
- Thing * thing_done(Thing * self);
- Thing * thing_free(Thing * self);
- Thing * thing_alloc();
- Sprite * thing_sprite_(Thing * thing, Sprite * sprite);
- Sprite * thing_sprite(Thing * thing);
- int thing_pose_(Thing * thing, int pose);
- int thing_direction_(Thing * thing, int direction);
- int thing_static_p(Thing * self);
- BeVec thing_p(Thing * self);
- int thing_x(Thing * self);
- int thing_y(Thing * self);
- int thing_w(Thing * self);
- int thing_h(Thing * self);
- int thing_cx(Thing * self);
- int thing_cy(Thing * self);
- int thing_z(Thing * self);
- BeVec thing_v(Thing * self);
- int thing_vx(Thing * self);
- int thing_vy(Thing * self);
- void thing_v_(Thing * self, BeVec v);
- void thing_vxy_(Thing * self, int vx, int vy);
- void thing_vx_(Thing * self, int vx);
- void thing_vy_(Thing * self, int vy);
- void thing_p_(Thing * self, BeVec p);
- void thing_deltap(Thing * self, BeVec delta);
- void thing_pxy_(Thing * self, int x, int y);
- void thing_x_(Thing * self, int x);
- void thing_y_(Thing * self, int y);
- void thing_applyforce(Thing * thing, const BeVec f);
- void thing_applyimpulse(Thing * thing, const BeVec f);
- void thing_resetforces(Thing * thing);
- BeVec thing_sdp(Thing * self);
- void thing_draw(Thing * self, Camera * camera);
- int thing_direction(Thing * self);
- int thing_pose(Thing * self);
- int thing_poseifold_(Thing * self, int oldpose, int newpose);
- void thing_update(Thing * self, double dt);
- int thing_compare_for_drawing(const void * p1, const void * p2);
- int thing_tint_layer(Thing * me, int layer_index, Color color);
- int thing_hide_layer(Thing * me, int layer, int hidden);
- int thing_is_layer_hidden(Thing * me, int layer);
- int thing_set_action_loop(Thing * me, int action, int loopmode);
- int thing_get_action_loop(Thing * me, int action);
- int thing_is_action_done(Thing * me, int action);
- int thing_set_pose_direction_loop(Thing * me, int pose, int direction, int loopmode);
- int thing_get_pose_direction_loop(Thing * me, int pose, int direction);
- /* This is declared here to avoid a cyclical dependency. */
- Thing * camera_track_ (Camera * self , Thing * track );
- BumpHull * thing_add_hull(Thing * me, int kind, int x, int y, int z, int w, int h);
- int thing_set_hull_flag(Thing * me, int flag);
- int thing_unset_hull_flag(Thing * me, int flag);
- int thing_hull_flags_(Thing * me, int flags);
- int thing_hull_flags(Thing * me);
-
- int thing_hull_group(Thing * me);
- int thing_hull_group_(Thing * me, int group);
-
- #endif
|