]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'TimePath/deathtypes' into 'master'
authorTimePath <andrew.hardaker1995@gmail.com>
Tue, 13 Oct 2015 07:52:46 +0000 (07:52 +0000)
committerTimePath <andrew.hardaker1995@gmail.com>
Tue, 13 Oct 2015 07:52:46 +0000 (07:52 +0000)
Deathtypes: port to registry

Yet another merge request

See merge request !234

qcsrc/common/notifications.inc
qcsrc/common/triggers/func/door.qc
qcsrc/common/triggers/func/train.qc
qcsrc/server/item_key.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutator_nades.qc

index 715ea03d8d788dac6cc960a22bb0fd4119e5c386..cf5919bd1dbd36a4b5f71ea01e9a624b336f0f5b 100644 (file)
     MSG_CENTER_NOTIF(1, CENTER_DEATH_TEAMKILL_FRAG,         1, 0, "s1",           NO_CPID,             "0 0", _("^K1Moron! You fragged ^BG%s^K1, a team mate!"), _("^K1Moron! You went against ^BG%s^K1, a team mate!"))
     MSG_CENTER_NOTIF(1, CENTER_DEATH_TEAMKILL_FRAGGED,      1, 0, "s1",           NO_CPID,             "0 0", _("^K1You were fragged by ^BG%s^K1, a team mate"), _("^K1You were scored against by ^BG%s^K1, a team mate"))
     MSG_CENTER_NOTIF(1, CENTER_DISCONNECT_IDLING,           0, 1, "",             CPID_IDLING,         "1 f1", _("^K1Stop idling!\n^BGDisconnecting in ^COUNT..."), "")
-    MSG_CENTER_NOTIF(1, CENTER_DOOR_LOCKED_NEED,            0, 0, "",             NO_CPID,             "0 0", _("^BGYou need %s^BG!"), "")
-    MSG_CENTER_NOTIF(1, CENTER_DOOR_LOCKED_ALSONEED,        0, 0, "",             NO_CPID,             "0 0", _("^BGYou also need %s^BG!"), "")
+    MSG_CENTER_NOTIF(1, CENTER_DOOR_LOCKED_NEED,            1, 0, "s1",           NO_CPID,             "0 0", _("^BGYou need %s^BG!"), "")
+    MSG_CENTER_NOTIF(1, CENTER_DOOR_LOCKED_ALSONEED,        1, 0, "s1",           NO_CPID,             "0 0", _("^BGYou also need %s^BG!"), "")
     MSG_CENTER_NOTIF(1, CENTER_DOOR_UNLOCKED,               0, 0, "",             NO_CPID,             "0 0", _("^BGDoor unlocked!"), "")
     MSG_CENTER_NOTIF(1, CENTER_EXTRALIVES,                  0, 0, "",             NO_CPID,             "0 0", _("^F2You picked up some extra lives"), "")
     MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_FREEZE,            1, 0, "s1",           NO_CPID,             "0 0", _("^K3You froze ^BG%s"), "")
