User:NARbluebear/NewSkinColors

From SRB2 Wiki
Jump to navigation Jump to search

Most of this is just copied and pasted from the List of skin colors page, but with a few minor adjustments to include Bluebell, Bronze, Ketchup, Copper, Apple, and Raspberry.

Skin Colors

Skin colors are translation maps that replace a specified range of palette colors used in sprites with other colors. They are most commonly used by players to change the colors of the character skin they are currently using, typically recoloring the character's main body color; in multiplayer gametypes players are usually able to freely change their skin color, while in Single Player all characters have a default skin color that cannot be changed. However, other types of Objects in SRB2 make use of skin colors too – e.g.: emblems use skin colors to help identify what type of emblem they are, and CTF Team Rings are rings recolored using skin colors to match the color of the team that can collect them.

By default, the range of colors that will be changed by skin colors is the green range (palette colors 96–111). For most types of Objects this is hardcoded, and cannot be altered by any means. For players however, the startcolor parameter in a character's S_SKIN allows for some flexibility; the range of colors to swap will always be 16 colors directly next to each other in the palette, but startcolor allows the starting color of this range to be modified. The rest of the colors will follow after the color set by startcolor, the final color of the range being 15 colors after it. Through startcolor this range can in fact also cross over multiple ranges of colors in the palette, though this is generally not desirable in practice. This trait works only if the player is currently using the SPR_PLAY sprite set – changing to any other sprite set will reset the changeable color range to the default green range. Note that this also applies to the icons for the Level End Sign and Extra Life Monitor.

The actions A_ChangeColorAbsolute and A_ChangeColorRelative can be used to change the skin color of an Object for SOCs; for Lua, mobj.color (or player.mo.color) is the current skin color value set for an Object. For players, player.skincolor is the player's selected "normal" skin color in multiplayer (or the default color, in Single Player); the player may change to other colors when they have turned super or have special power-ups such as the Fire Flower power-up or invincibility in Mario mode levels, but this value acts as the fallback skin color to use when they are no longer super or don't have the listed power-ups anymore.

Normal skin colors

The table below lists the available skin color choices available to players and other objects, listing both the named constants for use in SOC/Lua (listed in the "Internal name" column) and the name strings for use with the color console variable, prefcolor, or prefoppositecolor in a character's S_SKIN (listed in the "Name" column). The columns "#1" to "#16" denote the range of colors to replace each of the 16 colors from the palette to be swapped in-game. Note that many of the colors overlap several columns, to show that they are shared.

