version 1.1 | | version 1.2 |
---|
| | |
* Get it? | | * Get it? |
* | | * |
* $Log$ | | * $Log$ |
* Revision 1.1 1999/06/14 22:12:07 donut | | * Revision 1.2 2003/03/09 06:34:09 donut |
* Initial revision | | * change byte typedef to sbyte to avoid conflict with win32 byte which is unsigned |
| | * |
| | * Revision 1.1.1.1 1999/06/14 22:12:07 donut |
| | * Import of d1x 1.37 source. |
* | | * |
* Revision 2.0 1995/02/27 11:30:19 john | | * Revision 2.0 1995/02/27 11:30:19 john |
* New version 2.0, which has no anonymous unions, builds with | | * New version 2.0, which has no anonymous unions, builds with |
| | |
#define AIE_HURT 3 | | #define AIE_HURT 3 |
| | |
//typedef struct opath { | | //typedef struct opath { |
// byte path_index; // current index of path | | // sbyte path_index; // current index of path |
// byte path_direction; // current path direction | | // sbyte path_direction; // current path direction |
// byte path_length; // length of current path | | // sbyte path_length; // length of current path |
// byte nothing; | | // sbyte nothing; |
// short path[MAX_SEGMENTS_PER_PATH]; | | // short path[MAX_SEGMENTS_PER_PATH]; |
// short always_0xabc; // If this is ever not 0xabc, then someone overwrote | | // short always_0xabc; // If this is ever not 0xabc, then someone overwrote |
//} opath; | | //} opath; |
| | |
// This is the stuff that is permanent for an AI object and is therefore saved to disk. | | // This is the stuff that is permanent for an AI object and is therefore saved to disk. |
typedef struct ai_static { | | typedef struct ai_static { |
ubyte behavior; // | | ubyte behavior; // |
byte flags[MAX_AI_FLAGS]; // various flags, meaning defined by constants | | sbyte flags[MAX_AI_FLAGS]; // various flags, meaning defined by constants |
short hide_segment; // Segment to go to for hiding. | | short hide_segment; // Segment to go to for hiding. |
short hide_index; // Index in Path_seg_points | | short hide_index; // Index in Path_seg_points |
short path_length; // Length of hide path. | | short path_length; // Length of hide path. |
| | |
int danger_laser_signature; | | int danger_laser_signature; |
short danger_laser_num; | | short danger_laser_num; |
| | |
// byte extras[28]; // 32 extra bytes for storing stuff so we don't have to change versions on disk | | // sbyte extras[28]; // 32 extra bytes for storing stuff so we don't have to change versions on disk |
} __pack__ ai_static; | | } __pack__ ai_static; |
| | |
// This is the stuff which doesn't need to be saved to disk. | | // This is the stuff which doesn't need to be saved to disk. |
typedef struct ai_local { | | typedef struct ai_local { |
// These used to be bytes, changed to ints so I could set watchpoints on them. | | // These used to be bytes, changed to ints so I could set watchpoints on them. |
byte player_awareness_type; // type of awareness of player | | sbyte player_awareness_type; // type of awareness of player |
byte retry_count; // number of retries in physics last time this object got moved. | | sbyte retry_count; // number of retries in physics last time this object got moved. |
byte consecutive_retries; // number of retries in consecutive frames (ie, without a retry_count of 0) | | sbyte consecutive_retries; // number of retries in consecutive frames (ie, without a retry_count of 0) |
byte mode; // current mode within behavior | | sbyte mode; // current mode within behavior |
byte previous_visibility; // Visibility of player last time we checked. | | sbyte previous_visibility; // Visibility of player last time we checked. |
byte rapidfire_count; // number of shots fired rapidly | | sbyte rapidfire_count; // number of shots fired rapidly |
short goal_segment; // goal segment for current path | | short goal_segment; // goal segment for current path |
fix last_see_time, last_attack_time; // For sound effects, time at which player last seen, attacked | | fix last_see_time, last_attack_time; // For sound effects, time at which player last seen, attacked |
| | |
| | |
fix time_since_processed; // time since this robot last processed in do_ai_frame | | fix time_since_processed; // time since this robot last processed in do_ai_frame |
vms_angvec goal_angles[MAX_SUBMODELS]; //angles for each subobject | | vms_angvec goal_angles[MAX_SUBMODELS]; //angles for each subobject |
vms_angvec delta_angles[MAX_SUBMODELS]; //angles for each subobject | | vms_angvec delta_angles[MAX_SUBMODELS]; //angles for each subobject |
byte goal_state[MAX_SUBMODELS]; // Goal state for this sub-object | | sbyte goal_state[MAX_SUBMODELS]; // Goal state for this sub-object |
byte achieved_state[MAX_SUBMODELS]; // Last achieved state | | sbyte achieved_state[MAX_SUBMODELS]; // Last achieved state |
} ai_local; | | } ai_local; |
| | |
typedef struct { | | typedef struct { |