tNames of gun shop, etc. are now sent to clients - vaccinewars - be a doctor an… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 05ebad1577ee436bdea6c332d8d4f9d970b39527 | |
parent 7a73b4f2abd069c39c355077ce7a6a466a420f22 | |
Author: Ben Webb <[email protected]> | |
Date: Sun, 14 Jan 2001 15:16:18 +0000 | |
Names of gun shop, etc. are now sent to clients | |
Diffstat: | |
M src/dopewars.c | 5 +++++ | |
M src/message.c | 25 +++++++++++++++++++++---- | |
2 files changed, 26 insertions(+), 4 deletions(-) | |
--- | |
diff --git a/src/dopewars.c b/src/dopewars.c | |
t@@ -1096,6 +1096,11 @@ void ResizeStoppedTo(int NewNum) { | |
} | |
void AssignName(gchar **dest,gchar *src) { | |
+/* Sets the dynamically-sized string pointed to by *dest to a copy of */ | |
+/* "src" - src can safely be freed or reused afterwards. Any existing */ | |
+/* string in "dest" is freed. The function returns immediately if src */ | |
+/* and *dest are already the same. */ | |
+ if (*dest == src) return; | |
g_free(*dest); | |
*dest=g_strdup(src); | |
} | |
diff --git a/src/message.c b/src/message.c | |
t@@ -515,12 +515,14 @@ void SendSpyReport(Player *To,Player *SpiedOn) { | |
g_string_free(text,TRUE); | |
} | |
-#define NUMNAMES 8 | |
+#define NUMNAMES 12 | |
void SendInitialData(Player *To) { | |
gchar *LocalNames[NUMNAMES] = { Names.Bitch,Names.Bitches,Names.Gun, | |
Names.Guns,Names.Drug,Names.Drugs, | |
- Names.Month,Names.Year }; | |
+ Names.Month,Names.Year,Names.LoanSharkName, | |
+ Names.BankName,Names.GunShopName, | |
+ Names.RoughPubName }; | |
gint i; | |
GString *text; | |
t@@ -530,14 +532,21 @@ void SendInitialData(Player *To) { | |
} | |
text=g_string_new(""); | |
g_string_sprintf(text,"%s^%d^%d^%d^",VERSION,NumLocation,NumGun,NumDrug); | |
- for (i=0;i<NUMNAMES;i++) { | |
+ for (i=0;i<8;i++) { | |
g_string_append(text,LocalNames[i]); | |
g_string_append_c(text,'^'); | |
} | |
+ if (HaveAbility(To,A_PLAYERID)) g_string_sprintfa(text,"%d^",To->ID); | |
+ | |
+/* Player ID is expected after the first 8 names, so send the rest now */ | |
+ for (i=8;i<NUMNAMES;i++) { | |
+ g_string_append(text,LocalNames[i]); | |
+ g_string_append_c(text,'^'); | |
+ } | |
+ | |
if (!HaveAbility(To,A_TSTRING)) for (i=0;i<NUMNAMES;i++) { | |
g_free(LocalNames[i]); | |
} | |
- if (HaveAbility(To,A_PLAYERID)) g_string_sprintfa(text,"%d^",To->ID); | |
SendServerMessage(NULL,C_NONE,C_INIT,To,text->str); | |
g_string_free(text,TRUE); | |
} | |
t@@ -562,6 +571,14 @@ void ReceiveInitialData(Player *Play,char *Data) { | |
AssignName(&Names.Month,GetNextWord(&pt,"")); | |
AssignName(&Names.Year,GetNextWord(&pt,"")); | |
if (HaveAbility(Play,A_PLAYERID)) Play->ID=GetNextInt(&pt,0); | |
+ | |
+/* Servers up to version 1.4.8 don't send the following names, so | |
+ default to the existing values if they haven't been sent */ | |
+ AssignName(&Names.LoanSharkName,GetNextWord(&pt,Names.LoanSharkName)); | |
+ AssignName(&Names.BankName,GetNextWord(&pt,Names.BankName)); | |
+ AssignName(&Names.GunShopName,GetNextWord(&pt,Names.GunShopName)); | |
+ AssignName(&Names.RoughPubName,GetNextWord(&pt,Names.RoughPubName)); | |
+ | |
if (strcmp(VERSION,ServerVersion)!=0) { | |
g_message(_("This server is version %s, while your client is " | |
"version %s.\nBe warned that different versions may not be fully compatible!\n" |