players.c
changeset 4603 3ccd4ee0a2e2
parent 4580 31f863c3aa7a
child 4606 9feb5fc9cc5b
--- a/players.c	Fri Sep 15 02:52:17 2006 +0000
+++ b/players.c	Fri Sep 15 12:27:00 2006 +0000
@@ -481,6 +481,17 @@
 	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 @@
 
 	// 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 @@
 	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 @@
 	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)