changeset 5889:30d820c68271 draft

(svn r8505) -Codechange: Ensure GRM allocated sprites will be below the original 16384 sprite limit. If not, fail and disable the NewGRF.
author peter1138 <peter1138@openttd.org>
date Thu, 01 Feb 2007 01:40:46 +0000
parents 11683122ef51
children 20ba2da91f50
files src/newgrf.cpp
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -2826,6 +2826,16 @@
 						case 0x08: /* General sprites */
 							switch (op) {
 								case 0:
+									/* Check if the allocated sprites will fit below the original sprite limit */
+									if (_cur_spriteid + count >= 16384) {
+										grfmsg(0, "GRM: Unable to allocate %d sprites; try changing NewGRF order", count);
+										SETBIT(_cur_grfconfig->flags, GCF_DISABLED);
+										CLRBIT(_cur_grfconfig->flags, GCF_ACTIVATED);
+
+										_skip_sprites = -1;
+										return;
+									}
+
 									/* 'Reserve' space at the current sprite ID */
 									src1 = _cur_spriteid;
 									_cur_spriteid += count;