Commit Graph

100 Commits

Author SHA1 Message Date
Darkvater
7c945bf828 (svn r7280) -Codechange: Replace some sprintf() functions with the safer snprintf() functions 2006-11-28 20:55:16 +00:00
Darkvater
d327ffb0f4 (svn r7076) -Codechange: Prefer includes instead of using extern. Move UpdateNetworkGameWindow
declaration to network.h, and remove stale externs of NetworkPopulateCompanyInfo
2006-11-06 00:12:55 +00:00
Darkvater
2b8530507d (svn r6933) -Feature: Allow spectators to speak to eachother (team) 2006-10-24 22:26:20 +00:00
Darkvater
929cfa6687 (svn r6932) -Codechange: Send server messages with format NETWORK_ACTION_SERVER_MESSAGE so it is
general colour like the rest of the server messages. Spectators speak in grey.
2006-10-24 22:23:08 +00:00
Darkvater
ee27bb497c (svn r6884) -Codechange: Add strict bounds checking in string formatting system.
The last parameter should point to the end of the buffer (eg lastof(buf))
 Courtesy of Tron.
2006-10-21 23:31:34 +00:00
Darkvater
91b9b3ab18 (svn r6876) -Codechange: Change the naming of _PLAYER in DESTTYPE_PLAYER/NETWORK_ACTION_CHAT_PLAYER
to _COMPANY as that is whom you are really addressing to. Also change some variable
 names, 'desttype' is confusing if there is also a parameter 'dest', so rename it to
 just type.
2006-10-21 22:29:14 +00:00
Darkvater
e97d801d92 (svn r6816) -Codechange: Some coding style, variable localization, const correctness.
-Codechange: 'quited' is not a word, use has_quit instead for NetworkClientState
2006-10-17 23:34:12 +00:00
Darkvater
fbc724c6cb (svn r6814) -Codechange: For network games ci->client_playas was always p->index + 1. To
correctly handle this ci->client_playas - 1 was used all over the code making
 it pretty confusing at times. Use proper one-on-one values now. Special handling
 is only needed for user-output to not to confuse users.
2006-10-17 22:16:46 +00:00
Darkvater
d5baf25923 (svn r6787) -Codechange: Use PLAYER_NEW_COMPANY as a player identifier wishing to become a
new player instead of a 0.
2006-10-15 23:48:34 +00:00
Darkvater
7cac86186e (svn r6786) -Codechange: To join a new company CMD_PLAYER_CTRL is executed with so far a
local spectator (awaiting assignment from server). Since a spectator cannot
 execute any commands, a local player is impersonated. Move this impersonation
 to the server side where CMD_PLAYER_CTRL is handled specially anyways.
