tServer now ignores client's "From:" field - vaccinewars - be a doctor and try … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d3786b088df3c7418938c90b770263d8d52b6c32 | |
parent f4eaf3281460590a2efc99b13f9715c1319d73c4 | |
Author: Ben Webb <[email protected]> | |
Date: Tue, 12 Sep 2000 17:38:29 +0000 | |
Server now ignores client's "From:" field | |
Diffstat: | |
M po/cat-id-tbl.c | 315 +++++++++++++++--------------… | |
M po/dopewars.pot | 278 +++++++++++++++--------------… | |
M src/message.c | 6 +++++- | |
M src/serverside.c | 211 +++++++++++++++--------------… | |
4 files changed, 398 insertions(+), 412 deletions(-) | |
--- | |
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c | |
t@@ -541,187 +541,184 @@ Valid variables are listed below:-\n\ | |
{"cannot locate metaserver\n", 441}, | |
{"cannot create socket for metaserver communication\n", 442}, | |
{"cannot read high score file\n", 443}, | |
+ {"MaxClients (%d) exceeded - dropping connection", 444}, | |
{"\ | |
-Message is lying about its origin\n\ | |
-%s: %c: %s: %s\n\ | |
-Should be from %s", 444}, | |
- {"MaxClients (%d) exceeded - dropping connection", 445}, | |
+Sorry, but this server has a limit of 1 player, which has been \ | |
+reached.^Please try connecting again later.", 445}, | |
{"\ | |
-Sorry, but this server has a limit of %d %s, which has been reached.^Please \ | |
-try connecting again later.", 446}, | |
- {"player", 447}, | |
- {"players", 448}, | |
- {"%s will now be known as %s", 449}, | |
- {"Your dealing time is up...", 450}, | |
- {"%s: DENIED jet to %s", 451}, | |
- {"%s now spying on %s", 452}, | |
- {"%s spy on %s: DENIED", 453}, | |
- {"%s tipped off the cops to %s", 454}, | |
- {"%s tipoff about %s: DENIED", 455}, | |
- {"--More--", 456}, | |
- {"Pager exited abnormally - using stdout instead...", 457}, | |
- {"Maintaining pid file %s", 458}, | |
- {"Cannot create pid file %s", 459}, | |
+Sorry, but this server has a limit of %d players, which has been \ | |
+reached.^Please try connecting again later.", 446}, | |
+ {"%s will now be known as %s", 447}, | |
+ {"Your dealing time is up...", 448}, | |
+ {"%s: DENIED jet to %s", 449}, | |
+ {"%s now spying on %s", 450}, | |
+ {"%s spy on %s: DENIED", 451}, | |
+ {"%s tipped off the cops to %s", 452}, | |
+ {"%s tipoff about %s: DENIED", 453}, | |
+ {"--More--", 454}, | |
+ {"Pager exited abnormally - using stdout instead...", 455}, | |
+ {"Maintaining pid file %s", 456}, | |
+ {"Cannot create pid file %s", 457}, | |
{"\ | |
Cannot open high score file %s.\n\ | |
Either ensure you have permissions to access this file and directory, or\n\ | |
-specify an alternate high score file with the -f command line option.", 460}, | |
+specify an alternate high score file with the -f command line option.", 458}, | |
{"\ | |
dopewars server version %s ready and waiting for connections\n\ | |
-on port %d. For assistance with server commands, enter the command \"help\"\n"… | |
- {"Cannot install SIGUSR1 interrupt handler!", 462}, | |
- {"Cannot install SIGINT interrupt handler!", 463}, | |
- {"Cannot install SIGTERM interrupt handler!", 464}, | |
- {"Cannot install SIGHUP interrupt handler!", 465}, | |
- {"Cannot install pipe handler!", 466}, | |
- {"Users currently logged on:-\n", 467}, | |
- {"No users currently logged on!", 468}, | |
- {"Pushing %s", 469}, | |
- {"No such user!", 470}, | |
- {"%s killed", 471}, | |
- {"Unknown command - try \"help\" for help...", 472}, | |
- {"got connection from %s", 473}, | |
- {"%s leaves the server!", 474}, | |
- {"Standard input closed.", 475}, | |
- {"Unable to read high score file %s", 476}, | |
- {"Congratulations! You made the high scores!", 477}, | |
- {"You didn't even make the high score table...", 478}, | |
- {"Unable to write high score file %s", 479}, | |
- {"(R.I.P.)", 480}, | |
- {"%s: Tipoff from %s", 481}, | |
- {"One of your %s was spying for %s.^The spy %s!", 482}, | |
- {"Your spy working with %s has been discovered!^The spy %s!", 483}, | |
- {" The lady next to you on the subway said,^ \"%s\"%s", 484}, | |
- {"^ (at least, you -think- that's what she said)", 485}, | |
- {" You hear someone playing %s", 486}, | |
- {"YN^Would you like to visit %s?", 487}, | |
- {"YN^^Would you like to hire %s %s for %s?", 488}, | |
- {"an", 489}, | |
- {"a", 490}, | |
- {"AE^%s is already here!^Do you Attack, or Evade?", 491}, | |
- {"YN^Officer %s is chasing you!", 492}, | |
- {"YN^Officer %s and %d of his deputies are chasing you!", 493}, | |
- {"^Do you run?", 494}, | |
- {"^Do you Run, or Fight?", 495}, | |
- {"%s: tipoff by %s finished OK.", 496}, | |
- {"Following your tipoff, the cops ambushed %s, who was shot dead", 497}, | |
- {"Following your tipoff, the cops ambushed %s, who escaped with %d %s. ", 49… | |
- {"^You stand there like an idiot.", 499}, | |
- {"^You lose him in the alleys.", 500}, | |
- {"^You lose them in the alleys.", 501}, | |
- {"^You can't shake him, man!", 502}, | |
- {"^You can't shake them, man!", 503}, | |
- {"^You killed Officer %s! You find %s on his corpse!", 504}, | |
- {"YN^^^^Do you pay a doctor %s to sew your %s up?", 505}, | |
- {"YN^^^^Do you pay a doctor %s to sew you up?", 506}, | |
- {"^You got one, man!", 507}, | |
- {"^You missed!", 508}, | |
- {"^He's firing on you, man! ", 509}, | |
- {"^They're firing on you, man! ", 510}, | |
- {"You've been hit! ", 511}, | |
- {"He wasted you, man! What a drag!", 512}, | |
- {"They wasted you, man! What a drag!", 513}, | |
- {"You lost one of your %s!", 514}, | |
- {"He missed!", 515}, | |
- {"They missed!", 516}, | |
- {"You were mugged in the subway!", 517}, | |
- {"You meet a friend! He gives you %d %s.", 518}, | |
- {"You meet a friend! You give him %d %s.", 519}, | |
- {"Sanitized away a RandomOffer", 520}, | |
+on port %d. For assistance with server commands, enter the command \"help\"\n"… | |
+ {"Cannot install SIGUSR1 interrupt handler!", 460}, | |
+ {"Cannot install SIGINT interrupt handler!", 461}, | |
+ {"Cannot install SIGTERM interrupt handler!", 462}, | |
+ {"Cannot install SIGHUP interrupt handler!", 463}, | |
+ {"Cannot install pipe handler!", 464}, | |
+ {"Users currently logged on:-\n", 465}, | |
+ {"No users currently logged on!", 466}, | |
+ {"Pushing %s", 467}, | |
+ {"No such user!", 468}, | |
+ {"%s killed", 469}, | |
+ {"Unknown command - try \"help\" for help...", 470}, | |
+ {"got connection from %s", 471}, | |
+ {"%s leaves the server!", 472}, | |
+ {"Standard input closed.", 473}, | |
+ {"Unable to read high score file %s", 474}, | |
+ {"Congratulations! You made the high scores!", 475}, | |
+ {"You didn't even make the high score table...", 476}, | |
+ {"Unable to write high score file %s", 477}, | |
+ {"(R.I.P.)", 478}, | |
+ {"%s: Tipoff from %s", 479}, | |
+ {"One of your %s was spying for %s.^The spy %s!", 480}, | |
+ {"Your spy working with %s has been discovered!^The spy %s!", 481}, | |
+ {" The lady next to you on the subway said,^ \"%s\"%s", 482}, | |
+ {"^ (at least, you -think- that's what she said)", 483}, | |
+ {" You hear someone playing %s", 484}, | |
+ {"YN^Would you like to visit %s?", 485}, | |
+ {"YN^^Would you like to hire %s %s for %s?", 486}, | |
+ {"an", 487}, | |
+ {"a", 488}, | |
+ {"AE^%s is already here!^Do you Attack, or Evade?", 489}, | |
+ {"YN^Officer %s is chasing you!", 490}, | |
+ {"YN^Officer %s and %d of his deputies are chasing you!", 491}, | |
+ {"^Do you run?", 492}, | |
+ {"^Do you Run, or Fight?", 493}, | |
+ {"%s: tipoff by %s finished OK.", 494}, | |
+ {"Following your tipoff, the cops ambushed %s, who was shot dead", 495}, | |
+ {"Following your tipoff, the cops ambushed %s, who escaped with %d %s. ", 49… | |
+ {"^You stand there like an idiot.", 497}, | |
+ {"^You lose him in the alleys.", 498}, | |
+ {"^You lose them in the alleys.", 499}, | |
+ {"^You can't shake him, man!", 500}, | |
+ {"^You can't shake them, man!", 501}, | |
+ {"^You killed Officer %s! You find %s on his corpse!", 502}, | |
+ {"YN^^^^Do you pay a doctor %s to sew your %s up?", 503}, | |
+ {"YN^^^^Do you pay a doctor %s to sew you up?", 504}, | |
+ {"^You got one, man!", 505}, | |
+ {"^You missed!", 506}, | |
+ {"^He's firing on you, man! ", 507}, | |
+ {"^They're firing on you, man! ", 508}, | |
+ {"You've been hit! ", 509}, | |
+ {"He wasted you, man! What a drag!", 510}, | |
+ {"They wasted you, man! What a drag!", 511}, | |
+ {"You lost one of your %s!", 512}, | |
+ {"He missed!", 513}, | |
+ {"They missed!", 514}, | |
+ {"You were mugged in the subway!", 515}, | |
+ {"You meet a friend! He gives you %d %s.", 516}, | |
+ {"You meet a friend! You give him %d %s.", 517}, | |
+ {"Sanitized away a RandomOffer", 518}, | |
{"\ | |
-Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!"… | |
- {"You find %d %s on a dead dude in the subway!", 522}, | |
- {"Your mama made brownies with some of your %s! They were great!", 523}, | |
+Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!"… | |
+ {"You find %d %s on a dead dude in the subway!", 520}, | |
+ {"Your mama made brownies with some of your %s! They were great!", 521}, | |
{"\ | |
YN^There is some weed that smells like paraquat here!^It looks good! Will \ | |
-you smoke it? ", 524}, | |
- {"You stopped to %s.", 525}, | |
- {"Would you like to buy a bigger trenchcoat for %s?", 526}, | |
- {"YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?", 527}, | |
- {"YN^Would you like to buy a %s for %s?", 528}, | |
- {"%s: offer was on behalf of %s", 529}, | |
- {"%s has accepted your %s!^Use the G key to contact your spy.", 530}, | |
+you smoke it? ", 522}, | |
+ {"You stopped to %s.", 523}, | |
+ {"Would you like to buy a bigger trenchcoat for %s?", 524}, | |
+ {"YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?", 525}, | |
+ {"YN^Would you like to buy a %s for %s?", 526}, | |
+ {"%s: offer was on behalf of %s", 527}, | |
+ {"%s has accepted your %s!^Use the G key to contact your spy.", 528}, | |
{"\ | |
You hallucinated for three days on the wildest trip you ever imagined!^Then \ | |
-you died because your brain disintegrated!", 531}, | |
- {"Too late - %s has just left!", 532}, | |
- {"%s has rejected your %s!", 533}, | |
- {"%s has got away!", 534}, | |
- {"%s has run off!", 535}, | |
- {"Coward! You successfully escaped from the fight.", 536}, | |
- {"pitifully armed", 537}, | |
- {"lightly armed", 538}, | |
- {"moderately well armed", 539}, | |
- {"heavily armed", 540}, | |
- {"armed to the teeth", 541}, | |
- {" fires and ", 542}, | |
- {" stands and takes it.", 543}, | |
- {"%s arrives, with %d %s, %s,^%s", 544}, | |
- {"%s arrives, %s,^%s", 545}, | |
- {"%s fires and ", 546}, | |
- {"%s stands and takes it.", 547}, | |
- {"misses you!", 548}, | |
- {"You failed to hit %s.", 549}, | |
- {"You stand and take it.", 550}, | |
- {"hits you, man!", 551}, | |
- {" You've been wasted! What a drag!", 552}, | |
- {"You hit and killed %s", 553}, | |
- {", and loot the body!", 554}, | |
- {"^You lost a %s, man!", 555}, | |
- {"You are paid a bounty of %s in reward for killing^one of %s's %s", 556}, | |
- {"You killed one of %s's %s (%d left)", 557}, | |
- {"You fire, and hit %s!", 558}, | |
- {"YN^Officer %%s spots you dropping %s, and chases you!", 559}, | |
+you died because your brain disintegrated!", 529}, | |
+ {"Too late - %s has just left!", 530}, | |
+ {"%s has rejected your %s!", 531}, | |
+ {"%s has got away!", 532}, | |
+ {"%s has run off!", 533}, | |
+ {"Coward! You successfully escaped from the fight.", 534}, | |
+ {"pitifully armed", 535}, | |
+ {"lightly armed", 536}, | |
+ {"moderately well armed", 537}, | |
+ {"heavily armed", 538}, | |
+ {"armed to the teeth", 539}, | |
+ {" fires and ", 540}, | |
+ {" stands and takes it.", 541}, | |
+ {"%s arrives, with %d %s, %s,^%s", 542}, | |
+ {"%s arrives, %s,^%s", 543}, | |
+ {"%s fires and ", 544}, | |
+ {"%s stands and takes it.", 545}, | |
+ {"misses you!", 546}, | |
+ {"You failed to hit %s.", 547}, | |
+ {"You stand and take it.", 548}, | |
+ {"hits you, man!", 549}, | |
+ {" You've been wasted! What a drag!", 550}, | |
+ {"You hit and killed %s", 551}, | |
+ {", and loot the body!", 552}, | |
+ {"^You lost a %s, man!", 553}, | |
+ {"You are paid a bounty of %s in reward for killing^one of %s's %s", 554}, | |
+ {"You killed one of %s's %s (%d left)", 555}, | |
+ {"You fire, and hit %s!", 556}, | |
+ {"YN^Officer %%s spots you dropping %s, and chases you!", 557}, | |
{"\ | |
-YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!", … | |
- {"Player removed due to idle timeout", 561}, | |
- {"Player removed due to connect timeout", 562}, | |
- {"%s fails to return fire...", 563}, | |
+YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!", … | |
+ {"Player removed due to idle timeout", 559}, | |
+ {"Player removed due to connect timeout", 560}, | |
+ {"%s fails to return fire...", 561}, | |
{"\ | |
This server is version %s, while your client is version %s.\n\ | |
Be warned that different versions may not be fully compatible!\n\ | |
Refer to the website at http://bellatrix.pcl.ox.ac.uk/~ben/dopewars/\n\ | |
-for the latest version.", 564}, | |
- {"Could not find host", 565}, | |
- {"Could not create network socket", 566}, | |
- {"Connection refused or no server present", 567}, | |
- {"Cannot locate metaserver", 568}, | |
- {"Cannot create socket", 569}, | |
- {"Metaserver not running HTTP or connection denied", 570}, | |
- {"AI Player started; attempting to contact server at %s:%d...", 571}, | |
+for the latest version.", 562}, | |
+ {"Could not find host", 563}, | |
+ {"Could not create network socket", 564}, | |
+ {"Connection refused or no server present", 565}, | |
+ {"Cannot locate metaserver", 566}, | |
+ {"Cannot create socket", 567}, | |
+ {"Metaserver not running HTTP or connection denied", 568}, | |
+ {"AI Player started; attempting to contact server at %s:%d...", 569}, | |
{"\ | |
Could not connect to dopewars server\n\ | |
(%s)\n\ | |
-AI Player terminating abnormally.", 572}, | |
- {"Connection established\n", 573}, | |
- {"Connection to server lost!\n", 574}, | |
- {"AI Player terminated OK.\n", 575}, | |
- {"Using name %s\n", 576}, | |
- {"Players in this game:-\n", 577}, | |
- {"%s joins the game.\n", 578}, | |
- {"%s has left the game.\n", 579}, | |
- {"Jetting to %s with %s cash and %s debt", 580}, | |
- {"AI Player killed. Terminating normally.\n", 581}, | |
- {"Game time is up. Leaving game.\n", 582}, | |
- {"AI Player pushed from the server.\n", 583}, | |
- {"The server has terminated.\n", 584}, | |
- {"Selling %d %s at %s\n", 585}, | |
- {"Buying %d %s at %s\n", 586}, | |
- {"Buying a %s for %s at the gun shop\n", 587}, | |
- {"Debt of %s paid off to loan shark\n", 588}, | |
- {"Loan shark located at %s\n", 589}, | |
- {"Gun shop located at %s\n", 590}, | |
- {"Pub located at %s\n", 591}, | |
- {"Bank located at %s\n", 592}, | |
- {"Call yourselves drug dealers?", 593}, | |
- {"A trained monkey could do better...", 594}, | |
- {"Think you're hard enough to deal with the likes of me?", 595}, | |
- {"Zzzzz... are you dealing in candy or what?", 596}, | |
- {"Reckon I'll just have to shoot you for your own good.", 597}, | |
+AI Player terminating abnormally.", 570}, | |
+ {"Connection established\n", 571}, | |
+ {"Connection to server lost!\n", 572}, | |
+ {"AI Player terminated OK.\n", 573}, | |
+ {"Using name %s\n", 574}, | |
+ {"Players in this game:-\n", 575}, | |
+ {"%s joins the game.\n", 576}, | |
+ {"%s has left the game.\n", 577}, | |
+ {"Jetting to %s with %s cash and %s debt", 578}, | |
+ {"AI Player killed. Terminating normally.\n", 579}, | |
+ {"Game time is up. Leaving game.\n", 580}, | |
+ {"AI Player pushed from the server.\n", 581}, | |
+ {"The server has terminated.\n", 582}, | |
+ {"Selling %d %s at %s\n", 583}, | |
+ {"Buying %d %s at %s\n", 584}, | |
+ {"Buying a %s for %s at the gun shop\n", 585}, | |
+ {"Debt of %s paid off to loan shark\n", 586}, | |
+ {"Loan shark located at %s\n", 587}, | |
+ {"Gun shop located at %s\n", 588}, | |
+ {"Pub located at %s\n", 589}, | |
+ {"Bank located at %s\n", 590}, | |
+ {"Call yourselves drug dealers?", 591}, | |
+ {"A trained monkey could do better...", 592}, | |
+ {"Think you're hard enough to deal with the likes of me?", 593}, | |
+ {"Zzzzz... are you dealing in candy or what?", 594}, | |
+ {"Reckon I'll just have to shoot you for your own good.", 595}, | |
{"\ | |
This binary has been compiled without networking support, and thus cannot \ | |
act as an AI player.\n\ | |
-Recompile passing --enable-networking to the configure script.", 598}, | |
+Recompile passing --enable-networking to the configure script.", 596}, | |
}; | |
-int _msg_tbl_length = 598; | |
+int _msg_tbl_length = 596; | |
diff --git a/po/dopewars.pot b/po/dopewars.pot | |
t@@ -6,7 +6,7 @@ | |
msgid "" | |
msgstr "" | |
"Project-Id-Version: PACKAGE VERSION\n" | |
-"POT-Creation-Date: 2000-09-12 15:45+0100\n" | |
+"POT-Creation-Date: 2000-09-12 18:35+0100\n" | |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | |
"Language-Team: LANGUAGE <[email protected]>\n" | |
t@@ -1104,7 +1104,7 @@ msgstr "" | |
msgid "The server has terminated. Reverting to single player mode." | |
msgstr "" | |
-#: src/curses_client.c:646 src/gtk_client.c:337 src/serverside.c:263 | |
+#: src/curses_client.c:646 src/gtk_client.c:337 src/serverside.c:250 | |
#, c-format | |
msgid "%s joins the game!" | |
msgstr "" | |
t@@ -1948,87 +1948,77 @@ msgstr "" | |
msgid "cannot read high score file\n" | |
msgstr "" | |
-#: src/serverside.c:207 | |
-#, c-format | |
-msgid "" | |
-"Message is lying about its origin\n" | |
-"%s: %c: %s: %s\n" | |
-"Should be from %s" | |
-msgstr "" | |
- | |
-#: src/serverside.c:271 | |
+#: src/serverside.c:257 | |
#, c-format | |
msgid "MaxClients (%d) exceeded - dropping connection" | |
msgstr "" | |
-#: src/serverside.c:273 | |
-#, c-format | |
+#: src/serverside.c:261 | |
msgid "" | |
-"Sorry, but this server has a limit of %d %s, which has been reached.^Please " | |
-"try connecting again later." | |
+"Sorry, but this server has a limit of 1 player, which has been " | |
+"reached.^Please try connecting again later." | |
msgstr "" | |
-#: src/serverside.c:275 | |
-msgid "player" | |
-msgstr "" | |
- | |
-#: src/serverside.c:275 | |
-msgid "players" | |
+#: src/serverside.c:266 | |
+#, c-format | |
+msgid "" | |
+"Sorry, but this server has a limit of %d players, which has been " | |
+"reached.^Please try connecting again later." | |
msgstr "" | |
-#: src/serverside.c:284 | |
+#: src/serverside.c:279 | |
#, c-format | |
msgid "%s will now be known as %s" | |
msgstr "" | |
-#: src/serverside.c:299 | |
+#: src/serverside.c:294 | |
msgid "Your dealing time is up..." | |
msgstr "" | |
-#: src/serverside.c:310 | |
+#: src/serverside.c:305 | |
#, c-format | |
msgid "%s: DENIED jet to %s" | |
msgstr "" | |
-#: src/serverside.c:367 | |
+#: src/serverside.c:362 | |
#, c-format | |
msgid "%s now spying on %s" | |
msgstr "" | |
-#: src/serverside.c:375 | |
+#: src/serverside.c:370 | |
#, c-format | |
msgid "%s spy on %s: DENIED" | |
msgstr "" | |
-#: src/serverside.c:381 | |
+#: src/serverside.c:376 | |
#, c-format | |
msgid "%s tipped off the cops to %s" | |
msgstr "" | |
-#: src/serverside.c:389 | |
+#: src/serverside.c:384 | |
#, c-format | |
msgid "%s tipoff about %s: DENIED" | |
msgstr "" | |
-#: src/serverside.c:497 | |
+#: src/serverside.c:492 | |
msgid "--More--" | |
msgstr "" | |
-#: src/serverside.c:508 | |
+#: src/serverside.c:503 | |
msgid "Pager exited abnormally - using stdout instead..." | |
msgstr "" | |
-#: src/serverside.c:523 | |
+#: src/serverside.c:518 | |
#, c-format | |
msgid "Maintaining pid file %s" | |
msgstr "" | |
-#: src/serverside.c:527 | |
+#: src/serverside.c:522 | |
#, c-format | |
msgid "Cannot create pid file %s" | |
msgstr "" | |
-#: src/serverside.c:576 | |
+#: src/serverside.c:571 | |
#, c-format | |
msgid "" | |
"Cannot open high score file %s.\n" | |
t@@ -2036,144 +2026,144 @@ msgid "" | |
"specify an alternate high score file with the -f command line option." | |
msgstr "" | |
-#: src/serverside.c:613 | |
+#: src/serverside.c:608 | |
#, c-format | |
msgid "" | |
"dopewars server version %s ready and waiting for connections\n" | |
"on port %d. For assistance with server commands, enter the command \"help\"\n" | |
msgstr "" | |
-#: src/serverside.c:630 | |
+#: src/serverside.c:625 | |
msgid "Cannot install SIGUSR1 interrupt handler!" | |
msgstr "" | |
-#: src/serverside.c:636 | |
+#: src/serverside.c:631 | |
msgid "Cannot install SIGINT interrupt handler!" | |
msgstr "" | |
-#: src/serverside.c:639 | |
+#: src/serverside.c:634 | |
msgid "Cannot install SIGTERM interrupt handler!" | |
msgstr "" | |
-#: src/serverside.c:642 | |
+#: src/serverside.c:637 | |
msgid "Cannot install SIGHUP interrupt handler!" | |
msgstr "" | |
-#: src/serverside.c:647 | |
+#: src/serverside.c:642 | |
msgid "Cannot install pipe handler!" | |
msgstr "" | |
-#: src/serverside.c:670 | |
+#: src/serverside.c:665 | |
msgid "Users currently logged on:-\n" | |
msgstr "" | |
-#: src/serverside.c:675 | |
+#: src/serverside.c:670 | |
msgid "No users currently logged on!" | |
msgstr "" | |
-#: src/serverside.c:679 | |
+#: src/serverside.c:674 | |
#, c-format | |
msgid "Pushing %s" | |
msgstr "" | |
-#: src/serverside.c:681 src/serverside.c:689 | |
+#: src/serverside.c:676 src/serverside.c:684 | |
msgid "No such user!" | |
msgstr "" | |
-#: src/serverside.c:685 | |
+#: src/serverside.c:680 | |
#, c-format | |
msgid "%s killed" | |
msgstr "" | |
-#: src/serverside.c:691 | |
+#: src/serverside.c:686 | |
msgid "Unknown command - try \"help\" for help..." | |
msgstr "" | |
-#: src/serverside.c:708 | |
+#: src/serverside.c:703 | |
#, c-format | |
msgid "got connection from %s" | |
msgstr "" | |
-#: src/serverside.c:724 | |
+#: src/serverside.c:719 | |
#, c-format | |
msgid "%s leaves the server!" | |
msgstr "" | |
-#: src/serverside.c:792 | |
+#: src/serverside.c:787 | |
msgid "Standard input closed." | |
msgstr "" | |
-#: src/serverside.c:935 | |
+#: src/serverside.c:930 | |
#, c-format | |
msgid "Unable to read high score file %s" | |
msgstr "" | |
-#: src/serverside.c:955 | |
+#: src/serverside.c:950 | |
msgid "Congratulations! You made the high scores!" | |
msgstr "" | |
-#: src/serverside.c:968 | |
+#: src/serverside.c:963 | |
msgid "You didn't even make the high score table..." | |
msgstr "" | |
-#: src/serverside.c:982 | |
+#: src/serverside.c:977 | |
#, c-format | |
msgid "Unable to write high score file %s" | |
msgstr "" | |
-#: src/serverside.c:1001 | |
+#: src/serverside.c:996 | |
msgid "(R.I.P.)" | |
msgstr "" | |
-#: src/serverside.c:1036 | |
+#: src/serverside.c:1031 | |
#, c-format | |
msgid "%s: Tipoff from %s" | |
msgstr "" | |
-#: src/serverside.c:1053 | |
+#: src/serverside.c:1048 | |
#, c-format | |
msgid "One of your %s was spying for %s.^The spy %s!" | |
msgstr "" | |
-#: src/serverside.c:1061 | |
+#: src/serverside.c:1056 | |
#, c-format | |
msgid "Your spy working with %s has been discovered!^The spy %s!" | |
msgstr "" | |
-#: src/serverside.c:1084 | |
+#: src/serverside.c:1079 | |
#, c-format | |
msgid " The lady next to you on the subway said,^ \"%s\"%s" | |
msgstr "" | |
-#: src/serverside.c:1087 | |
+#: src/serverside.c:1082 | |
msgid "^ (at least, you -think- that's what she said)" | |
msgstr "" | |
-#: src/serverside.c:1089 | |
+#: src/serverside.c:1084 | |
#, c-format | |
msgid " You hear someone playing %s" | |
msgstr "" | |
-#: src/serverside.c:1098 src/serverside.c:1107 src/serverside.c:1116 | |
-#: src/serverside.c:1125 | |
+#: src/serverside.c:1093 src/serverside.c:1102 src/serverside.c:1111 | |
+#: src/serverside.c:1120 | |
#, c-format | |
msgid "YN^Would you like to visit %s?" | |
msgstr "" | |
-#: src/serverside.c:1136 | |
+#: src/serverside.c:1131 | |
#, c-format | |
msgid "YN^^Would you like to hire %s %s for %s?" | |
msgstr "" | |
-#: src/serverside.c:1137 | |
+#: src/serverside.c:1132 | |
msgid "an" | |
msgstr "" | |
-#: src/serverside.c:1137 | |
+#: src/serverside.c:1132 | |
msgid "a" | |
msgstr "" | |
-#: src/serverside.c:1149 | |
+#: src/serverside.c:1144 | |
#, c-format | |
msgid "AE^%s is already here!^Do you Attack, or Evade?" | |
msgstr "" | |
t@@ -2182,336 +2172,336 @@ msgstr "" | |
#. The format string used for this purpose can be altered by | |
#. passing non-NULL "LoneMessage" (for unaccompanied Officer | |
#. Hardass) and/or "DeputyMessage" (for him with x deputies) | |
-#: src/serverside.c:1218 | |
+#: src/serverside.c:1213 | |
#, c-format | |
msgid "YN^Officer %s is chasing you!" | |
msgstr "" | |
-#: src/serverside.c:1220 | |
+#: src/serverside.c:1215 | |
#, c-format | |
msgid "YN^Officer %s and %d of his deputies are chasing you!" | |
msgstr "" | |
-#: src/serverside.c:1241 | |
+#: src/serverside.c:1236 | |
msgid "^Do you run?" | |
msgstr "" | |
-#: src/serverside.c:1244 | |
+#: src/serverside.c:1239 | |
msgid "^Do you Run, or Fight?" | |
msgstr "" | |
-#: src/serverside.c:1259 | |
+#: src/serverside.c:1254 | |
#, c-format | |
msgid "%s: tipoff by %s finished OK." | |
msgstr "" | |
-#: src/serverside.c:1265 | |
+#: src/serverside.c:1260 | |
#, c-format | |
msgid "Following your tipoff, the cops ambushed %s, who was shot dead" | |
msgstr "" | |
-#: src/serverside.c:1269 | |
+#: src/serverside.c:1264 | |
#, c-format | |
msgid "Following your tipoff, the cops ambushed %s, who escaped with %d %s. " | |
msgstr "" | |
-#: src/serverside.c:1306 | |
+#: src/serverside.c:1301 | |
msgid "^You stand there like an idiot." | |
msgstr "" | |
-#: src/serverside.c:1310 | |
+#: src/serverside.c:1305 | |
msgid "^You lose him in the alleys." | |
msgstr "" | |
-#: src/serverside.c:1312 | |
+#: src/serverside.c:1307 | |
msgid "^You lose them in the alleys." | |
msgstr "" | |
-#: src/serverside.c:1320 | |
+#: src/serverside.c:1315 | |
msgid "^You can't shake him, man!" | |
msgstr "" | |
-#: src/serverside.c:1322 | |
+#: src/serverside.c:1317 | |
msgid "^You can't shake them, man!" | |
msgstr "" | |
-#: src/serverside.c:1333 | |
+#: src/serverside.c:1328 | |
#, c-format | |
msgid "^You killed Officer %s! You find %s on his corpse!" | |
msgstr "" | |
-#: src/serverside.c:1347 | |
+#: src/serverside.c:1342 | |
#, c-format | |
msgid "YN^^^^Do you pay a doctor %s to sew your %s up?" | |
msgstr "" | |
-#: src/serverside.c:1351 | |
+#: src/serverside.c:1346 | |
#, c-format | |
msgid "YN^^^^Do you pay a doctor %s to sew you up?" | |
msgstr "" | |
-#: src/serverside.c:1362 | |
+#: src/serverside.c:1357 | |
msgid "^You got one, man!" | |
msgstr "" | |
-#: src/serverside.c:1365 | |
+#: src/serverside.c:1360 | |
msgid "^You missed!" | |
msgstr "" | |
-#: src/serverside.c:1369 | |
+#: src/serverside.c:1364 | |
msgid "^He's firing on you, man! " | |
msgstr "" | |
-#: src/serverside.c:1371 | |
+#: src/serverside.c:1366 | |
msgid "^They're firing on you, man! " | |
msgstr "" | |
-#: src/serverside.c:1374 | |
+#: src/serverside.c:1369 | |
msgid "You've been hit! " | |
msgstr "" | |
-#: src/serverside.c:1381 | |
+#: src/serverside.c:1376 | |
msgid "He wasted you, man! What a drag!" | |
msgstr "" | |
-#: src/serverside.c:1383 | |
+#: src/serverside.c:1378 | |
msgid "They wasted you, man! What a drag!" | |
msgstr "" | |
-#: src/serverside.c:1391 | |
+#: src/serverside.c:1386 | |
#, c-format | |
msgid "You lost one of your %s!" | |
msgstr "" | |
-#: src/serverside.c:1400 | |
+#: src/serverside.c:1395 | |
msgid "He missed!" | |
msgstr "" | |
-#: src/serverside.c:1402 | |
+#: src/serverside.c:1397 | |
msgid "They missed!" | |
msgstr "" | |
-#: src/serverside.c:1422 | |
+#: src/serverside.c:1417 | |
msgid "You were mugged in the subway!" | |
msgstr "" | |
-#: src/serverside.c:1433 | |
+#: src/serverside.c:1428 | |
#, c-format | |
msgid "You meet a friend! He gives you %d %s." | |
msgstr "" | |
-#: src/serverside.c:1438 | |
+#: src/serverside.c:1433 | |
#, c-format | |
msgid "You meet a friend! You give him %d %s." | |
msgstr "" | |
-#: src/serverside.c:1445 | |
+#: src/serverside.c:1440 | |
msgid "Sanitized away a RandomOffer" | |
msgstr "" | |
-#: src/serverside.c:1450 | |
+#: src/serverside.c:1445 | |
#, c-format | |
msgid "" | |
"Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!" | |
msgstr "" | |
-#: src/serverside.c:1464 | |
+#: src/serverside.c:1459 | |
#, c-format | |
msgid "You find %d %s on a dead dude in the subway!" | |
msgstr "" | |
-#: src/serverside.c:1476 | |
+#: src/serverside.c:1471 | |
#, c-format | |
msgid "Your mama made brownies with some of your %s! They were great!" | |
msgstr "" | |
-#: src/serverside.c:1484 | |
+#: src/serverside.c:1479 | |
msgid "" | |
"YN^There is some weed that smells like paraquat here!^It looks good! Will " | |
"you smoke it? " | |
msgstr "" | |
-#: src/serverside.c:1491 | |
+#: src/serverside.c:1486 | |
#, c-format | |
msgid "You stopped to %s." | |
msgstr "" | |
-#: src/serverside.c:1512 | |
+#: src/serverside.c:1507 | |
#, c-format | |
msgid "Would you like to buy a bigger trenchcoat for %s?" | |
msgstr "" | |
-#: src/serverside.c:1517 | |
+#: src/serverside.c:1512 | |
#, c-format | |
msgid "YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?" | |
msgstr "" | |
-#: src/serverside.c:1529 | |
+#: src/serverside.c:1524 | |
#, c-format | |
msgid "YN^Would you like to buy a %s for %s?" | |
msgstr "" | |
-#: src/serverside.c:1630 src/serverside.c:1741 | |
+#: src/serverside.c:1625 src/serverside.c:1736 | |
#, c-format | |
msgid "%s: offer was on behalf of %s" | |
msgstr "" | |
-#: src/serverside.c:1633 | |
+#: src/serverside.c:1628 | |
#, c-format | |
msgid "%s has accepted your %s!^Use the G key to contact your spy." | |
msgstr "" | |
-#: src/serverside.c:1679 | |
+#: src/serverside.c:1674 | |
msgid "" | |
"You hallucinated for three days on the wildest trip you ever imagined!^Then " | |
"you died because your brain disintegrated!" | |
msgstr "" | |
-#: src/serverside.c:1718 | |
+#: src/serverside.c:1713 | |
#, c-format | |
msgid "Too late - %s has just left!" | |
msgstr "" | |
-#: src/serverside.c:1744 | |
+#: src/serverside.c:1739 | |
#, c-format | |
msgid "%s has rejected your %s!" | |
msgstr "" | |
-#: src/serverside.c:1779 | |
+#: src/serverside.c:1774 | |
#, c-format | |
msgid "%s has got away!" | |
msgstr "" | |
-#: src/serverside.c:1820 | |
+#: src/serverside.c:1815 | |
#, c-format | |
msgid "%s has run off!" | |
msgstr "" | |
-#: src/serverside.c:1832 | |
+#: src/serverside.c:1827 | |
msgid "Coward! You successfully escaped from the fight." | |
msgstr "" | |
-#: src/serverside.c:1888 | |
+#: src/serverside.c:1883 | |
msgid "pitifully armed" | |
msgstr "" | |
-#: src/serverside.c:1889 | |
+#: src/serverside.c:1884 | |
msgid "lightly armed" | |
msgstr "" | |
-#: src/serverside.c:1890 | |
+#: src/serverside.c:1885 | |
msgid "moderately well armed" | |
msgstr "" | |
-#: src/serverside.c:1891 | |
+#: src/serverside.c:1886 | |
msgid "heavily armed" | |
msgstr "" | |
-#: src/serverside.c:1892 | |
+#: src/serverside.c:1887 | |
msgid "armed to the teeth" | |
msgstr "" | |
-#: src/serverside.c:1893 | |
+#: src/serverside.c:1888 | |
msgid " fires and " | |
msgstr "" | |
-#: src/serverside.c:1894 | |
+#: src/serverside.c:1889 | |
msgid " stands and takes it." | |
msgstr "" | |
-#: src/serverside.c:1897 | |
+#: src/serverside.c:1892 | |
#, c-format | |
msgid "%s arrives, with %d %s, %s,^%s" | |
msgstr "" | |
-#: src/serverside.c:1901 | |
+#: src/serverside.c:1896 | |
#, c-format | |
msgid "%s arrives, %s,^%s" | |
msgstr "" | |
-#: src/serverside.c:1906 | |
+#: src/serverside.c:1901 | |
#, c-format | |
msgid "%s fires and " | |
msgstr "" | |
-#: src/serverside.c:1908 | |
+#: src/serverside.c:1903 | |
#, c-format | |
msgid "%s stands and takes it." | |
msgstr "" | |
-#: src/serverside.c:1920 | |
+#: src/serverside.c:1915 | |
msgid "misses you!" | |
msgstr "" | |
-#: src/serverside.c:1921 | |
+#: src/serverside.c:1916 | |
#, c-format | |
msgid "You failed to hit %s." | |
msgstr "" | |
-#: src/serverside.c:1924 | |
+#: src/serverside.c:1919 | |
msgid "You stand and take it." | |
msgstr "" | |
-#: src/serverside.c:1928 | |
+#: src/serverside.c:1923 | |
msgid "hits you, man!" | |
msgstr "" | |
-#: src/serverside.c:1931 | |
+#: src/serverside.c:1926 | |
msgid " You've been wasted! What a drag!" | |
msgstr "" | |
-#: src/serverside.c:1932 | |
+#: src/serverside.c:1927 | |
#, c-format | |
msgid "You hit and killed %s" | |
msgstr "" | |
-#: src/serverside.c:1947 src/serverside.c:1980 | |
+#: src/serverside.c:1942 src/serverside.c:1975 | |
msgid ", and loot the body!" | |
msgstr "" | |
-#: src/serverside.c:1956 | |
+#: src/serverside.c:1951 | |
#, c-format | |
msgid "^You lost a %s, man!" | |
msgstr "" | |
-#: src/serverside.c:1961 | |
+#: src/serverside.c:1956 | |
#, c-format | |
msgid "You are paid a bounty of %s in reward for killing^one of %s's %s" | |
msgstr "" | |
-#: src/serverside.c:1969 | |
+#: src/serverside.c:1964 | |
#, c-format | |
msgid "You killed one of %s's %s (%d left)" | |
msgstr "" | |
-#: src/serverside.c:1987 | |
+#: src/serverside.c:1982 | |
#, c-format | |
msgid "You fire, and hit %s!" | |
msgstr "" | |
-#: src/serverside.c:2026 | |
+#: src/serverside.c:2021 | |
msgid "YN^Officer %%s spots you dropping %s, and chases you!" | |
msgstr "" | |
-#: src/serverside.c:2028 | |
+#: src/serverside.c:2023 | |
msgid "" | |
"YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!" | |
msgstr "" | |
-#: src/serverside.c:2183 | |
+#: src/serverside.c:2178 | |
msgid "Player removed due to idle timeout" | |
msgstr "" | |
-#: src/serverside.c:2193 | |
+#: src/serverside.c:2188 | |
msgid "Player removed due to connect timeout" | |
msgstr "" | |
-#: src/serverside.c:2199 src/serverside.c:2205 | |
+#: src/serverside.c:2194 src/serverside.c:2200 | |
#, c-format | |
msgid "%s fails to return fire..." | |
msgstr "" | |
-#: src/message.c:433 | |
+#: src/message.c:437 | |
#, c-format | |
msgid "" | |
"This server is version %s, while your client is version %s.\n" | |
t@@ -2520,27 +2510,27 @@ msgid "" | |
"for the latest version." | |
msgstr "" | |
-#: src/message.c:572 | |
+#: src/message.c:576 | |
msgid "Could not find host" | |
msgstr "" | |
-#: src/message.c:573 | |
+#: src/message.c:577 | |
msgid "Could not create network socket" | |
msgstr "" | |
-#: src/message.c:574 src/message.c:607 | |
+#: src/message.c:578 src/message.c:611 | |
msgid "Connection refused or no server present" | |
msgstr "" | |
-#: src/message.c:753 | |
+#: src/message.c:757 | |
msgid "Cannot locate metaserver" | |
msgstr "" | |
-#: src/message.c:754 | |
+#: src/message.c:758 | |
msgid "Cannot create socket" | |
msgstr "" | |
-#: src/message.c:756 | |
+#: src/message.c:760 | |
msgid "Metaserver not running HTTP or connection denied" | |
msgstr "" | |
diff --git a/src/message.c b/src/message.c | |
t@@ -100,7 +100,11 @@ void SendClientMessage(Player *From,char AICode,char Code, | |
if (!Network) { | |
#endif | |
if (From) ServerFrom=GetPlayerByName(GetPlayerName(From),FirstServer); | |
- else ServerFrom=NULL; | |
+ else if (FirstServer) ServerFrom=(Player *)(FirstServer->data); | |
+ else { | |
+ ServerFrom=g_new(Player,1); | |
+ FirstServer=AddPlayer(0,ServerFrom,FirstServer); | |
+ } | |
HandleServerMessage(text->str,ServerFrom); | |
#if NETWORKING | |
} else { | |
diff --git a/src/serverside.c b/src/serverside.c | |
t@@ -187,219 +187,214 @@ void HandleServerPlayer(Player *Play) { | |
} | |
} | |
-void HandleServerMessage(gchar *buf,Player *ReallyFrom) { | |
-/* Given a message "buf" which identifies itself as being from player */ | |
-/* "ReallyFrom" by the incoming socket, performs processing and sends */ | |
-/* suitable replies. */ | |
- Player *From,*To,*tmp,*pt; | |
+void HandleServerMessage(gchar *buf,Player *Play) { | |
+/* Given a message "buf", from player "Play", performs processing and */ | |
+/* sends suitable replies. */ | |
+ Player *To,*tmp,*pt; | |
GSList *list; | |
char Code,*Data,AICode; | |
+ gchar *text; | |
DopeEntry NewEntry; | |
int i; | |
price_t money; | |
- if (ProcessMessage(buf,&From,&AICode,&Code,&To,&Data,FirstServer)==-1) { | |
+/* Ignore client's From: field (bin it in tmp) - should always be "Play" */ | |
+ if (ProcessMessage(buf,&tmp,&AICode,&Code,&To,&Data,FirstServer)==-1) { | |
g_warning("Bad message"); | |
return; | |
} | |
- if (From!=ReallyFrom && (From!=&Noone || | |
- (Code!=C_NAME && Code!=C_ABILITIES && Code!=C_NETMESSAGE))) { | |
- g_warning(_("Message is lying about its origin\n%s: %c: %s: %s\n" | |
- "Should be from %s"),From ? GetPlayerName(From) : "",Code, | |
- To ? GetPlayerName(To) : "",Data, | |
- ReallyFrom ? GetPlayerName(ReallyFrom) : "NULL"); | |
- g_free(Data); | |
- return; | |
- } | |
switch(Code) { | |
case C_MSGTO: | |
if (Network) { | |
- g_message("%s->%s: %s",GetPlayerName(From),GetPlayerName(To),Data); | |
+ g_message("%s->%s: %s",GetPlayerName(Play),GetPlayerName(To),Data); | |
} | |
- SendServerMessage(From,AICode,Code,To,Data); | |
+ SendServerMessage(Play,AICode,Code,To,Data); | |
break; | |
case C_NETMESSAGE: | |
g_message("Net:%s\n",Data); | |
-/* shutdown(ReallyFrom->fd,SD_RECV);*/ | |
+/* shutdown(Play->fd,SD_RECV);*/ | |
/* Make sure they do actually disconnect, eventually! */ | |
if (ConnectTimeout) { | |
- ReallyFrom->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
+ Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
} | |
break; | |
case C_ABILITIES: | |
- ReceiveAbilities(ReallyFrom,Data); | |
+ ReceiveAbilities(Play,Data); | |
break; | |
case C_NAME: | |
pt=GetPlayerByName(Data,FirstServer); | |
- if (pt && pt!=From) { | |
+ if (pt && pt!=Play) { | |
if (ConnectTimeout) { | |
- ReallyFrom->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
+ Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
} | |
- SendServerMessage(NULL,C_NONE,C_NEWNAME,ReallyFrom,NULL); | |
- } else if (((ReallyFrom && strlen(GetPlayerName(ReallyFrom))==0 && | |
- Network) || (!Network && From==&Noone)) && Data[0]) { | |
+ SendServerMessage(NULL,C_NONE,C_NEWNAME,Play,NULL); | |
+ } else if (strlen(GetPlayerName(Play))==0 && Data[0]) { | |
if (CountPlayers(FirstServer)<MaxClients || !Network) { | |
- SendAbilities(ReallyFrom); | |
- CombineAbilities(ReallyFrom); | |
- SendInitialData(ReallyFrom); | |
- SendMiscData(ReallyFrom); | |
- if (!Network) { | |
- From=g_new(Player,1); | |
- FirstServer=AddPlayer(0,From,FirstServer); | |
- } else From=ReallyFrom; | |
- SetPlayerName(From,Data); | |
+ SendAbilities(Play); | |
+ CombineAbilities(Play); | |
+ SendInitialData(Play); | |
+ SendMiscData(Play); | |
+ SetPlayerName(Play,Data); | |
for (list=FirstServer;list;list=g_slist_next(list)) { | |
pt=(Player *)list->data; | |
- if (pt!=From) { | |
- SendServerMessage(NULL,C_NONE,C_LIST,From, | |
+ if (pt!=Play) { | |
+ SendServerMessage(NULL,C_NONE,C_LIST,Play, | |
GetPlayerName(pt)); | |
} | |
} | |
- SendServerMessage(NULL,C_NONE,C_ENDLIST,From,NULL); | |
+ SendServerMessage(NULL,C_NONE,C_ENDLIST,Play,NULL); | |
RegisterWithMetaServer(TRUE,FALSE); | |
- From->ConnectTimeout=0; | |
+ Play->ConnectTimeout=0; | |
if (Network) { | |
- g_message(_("%s joins the game!"),GetPlayerName(From)); | |
+ g_message(_("%s joins the game!"),GetPlayerName(Play)); | |
} | |
- BroadcastToClients(C_NONE,C_JOIN,GetPlayerName(From),NULL,From); | |
- From->EventNum=E_ARRIVE; | |
- SendPlayerData(From); | |
- SendEvent(From); | |
+ BroadcastToClients(C_NONE,C_JOIN,GetPlayerName(Play),NULL,Play); | |
+ Play->EventNum=E_ARRIVE; | |
+ SendPlayerData(Play); | |
+ SendEvent(Play); | |
} else { | |
- From=ReallyFrom; | |
g_message(_("MaxClients (%d) exceeded - dropping connection"), | |
MaxClients); | |
- sprintf(buf,_("Sorry, but this server has a limit of %d " | |
-"%s, which has been reached.^Please try connecting again later."), | |
- MaxClients,MaxClients==1 ? _("player") : _("players")); | |
- SendServerMessage(NULL,C_NONE,C_PRINTMESSAGE,From,buf); | |
-/* shutdown(From->fd,SD_RECV);*/ | |
+ if (MaxClients==1) { | |
+ text=g_strdup_printf( | |
+ _("Sorry, but this server has a limit of 1 " | |
+ "player, which has been reached.^" | |
+ "Please try connecting again later.")); | |
+ } else { | |
+ text=g_strdup_printf( | |
+ _("Sorry, but this server has a limit of %d " | |
+ "players, which has been reached.^" | |
+ "Please try connecting again later."),MaxClients); | |
+ } | |
+ SendServerMessage(NULL,C_NONE,C_PRINTMESSAGE,Play,text); | |
+ g_free(text); | |
+/* shutdown(Play->fd,SD_RECV);*/ | |
/* Make sure they do actually disconnect, eventually! */ | |
if (ConnectTimeout) { | |
- From->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
+ Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; | |
} | |
} | |
} else { | |
- g_message(_("%s will now be known as %s"),GetPlayerName(From),Data… | |
- BroadcastToClients(C_NONE,C_RENAME,Data,From,From); | |
- SetPlayerName(From,Data); | |
+ g_message(_("%s will now be known as %s"),GetPlayerName(Play),Data… | |
+ BroadcastToClients(C_NONE,C_RENAME,Data,Play,Play); | |
+ SetPlayerName(Play,Data); | |
} | |
break; | |
case C_WANTQUIT: | |
- if (From->EventNum!=E_FINISH) FinishGame(From,NULL); | |
+ if (Play->EventNum!=E_FINISH) FinishGame(Play,NULL); | |
break; | |
case C_REQUESTJET: | |
i=atoi(Data); | |
- if (From->EventNum==E_ATTACK || From->EventNum==E_DEFEND || | |
- From->EventNum==E_WAITATTACK || From->EventNum==E_FREEFORALL) { | |
- BreakoffCombat(From,FALSE); | |
+ if (Play->EventNum==E_ATTACK || Play->EventNum==E_DEFEND || | |
+ Play->EventNum==E_WAITATTACK || Play->EventNum==E_FREEFORALL) { | |
+ BreakoffCombat(Play,FALSE); | |
} | |
- if (NumTurns>0 && From->Turn>=NumTurns && From->EventNum!=E_FINISH) { | |
- FinishGame(From,_("Your dealing time is up...")); | |
- } else if (i!=From->IsAt && (NumTurns==0 || From->Turn<NumTurns) && | |
- From->EventNum==E_NONE && From->Health>0) { | |
- From->IsAt=(char)i; | |
- From->Turn++; | |
- From->Debt=(price_t)((float)From->Debt*1.1); | |
- From->Bank=(price_t)((float)From->Bank*1.05); | |
- SendPlayerData(From); | |
- From->EventNum=E_SUBWAY; | |
- SendEvent(From); | |
+ if (NumTurns>0 && Play->Turn>=NumTurns && Play->EventNum!=E_FINISH) { | |
+ FinishGame(Play,_("Your dealing time is up...")); | |
+ } else if (i!=Play->IsAt && (NumTurns==0 || Play->Turn<NumTurns) && | |
+ Play->EventNum==E_NONE && Play->Health>0) { | |
+ Play->IsAt=(char)i; | |
+ Play->Turn++; | |
+ Play->Debt=(price_t)((float)Play->Debt*1.1); | |
+ Play->Bank=(price_t)((float)Play->Bank*1.05); | |
+ SendPlayerData(Play); | |
+ Play->EventNum=E_SUBWAY; | |
+ SendEvent(Play); | |
} else { | |
- g_warning(_("%s: DENIED jet to %s"),GetPlayerName(From), | |
+ g_warning(_("%s: DENIED jet to %s"),GetPlayerName(Play), | |
Location[i].Name); | |
} | |
break; | |
case C_REQUESTSCORE: | |
- SendHighScores(From,FALSE,NULL); | |
+ SendHighScores(Play,FALSE,NULL); | |
break; | |
case C_CONTACTSPY: | |
for (list=FirstServer;list;list=g_slist_next(list)) { | |
tmp=(Player *)list->data; | |
- if (tmp!=From && GetListEntry(&(tmp->SpyList),From)>=0) { | |
- SendSpyReport(From,tmp); | |
+ if (tmp!=Play && GetListEntry(&(tmp->SpyList),Play)>=0) { | |
+ SendSpyReport(Play,tmp); | |
} | |
} | |
break; | |
case C_DEPOSIT: | |
money=strtoprice(Data); | |
- if (From->Bank+money >=0 && From->Cash-money >=0) { | |
- From->Bank+=money; From->Cash-=money; | |
- SendPlayerData(From); | |
+ if (Play->Bank+money >=0 && Play->Cash-money >=0) { | |
+ Play->Bank+=money; Play->Cash-=money; | |
+ SendPlayerData(Play); | |
} | |
break; | |
case C_PAYLOAN: | |
money=strtoprice(Data); | |
- if (From->Debt-money >=0 && From->Cash-money >=0) { | |
- From->Debt-=money; From->Cash-=money; | |
- SendPlayerData(From); | |
+ if (Play->Debt-money >=0 && Play->Cash-money >=0) { | |
+ Play->Debt-=money; Play->Cash-=money; | |
+ SendPlayerData(Play); | |
} | |
break; | |
case C_BUYOBJECT: | |
- BuyObject(From,Data); | |
+ BuyObject(Play,Data); | |
break; | |
case C_FIGHTACT: | |
- if (From->EventNum==E_ATTACK || From->EventNum==E_FREEFORALL) { | |
- AttackPlayer(From,From->Attacked, | |
- TotalGunsCarried(From)>0 ? AT_SHOOT : 0); | |
- } else if (From->EventNum==E_DEFEND) { | |
+ if (Play->EventNum==E_ATTACK || Play->EventNum==E_FREEFORALL) { | |
+ AttackPlayer(Play,Play->Attacked, | |
+ TotalGunsCarried(Play)>0 ? AT_SHOOT : 0); | |
+ } else if (Play->EventNum==E_DEFEND) { | |
for (list=FirstServer;list;list=g_slist_next(list)) { | |
tmp=(Player *)list->data; | |
if ((tmp->EventNum==E_FREEFORALL || tmp->EventNum==E_WAITATTACK… | |
- && tmp->Attacked==From) { | |
- AttackPlayer(From,tmp, | |
- TotalGunsCarried(From)>0 ? AT_SHOOT : 0); | |
+ && tmp->Attacked==Play) { | |
+ AttackPlayer(Play,tmp, | |
+ TotalGunsCarried(Play)>0 ? AT_SHOOT : 0); | |
} | |
} | |
} | |
break; | |
case C_ANSWER: | |
- HandleAnswer(From,To,Data); | |
+ HandleAnswer(Play,To,Data); | |
break; | |
case C_DONE: | |
- if (From->EventNum!=E_NONE && From->EventNum<E_OUTOFSYNC) { | |
- From->EventNum++; SendEvent(From); | |
+ if (Play->EventNum!=E_NONE && Play->EventNum<E_OUTOFSYNC) { | |
+ Play->EventNum++; SendEvent(Play); | |
} | |
break; | |
case C_SPYON: | |
- if (From->Cash >= Prices.Spy) { | |
- g_message(_("%s now spying on %s"),GetPlayerName(From), | |
+ if (Play->Cash >= Prices.Spy) { | |
+ g_message(_("%s now spying on %s"),GetPlayerName(Play), | |
GetPlayerName(To)); | |
- From->Cash -= Prices.Spy; | |
- LoseBitch(From,NULL,NULL); | |
- NewEntry.Play=From; NewEntry.Turns=-1; | |
+ Play->Cash -= Prices.Spy; | |
+ LoseBitch(Play,NULL,NULL); | |
+ NewEntry.Play=Play; NewEntry.Turns=-1; | |
AddListEntry(&(To->SpyList),&NewEntry); | |
- SendPlayerData(From); | |
+ SendPlayerData(Play); | |
} else { | |
- g_warning(_("%s spy on %s: DENIED"),GetPlayerName(From), | |
+ g_warning(_("%s spy on %s: DENIED"),GetPlayerName(Play), | |
GetPlayerName(To)); | |
} | |
break; | |
case C_TIPOFF: | |
- if (From->Cash >= Prices.Tipoff) { | |
- g_message(_("%s tipped off the cops to %s"),GetPlayerName(From), | |
+ if (Play->Cash >= Prices.Tipoff) { | |
+ g_message(_("%s tipped off the cops to %s"),GetPlayerName(Play), | |
GetPlayerName(To)); | |
- From->Cash -= Prices.Tipoff; | |
- LoseBitch(From,NULL,NULL); | |
- NewEntry.Play=From; NewEntry.Turns=0; | |
+ Play->Cash -= Prices.Tipoff; | |
+ LoseBitch(Play,NULL,NULL); | |
+ NewEntry.Play=Play; NewEntry.Turns=0; | |
AddListEntry(&(To->TipList),&NewEntry); | |
- SendPlayerData(From); | |
+ SendPlayerData(Play); | |
} else { | |
- g_warning(_("%s tipoff about %s: DENIED"),GetPlayerName(From), | |
+ g_warning(_("%s tipoff about %s: DENIED"),GetPlayerName(Play), | |
GetPlayerName(To)); | |
} | |
break; | |
case C_SACKBITCH: | |
- LoseBitch(From,NULL,NULL); | |
- SendPlayerData(From); | |
+ LoseBitch(Play,NULL,NULL); | |
+ SendPlayerData(Play); | |
break; | |
case C_MSG: | |
- if (Network) g_message("%s: %s",GetPlayerName(From),Data); | |
- BroadcastToClients(C_NONE,C_MSG,Data,From,From); | |
+ if (Network) g_message("%s: %s",GetPlayerName(Play),Data); | |
+ BroadcastToClients(C_NONE,C_MSG,Data,Play,Play); | |
break; | |
default: | |
- g_warning("%s:%c:%s:%s",GetPlayerName(From),Code, | |
+ g_warning("%s:%c:%s:%s",GetPlayerName(Play),Code, | |
GetPlayerName(To),Data); | |
break; | |
} |