Remove remaining grey and replace with gray

This commit is contained in:
ExpoSeed
2021-06-10 11:36:10 -05:00
parent 7a7ebe1827
commit 3ed06c2cc2
11 changed files with 40 additions and 40 deletions
+15 -15
View File
@@ -1656,12 +1656,12 @@ Explosion1:
Move_DEFENSE_CURL: Move_DEFENSE_CURL:
loadspritegfx ANIM_TAG_ECLIPSING_ORB loadspritegfx ANIM_TAG_ECLIPSING_ORB
loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0
createvisualtask AnimTask_DefenseCurlDeformMon, 5 createvisualtask AnimTask_DefenseCurlDeformMon, 5
waitforvisualfinish waitforvisualfinish
createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
waitforvisualfinish waitforvisualfinish
end end
@@ -7254,7 +7254,7 @@ Move_IRON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
clearmonbg ANIM_TARGET clearmonbg ANIM_TARGET
blendoff blendoff
waitforvisualfinish waitforvisualfinish
@@ -7274,7 +7274,7 @@ Move_POISON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
clearmonbg ANIM_TARGET clearmonbg ANIM_TARGET
blendoff blendoff
call PoisonBubblesEffect call PoisonBubblesEffect
@@ -7551,7 +7551,7 @@ Move_DISABLE:
playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER
createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_GrowAndGreyscale, 5 createvisualtask AnimTask_GrowAndGrayscale, 5
loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4
waitforvisualfinish waitforvisualfinish
delay 1 delay 1
@@ -7946,16 +7946,16 @@ Move_PERISH_SONG:
panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
delay 80 delay 80
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 0 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 0 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 0 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0
delay 100 delay 100
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 1 createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1
waitforvisualfinish waitforvisualfinish
end end
@@ -9573,7 +9573,7 @@ Move_DOOM_DESIRE:
createvisualtask GetIsDoomDesireHitTurn, 2 createvisualtask GetIsDoomDesireHitTurn, 2
delay 1 delay 1
monbg ANIM_ATK_PARTNER monbg ANIM_ATK_PARTNER
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, FALSE createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK
waitforvisualfinish waitforvisualfinish
setalpha 8, 8 setalpha 8, 8
@@ -9581,7 +9581,7 @@ Move_DOOM_DESIRE:
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1
waitforvisualfinish waitforvisualfinish
delay 20 delay 20
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, TRUE createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, RGB_BLACK createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, RGB_BLACK
waitforvisualfinish waitforvisualfinish
clearmonbg ANIM_ATK_PARTNER clearmonbg ANIM_ATK_PARTNER
+1 -1
View File
@@ -143,7 +143,7 @@ void TranslateSpriteLinear(struct Sprite *sprite);
void AnimSpriteOnMonPos(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void SetGreyscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task); bool8 RunAffineAnimFromTaskData(struct Task *task);
void AnimThrowProjectile(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite);
+2 -2
View File
@@ -596,7 +596,7 @@ extern const u8 gText_TooImportantToToss[];
extern const u8 gText_ConfirmTossItems[]; extern const u8 gText_ConfirmTossItems[];
extern const u8 gText_MoveVar1Where[]; extern const u8 gText_MoveVar1Where[];
extern const u8 gText_ColorLightShadowDarkGrey[]; extern const u8 gText_ColorLightShadowDarkGray[];
extern const u8 gText_ColorBlue[]; extern const u8 gText_ColorBlue[];
extern const u8 gText_Friend[]; extern const u8 gText_Friend[];
extern const u8 gText_Tristan[]; extern const u8 gText_Tristan[];
@@ -2512,7 +2512,7 @@ extern const u8 gText_MatchCallMay_Intro1[];
extern const u8 gText_MatchCallMay_Intro2[]; extern const u8 gText_MatchCallMay_Intro2[];
// Contest Link // Contest Link
extern const u8 gText_ColorDarkGrey[]; extern const u8 gText_ColorDarkGray[];
extern const u8 gText_CommunicationStandby[]; extern const u8 gText_CommunicationStandby[];
extern const u8 gText_AnnouncingResults[]; extern const u8 gText_AnnouncingResults[];
extern const u8 gText_PreliminaryResults[]; extern const u8 gText_PreliminaryResults[];
+5 -5
View File
@@ -870,7 +870,7 @@ void AnimTask_MetallicShine(u8 taskId)
paletteNum = 16 + gSprites[spriteId].oam.paletteNum; paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
if (gBattleAnimArgs[1] == 0) if (gBattleAnimArgs[1] == 0)
SetGreyscaleOrOriginalPalette(paletteNum, FALSE); SetGrayscaleOrOriginalPalette(paletteNum, FALSE);
else else
BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]); BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]);
@@ -900,7 +900,7 @@ static void AnimTask_MetallicShine_Step(u8 taskId)
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
paletteNum = 16 + gSprites[spriteId].oam.paletteNum; paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
if (gTasks[taskId].data[1] == 0) if (gTasks[taskId].data[1] == 0)
SetGreyscaleOrOriginalPalette(paletteNum, TRUE); SetGrayscaleOrOriginalPalette(paletteNum, TRUE);
DestroySprite(&gSprites[gTasks[taskId].data[0]]); DestroySprite(&gSprites[gTasks[taskId].data[0]]);
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
@@ -925,10 +925,10 @@ static void AnimTask_MetallicShine_Step(u8 taskId)
} }
} }
// Changes battler's palette to either greyscale or original. // Changes battler's palette to either grayscale or original.
// arg0: which battler // arg0: which battler
// arg1: FALSE grayscale, TRUE original // arg1: FALSE grayscale, TRUE original
void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId)
{ {
u8 spriteId; u8 spriteId;
u8 battler; u8 battler;
@@ -974,7 +974,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId)
} }
if (spriteId != SPRITE_NONE) if (spriteId != SPRITE_NONE)
SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
+8 -8
View File
@@ -89,7 +89,7 @@ static void AnimPerishSongMusicNote_Step1(struct Sprite *);
static void AnimPerishSongMusicNote_Step2(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *);
static void AnimGuardRing(struct Sprite *); static void AnimGuardRing(struct Sprite *);
static void AnimTask_Withdraw_Step(u8); static void AnimTask_Withdraw_Step(u8);
static void AnimTask_GrowAndGreyscale_Step(u8); static void AnimTask_GrowAndGrayscale_Step(u8);
static void AnimTask_Minimize_Step(u8); static void AnimTask_Minimize_Step(u8);
static void CreateMinimizeSprite(struct Task *, u8); static void CreateMinimizeSprite(struct Task *, u8);
static void ClonedMinizeSprite_Step(struct Sprite *); static void ClonedMinizeSprite_Step(struct Sprite *);
@@ -1996,26 +1996,26 @@ static void AnimGuillotinePincer_Step3(struct Sprite *sprite)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
// Scales up the target mon sprite, and sets the palette to greyscale. // Scales up the target mon sprite, and sets the palette to grayscale.
// Used in MOVE_DISABLE. // Used in MOVE_DISABLE.
// No args. // No args.
void AnimTask_GrowAndGreyscale(u8 taskId) void AnimTask_GrowAndGrayscale(u8 taskId)
{ {
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0);
SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE);
gTasks[taskId].data[0] = 80; gTasks[taskId].data[0] = 80;
gTasks[taskId].func = AnimTask_GrowAndGreyscale_Step; gTasks[taskId].func = AnimTask_GrowAndGrayscale_Step;
} }
static void AnimTask_GrowAndGreyscale_Step(u8 taskId) static void AnimTask_GrowAndGrayscale_Step(u8 taskId)
{ {
if (--gTasks[taskId].data[0] == -1) if (--gTasks[taskId].data[0] == -1)
{ {
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
ResetSpriteRotScale(spriteId); ResetSpriteRotScale(spriteId);
SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, TRUE); SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, TRUE);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
} }
@@ -3710,7 +3710,7 @@ static void AnimPerishSongMusicNote2(struct Sprite *sprite)
} }
if (++sprite->data[0] == sprite->data[1]) if (++sprite->data[0] == sprite->data[1])
SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0);
if (sprite->data[0] == sprite->data[1] + 80) if (sprite->data[0] == sprite->data[1] + 80)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
+1 -1
View File
@@ -1310,7 +1310,7 @@ u16 ArcTan2Neg(s16 a, s16 b)
return -var; return -var;
} }
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) void SetGrayscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
{ {
int i; int i;
struct PlttData *originalColor; struct PlttData *originalColor;
+2 -2
View File
@@ -159,7 +159,7 @@ enum
// strings // strings
extern const u8 gText_Slash[]; extern const u8 gText_Slash[];
extern const u8 gText_HighlightDarkGrey[]; extern const u8 gText_HighlightDarkGray[];
extern const u8 gText_DynColor2[]; extern const u8 gText_DynColor2[];
extern const u8 gText_DynColor2Male[]; extern const u8 gText_DynColor2Male[];
extern const u8 gText_DynColor1Female[]; extern const u8 gText_DynColor1Female[];
@@ -1895,7 +1895,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
u16 species; u16 species;
u8 gender; u8 gender;
StringCopy(gDisplayedStringBattle, gText_HighlightDarkGrey); StringCopy(gDisplayedStringBattle, gText_HighlightDarkGray);
GetMonData(mon, MON_DATA_NICKNAME, nickname); GetMonData(mon, MON_DATA_NICKNAME, nickname);
StringGetEnd10(nickname); StringGetEnd10(nickname);
ptr = StringAppend(gDisplayedStringBattle, nickname); ptr = StringAppend(gDisplayedStringBattle, nickname);
+1 -1
View File
@@ -1526,7 +1526,7 @@ static void Task_ShowMoveSelectScreen(u8 taskId)
&& eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) && eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention)
{ {
// Highlight the text because it's a combo move // Highlight the text because it's a combo move
moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGrey); moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGray);
} }
else if (move != MOVE_NONE else if (move != MOVE_NONE
&& eContestantStatus[gContestPlayerMonIndex].prevMove == move && eContestantStatus[gContestPlayerMonIndex].prevMove == move
+1 -1
View File
@@ -497,7 +497,7 @@ static void LoadContestMonName(u8 monIndex)
struct ContestPokemon *mon = &gContestMons[monIndex]; struct ContestPokemon *mon = &gContestMons[monIndex];
u8 *str = gDisplayedStringBattle; u8 *str = gDisplayedStringBattle;
if (monIndex == gContestPlayerMonIndex) if (monIndex == gContestPlayerMonIndex)
str = StringCopy(gDisplayedStringBattle, gText_ColorDarkGrey); str = StringCopy(gDisplayedStringBattle, gText_ColorDarkGray);
StringCopy(str, mon->nickname); StringCopy(str, mon->nickname);
AddContestTextPrinter(monIndex, gDisplayedStringBattle, 0); AddContestTextPrinter(monIndex, gDisplayedStringBattle, 0);
+3 -3
View File
@@ -1229,7 +1229,7 @@ ALIGNED(4) const u8 gText_Facility[] = _("{STR_VAR_1}");
const u8 gText_Give[] = _("Give"); const u8 gText_Give[] = _("Give");
const u8 gText_NoNeed[] = _("No need"); const u8 gText_NoNeed[] = _("No need");
const u8 gText_ColorLightShadowDarkGrey[] = _("{COLOR LIGHT_GRAY}{SHADOW DARK_GRAY}"); const u8 gText_ColorLightShadowDarkGray[] = _("{COLOR LIGHT_GRAY}{SHADOW DARK_GRAY}");
const u8 gText_ColorBlue[] = _("{COLOR BLUE}"); const u8 gText_ColorBlue[] = _("{COLOR BLUE}");
const u8 gText_ColorTransparent[] = _("{HIGHLIGHT TRANSPARENT}{COLOR TRANSPARENT}"); const u8 gText_ColorTransparent[] = _("{HIGHLIGHT TRANSPARENT}{COLOR TRANSPARENT}");
const u8 gText_CDot[] = _("C."); const u8 gText_CDot[] = _("C.");
@@ -1239,9 +1239,9 @@ const u8 gText_PreliminaryResults[] = _("The preliminary results!");
const u8 gText_Round2Results[] = _("Round 2 results!"); const u8 gText_Round2Results[] = _("Round 2 results!");
const u8 gText_ContestantsMonWon[] = _("{STR_VAR_1}'s {STR_VAR_2} won!"); const u8 gText_ContestantsMonWon[] = _("{STR_VAR_1}'s {STR_VAR_2} won!");
const u8 gText_CommunicationStandby[] = _("Communication standby…"); const u8 gText_CommunicationStandby[] = _("Communication standby…");
const u8 gText_ColorDarkGrey[] = _("{COLOR DARK_GRAY}"); const u8 gText_ColorDarkGray[] = _("{COLOR DARK_GRAY}");
const u8 gText_ColorDynamic6WhiteDynamic5[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}"); // Unused const u8 gText_ColorDynamic6WhiteDynamic5[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}"); // Unused
const u8 gText_HighlightDarkGrey[] = _("{HIGHLIGHT DARK_GRAY}"); const u8 gText_HighlightDarkGray[] = _("{HIGHLIGHT DARK_GRAY}");
const u8 gText_EmptySpace2[] = _(" "); // Unused const u8 gText_EmptySpace2[] = _(" "); // Unused
const u8 gText_DynColor2Male[] = _("{COLOR DYNAMIC_COLOR2}♂"); const u8 gText_DynColor2Male[] = _("{COLOR DYNAMIC_COLOR2}♂");
const u8 gText_DynColor1Female[] = _("{COLOR DYNAMIC_COLOR1}♀"); const u8 gText_DynColor1Female[] = _("{COLOR DYNAMIC_COLOR1}♀");
+1 -1
View File
@@ -2984,7 +2984,7 @@ static void HideKeyboardSwapMenu(void)
static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx) static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx)
{ {
// colorIdx: 0 = grey, 1 = red, 2 = green, 3 = blue // colorIdx: 0 = gray, 1 = red, 2 = green, 3 = blue
u8 color[3]; u8 color[3];
color[0] = TEXT_COLOR_WHITE; color[0] = TEXT_COLOR_WHITE;
color[1] = colorIdx * 2 + 2; color[1] = colorIdx * 2 + 2;