--- deliantra/server/include/define.h 2007/05/13 15:13:57 1.56 +++ deliantra/server/include/define.h 2007/07/10 05:51:38 1.64 @@ -1,25 +1,24 @@ /* - * CrossFire, A Multiplayer game + * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. * - * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - * Copyright (C) 2003-2005 Mark Wedel & Crossfire Development Team - * Copyright (C) 1992 Frank Tore Johansen + * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team + * Copyright (©) 2003-2005,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992,2007 Frank Tore Johansen * - * This program is free software; you can redistribute it and/or modify + * Crossfire TRT is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * The authors can be reached via e-mail at crossfire@schmorp.de + * along with this program. If not, see . + * + * The authors can be reached via e-mail to */ /* This file is best viewed with a window width of about 100 character */ @@ -52,10 +51,8 @@ # define MAX(x,y) max (x, y) #endif -/*NAME_MAX used by random maps may not be defined on pure ansi systems*/ -#ifndef NAME_MAX -# define NAME_MAX 255 -#endif +// maximum length of an object name in the protocol +#define NAME_LEN 127 /* MAX3 is basically like MAX, but instead does 3 values. */ #ifndef MAX3 @@ -81,7 +78,7 @@ #define MAX_BUF 1024 /* Used for all kinds of things */ #define VERY_BIG_BUF 2048 -#define HUGE_BUF 4096 /* Used for messages - some can be quite long */ +#define HUGE_BUF 10240 /* Used for messages - some can be quite long */ #define SOCKET_BUFLEN 4096 /* Max length a packet could be */ #define FONTSIZE 3000 /* Max chars in font */ @@ -276,6 +273,8 @@ #define SAFE_GROUND 165 /* This is a safe ground, means that neither bombs, potions, alchemy, or magic works here (elmex) */ +#define NUM_TYPES 166 // must be max(type) + 1 + /* DEAD TYPES: */ //#define FBULLET 10 //#define FBALL 11 @@ -431,7 +430,7 @@ #define FLAG_WIZ 1 /* Object has special privilegies */ #define FLAG_REMOVED 2 /* Object is not in any map or invenory */ #define FLAG_FREED 3 /* Object is in the list of free objects */ -#define FLAG_WAS_WIZ 4 /* Player was once a wiz */ +//#define FLAG_WAS_WIZ 4 /* Player was once a wiz */ #define FLAG_APPLIED 5 /* Object is ready for use by living */ #define FLAG_UNPAID 6 /* Object hasn't been paid for yet */ #define FLAG_USE_SHIELD 7 @@ -870,18 +869,18 @@ /* Flags for apply_special() */ enum apply_flag { - /* Basic flags, always use one of these */ - AP_NULL = 0, - AP_APPLY = 1, + /* Basic flags/mode, always use one of these */ + AP_TOGGLE = 0, + AP_APPLY = 1, AP_UNAPPLY = 2, - AP_BASIC_FLAGS = 15, + AP_BASIC_FLAGS = 0x0f, /* Optional flags, for bitwise or with a basic flag */ - AP_NO_MERGE = 16, - AP_IGNORE_CURSE = 32, - AP_PRINT = 64 /* Print what to do, don't actually do it */ - /* Note this is supported in all the functions */ + AP_NO_MERGE = 0x10, + AP_IGNORE_CURSE = 0x20, + AP_PRINT = 0x40, /* Print what to do, don't actually do it */ + AP_NO_READY = 0x80, // do not ready skill associated with skilltool. }; /* Bitmask values for 'can_apply_object()' return values. @@ -917,8 +916,10 @@ #define CAN_APPLY_UNAPPLY_MULT 0x20 #define CAN_APPLY_UNAPPLY_CHOICE 0x40 -/* Cut off point of when an object is put on the active list or not */ -#define MIN_ACTIVE_SPEED 1e-5 +// Cut off point of when an object is put on the active list or not +// we use 2**-n because that can be represented exactly +// also make sure that this is a float, not double, constant +#define MIN_ACTIVE_SPEED (1.f / 65536.f) #define RANDOM() (rndm.next () & 0xffffffU) #define SRANDOM(xyz) rndm.seed (xyz) //TODO, get rid of