Value Internal name String name #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16
0 SKINCOLOR_NONE1 None None
1 SKINCOLOR_WHITE White 0 1 2 4 6 8 10 12 14 16 17
2 SKINCOLOR_BONE Bone 0 1 2 3 4 5 6 8 10 12 14 16 17 18
3 SKINCOLOR_CLOUDY Cloudy 2 3 4 5 7 8 9 10 11 12 15 16 17 18 19 20
4 SKINCOLOR_GREY Grey 4 6 8 10 12 13 14 15 16 18 19 20 21 22 23 24
5 SKINCOLOR_SILVER Silver 2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
6 SKINCOLOR_CARBON Carbon 17 18 19 20 21 22 23 25 26 27 28 29
7 SKINCOLOR_JET Jet 0 5 10 15 20 25 26 27 28 30 31
8 SKINCOLOR_BLACK Black 21 22 23 24 25 26 27 28 29 30 31
9 SKINCOLOR_AETHER Aether 0 1 2 3 145 170 171 172 173 174 175
10 SKINCOLOR_SLATE Slate 0 2 4 6 8 10 170 171 172 173 174 175
11 SKINCOLOR_BLUEBELL Bluebell 144 145 146 147 148 149 172 173 168 169 253 254
12 SKINCOLOR_PINK Pink 208 209 210 211 212 213 214 215 43 44 46
13 SKINCOLOR_YOGURT Yogurt 208 48 216 217 218 219 220 221 222 223 224 227 230 232 233
14 SKINCOLOR_BROWN Brown 223 224 225 226 228 229 230 231 232 233 234 235 236 237 238 239
15 SKINCOLOR_BRONZE Bronze 222 224 225 228 231 233 235 236 237 25 27 29 30
16 SKINCOLOR_TAN Tan 81 84 85 86 87 245 249 237
17 SKINCOLOR_BEIGE Beige 84 85 86 242 243 244 245 246 248 249 250 251 237
18 SKINCOLOR_MOSS Moss 88 89 90 91 92 93 94 95
19 SKINCOLOR_AZURE Azure 144 145 170 171 172 173 174 175
20 SKINCOLOR_LAVENDER Lavender 192 193 194 195 196 197 198 199
21 SKINCOLOR_RUBY Ruby 176 201 202 204 38 39 40 41 42 185 186 187 253
22 SKINCOLOR_SALMON Salmon 208 209 210 32 33 36 37 38 40 41 42 43 44 45 46
23 SKINCOLOR_RED Red 32 33 34 35 36 37 39 40 41 42 43 44 45 71 46 47
24 SKINCOLOR_CRIMSON Crimson 39 40 41 42 43 44 45 46 47 31
25 SKINCOLOR_FLAME Flame 49 50 51 54 34 37 205 207 197 199
26 SKINCOLOR_KETCHUP Ketchup 72 73 64 51 52 54 34 36 38 40 42 43 44 71 46 47
27 SKINCOLOR_PEACHY Peachy 208 48 49 50 220 211 212 204 205 206 207
28 SKINCOLOR_QUAIL Quail 216 217 219 220 222 223 213 194 195 196 197 198 199 29 31
29 SKINCOLOR_SUNSET Sunset 81 82 64 52 54 213 214 215 207 198 199 254
30 SKINCOLOR_COPPER Copper 88 84 64 52 53 56 58 60 61 42 43 44 186 187
31 SKINCOLOR_APRICOT Apricot 0 216 217 218 219 51 52 53 54 55 56 58 59 60 61 62
32 SKINCOLOR_ORANGE Orange 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 44
33 SKINCOLOR_RUST Rust 56 57 58 59 60 61 63 44 45 71 46 47
34 SKINCOLOR_GOLD Gold 81 84 65 66 67 68 69 70 63 45 46 47
35 SKINCOLOR_SANDY Sandy 83 64 65 66 67 230 233 234 236 198 199 254
36 SKINCOLOR_YELLOW Yellow 82 83 73 74 75 76 77 78 79 237
37 SKINCOLOR_OLIVE Olive 75 76 77 78 231 233 197 198 199 253
38 SKINCOLOR_LIME Lime 80 81 82 83 72 188 189 190 191 106 107 108 109 110 111
39 SKINCOLOR_PERIDOT Peridot 88 188 189 190 191 94 95 119
40 SKINCOLOR_APPLE Apple 73 188 189 190 103 105 106 107 108 109
41 SKINCOLOR_GREEN Green 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
42 SKINCOLOR_FOREST Forest 101 102 103 104 105 106 107 108 109 110 111
43 SKINCOLOR_EMERALD Emerald 112 113 114 115 116 117 118 119
44 SKINCOLOR_MINT Mint 0 88 89 98 100 103 126 143 138
45 SKINCOLOR_SEAFOAM Seafoam 1 88 89 90 125 126 143 138 253
46 SKINCOLOR_AQUA Aqua 120 121 122 123 124 125 126 127 118 119
47 SKINCOLOR_TEAL Teal 120 140 141 142 143 138
48 SKINCOLOR_WAVE Wave 0 120 121 141 135 136 137 174 168 169 253
49 SKINCOLOR_CYAN Cyan 128 129 255 131 141 142 126 127 118 119 110
50 SKINCOLOR_SKY Sky 128 129 130 131 132 133 134 135 136 137 138 139
51 SKINCOLOR_CERULEAN Cerulean 133 134 135 136 137 138 253 31
52 SKINCOLOR_ICY Icy 0 128 129 131 134 135 149 173 174 175
53 SKINCOLOR_SAPPHIRE Sapphire 128 131 134 135 149 150 151 152 153 155 156 157 158 159 253 254
54 SKINCOLOR_CORNFLOWER Cornflower 144 145 146 147 148 149 150 151 152 154 156 157 158
55 SKINCOLOR_BLUE Blue 146 147 148 149 150 151 152 153 154 155 156 157 158 159 253 254
56 SKINCOLOR_COBALT Cobalt 147 148 149 150 152 154 155 156 157 158 159 253 254
57 SKINCOLOR_VAPOR Vapor 128 129 131 134 148 163 164 166 168 169
58 SKINCOLOR_DUSK Dusk 146 147 148 172 173 174 175 169 253
59 SKINCOLOR_PASTEL Pastel 144 160 161 162 163 164 165 166 167 168
60 SKINCOLOR_PURPLE Purple 160 161 162 163 164 165 166 167 168 169
61 SKINCOLOR_BUBBLEGUM Bubblegum 0 208 200 178 179 180 181 182 163 164 165 166 167 168
62 SKINCOLOR_MAGENTA Magenta 179 180 181 182 183 184 185 186 187
63 SKINCOLOR_NEON Neon 179 181 182 183 184 185 186 187 199 29 30
64 SKINCOLOR_VIOLET Violet 208 209 210 202 204 184 185 186 168 169 253 254
65 SKINCOLOR_LILAC Lilac 0 208 209 210 211 193 194 195 196 197 198 254 31
66 SKINCOLOR_PLUM Plum 200 211 213 214 215 206 207 185 186 169 253 254
67 SKINCOLOR_RASPBERRY Raspberry 200 201 202 203 204 205 206 185 186 187 254
68 SKINCOLOR_ROSY Rosy 252 200 201 202 203 204 205 206 207
69 MAXSKINCOLORS 2

