ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/c_party.C
(Generate patch)

Comparing deliantra/server/server/c_party.C (file contents):
Revision 1.29 by root, Mon Oct 12 14:00:59 2009 UTC vs.
Revision 1.41 by root, Sun Jan 29 02:47:05 2017 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * You should have received a copy of the Affero GNU General Public License 18 * You should have received a copy of the Affero GNU General Public License
19 * and the GNU General Public License along with this program. If not, see 19 * and the GNU General Public License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>. 20 * <http://www.gnu.org/licenses/>.
21 * 21 *
22 * The authors can be reached via e-mail to <support@deliantra.net> 22 * The authors can be reached via e-mail to <support@deliantra.net>
23 */ 23 */
24 24
25#include <global.h> 25#include <global.h>
26#include <sproto.h> 26#include <sproto.h>
27#include <spells.h> 27#include <spells.h>
28 28
29static partylist *firstparty; 29static partylist *firstparty;
30 30
31partylist * 31partylist *
32get_firstparty (void) 32get_firstparty ()
33{ 33{
34 return firstparty; 34 return firstparty;
35} 35}
36 36
37void 37static void
38remove_party (partylist *target_party) 38remove_party (partylist *target_party)
39{ 39{
40 if (firstparty == NULL) 40 if (firstparty == NULL)
41 { 41 {
42 LOG (llevError, "remove_party(): I was asked to remove party %s, but no parties are defined", target_party->partyname); 42 LOG (llevError, "remove_party(): I was asked to remove party %s, but no parties are defined", target_party->partyname);
63 sfree (target_party); 63 sfree (target_party);
64} 64}
65 65
66/* Remove unused parties, this could be made to scale a lot better. */ 66/* Remove unused parties, this could be made to scale a lot better. */
67void 67void
68obsolete_parties (void) 68obsolete_parties ()
69{ 69{
70 int player_count; 70 int player_count;
71 partylist *party; 71 partylist *party;
72 partylist *next = NULL; 72 partylist *next = NULL;
73 73
110 assign (party->party_kills[pos].dead, dead); 110 assign (party->party_kills[pos].dead, dead);
111 party->party_kills[pos].killer[MAX_NAME] = 0; 111 party->party_kills[pos].killer[MAX_NAME] = 0;
112 party->party_kills[pos].dead[MAX_NAME] = 0; 112 party->party_kills[pos].dead[MAX_NAME] = 0;
113} 113}
114 114
115int 115static int
116confirm_party_password (object *op) 116confirm_party_password (object *op)
117{ 117{
118 partylist *tmppartylist; 118 partylist *tmppartylist;
119 119
120 for (tmppartylist = firstparty; tmppartylist != NULL; tmppartylist = tmppartylist->next) 120 for (tmppartylist = firstparty; tmppartylist != NULL; tmppartylist = tmppartylist->next)
128 } 128 }
129 } 129 }
130 return 1; 130 return 1;
131} 131}
132 132
133void 133static void
134send_party_message (object *op, const char *msg) 134send_party_message (object *op, const char *msg)
135{ 135{
136 for_all_players (pl) 136 for_all_players (pl)
137 if (pl->ob->contr->party == op->contr->party && pl->ob != op) 137 if (pl->ob->contr->party == op->contr->party && pl->ob != op)
138 pl->send_msg (NDI_UNIQUE, MSG_CHANNEL ("party"), msg); 138 pl->send_msg (NDI_UNIQUE, MSG_CHANNEL ("party"), msg);
165} 165}
166 166
167int 167int
168command_gsay (object *op, char *params) 168command_gsay (object *op, char *params)
169{ 169{
170 char party_params[MAX_BUF];
171
172 if (!params) 170 if (!params)
173 return 0; 171 return 0;
174 172
175 strcpy (party_params, "say ");
176 strcat (party_params, params);
177 command_party (op, party_params); 173 command_party (op, format ("say %s", params));
174
178 return 0; 175 return 0;
179} 176}
180 177
181int 178int
182command_party (object *op, char *params) 179command_party (object *op, char *params)
216 goto reply; 213 goto reply;
217 } 214 }
218 } 215 }
219 216
220 /* Forms the party struct for a party called 'params'. it is the responsibility 217 /* Forms the party struct for a party called 'params'. it is the responsibility
221 * of the caller to ensure that the name is unique, and that it is placed in the 218 * of the caller to ensure that the name is unique, and that it is placed in the
222 * main party list correctly */ 219 * main party list correctly */
223 220
224 party = salloc0<partylist> (); 221 party = salloc0<partylist> ();
225 party->partyname = strdup (params); 222 party->partyname = strdup (params);
226 party->total_exp = 0; 223 party->total_exp = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines