(svn r11412) -Fix (r11403): animation was not turned on properly.
authorrubidium
Sun, 11 Nov 2007 18:22:06 +0000
changeset 7862 1d710dd7e197
parent 7861 77e12b5259fe
child 7863 afc89a02465c
(svn r11412) -Fix (r11403): animation was not turned on properly.
-Fix (r11410): wrong assumption about random reseeds made the whole thing reseed way too often, making the animation look very ugly.
src/industry_cmd.cpp
src/industry_map.h
src/newgrf_spritegroup.cpp
--- a/src/industry_cmd.cpp	Sun Nov 11 17:58:05 2007 +0000
+++ b/src/industry_cmd.cpp	Sun Nov 11 18:22:06 2007 +0000
@@ -1437,8 +1437,9 @@
 	i->owner = owner;
 
 	r = Random();
-	i->random_color = GB(r, 8, 4);
-	i->counter = GB(r, 0, 12);
+	i->random_color = GB(r, 0, 4);
+	i->counter = GB(r, 4, 12);
+	i->random = GB(r, 16, 16);
 	i->produced_cargo_waiting[0] = 0;
 	i->produced_cargo_waiting[1] = 0;
 	i->incoming_cargo_waiting[0] = 0;
@@ -1512,7 +1513,8 @@
 			if (_generating_world) {
 				SetIndustryConstructionCounter(cur_tile, 3);
 				SetIndustryConstructionStage(cur_tile, 2);
-			} else if (it->gfx >= NEW_INDUSTRYTILEOFFSET) {
+			}
+			if (it->gfx >= NEW_INDUSTRYTILEOFFSET) {
 				/* New industry */
 				const IndustryTileSpec *its = GetIndustryTileSpec(it->gfx);
 				if (its->animation_info != 0xFFFF) AddAnimatedTile(cur_tile);
--- a/src/industry_map.h	Sun Nov 11 17:58:05 2007 +0000
+++ b/src/industry_map.h	Sun Nov 11 18:22:06 2007 +0000
@@ -169,6 +169,7 @@
 	_m[t].m3 = 0;
 	_m[t].m4 = 0;
 	SetIndustryGfx(t, gfx);
+	_me[t].m7 = Random();
 }
 
 /**
--- a/src/newgrf_spritegroup.cpp	Sun Nov 11 17:58:05 2007 +0000
+++ b/src/newgrf_spritegroup.cpp	Sun Nov 11 18:22:06 2007 +0000
@@ -252,7 +252,7 @@
 		/* Handle triggers */
 		/* Magic code that may or may not do the right things... */
 		byte waiting_triggers = object->GetTriggers(object);
-		byte match = group->g.random.triggers & (waiting_triggers | object->trigger) || group->g.random.triggers == 0;
+		byte match = group->g.random.triggers & (waiting_triggers | object->trigger);
 		bool res;
 
 		res = (group->g.random.cmp_mode == RSG_CMP_ANY) ?