1 SKINCOLOR_NONE/"None" was a former skin color choice for players in older versions of SRB2, but is now not available for multiplayer, and is not recommended for usage with prefcolor in a character's S_SKIN. For all other objects, it is the default skin color set when an object is first spawned on the map, as most objects do not use skin colors.

2 MAXSKINCOLORS represents the total number of normal skin colors available, though this includes the "None" color choice.

Super skin colors

Following the normal skin colors above, these special skin colors are reserved for super forms. The flashing seen in-game for all super colors is simulated by cycling continuously through a set of 5 different skincolors ranging from bright to dark. None of these colors are intended for use in-game by anything except super players, though if these colors are given to a player or other object otherwise the flashing does not occur automatically.

In the table below, the columns "#1" to "#16" have the same meaning as with the table for normal skin colors above. The string names for these are used for supercolor, and are not valid options for the color console variable.

Value Internal name String name #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16
69 SKINCOLOR_SUPERSILVER1 Silver 0 1 2 3
70 SKINCOLOR_SUPERSILVER2 0 1 2 3 4 5 7
71 SKINCOLOR_SUPERSILVER3 1 2 3 4 5 7 9 11
72 SKINCOLOR_SUPERSILVER4 2 3 4 5 7 9 11 13 15 17
73 SKINCOLOR_SUPERSILVER5 3 4 5 7 9 11 13 15 17 19
74 SKINCOLOR_SUPERRED1 Red 0 208 209 210
75 SKINCOLOR_SUPERRED2 0 208 209 210 32 33
76 SKINCOLOR_SUPERRED3 0 208 209 210 32 33 34 35
77 SKINCOLOR_SUPERRED4 0 208 209 210 32 33 34 35 36
78 SKINCOLOR_SUPERRED5 208 209 210 32 33 34 35 36 37
79 SKINCOLOR_SUPERORANGE1 Orange 0 208 48 49 50 51 52
80 SKINCOLOR_SUPERORANGE2 0 208 48 49 50 51 52
81 SKINCOLOR_SUPERORANGE3 0 208 48 49 50 51 52 53
82 SKINCOLOR_SUPERORANGE4 0 208 48 49 50 51 52 53 54 55 56 57 58 68 69 70
83 SKINCOLOR_SUPERORANGE5 208 48 49 50 51 52 53 54 55 56 57 58 68 69 70 71
84 SKINCOLOR_SUPERGOLD1 Gold 0 80 81 82 83 72
85 SKINCOLOR_SUPERGOLD2 0 80 81 82 83 72 73 64 65
86 SKINCOLOR_SUPERGOLD3 81 82 83 72 73 64 65 66 67
87 SKINCOLOR_SUPERGOLD4 83 72 73 64 65 66 67 68 69 70
88 SKINCOLOR_SUPERGOLD5 72 73 64 65 66 67 68 69 70 71
89 SKINCOLOR_SUPERPERIDOT1 Peridot 0 88 188
90 SKINCOLOR_SUPERPERIDOT2 0 88 188 189 190
91 SKINCOLOR_SUPERPERIDOT3 88 188 189 190 191
92 SKINCOLOR_SUPERPERIDOT4 88 188 189 190 191 94 95
93 SKINCOLOR_SUPERPERIDOT5 188 189 190 191 94 95 119
94 SKINCOLOR_SUPERSKY1 Sky 0 128 129 130 131 132
95 SKINCOLOR_SUPERSKY2 0 128 129 130 131 132 133 134
96 SKINCOLOR_SUPERSKY3 129 130 131 132 133 134 135
97 SKINCOLOR_SUPERSKY4 131 132 133 134 135 136 137 138
98 SKINCOLOR_SUPERSKY5 132 133 134 135 136 137 138 139
99 SKINCOLOR_SUPERPURPLE1 Purple 0 144 160 161 162
100 SKINCOLOR_SUPERPURPLE2 0 144 160 161 162 163 164 165
101 SKINCOLOR_SUPERPURPLE3 160 161 162 163 164 165 166
102 SKINCOLOR_SUPERPURPLE4 161 162 163 164 165 166 167 168 169
103 SKINCOLOR_SUPERPURPLE5 162 163 164 165 166 167 168 169 253
104 SKINCOLOR_SUPERRUST1 Rust 0 208 48 49 50 51 55 58 68 69 70 71 46
105 SKINCOLOR_SUPERRUST2 48 49 50 51 52 53 54 56 58 68 69 70 71 46
106 SKINCOLOR_SUPERRUST3 49 50 51 52 54 55 56 58 68 69 70 71 46
107 SKINCOLOR_SUPERRUST4 72 64 65 66 67 68 69 70 71 46
108 SKINCOLOR_SUPERRUST5 65 66 67 68 233 234 235 236 237 238 239
109 SKINCOLOR_SUPERTAN1 Tan 0 80 81 82
110 SKINCOLOR_SUPERTAN2 0 80 81 82 84 85 86 87 245
111 SKINCOLOR_SUPERTAN3 80 81 82 84 85 86 87 245 247 249
112 SKINCOLOR_SUPERTAN4 81 82 84 85 86 87 245 247 249 251 237
113 SKINCOLOR_SUPERTAN5 82 84 85 86 87 245 247 249 251 237 238 239
113 MAXTRANSLATIONS 1

