-entity secret_counter;
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+ #include "../dpdefs/progsdefs.qh"
+ #include "../common/util.qh"
+ #include "defs.qh"
+ #include "secret.qh"
+#endif
-/*
-.count - total number of secrets to find
-.cnt - number of secrets found
-*/
-void secret_counter_create() {
- print("^1secret_counter_create()\n");
- secret_counter = spawn();
- secret_counter.classname = "secret_counter";
- secret_counter.count = 0;
- secret_counter.cnt = 0;
+void secrets_setstatus() {
+ self.stat_secrets_total = secrets_total;
+ self.stat_secrets_found = secrets_found;
}
-/*
-A secret has been found!
-*/
+/**
+ * A secret has been found (maybe :P)
+ */
void trigger_secret_touch() {
// only a player can trigger this
- if (other.classname != "player")
+ if (!IS_PLAYER(other))
return;
-
+
// update secrets found counter
- secret_counter.cnt += 1;
- print("Secret found: ", ftos(secret_counter.cnt), "/");
- print(ftos(secret_counter.count), " - ");
- print("self=", self.classname, ", other=", other.classname, "\n");
-
+ secrets_found += 1;
+ //print("Secret found: ", ftos(secret_counter.cnt), "/");
+ //print(ftos(secret_counter.count), "\n");
+
+ // centerprint message (multi_touch() doesn't always call centerprint())
+ centerprint(other, self.message);
+ self.message = "";
+
// handle normal trigger features
multi_touch();
remove(self);
*/
void spawnfunc_trigger_secret() {
// FIXME: should it be disabled in most modes?
-
- // create secret counter
- if not(secret_counter)
- secret_counter_create();
-
+
// update secrets count
- secret_counter.count += 1;
-
+ secrets_total += 1;
+
// add default message
if (self.message == "")
self.message = "You found a secret!";
-
+
// set default sound
if (self.noise == "")
- if not(self.sounds)
+ if (!self.sounds)
self.sounds = 1; // misc/secret.wav
-
+
// this entity can't be a target itself!!!!
self.targetname = "";
-
+
// you can't just shoot a room to find it, can you?
self.health = 0;
-
+
// a secret can not be delayed
self.delay = 0;
-
+
// convert this trigger to trigger_once
self.classname = "trigger_once";
spawnfunc_trigger_once();
-
+
// take over the touch() function, so we can mark secret as found
self.touch = trigger_secret_touch;
// ignore triggering;
- self.use = SUB_Null;
+ self.use = func_null;
}