]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/bot/havocbot/role_ctf.qc
fix more uninitialized stuff and a few bugs, one regarding g_weaponarena all
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / bot / havocbot / role_ctf.qc
index f85f2ef64c3e8a0c0964d5d344eb6977ef1c300d..178ee0da6e8cfe236be697a433ba96a6c4a4cb55 100644 (file)
@@ -40,7 +40,7 @@ entity havocbot_ctf_find_flag(entity bot)
                f = f.ctf_worldflagnext;
        }
        return world;
-};
+}
 
 entity havocbot_ctf_find_enemy_flag(entity bot)
 {
@@ -53,14 +53,14 @@ entity havocbot_ctf_find_enemy_flag(entity bot)
                f = f.ctf_worldflagnext;
        }
        return world;
-};
+}
 
 float havocbot_ctf_teamcount(entity bot, vector org, float radius)
 {
        if not(teamplay)
                return 0;
 
-       float c;
+       float c = 0;
        entity head;
 
        FOR_EACH_PLAYER(head)
@@ -73,11 +73,11 @@ float havocbot_ctf_teamcount(entity bot, vector org, float radius)
        }
 
        return c;
-};
+}
 
 void havocbot_goalrating_ctf_ourflag(float ratingscale)
 {
-       local entity head;
+       entity head;
        head = ctf_worldflaglist;
        while (head)
        {
@@ -87,11 +87,11 @@ void havocbot_goalrating_ctf_ourflag(float ratingscale)
        }
        if (head)
                navigation_routerating(head, ratingscale, 10000);
-};
+}
 
 void havocbot_goalrating_ctf_ourbase(float ratingscale)
 {
-       local entity head;
+       entity head;
        head = ctf_worldflaglist;
        while (head)
        {
@@ -103,11 +103,11 @@ void havocbot_goalrating_ctf_ourbase(float ratingscale)
                return;
 
        navigation_routerating(head.basewaypoint, ratingscale, 10000);
-};
+}
 
 void havocbot_goalrating_ctf_enemyflag(float ratingscale)
 {
-       local entity head;
+       entity head;
        head = ctf_worldflaglist;
        while (head)
        {
@@ -117,7 +117,7 @@ void havocbot_goalrating_ctf_enemyflag(float ratingscale)
        }
        if (head)
                navigation_routerating(head, ratingscale, 10000);
-};
+}
 
 void havocbot_goalrating_ctf_enemybase(float ratingscale)
 {
@@ -127,7 +127,7 @@ void havocbot_goalrating_ctf_enemybase(float ratingscale)
                return;
        }
 
-       local entity head;
+       entity head;
 
        head = havocbot_ctf_find_enemy_flag(self);
 
@@ -135,11 +135,11 @@ void havocbot_goalrating_ctf_enemybase(float ratingscale)
                return;
 
        navigation_routerating(head.basewaypoint, ratingscale, 10000);
-};
+}
 
 void havocbot_goalrating_ctf_ourstolenflag(float ratingscale)
 {
-       local entity mf;
+       entity mf;
 
        mf = havocbot_ctf_find_flag(self);
 
@@ -148,11 +148,11 @@ void havocbot_goalrating_ctf_ourstolenflag(float ratingscale)
 
        if(mf.tag_entity)
                navigation_routerating(mf.tag_entity, ratingscale, 10000);
-};
+}
 
 void havocbot_goalrating_ctf_droppedflags(float ratingscale, vector org, float radius)
 {
-       local entity head;
+       entity head;
        head = ctf_worldflaglist;
        while (head)
        {
@@ -171,12 +171,12 @@ void havocbot_goalrating_ctf_droppedflags(float ratingscale, vector org, float r
 
                head = head.ctf_worldflagnext;
        }
-};
+}
 
 void havocbot_goalrating_ctf_carrieritems(float ratingscale, vector org, float sradius)
 {
-       local entity head;
-       local float t;
+       entity head;
+       float t;
        head = findchainfloat(bot_pickup, TRUE);
        while (head)
        {
@@ -192,7 +192,7 @@ void havocbot_goalrating_ctf_carrieritems(float ratingscale, vector org, float s
                }
                head = head.chain;
        }
-};
+}
 
 void havocbot_role_ctf_setrole(entity bot, float role)
 {
@@ -237,7 +237,7 @@ void havocbot_role_ctf_setrole(entity bot, float role)
                        break;
        }
        dprint("\n");
-};
+}
 
 void havocbot_role_ctf_carrier()
 {
@@ -275,11 +275,11 @@ void havocbot_role_ctf_carrier()
                        return;
                }
        }
