input.c: Simplify code in Color_cycling()
This commit is contained in:
parent
a53d6da6ea
commit
297b653304
34
src/input.c
34
src/input.c
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
void Handle_window_resize(SDL_ResizeEvent event);
|
void Handle_window_resize(SDL_ResizeEvent event);
|
||||||
void Handle_window_exit(SDL_QuitEvent event);
|
void Handle_window_exit(SDL_QuitEvent event);
|
||||||
int Color_cycling(void);
|
static int Color_cycling(void);
|
||||||
|
|
||||||
// public Globals (available as extern)
|
// public Globals (available as extern)
|
||||||
|
|
||||||
@ -1063,12 +1063,14 @@ void Set_mouse_position(void)
|
|||||||
SDL_WarpMouse(Mouse_X*Pixel_width, Mouse_Y*Pixel_height);
|
SDL_WarpMouse(Mouse_X*Pixel_width, Mouse_Y*Pixel_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Color_cycling(void)
|
static int Color_cycling(void)
|
||||||
{
|
{
|
||||||
static byte offset[16];
|
static byte offset[16];
|
||||||
int i, color;
|
int i, color;
|
||||||
static SDL_Color PaletteSDL[256];
|
static SDL_Color PaletteSDL[256];
|
||||||
int changed; // boolean : true if the palette needs a change in this tick.
|
int changed; // boolean : true if the palette needs a change in this tick.
|
||||||
|
const T_Gradient_range * range;
|
||||||
|
int len;
|
||||||
|
|
||||||
long now;
|
long now;
|
||||||
static long start=0;
|
static long start=0;
|
||||||
@ -1089,15 +1091,14 @@ int Color_cycling(void)
|
|||||||
// Check all cycles for a change at this tick
|
// Check all cycles for a change at this tick
|
||||||
for (i=0; i<16; i++)
|
for (i=0; i<16; i++)
|
||||||
{
|
{
|
||||||
int len;
|
range = &Main.backups->Pages->Gradients->Range[i];
|
||||||
|
len = range->End-range->Start+1;
|
||||||
len=Main.backups->Pages->Gradients->Range[i].End-Main.backups->Pages->Gradients->Range[i].Start+1;
|
if (len>1 && range->Speed)
|
||||||
if (len>1 && Main.backups->Pages->Gradients->Range[i].Speed)
|
|
||||||
{
|
{
|
||||||
int new_offset;
|
int new_offset;
|
||||||
|
|
||||||
new_offset=(now-start)/(int)(1000.0/(Main.backups->Pages->Gradients->Range[i].Speed*0.2856)) % len;
|
new_offset=(now-start)/(int)(1000.0/(range->Speed*0.2856)) % len;
|
||||||
if (!Main.backups->Pages->Gradients->Range[i].Inverse)
|
if (!range->Inverse)
|
||||||
new_offset=len - new_offset;
|
new_offset=len - new_offset;
|
||||||
|
|
||||||
if (new_offset!=offset[i])
|
if (new_offset!=offset[i])
|
||||||
@ -1116,17 +1117,16 @@ int Color_cycling(void)
|
|||||||
}
|
}
|
||||||
for (i=0; i<16; i++)
|
for (i=0; i<16; i++)
|
||||||
{
|
{
|
||||||
int len;
|
range = &Main.backups->Pages->Gradients->Range[i];
|
||||||
|
len = range->End-range->Start+1;
|
||||||
// TODO improve
|
if (len>1 && range->Speed)
|
||||||
len=Main.backups->Pages->Gradients->Range[i].End-Main.backups->Pages->Gradients->Range[i].Start+1;
|
|
||||||
if (len>1 && Main.backups->Pages->Gradients->Range[i].Speed)
|
|
||||||
{
|
{
|
||||||
for(color=Main.backups->Pages->Gradients->Range[i].Start;color<=Main.backups->Pages->Gradients->Range[i].End;color++)
|
for(color=range->Start;color<=range->End;color++)
|
||||||
{
|
{
|
||||||
PaletteSDL[color].r=Main.palette[Main.backups->Pages->Gradients->Range[i].Start+((color-Main.backups->Pages->Gradients->Range[i].Start+offset[i])%len)].R;
|
int new_color = range->Start+((color-range->Start+offset[i])%len);
|
||||||
PaletteSDL[color].g=Main.palette[Main.backups->Pages->Gradients->Range[i].Start+((color-Main.backups->Pages->Gradients->Range[i].Start+offset[i])%len)].G;
|
PaletteSDL[color].r=Main.palette[new_color].R;
|
||||||
PaletteSDL[color].b=Main.palette[Main.backups->Pages->Gradients->Range[i].Start+((color-Main.backups->Pages->Gradients->Range[i].Start+offset[i])%len)].B;
|
PaletteSDL[color].g=Main.palette[new_color].G;
|
||||||
|
PaletteSDL[color].b=Main.palette[new_color].B;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user