X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fitem_key.qc;fp=qcsrc%2Fserver%2Fitem_key.qc;h=f4893094efb533c429902e0defbd2ad2ad82b1df;hb=e3507f4fdbc2b3e15b663365e57e0aa60f3cf1a6;hp=79003853a6deef93d6ce20e93f5beecfb183518e;hpb=02013c593abe7ccb7c6502148df33b34390d8216;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/item_key.qc b/qcsrc/server/item_key.qc index 79003853a..f4893094e 100644 --- a/qcsrc/server/item_key.qc +++ b/qcsrc/server/item_key.qc @@ -1,3 +1,16 @@ +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../dpdefs/progsdefs.qh" + #include "../dpdefs/dpextensions.qh" + #include "../warpzonelib/util_server.qh" + #include "../common/util.qh" + #include "../common/monsters/monsters.qh" + #include "defs.qh" + #include "../common/notifications.qh" + #include "item_key.qh" +#endif + /* TODO: - add an unlock sound (here to trigger_keylock and to func_door) @@ -7,20 +20,20 @@ TODO: - should keys have a trigger? */ -float item_keys_usekey(entity l, entity p) { +bool item_keys_usekey(entity l, entity p) { float valid = l.itemkeys & p.itemkeys; if (!valid) { // other has none of the needed keys - return FALSE; + return false; } else if (l.itemkeys == valid) { // ALL needed keys were given l.itemkeys = 0; - return TRUE; + return true; } else { // only some of the needed keys were given l.itemkeys &= ~valid; - return TRUE; + return true; } } @@ -105,7 +118,7 @@ void spawn_item_key() { { // first nudge it off the floor a little bit to avoid math errors setorigin(self, self.origin + '0 0 1'); - // note droptofloor returns FALSE if stuck/or would fall too far + // note droptofloor returns false if stuck/or would fall too far droptofloor(); } @@ -140,8 +153,8 @@ This is the only correct way to put keys on the map! itemkeys MUST always have exactly one bit set. */ void spawnfunc_item_key() { - local string _model, _netname; - local vector _colormod; + string _netname; + vector _colormod; // reject this entity if more than one key was set! if (self.itemkeys>0 && (self.itemkeys & (self.itemkeys-1)) != 0) { @@ -196,9 +209,7 @@ void spawnfunc_item_key() { } // find default model -#ifdef GMQCC - _model = string_null; -#endif + string _model = string_null; if (self.itemkeys <= ITEM_KEY_BIT(2)) { _model = "models/keys/key.md3"; } else if (self.itemkeys >= ITEM_KEY_BIT(3) && self.itemkeys <= ITEM_KEY_BIT(5)) { @@ -282,13 +293,11 @@ trigger_keylock * trigger givent targets */ void trigger_keylock_trigger(string s) { - local entity t, stemp, otemp, atemp; - - stemp = self; - otemp = other; - atemp = activator; - + entity stemp = self; + entity otemp = other; + entity atemp = activator; + entity t; for(t = world; (t = find(t, targetname, s)); ) if (t.use) { self = t; @@ -306,16 +315,14 @@ void trigger_keylock_trigger(string s) { * kill killtarget of trigger keylock. */ void trigger_keylock_kill(string s) { - local entity t; + entity t; for(t = world; (t = find(t, targetname, s)); ) remove(t); }; void trigger_keylock_touch(void) { - local float key_used, started_delay; - - key_used = FALSE; - started_delay = FALSE; + bool key_used = false; + bool started_delay = false; // only player may trigger the lock if (!IS_PLAYER(other)) @@ -343,10 +350,10 @@ void trigger_keylock_touch(void) { } // trigger target2 - if (self.delay <= time || started_delay == TRUE) + if (self.delay <= time || started_delay == true) if (self.target2) { trigger_keylock_trigger(self.target2); - started_delay = TRUE; + started_delay = true; self.delay = time + self.wait; } } else {