diff options
author | peter1138 <peter1138@openttd.org> | 2006-09-15 12:27:00 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-09-15 12:27:00 +0000 |
commit | e47dd91c8b133e548aa8f19e26c78818eaa433c5 (patch) | |
tree | 6be6ff0e643324d0e4e0cab08f87ce515f7152ca /players.c | |
parent | d1508bbd6cbcf991fffe03d41918f177a6cec330 (diff) | |
download | openttd-e47dd91c8b133e548aa8f19e26c78818eaa433c5.tar.xz |
(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
Diffstat (limited to 'players.c')
-rw-r--r-- | players.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -481,6 +481,17 @@ static Player *AllocatePlayer(void) return NULL; } +void ResetPlayerLivery(Player *p) +{ + LiveryScheme scheme; + + for (scheme = 0; scheme < LS_END; scheme++) { + p->livery[scheme].in_use = false; + p->livery[scheme].colour1 = p->player_color; + p->livery[scheme].colour2 = p->player_color; + } +} + Player *DoStartupNewPlayer(bool is_ai) { Player *p; @@ -490,6 +501,7 @@ Player *DoStartupNewPlayer(bool is_ai) // Make a color p->player_color = GeneratePlayerColor(); + ResetPlayerLivery(p); _player_colors[p->index] = p->player_color; p->name_1 = STR_SV_UNNAMED; p->is_active = true; @@ -1253,6 +1265,13 @@ static const SaveLoad _player_ai_build_rec_desc[] = { SLE_END() }; +static const SaveLoad _player_livery_desc[] = { + SLE_CONDVAR(Livery, in_use, SLE_BOOL, 34, SL_MAX_VERSION), + SLE_CONDVAR(Livery, colour1, SLE_UINT8, 34, SL_MAX_VERSION), + SLE_CONDVAR(Livery, colour2, SLE_UINT8, 34, SL_MAX_VERSION), + SLE_END() +}; + static void SaveLoad_PLYR(Player* p) { int i; @@ -1274,6 +1293,11 @@ static void SaveLoad_PLYR(Player* p) for (i = 0; i < p->num_valid_stat_ent; i++) { SlObject(&p->old_economy[i], _player_economy_desc); } + + // Write each livery entry. + for (i = 0; i < LS_END; i++) { + SlObject(&p->livery[i], _player_livery_desc); + } } static void Save_PLYR(void) |