(svn r4092) CodeChange : Named sprites instead of magic numbers plus create/use helper macro/enum for recoloring scheme
authorbelugas
Fri, 24 Mar 2006 18:16:39 +0000
changeset 3326 b5ce3e805425
parent 3325 a4658b5fb123
child 3327 11e3a7838d81
(svn r4092) CodeChange : Named sprites instead of magic numbers plus create/use helper macro/enum for recoloring scheme
industry_cmd.c
macros.h
main_gui.c
player_gui.c
players.c
smallmap_gui.c
table/sprites.h
vehicle.c
--- a/industry_cmd.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/industry_cmd.c	Fri Mar 24 18:16:39 2006 +0000
@@ -352,7 +352,7 @@
 
 	/* Pointer to industry */
 	ind = GetIndustryByTile(ti->tile);
-	ormod = (ind->color_map + 0x307) << PALETTE_SPRITE_START;
+	ormod = GENERAL_SPRITE_COLOR(ind->color_map);
 
 	/* Retrieve pointer to the draw industry tile struct */
 	dits = &_industry_draw_tile_data[(ti->map5 << 2) | GB(_m[ti->tile].m1, 0, 2)];
--- a/macros.h	Fri Mar 24 17:40:55 2006 +0000
+++ b/macros.h	Fri Mar 24 18:16:39 2006 +0000
@@ -67,7 +67,8 @@
 #define SETBITS(x,y) ((x) |= (y))
 #define CLRBITS(x,y) ((x) &= ~(y))
 
-#define PLAYER_SPRITE_COLOR(owner) ( (_player_colors[owner] + 0x307) << PALETTE_SPRITE_START)
+#define GENERAL_SPRITE_COLOR(color) ( (color + PALETTE_RECOLOR_START) << PALETTE_SPRITE_START)
+#define PLAYER_SPRITE_COLOR(owner) ( GENERAL_SPRITE_COLOR(_player_colors[owner]))
 #define SPRITE_PALETTE(x) ((x) | PALETTE_MODIFIER_COLOR)
 
 extern const byte _ffb_64[128];
--- a/main_gui.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/main_gui.c	Fri Mar 24 18:16:39 2006 +0000
@@ -2404,7 +2404,7 @@
 	int width,height;
 
 	for (i = 0; i != 16; i++) {
-		const byte* b = GetNonSprite(0x307 + i);
+		const byte* b = GetNonSprite(PALETTE_RECOLOR_START + i);
 
 		assert(b);
 		_color_list[i] = *(const ColorList*)(b + 0xC6);
--- a/player_gui.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/player_gui.c	Fri Mar 24 18:16:39 2006 +0000
@@ -271,7 +271,7 @@
 		for (i = 0; i != 16; i++) {
 			if (!(used_colors & 1) && --pos < 0 && pos >= -8) {
 				DrawString(x + 30, y, STR_00D1_DARK_BLUE + i, 2);
-				DrawSprite((i << 16) + 0x3078C1A, x + 14, y + 4);
+				DrawSprite(((GENERAL_SPRITE_COLOR(i) | PALETTE_MODIFIER_COLOR) | SPR_VEH_BUS_SIDE_VIEW), x + 14, y + 4);
 				y += 14;
 			}
 			used_colors >>= 1;
@@ -541,8 +541,8 @@
 		DrawPlayerVehiclesAmount(w->window_number);
 
 		DrawString(110,48, STR_7006_COLOR_SCHEME, 0);
-		// Draw company-colour bus (0xC19)
-		DrawSprite(PLAYER_SPRITE_COLOR(p->index) + (0xC19 | PALETTE_MODIFIER_COLOR), 215, 49);
+		// Draw company-colour bus
+		DrawSprite(PLAYER_SPRITE_COLOR(p->index) + SPRITE_PALETTE(SPR_VEH_BUS_SW_VIEW), 215, 49);
 
 		DrawPlayerFace(p->face, p->player_color, 2, 16);
 
@@ -726,11 +726,11 @@
 }
 
 static const Widget _buy_company_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     5,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     5,    11,   333,     0,    13, STR_00B3_MESSAGE_FROM,	STR_018C_WINDOW_TITLE_DRAG_THIS},
-{     WWT_IMGBTN,   RESIZE_NONE,     5,     0,   333,    14,   136, 0x0,										STR_NULL},
-{    WWT_TEXTBTN,   RESIZE_NONE,     5,   148,   207,   117,   128, STR_00C9_NO,						STR_NULL},
-{    WWT_TEXTBTN,   RESIZE_NONE,     5,   218,   277,   117,   128, STR_00C8_YES,					STR_NULL},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     5,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW},
+{    WWT_CAPTION,   RESIZE_NONE,     5,    11,   333,     0,    13, STR_00B3_MESSAGE_FROM, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{     WWT_IMGBTN,   RESIZE_NONE,     5,     0,   333,    14,   136, 0x0,                   STR_NULL},
+{    WWT_TEXTBTN,   RESIZE_NONE,     5,   148,   207,   117,   128, STR_00C9_NO,           STR_NULL},
+{    WWT_TEXTBTN,   RESIZE_NONE,     5,   218,   277,   117,   128, STR_00C8_YES,          STR_NULL},
 {   WIDGETS_END},
 };
 
