]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc
Merge branch 'master' into pending-release
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / gamemodes / gamemode / keyhunt / sv_keyhunt.qc
index 5f90c390f617ad394c61a454e5a273d07aa0811d..1553bf5b4bc90f5f1319ae98a24519cac7108733 100644 (file)
@@ -583,7 +583,7 @@ void kh_LoserTeam(int loser_team, entity lostkey)  // runs when a player pushes
        {
                if(lostkey.kh_previous_owner)
                        kh_Scores_Event(lostkey.kh_previous_owner, NULL, "pushed", 0, -autocvar_g_balance_keyhunt_score_push);
-                       // don't actually GIVE him the -nn points, just log
+                       // don't actually GIVE them the -nn points, just log
                kh_Scores_Event(attacker, NULL, "push", autocvar_g_balance_keyhunt_score_push, 0);
                GameRules_scoring_add(attacker, KH_PUSHES, 1);
                //centerprint(attacker, "Your push is the best!"); // does this really need to exist?
@@ -603,7 +603,7 @@ void kh_LoserTeam(int loser_team, entity lostkey)  // runs when a player pushes
 
                if(lostkey.kh_previous_owner)
                        kh_Scores_Event(lostkey.kh_previous_owner, NULL, "destroyed", 0, -autocvar_g_balance_keyhunt_score_destroyed);
-                       // don't actually GIVE him the -nn points, just log
+                       // don't actually GIVE them the -nn points, just log
 
                if(lostkey.kh_previous_owner.playerid == lostkey.kh_previous_owner_playerid)
                        GameRules_scoring_add(lostkey.kh_previous_owner, KH_DESTROYS, 1);
@@ -979,27 +979,24 @@ void kh_Initialize()  // sets up th KH environment
                kh_teams = cvar("g_keyhunt_teams"); // read the cvar directly as it gets written earlier in the same frame
        kh_teams = BITS(bound(2, kh_teams, 4));
 
-       // make a KH entity for controlling the game
-       kh_controller = new_pure(kh_controller);
-       setthink(kh_controller, kh_Controller_Think);
-       kh_Controller_SetThink(0, kh_WaitForPlayers);
+       // use a temp entity to avoid linking kh_controller to the world with setmodel
+       entity tmp_ent = spawn();
+       setmodel(tmp_ent, MDL_KH_KEY);
+       kh_key_dropped = tmp_ent.modelindex;
 
-       setmodel(kh_controller, MDL_KH_KEY);
-       kh_key_dropped = kh_controller.modelindex;
-       /*
-       dprint(vtos(kh_controller.mins));
-       dprint(vtos(kh_controller.maxs));
-       dprint("\n");
-       */
 #ifdef KH_PLAYER_USE_CARRIEDMODEL
-       setmodel(kh_controller, MDL_KH_KEY_CARRIED);
-       kh_key_carried = kh_controller.modelindex;
+       setmodel(tmp_ent, MDL_KH_KEY_CARRIED);
+       kh_key_carried = tmp_ent.modelindex;
 #else
        kh_key_carried = kh_key_dropped;
 #endif
 
-       kh_controller.model = "";
-       kh_controller.modelindex = 0;
+       delete(tmp_ent);
+
+       // make a KH entity for controlling the game
+       kh_controller = new_pure(kh_controller);
+       setthink(kh_controller, kh_Controller_Think);
+       kh_Controller_SetThink(0, kh_WaitForPlayers);
 
        kh_ScoreRules(kh_teams);
 }