1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
/* bzflag
* Copyright (c) 1993-2025 Tim Riker
*
* This package is free software; you can redistribute it and/or
* modify it under the terms of the license found in the file
* named COPYING that should have accompanied this file.
*
* THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef BZF_GLOBAL_H
#define BZF_GLOBAL_H
/*
* Global constants
*/
#include "common.h"
/* system headers */
#include <math.h>
/* common headers */
#include "StateDatabase.h"
// values affecting struct and class layout
const int CallSignLen = 32; // including terminating NUL
const int PasswordLen = 32; // including terminating NUL
const int MottoLen = 128; // including terminating NUL
const int TokenLen = 22; // opaque string (now int(10)) and terminating NUL
const int VersionLen = 60; // including terminating NUL
const int MessageLen = 128; // including terminating NUL
// world->maxPlayers do not work as bzfs uses more player slot than
// real players. Any tcp connection is assigned a slot.
// So I put now 216. We should fix it though.
const int maxRemotePlayers = 216;
// types of things we can be
enum PlayerType
{
TankPlayer,
ComputerPlayer
};
// types of text messages
enum MessageType
{
ChatMessage,
ActionMessage
};
// team info
const int NumTeams = 8;
const int CtfTeams = 5;
enum TeamColor
{
AutomaticTeam = -2,
NoTeam = -1,
RogueTeam = 0,
RedTeam = 1,
GreenTeam = 2,
BlueTeam = 3,
PurpleTeam = 4,
ObserverTeam = 5,
RabbitTeam = 6,
HunterTeam = 7
};
#ifdef ROBOT
// robots
#define MAX_ROBOTS 100
#else
#define MAX_ROBOTS 0
#endif
// epsilon and very far for ray intersections
const float Epsilon = ZERO_TOLERANCE; // arbitrary
const float Infinity = MAXFLOAT; // arbitrary
#define DEFAULT_WORLD 800
// readout stuff
const int MaxMessages = 20; // msg. history length
const int MinX = 256;
const int MinY = 192;
const int NoMotionSize = 10; // no motion zone size
const int MaxMotionSize = 37; // motion zone size
// game types
enum GameType
{
TeamFFA, // normal teamed FFA
ClassicCTF, // your normal CTF
OpenFFA, // teamless FFA
RabbitChase // hunt the rabbit mode
};
// game styles
enum GameOptions
{
SuperFlagGameStyle = 0x0002, // superflags allowed
JumpingGameStyle = 0x0008, // jumping allowed
InertiaGameStyle = 0x0010, // momentum for all
RicochetGameStyle = 0x0020, // all shots ricochet
ShakableGameStyle = 0x0040, // can drop bad flags
AntidoteGameStyle = 0x0080, // anti-bad flags
HandicapGameStyle = 0x0100, // handicap players based on score (eek! was TimeSyncGameStyle)
NoTeamKillsGameStyle = 0x0400
// add here before reusing old ones above
};
// map object flags
#define _DRIVE_THRU ( 1 << 0 )
#define _SHOOT_THRU ( 1 << 1 )
#define _FLIP_Z ( 1 << 2 )
#define _RICOCHET ( 1 << 3 )
const int mapVersion = 1;
struct GlobalDBItem
{
public:
const char* name;
const char* value;
bool persistent;
StateDatabase::Permission permission;
};
extern const unsigned int numGlobalDBItems;
extern const struct GlobalDBItem globalDBItems[];
#endif // BZF_GLOBAL_H
// Local Variables: ***
// mode: C++ ***
// tab-width: 4 ***
// c-basic-offset: 4 ***
// indent-tabs-mode: nil ***
// End: ***
// ex: shiftwidth=4 tabstop=4
|