index 439d131e7b6ce381005701ccaf0165ce81805676..02d4f8e62a04e7f9b657d44af693761d37c2aabe 100644 (file)
@@ -158,7 +158,6 @@ float door_check_keys(void)
 {SELFPARAM();
        local entity door;
 
-
        if (self.owner)
                door = self.owner;
        else
@@ -179,7 +178,6 @@ float door_check_keys(void)
                // some keys were used
                if (other.key_door_messagetime <= time)
                {
-
                        play2(other, SND(TALK));
                        Send_Notification(NOTIF_ONE, other, MSG_CENTER, CENTER_DOOR_LOCKED_ALSONEED, item_keys_keylist(door.itemkeys));
                        other.key_door_messagetime = time + 2;
index a75ac4192ee1b7bd6a7afe274fd0612b82bcc8bd..65414548b2e27f3926e41d5d4c3ad6416db7c568 100644 (file)
@@ -161,6 +161,13 @@ void train_link()
        //Net_LinkEntity(self, 0, false, train_send);
 }
 
+void train_use()
+{
+       self.SUB_NEXTTHINK = self.SUB_LTIME + 1;
+       self.SUB_THINK = train_next;
+       self.use = func_null; // not again
+}
+
 void func_train_find()
 {SELFPARAM();
        entity targ;
@@ -169,8 +176,12 @@ void func_train_find()
        if (self.target == "")
                objerror("func_train_find: no next target");
        SUB_SETORIGIN(self, targ.origin - self.view_ofs);
-       self.SUB_NEXTTHINK = self.SUB_LTIME + 1;
-       self.SUB_THINK = train_next;
+
+       if(!(self.spawnflags & 4))
+       {
+               self.SUB_NEXTTHINK = self.SUB_LTIME + 1;
+               self.SUB_THINK = train_next;
+       }
 
        train_link();
 }
@@ -197,6 +208,9 @@ spawnfunc(func_train)
                return;
        self.effects |= EF_LOWPRECISION;
 
+       if(self.spawnflags & 4)
+               self.use = train_use;
+
        if (self.spawnflags & 2)
        {
                self.platmovetype_turn = true;
index 8df6e3b46e18c58e472dbe3aed21ecddd0dd4061..4b83a6bdb2545b42fea64d0882e85245ab7005ba 100644 (file)
@@ -81,6 +81,9 @@ void item_key_touch()
        play2(other, self.noise);
 
        centerprint(other, self.message);
+
+       activator = other;
+       SUB_UseTargets();
 };
 
 /**
index c864373ad8c6d17cd3320b6f2d061ee180ff43aa..43036b4099a64d0972097ca50d3d91dc5bdf80b9 100644 (file)
@@ -967,6 +967,18 @@ void precache_all_playermodels(string pattern)
        search_end(globhandle);
 }
 
+void precache_playermodels(string s)
+{
+       if(s != "")
+       {
+               int n = tokenize_console(s);
+               precache_playermodel(argv(0));
+
+               for (int i = 1; i < n; ++i)
+                       precache_model(argv(i));
+       }
+}
+
 void precache()
 {SELFPARAM();
     // gamemode related things
@@ -984,22 +996,11 @@ void precache()
 
     if (autocvar_sv_defaultcharacter)
     {
-        string s;
-        s = autocvar_sv_defaultplayermodel_red;
-        if (s != "")
-            precache_playermodel(s);
-        s = autocvar_sv_defaultplayermodel_blue;
-        if (s != "")
-            precache_playermodel(s);
-        s = autocvar_sv_defaultplayermodel_yellow;
-        if (s != "")
-            precache_playermodel(s);
-        s = autocvar_sv_defaultplayermodel_pink;
-        if (s != "")
-            precache_playermodel(s);
-        s = autocvar_sv_defaultplayermodel;
-        if (s != "")
-            precache_playermodel(s);
+               precache_playermodels(autocvar_sv_defaultplayermodel_red);
+               precache_playermodels(autocvar_sv_defaultplayermodel_blue);
+               precache_playermodels(autocvar_sv_defaultplayermodel_yellow);
+               precache_playermodels(autocvar_sv_defaultplayermodel_pink);
+               precache_playermodels(autocvar_sv_defaultplayermodel);
     }
 
     if (g_footsteps)
index 40e07b1ea81a387fcfc0e2a04964cb87fab529b0..bf55e6704d284707847d0c67fd2ff84f609fd72e 100644 (file)
@@ -964,7 +964,7 @@ MUTATOR_HOOKFUNCTION(nades_PlayerPreThink)
 {SELFPARAM();
        if (!IS_PLAYER(self)) { return false; }
 
-       if (self.nade && self.offhand != OFFHAND_NADE) OFFHAND_NADE.offhand_think(OFFHAND_NADE, self, self.nade_altbutton);
+       if (self.nade && (self.offhand != OFFHAND_NADE || (self.weapons & WEPSET(HOOK)))) OFFHAND_NADE.offhand_think(OFFHAND_NADE, self, self.nade_altbutton);
 
        if(IS_PLAYER(self))
        {