Annotation of quakeworld/progs/spectate.qc, revision 1.1.1.1

1.1       root        1: // Spectator functions
                      2: // Added Aug11'97 by Zoid <[email protected]>
                      3: //
                      4: // These functions are called from the server if they exist.
                      5: // Note that Spectators only have one think since they movement code doesn't
                      6: // track them much.  Impulse commands work as usual, but don't call
                      7: // the regular ImpulseCommand handler in weapons.qc since Spectators don't
                      8: // have any weapons and things can explode.
                      9: //
                     10: //   --- Zoid.
                     11: 
                     12: /*
                     13: ===========
                     14: SpectatorConnect
                     15: 
                     16: called when a spectator connects to a server
                     17: ============
                     18: */
                     19: void() SpectatorConnect =
                     20: {
                     21:        bprint (PRINT_MEDIUM, "Spectator ");
                     22:        bprint (PRINT_MEDIUM, self.netname);
                     23:        bprint (PRINT_MEDIUM, " entered the game\n");
                     24: 
                     25:        self.goalentity = world; // used for impulse 1 below
                     26: };
                     27: 
                     28: /*
                     29: ===========
                     30: SpectatorDisconnect
                     31: 
                     32: called when a spectator disconnects from a server
                     33: ============
                     34: */
                     35: void() SpectatorDisconnect =
                     36: {
                     37:        bprint (PRINT_MEDIUM, "Spectator ");
                     38:        bprint (PRINT_MEDIUM, self.netname);
                     39:        bprint (PRINT_MEDIUM, " left the game\n");
                     40: };
                     41: 
                     42: /*
                     43: ================
                     44: SpectatorImpulseCommand
                     45: 
                     46: Called by SpectatorThink if the spectator entered an impulse
                     47: ================
                     48: */
                     49: void() SpectatorImpulseCommand =
                     50: {
                     51:        if (self.impulse == 1) {
                     52:                // teleport the spectator to the next spawn point
                     53:                // note that if the spectator is tracking, this doesn't do
                     54:                // much
                     55:                self.goalentity = find(self.goalentity, classname, "info_player_deathmatch");
                     56:                if (self.goalentity == world)
                     57:                        self.goalentity = find(self.goalentity, classname, "info_player_deathmatch");
                     58:                if (self.goalentity != world) {
                     59:                        setorigin(self, self.goalentity.origin);
                     60:                        self.angles = self.goalentity.angles;
                     61:                        self.fixangle = TRUE;           // turn this way immediately
                     62:                }
                     63:        }
                     64: 
                     65:        self.impulse = 0;
                     66: };
                     67: 
                     68: /*
                     69: ================
                     70: SpectatorThink
                     71: 
                     72: Called every frame after physics are run
                     73: ================
                     74: */
                     75: void() SpectatorThink =
                     76: {
                     77:        // self.origin, etc contains spectator position, so you could
                     78:        // do some neat stuff here
                     79: 
                     80:        if (self.impulse)
                     81:                SpectatorImpulseCommand();
                     82: };
                     83: 
                     84: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.