--- a/players.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/players.c	Fri Mar 24 18:16:39 2006 +0000
@@ -45,7 +45,7 @@
 		flag |= 2;
 
 	/* draw the gradient */
-	DrawSprite((color + 0x307) << PALETTE_SPRITE_START | PALETTE_MODIFIER_COLOR | SPR_GRADIENT, x, y);
+	DrawSprite(GENERAL_SPRITE_COLOR(color) | PALETTE_MODIFIER_COLOR | SPR_GRADIENT, x, y);
 
 	/* draw the cheeks */
 	DrawSprite(cheeks_table[flag&3], x, y);
@@ -74,15 +74,15 @@
 
 		if (!(flag & 2)) {
 			if (!(flag & 1)) {
-				DrawSprite(high+((val1 * 12 >> 4) + (0x32B | PALETTE_MODIFIER_COLOR)), x, y);
+				DrawSprite(high+((val1 * 12 >> 4) + SPRITE_PALETTE(0x32B)), x, y);
 			} else {
 				DrawSprite(high+(val1 + (0x337 | PALETTE_MODIFIER_COLOR)), x, y);
 			}
 		} else {
 			if (!(flag & 1)) {
-				DrawSprite(high+((val1 * 11 >> 4) + (0x39A | PALETTE_MODIFIER_COLOR)), x, y);
+				DrawSprite(high+(val1 + SPRITE_PALETTE(0x337)), x, y);
 			} else {
-				DrawSprite(high+(val1 + (0x3B8 | PALETTE_MODIFIER_COLOR)), x, y);
+				DrawSprite(high+(val1 + SPRITE_PALETTE(0x3B8)), x, y);
 			}
 		}
 	}
--- a/smallmap_gui.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/smallmap_gui.c	Fri Mar 24 18:16:39 2006 +0000
@@ -615,7 +615,7 @@
 		FOR_ALL_PLAYERS(p) {
 			if (p->is_active) {
 				_owner_colors[p->index] =
-					dup_byte32(GetNonSprite(775 + p->player_color)[0xCB]); // XXX - magic pixel
+					dup_byte32(GetNonSprite(PALETTE_RECOLOR_START + p->player_color)[0xCB]); // XXX - magic pixel
 			}
 		}
 	}
--- a/table/sprites.h	Fri Mar 24 17:40:55 2006 +0000
+++ b/table/sprites.h	Fri Mar 24 18:16:39 2006 +0000
@@ -700,6 +700,9 @@
 	SPR_FLAG_VEH_STOPPED  = 3090,
 	SPR_FLAG_VEH_RUNNING  = 3091,
 
+	SPR_VEH_BUS_SW_VIEW   = 3097,
+	SPR_VEH_BUS_SIDE_VIEW = 3098,
+
 	/* Rotor sprite numbers */
 	SPR_ROTOR_STOPPED   = 3901,
 	SPR_ROTOR_MOVING_1  = 3902,
@@ -1133,6 +1136,10 @@
 assert_compile( (PALETTE_SPRITE_MASK & SPRITE_MASK) == 0 );
 assert_compile( SPRITE_WIDTH + PALETTE_SPRITE_WIDTH <= 30 );
 
+enum Recoloring {
+	PALETTE_RECOLOR_START       = 0x307,
+};
+
 #define PALETTE_RECOLOR_SPRITE(a) (a << PALETTE_SPRITE_START | PALETTE_MODIFIER_COLOR)
 enum PaletteSprites {
 	//note: these numbers are already the modified once the renderer needs.
@@ -1149,8 +1156,8 @@
 	//use this if you add stuff to the value, so that the resulting color
 	//is not a fixed value.
 	//NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLORS yet!
-	PALETTE_TO_COLORS           = 0x307 << PALETTE_SPRITE_START,
-	PALETTE_TO_DARK_BLUE        = PALETTE_RECOLOR_SPRITE(0x307),
+	PALETTE_TO_COLORS           = PALETTE_RECOLOR_START << PALETTE_SPRITE_START,
+	PALETTE_TO_DARK_BLUE        = PALETTE_RECOLOR_SPRITE(PALETTE_RECOLOR_START),
 	PALETTE_TO_PALE_GREEN       = PALETTE_RECOLOR_SPRITE(0x308),
 	PALETTE_TO_PINK             = PALETTE_RECOLOR_SPRITE(0x309),
 	PALETTE_TO_YELLOW           = PALETTE_RECOLOR_SPRITE(0x30A),
--- a/vehicle.c	Fri Mar 24 17:40:55 2006 +0000
+++ b/vehicle.c	Fri Mar 24 18:16:39 2006 +0000
@@ -2052,7 +2052,7 @@
 
 	/* XXX Magic 0x307 is the first company colour remap sprite */
 	map = HASBIT(_engine_info[engine_type].misc_flags, EF_USES_2CC) ?
-		(SPR_2CCMAP_BASE + colour + colour * 16) : (0x307 + colour);
+		(SPR_2CCMAP_BASE + colour + colour * 16) : (PALETTE_RECOLOR_START + colour);
 
 	return SPRITE_PALETTE(map << PALETTE_SPRITE_START);
 }