2006-10-15 23:42:18 +00:00
Darkvater
6b6d908308 (svn r6776) -Codechange: Use IsValidPlayer() function to determine of a PlayerID is an
actual playable player (< MAX_PLAYERS) or not.
2006-10-14 22:31:18 +00:00
Darkvater
dad5d5dd72 (svn r6774) -Codechange: Rename the badly named OWNER_SPECTATOR to PLAYER_SPECTATOR and
put it into player.h where it belongs (instead of map.h)
2006-10-14 15:49:43 +00:00
Darkvater
d983d93732 (svn r6750) -Codechange: Juggle around some header includes as they're only used when
networking is enabled.
2006-10-12 14:13:39 +00:00
peter1138
e850358e73 (svn r6629) - Fix (r6628): One check for the number of players got misplaced by patch... 2006-10-03 16:25:03 +00:00
peter1138
53744881a4 (svn r6628) - Feature: Add the ability to pause a server if not enough players are connected. The setting for this is 'min_players' and can be set in the config and via the console. If the number of players drops below this number, the server will pause the game. 2006-10-03 16:15:34 +00:00
peter1138
b1457a1cfc (svn r6625) - Feature: Add the ability for servers to execute a script just after a client has connected, e.g. for a MOTD, etc. 2006-10-03 14:59:05 +00:00
tron
523519c8ec (svn r6183) Move GetDrawStringPlayerColor() out of gfx.[ch] 2006-08-28 06:21:48 +00:00
rubidium
893d4ba9d4 (svn r6002) -Cleanup: remove the now redundant BASE_YEAR constant. 2006-08-20 19:05:28 +00:00
rubidium
28a0843707 (svn r5999) -Feature: change the original date format to a 32 bits format based at the year 0.
The game date subsystem now allows someone to start in the year 0 and continue
up to the year 5 000 000. However, you currently cannot build anything before 
1920 as there is no newgrf support for dates before 1920 or after 2090 yet.
2006-08-20 18:40:57 +00:00
truelight
5fb6c9e1cc (svn r5974) -Codechange: added casts all around the place to make Windows 64bit happy (michi_cc) 2006-08-20 12:09:32 +00:00
truelight
10b842bddc (svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
- New optional landscape generator (TerraGenesis Perlin)
  - Load heightmaps (either BMP or PNG)
  - Progress dialog while generating worlds (no longer a 'hanging' screen)
  - New dialogs for NewGame, Create Scenario and Play Heightmap
    - Easier to configure your landscape
    - More things to configure (tree-placer, ..)
  - Speedup of world generation
  - New console command 'restart': restart the map EXACTLY as it was when you
      first started it (needs a game made after or with this commit)
  - New console command 'getseed': get the seed of your map and share it with
      others (of course only works with generated maps)
  - Many new, world generation related, things
  - Many internal cleanups and rewrites
  Many tnx to those people who helped making this:
     Belugas, DaleStan, glx, KUDr, RichK67, Rubidium, and TrueLight (alfabetic)
  Many tnx to those who helped testing:
     Arnau, Bjarni, and tokai (alfabetic)
  And to all other people who helped testing and sending comments / bugs
  Stats: 673 lines changed, 3534 new lines, 79 new strings
2006-08-19 10:00:30 +00:00
rubidium
3cab5f30c0 (svn r5926) -Codechange: make _cur_year contain the full year, instead of the offset since 1920
-Codechange: store all year related variables that are _not_ stored in a savegame/transported over the network in the same format as _cur_year
2006-08-16 11:39:55 +00:00
rubidium
0d3ccad29f (svn r5916) -Cleanup: use MIN_YEAR/MAX_YEAR for the year boundaries and BASE_YEAR when comparing _cur_year with a 'full' year.
-Cleanup: replace some magic '1920' values with BASE_YEAR.
2006-08-15 15:18:03 +00:00
rubidium
8aa76f306d (svn r5915) -Cleanup: some variables were named *_date while they were only holding years; rename these variables to match this. 2006-08-15 14:52:17 +00:00
rubidium
243872b4fd (svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
-Cleanup: fix whitespace related coding style issues in date.[ch]
-Cleanup: make original comments doxygen compatible and remove/change outdated comments
2006-08-14 14:21:15 +00:00
tron
2b27073156 (svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular 2006-06-27 21:25:53 +00:00
tron
74d40ced0a (svn r5265) Replace a dozen bogus uses of strncmp() by strcmp() 2006-06-14 13:22:30 +00:00
Darkvater
ed96dcd868 (svn r4521) - Fix: be consistent about the size of the player-name in MP. This hopefully fixes a crash on lesser OS's (eg Win98). Use ttd_strlcpy() to just copy over strings and properly terminate them because different implementations of snprintf() behave differently. Courtesy of TrueLight 2006-04-22 09:46:31 +00:00
Darkvater
7d232cf978 (svn r4267) - Fix (r4241): also validate the error number that a client receives from a server, and encapsulate this functionality into GetNetworkErrorMsg(). 2006-04-03 18:31:01 +00:00
tron
1c5c32dd60 (svn r4243) Unbreak compilation 2006-04-02 14:36:51 +00:00
peter1138
e9a5ca70e2 (svn r4241) - Fix: Perform validation on the error number that a server receives from a client. An invalid value may cause the server to terminate. 2006-04-02 12:41:01 +00:00
Darkvater
44b9917518 (svn r3997) - Default the patch-setting 'pause_on_join' to true. 2006-03-21 21:07:50 +00:00
Darkvater
42dec88a29 (svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
- Remove the temporary synchronisation in during the map-transfer as this is no longer needed
- The saved patches work just like the saved gameoptions. You have a _patches and a _patches_newgame struct. The _patches_newgame struct contains the values from the configuration file and thus the defaults for new games. When a new game is started or an older game is loaded, the default values are copied over to _patches to be used. When you load a game that has PATS saved, the default values are also loaded, but immediately overwritten by the values from the savegame. This ensures that player-based values are always taken from your personal preferences.
- The current implementation also changes the default values if you change player-based settings in the game. For example changing window_snap_radius in a certain game will also change it for all next OpenTTD sessions.
- The savegame version has been increased to 22.
- The last 6 orso patches close the following reports:
  [ 1366446 ] different names for patches: all patch settings have the same name as in the configuration file and are reachable from the console.
  [ 1288024 ] Strange string on OTTD initial screen: configuration (and this includes patches) inputs are validated and clamped to their minimum/maximum values.
  [ 1423198 ] Make "Signals on Drive side" player, not server, based: this is only visual so current setting is to save it with the savegame but not synchronise in multiplayer.
  [ 1208070 ] Patches and New GRF options saved: apart from newgrf this is done
2006-03-02 02:22:15 +00:00
Darkvater
903c3aa63d (svn r3721) - [3/4] Present the game with a unified structure for the configuration-ini, saveload, console and gui representations of the settings. From part 3 on, OpenTTD is once again compilable.
- Code has been added to the saveload code to honour the SLF_SAVE_NO and SLF_NETWORK_NO flags. SLF_NETWORK_NO just reads in the the bytestream and then discards it because that setting is not synchronised. For this the function SlSkipBytes() has been reinstated
- SAVEGAME_VERSION has been changed from a constant ENUM to a constant integer. This was done for the configuration-code to be able to tell which version of a CONDVAR type to handle. As said before, because settings can be saved to the savegame, they will become conditional at some point. The configuration code always has to read the 'most recent' version.
- GameOptions are saved through the new structure. It is fully compatible with any old savegame...however it is better. Because of the move to this new format we can instruct the loader to skip certain variables. Autosave for example isn't synchronised anymore (in the network). The same goes for currency and kilometers :D. That is the only functionality change this patch is supposed to have if I have written it correctly.
- NOTE! Patches are still not saved so for Multiplayer to work network_client.c and network_server.c needed slight modifications.
2006-03-02 00:32:48 +00:00
tron
84fb96fe85 (svn r3511) More whitespace ([FS#46] by Rubidium) 2006-02-01 07:36:15 +00:00
Darkvater
f2448ebfd4 (svn r3500) - Workaround the inaccurate count of spectators/companies that can happen in certain border-cases. For now just dynamically get this value when requested so it is always right. To do properly all player/client creation/destruction needs a hook for networking. 2006-01-31 22:16:15 +00:00
Darkvater
a8758cbf5e (svn r3430) - You can of course not join when there are more companies than the maximum set, not the other way around. 2006-01-25 19:14:50 +00:00
Darkvater
78fa9c7393 (svn r3427) - Feature: Allow seeing and setting the maximum amount of companies and spectators for a server. This can be changed/viewed during runtime as well in the console. 2006-01-25 18:11:06 +00:00
tron
e272b03fee (svn r3365) Staticise 36 functions 2006-01-05 12:40:50 +00:00
bjarni
22a4679837 (svn r3218) -Feature: Multiheaded train engines will now stay in the same train
This means that any user attempt to remove a rear engine will tell the user to move the front engine instead
	This fixes the assert when moving multiheaded engines (introduced in r3144)
	Note: to make old savegames use this feature, some engines might be turned around in order to link engines in pairs

-Codechange: train subtype is now a bitmask
	This allows fast access to info like if it is a wagon or engine and if it is in front and so on
	Note: savegame version bump
2005-11-18 23:41:03 +00:00
Darkvater
e611fee4e5 (svn r3067) - Feature: allow unbanning players based on banlist-id (as well as IP).
- Feature: 'status' and 'clients' now show the IP of the players
2005-10-19 19:38:35 +00:00
tron
d975abc96c (svn r2899) -Fix: Several format string vulnerabilities and buffer overflows in the network code 2005-08-28 12:24:57 +00:00
tron
2b4e85db0b (svn r2828) Only command.c needs to know about _docommand_recursive, so make it static. Tell me if there's a problem, because i removed it from network_server.c, but afaict it should be ok 2005-08-07 10:03:14 +00:00
ludde
bb1e1f2b5f (svn r2755) Fix: Fix a desync issue with autoreplace 2005-07-29 21:55:49 +00:00
tron
af9f55c977 (svn r2720) Remove unused declarations and definitions 2005-07-26 19:34:03 +00:00
tron
7e65f44168 (svn r2716) Do not use strncat() 2005-07-26 18:47:04 +00:00
tron
a227065ab7 (svn r2701) Insert Id tags into all source files 2005-07-24 14:12:37 +00:00
tron
559babcdc9 (svn r2673) Include functions.h directly, not globally via openttd.h 2005-07-22 07:02:20 +00:00
tron
18d79cc30f (svn r2672) Move saving/loading related declarations to saveload.h 2005-07-22 06:31:31 +00:00
tron
0762aa9ec9 (svn r2669) Shuffle some more stuff around to reduce dependencies 2005-07-21 22:15:02 +00:00