24 #define DEFAULT_SHIELD_SECTIONS 4       //      Number of sections in standard shields. 
   31 #define OBJ_NONE                                0               //unused object 
   32 #define OBJ_SHIP                                1               //a ship 
   33 #define OBJ_WEAPON                      2               //a laser, missile, etc 
   34 #define OBJ_FIREBALL                    3               //an explosion 
   35 #define OBJ_START                               4               //a starting point marker (player start, etc) 
   36 #define OBJ_WAYPOINT                    5               //a waypoint object, maybe only ever used by Fred 
   37 #define OBJ_DEBRIS                      6               //a flying piece of ship debris 
   39 #define OBJ_GHOST                               8               //so far, just a placeholder for when a player dies. 
   40 #define OBJ_POINT                               9               //generic object type to display a point in Fred. 
   41 #define OBJ_SHOCKWAVE           10              // a shockwave 
   42 #define OBJ_WING                                11              // not really a type used anywhere, but I need it for Fred. 
   43 #define OBJ_OBSERVER       12    // used for multiplayer observers (possibly single player later) 
   44 #define OBJ_ASTEROID                    13              //      An asteroid, you know, a big rock, like debris, sort of. 
   45 #define OBJ_JUMP_NODE           14              // A jump node object, used only in Fred. 
   46 #define OBJ_BEAM                                15              // beam weapons. we have to roll them into the object system to get the benefits of the collision pairs 
   49 #define MAX_OBJECT_TYPES        16 
   51 #define UNUSED_OBJNUM           (-MAX_OBJECTS*2)        //      Newer systems use this instead of -1 for invalid object. 
  103 #define OF_RENDERS                                      (1<<0)  // It renders as something ( objtype_render gets called) 
  104 #define OF_COLLIDES                                     (1<<1)  // It collides with stuff (objtype_check_impact & objtype_hit gets called) 
  105 #define OF_PHYSICS                                      (1<<2)  // It moves with standard physics. 
  106 #define OF_SHOULD_BE_DEAD                       (1<<3)  // this object should be dead, so next time we can, we should delete this object. 
  107 #define OF_INVULNERABLE                         (1<<4)  // invulnerable 
  108 #define OF_PROTECTED                            (1<<5)  // Don't kill this object, probably mission-critical. 
  109 #define OF_PLAYER_SHIP                          (1<<6)  // this object under control of some player -- don't do ai stuff on it!!! 
  110 #define OF_NO_SHIELDS                           (1<<7)  // object has no shield generator system (i.e. no shields) 
  111 #define OF_JUST_UPDATED                         (1<<8)  // for multiplayer -- indicates that we received object update this frame 
  112 #define OF_COULD_BE_PLAYER                      (1<<9)  // for multiplayer -- indicates that it is selectable ingame joiners as their ship 
  113 #define OF_WAS_RENDERED                         (1<<10) // Set if this object was rendered this frame.  Only gets set if OF_RENDERS set.  Gets cleared or set in obj_render_all(). 
  114 #define OF_NOT_IN_COLL                          (1<<11) // object has not been added to collision list 
  115 #define OF_BEAM_PROTECTED                       (1<<12) // don't fire beam weapons at this type of object, probably mission critical. 
  116 #define OF_SPECIAL_WARPIN                       (1<<13) // Object has special warp-in enabled. 
  117 #define OF_DOCKED_ALREADY_HANDLED       (1<<14) // Goober5000 - a docked object that we already moved 
  118 #define OF_TARGETABLE_AS_BOMB           (1<<15) 
  119 #define OF_FLAK_PROTECTED                       (1<<16) // Goober5000 - protected from flak turrets 
  120 #define OF_LASER_PROTECTED                      (1<<17) // Goober5000 - protected from laser turrets 
  121 #define OF_MISSILE_PROTECTED            (1<<18) // Goober5000 - protected from missile turrets 
  122 #define OF_IMMOBILE                                     (1<<19) // Goober5000 - doesn't move, no matter what 
  125 #define OF_MARKED                       (1<<29) // Object is marked (Fred).  Can be reused in FreeSpace for anything that won't be used by Fred. 
  126 #define OF_TEMP_MARKED          (1<<30) // Temporarily marked (Fred). 
  127 #define OF_HIDDEN                       (1<<31) // Object is hidden (not shown) and can't be manipulated 
  135 #define MAX_OBJECT_FLAG_NAMES                   10 
  177         object(
const object& other); 
 
  178         object& operator= (
const object & other); 
 
  235 #define OBJ_INDEX(objp) (ptrdiff_t)(objp-Objects) 
  259 void obj_render_all(
void (*render_function)(
object *
objp), 
bool* render_viewer_last );
 
  274 #define OBJ_RECALC_PAIRS(obj_to_reset)          do {    obj_set_flags(obj_to_reset, obj_to_reset->flags & ~(OF_COLLIDES)); obj_set_flags(obj_to_reset, obj_to_reset->flags | OF_COLLIDES); } while(0); 
void obj_queue_render(object *obj, draw_list *scene)
void obj_move_all(float frametime)
int render_order[MAX_OBJECTS]
void obj_observer_move(float frame_time)
int object_get_model(object *objp)
void obj_render_DEPRECATED(object *obj)
void obj_client_pre_interpolate()
void obj_merge_created_list(void)
void obj_get_average_ship_pos(vec3d *pos)
void obj_render_queue_all()
char flag_name[TOKEN_LENGTH]
void object_set_gliding(object *objp, bool enable=true, bool force=false)
struct obj_flag_name obj_flag_name
void obj_client_post_interpolate()
void obj_move_call_physics(object *objp, float frametime)
void obj_init_all_ships_physics()
void obj_delete(int objnum)
void obj_move_one(object *obj, float frametime)
void obj_render(object *obj)
dock_instance * dock_list
void obj_remove_pairs(object *a)
void obj_move_all_post(object *objp, float frametime)
GLboolean GLboolean GLboolean GLboolean a
void obj_player_fire_stuff(object *objp, control_info ci)
int objects_will_collide(object *A, object *B, float duration, float radius_scale)
float get_shield_pct(object *objp)
float get_max_shield_quad(object *objp)
struct checkobject checkobject
bool object_glide_forced(object *objp)
bool object_get_gliding(object *objp)
void obj_move_all_pre(object *objp, float frametime)
int Highest_ever_object_index
int Object_next_signature
void obj_render_all(void(*render_function)(object *objp), bool *render_viewer_last)
obj_flag_name Object_flag_names[]
int object_is_dead_docked(object *objp)
int obj_team(object *objp)
SCP_vector< float > shield_quadrant
int obj_get_SIF(object *objp)
dock_instance * dead_dock_list
GLsizei GLsizei GLuint * obj
int obj_get_by_signature(int sig)
struct object_orient_pos object_orient_pos
void obj_move_one_docked_object(object *objp, object *parent_objp)
void obj_add_pairs(int objnum)
float get_hull_pct(object *objp)
SCP_vector< int > objsnd_num
int object_is_docked(object *objp)
char * Object_type_names[MAX_OBJECT_TYPES]
void obj_set_flags(object *obj, uint new_flags)
float get_sim_hull_pct(object *objp)
int obj_create(ubyte type, int parent_obj, int instance, matrix *orient, vec3d *pos, float radius, uint flags)