MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / DetermineDeathPos

Method DetermineDeathPos

scripts/AIGame.cpp:3115–3149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3113#define H_MELEE_DIST 50.0f
3114
3115void Humonculous::DetermineDeathPos(int me, vector *dpos, int *droom) {
3116 float best_dist = 100000000.0f;
3117 int best_dp;
3118 vector dp[6];
3119 int dr[6];
3120 int i;
3121
3122 vector mpos;
3123 Obj_Value(me, VF_GET, OBJV_V_POS, &mpos);
3124
3125 Obj_Value(Scrpt_FindObjectName("SafeDeath01"), VF_GET, OBJV_V_POS, &dp[0]);
3126 Obj_Value(Scrpt_FindObjectName("SafeDeath01"), VF_GET, OBJV_I_ROOMNUM, &dr[0]);
3127 Obj_Value(Scrpt_FindObjectName("SafeDeath02"), VF_GET, OBJV_V_POS, &dp[1]);
3128 Obj_Value(Scrpt_FindObjectName("SafeDeath02"), VF_GET, OBJV_I_ROOMNUM, &dr[1]);
3129 Obj_Value(Scrpt_FindObjectName("SafeDeath03"), VF_GET, OBJV_V_POS, &dp[2]);
3130 Obj_Value(Scrpt_FindObjectName("SafeDeath03"), VF_GET, OBJV_I_ROOMNUM, &dr[2]);
3131 Obj_Value(Scrpt_FindObjectName("SafeDeath04"), VF_GET, OBJV_V_POS, &dp[3]);
3132 Obj_Value(Scrpt_FindObjectName("SafeDeath04"), VF_GET, OBJV_I_ROOMNUM, &dr[3]);
3133 Obj_Value(Scrpt_FindObjectName("SafeDeath05"), VF_GET, OBJV_V_POS, &dp[4]);
3134 Obj_Value(Scrpt_FindObjectName("SafeDeath05"), VF_GET, OBJV_I_ROOMNUM, &dr[4]);
3135 Obj_Value(Scrpt_FindObjectName("SafeDeath06"), VF_GET, OBJV_V_POS, &dp[5]);
3136 Obj_Value(Scrpt_FindObjectName("SafeDeath06"), VF_GET, OBJV_I_ROOMNUM, &dr[5]);
3137
3138 for (i = 0; i < 6; i++) {
3139 dp[i].y = -440.0f;
3140
3141 float cur_dist = vm_VectorDistance(&mpos, &dp[i]);
3142
3143 if (cur_dist < best_dist) {
3144 *dpos = dp[i];
3145 *droom = dr[i];
3146 best_dist = cur_dist;
3147 }
3148 }
3149}
3150
3151bool Humonculous::DoNotify(int me, tOSIRISEventInfo *data) {
3152 switch (memory->mode) {

Callers

nothing calls this directly

Calls 2

Obj_ValueFunction · 0.85
vm_VectorDistanceFunction · 0.70

Tested by

no test coverage detected