| 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 { |