1 MAXTRANSLATIONS represents the total number of skin color translations available to use in SRB2, including both normal skin colors and super skin colors.

Skin color opposites

Certain skin colors of the normal range have a corresponding "opposite" skin color. These are used to modify the Level End Sign's background color in particular; depending on the player's current skin color, the End Sign's background will change its color to the corresponding "opposite" skin color if one exists. However, as the End Sign's background is a single shade rather than multiple, the End Sign also has to modify the sprite frame used for the background since a single shared shade does not work in practice across all skin colors – to get around this, it has 16 different frames (C–R) to choose from for the 16 different shades, one of which is determined for each opposite skin color. These frames for the End Sign actually run in increasing order of brightness; C is the darkest shade, and R is the lightest shade.

Handling of opposite skin colors and their appropriate shade for the End Sign is done by A_SignPlayer. Note that the frame number is actually decreased by an amount rather than simply being modified. The table below lists the respective opposite skin colors for each skin color, along with the shade index used and the resulting frame character and palette value used by the End Sign itself. (frame = R - shade index):

Skin color Opposite color Shade index End sign frame End sign shade
SKINCOLOR_WHITE SKINCOLOR_BLACK 5 M 26
SKINCOLOR_BONE SKINCOLOR_JET 7 K 27
SKINCOLOR_CLOUDY SKINCOLOR_CARBON 7 K 23
SKINCOLOR_GREY SKINCOLOR_AETHER 12 F 173
SKINCOLOR_SILVER SKINCOLOR_SLATE 12 F 173
SKINCOLOR_CARBON SKINCOLOR_CLOUDY 7 K 10
SKINCOLOR_JET SKINCOLOR_BONE 7 K 5
SKINCOLOR_BLACK SKINCOLOR_WHITE 7 K 2
SKINCOLOR_AETHER SKINCOLOR_GREY 15 C 24
SKINCOLOR_SLATE SKINCOLOR_SILVER 12 F 24
SKINCOLOR_BLUEBELL SKINCOLOR_COPPER 4 N 53
SKINCOLOR_PINK SKINCOLOR_AZURE 9 I 172
SKINCOLOR_YOGURT SKINCOLOR_RUST 7 K 61
SKINCOLOR_BROWN SKINCOLOR_TAN 2 P 84
SKINCOLOR_BRONZE SKINCOLOR_KETCHUP 0 R 72
SKINCOLOR_TAN SKINCOLOR_BROWN 12 F 236
SKINCOLOR_BEIGE SKINCOLOR_MOSS 5 M 90
SKINCOLOR_MOSS SKINCOLOR_BEIGE 13 E 251
SKINCOLOR_AZURE SKINCOLOR_PINK 5 M 210
SKINCOLOR_LAVENDER SKINCOLOR_GOLD 4 N 65
SKINCOLOR_RUBY SKINCOLOR_EMERALD 10 H 117
SKINCOLOR_SALMON SKINCOLOR_FOREST 6 L 106
SKINCOLOR_RED SKINCOLOR_GREEN 10 H 106
SKINCOLOR_CRIMSON SKINCOLOR_ICY 10 H 149
SKINCOLOR_FLAME SKINCOLOR_PURPLE 8 J 165
SKINCOLOR_KETCHUP SKINCOLOR_BRONZE 8 J 237
SKINCOLOR_PEACHY SKINCOLOR_TEAL 7 K 142
SKINCOLOR_QUAIL SKINCOLOR_WAVE 5 M 135
SKINCOLOR_SUNSET SKINCOLOR_SAPPHIRE 5 M 150
SKINCOLOR_COPPER SKINCOLOR_BLUEBELL 4 N 148
SKINCOLOR_APRICOT SKINCOLOR_CYAN 4 N 131
SKINCOLOR_ORANGE SKINCOLOR_BLUE 4 N 150
SKINCOLOR_RUST SKINCOLOR_YOGURT 8 J 221
SKINCOLOR_GOLD SKINCOLOR_LAVENDER 10 H 197
SKINCOLOR_SANDY SKINCOLOR_SKY 8 J 133
SKINCOLOR_YELLOW SKINCOLOR_CORNFLOWER 8 J 152
SKINCOLOR_OLIVE SKINCOLOR_DUSK 3 O 148
SKINCOLOR_LIME SKINCOLOR_MAGENTA 9 I 184
SKINCOLOR_PERIDOT SKINCOLOR_COBALT 2 P 149
SKINCOLOR_APPLE SKINCOLOR_RASPBERRY 13 E 187
SKINCOLOR_GREEN SKINCOLOR_RED 6 L 39
SKINCOLOR_FOREST SKINCOLOR_SALMON 9 I 40
SKINCOLOR_EMERALD SKINCOLOR_RUBY 4 N 204
SKINCOLOR_MINT SKINCOLOR_VIOLET 5 M 184
SKINCOLOR_SEAFOAM SKINCOLOR_PLUM 6 L 207
SKINCOLOR_AQUA SKINCOLOR_ROSY 7 K 203
SKINCOLOR_TEAL SKINCOLOR_PEACHY 7 K 220
SKINCOLOR_WAVE SKINCOLOR_QUAIL 5 M 223
SKINCOLOR_CYAN SKINCOLOR_APRICOT 6 L 52
SKINCOLOR_SKY SKINCOLOR_SANDY 1 Q 64
SKINCOLOR_CERULEAN SKINCOLOR_NEON 4 N 184
SKINCOLOR_ICY SKINCOLOR_CRIMSON 0 R 39
SKINCOLOR_SAPPHIRE SKINCOLOR_SUNSET 5 M 54
SKINCOLOR_CORNFLOWER SKINCOLOR_YELLOW 4 N 74
SKINCOLOR_BLUE SKINCOLOR_ORANGE 5 M 54
SKINCOLOR_COBALT SKINCOLOR_PERIDOT 5 M 189
SKINCOLOR_VAPOR SKINCOLOR_LILAC 4 N 211
SKINCOLOR_DUSK SKINCOLOR_OLIVE 0 R 75
SKINCOLOR_PASTEL SKINCOLOR_BUBBLEGUM 9 I 182
SKINCOLOR_PURPLE SKINCOLOR_FLAME 7 K 37
SKINCOLOR_BUBBLEGUM SKINCOLOR_PASTEL 8 J 162
SKINCOLOR_MAGENTA SKINCOLOR_LIME 6 L 189
SKINCOLOR_NEON SKINCOLOR_CERULEAN 2 P 135
SKINCOLOR_VIOLET SKINCOLOR_MINT 6 L 98
SKINCOLOR_LILAC SKINCOLOR_VAPOR 4 N 148
SKINCOLOR_PLUM SKINCOLOR_MINT 7 K 98
SKINCOLOR_RASPBERRY SKINCOLOR_APPLE 13 E 109
SKINCOLOR_ROSY SKINCOLOR_AQUA 1 Q 121

Outside of A_SignPlayer, another way to access these opposite skin colors is through the special Lua function ColorOpposite. This function returns both the opposite skin color's number and the shade index value for use with the End Sign.