-};
+}
 
 void havocbot_role_ctf_escort()
 {
-       local entity mf, ef;
+       entity mf, ef;
 
        if(self.deadflag != DEAD_NO)
        {
@@ -335,12 +335,12 @@ void havocbot_role_ctf_escort()
                havocbot_goalrating_items(10000, self.origin, 10000);
                navigation_goalrating_end();
        }
-};
+}
 
 void havocbot_role_ctf_offense()
 {
-       local entity mf, ef;
-       local vector pos;
+       entity mf, ef;
+       vector pos;
 
        if(self.deadflag != DEAD_NO)
        {
@@ -416,12 +416,12 @@ void havocbot_role_ctf_offense()
                havocbot_goalrating_items(1000, self.origin, 10000);
                navigation_goalrating_end();
        }
-};
+}
 
 // Retriever (temporary role):
 void havocbot_role_ctf_retriever()
 {
-       local entity mf;
+       entity mf;
 
        if(self.deadflag != DEAD_NO)
        {
@@ -454,7 +454,7 @@ void havocbot_role_ctf_retriever()
 
        if (self.bot_strategytime < time)
        {
-               local float radius;
+               float radius;
                radius = 10000;
 
                self.bot_strategytime = time + autocvar_bot_ai_strategyinterval;
@@ -465,11 +465,11 @@ void havocbot_role_ctf_retriever()
                havocbot_goalrating_items(500, self.origin, radius);
                navigation_goalrating_end();
        }
-};
+}
 
 void havocbot_role_ctf_middle()
 {
-       local entity mf;
+       entity mf;
 
        if(self.deadflag != DEAD_NO)
        {
@@ -501,7 +501,7 @@ void havocbot_role_ctf_middle()
 
        if (self.bot_strategytime < time)
        {
-               local vector org;
+               vector org;
 
                org = havocbot_ctf_middlepoint;
                org_z = self.origin_z;
@@ -516,11 +516,11 @@ void havocbot_role_ctf_middle()
                havocbot_goalrating_ctf_enemybase(2500);
                navigation_goalrating_end();
        }
-};
+}
 
 void havocbot_role_ctf_defense()
 {
-       local entity mf;
+       entity mf;
 
        if(self.deadflag != DEAD_NO)
        {
@@ -552,8 +552,8 @@ void havocbot_role_ctf_defense()
        }
        if (self.bot_strategytime < time)
        {
-               local float radius;
-               local vector org;
+               float radius;
+               vector org;
 
                org = mf.dropped_origin;
                radius = havocbot_ctf_middlepoint_radius;
@@ -562,9 +562,8 @@ void havocbot_role_ctf_defense()
                navigation_goalrating_start();
 
                // if enemies are closer to our base, go there
-               local entity head, closestplayer;
-               local float distance, bestdistance;
-               distance = 10000;
+               entity head, closestplayer = world;
+               float distance, bestdistance = 10000;
                FOR_EACH_PLAYER(head)
                {
                        if(head.deadflag!=DEAD_NO)
@@ -591,32 +590,33 @@ void havocbot_role_ctf_defense()
                havocbot_goalrating_items(5000, self.origin, 10000);
                navigation_goalrating_end();
        }
-};
+}
 
 void havocbot_calculate_middlepoint()
 {
        entity f;
-       vector p1, p2;
+       vector s = '0 0 0';
+       vector fo = '0 0 0';
+       float n = 0;
 
        f = ctf_worldflaglist;
        while (f)
        {
-               if(p1)
-                       p2 = f.origin;
-               else
-                       p1 = f.origin;
-
+               fo = f.origin;
+               s = s + fo;
                f = f.ctf_worldflagnext;
        }
-       havocbot_ctf_middlepoint = p1 + ((p2-p1) * 0.5);
-       havocbot_ctf_middlepoint_radius  = vlen(p2-p1) * 0.5;
-};
+       if(!n)
+               return;
+       havocbot_ctf_middlepoint = s * (1.0 / n);
+       havocbot_ctf_middlepoint_radius  = vlen(fo - havocbot_ctf_middlepoint);
+}
 
 void havocbot_ctf_reset_role(entity bot)
 {
-       local float cdefense, cmiddle, coffense;
-       local entity mf, ef, head;
-       local float c;
+       float cdefense, cmiddle, coffense;
+       entity mf, ef, head;
+       float c;
 
        if(bot.deadflag != DEAD_NO)
                return;
@@ -676,9 +676,9 @@ void havocbot_ctf_reset_role(entity bot)
                havocbot_role_ctf_setrole(bot, HAVOCBOT_CTF_ROLE_OFFENSE);
        else
                havocbot_role_ctf_setrole(bot, HAVOCBOT_CTF_ROLE_MIDDLE);
-};
+}
 
 void havocbot_chooserole_ctf()
 {
        havocbot_ctf_reset_role(self);
-};
+}