All pastes #569141 Raw Edit

Bushman

public c v1 · immutable
·published 2007-06-16 01:06 UTC
rendered paste body
#include <gb/gb.h>#include <string.h>#define FADESPEED 4extern UWORD SpritePal[];UWORD fad[8*4];  // temp bkg palette for fade timeUWORD sfad[8*4]; // temp sprite palette for fade timeUBYTE tempe, tempf, tempg;UWORD red, green, blue;    // fadeout temp colorsWORD  redi,greeni,bluei;    // fadein temp colorsUWORD *CurPal;void fadeout(){  for (tempe = 0; tempe < 32; tempe++)    {      fad[tempe] = CurPal[tempe];  // put curent bkg palette to temp bkg fade palette    }  for (tempe = 0; tempe < 32; tempe++)  {    sfad[tempe] = SpritePal[tempe];// put curent sprite palette to temp sprite fade palette  }  for (tempg = 0; tempg < 32; tempg += FADESPEED) // do 32/FADESPEED times coz it's a bigest posible value of color  {    for (tempf = 0; tempf < 4; tempf++)          // do 4 times per palette    {      for (tempe = 0; tempe < 8; tempe++)        // do 8 times coz there is 8 paletes      {          /* fadeout bkg */        red = (fad[tempe*4+tempf] & 0x1FU);        if(red >= FADESPEED) red-=FADESPEED;        else red = 0;        green = ((fad[tempe*4+tempf] & 0x3E0U)/32);        if(green >= FADESPEED) green-=FADESPEED;        else green = 0;        blue = (((fad[tempe*4+tempf] & 0x7C00U)/32)/32);        if(blue >= FADESPEED) blue-=FADESPEED;        else blue = 0;        fad[tempe*4+tempf] = (blue*32*32)|(green*32)|red;        set_bkg_palette_entry( tempe, tempf, fad[tempe*4+tempf]);          /* fadeout sprites */        red = (sfad[tempe*4+tempf] & 0x1FU);        if(red >= FADESPEED) red-=FADESPEED;        else red = 0;        green = ((sfad[tempe*4+tempf] & 0x3E0U)/32);        if(green >= FADESPEED) green-=FADESPEED;        else green = 0;        blue = (((sfad[tempe*4+tempf] & 0x7C00U)/32)/32);        if(blue >= FADESPEED) blue-=FADESPEED;        else blue = 0;        sfad[tempe*4+tempf] = (blue*32*32)|(green*32)|red;        set_sprite_palette_entry( tempe, tempf, sfad[tempe*4+tempf]);      }    }  }}void fadein(){  for (tempg = 0; tempg < 32; tempg+=FADESPEED)  {    for (tempf = 0; tempf < 4; tempf++)    {      for (tempe = 0; tempe < 8; tempe++)      {          /* fadein bkg */        redi = (((CurPal[tempe*4+tempf] & 0x1FU) - 31) + tempg);        if (redi >= 0)        {          red = redi;        }        else red = 0;        if (red >= (31 - FADESPEED))        {          red = 31;        }        greeni = ((((CurPal[tempe*4+tempf] & 0x3E0U)/32) - 31) + tempg);        if (greeni >= 0)        {          green = greeni;        }        else green = 0;        if (green >= (31 - FADESPEED))         {          green = 31;        }        bluei = (((((CurPal[tempe*4+tempf] & 0x7C00U)/32)/32) - 31) + tempg);        if (bluei >= 0)        {          blue = bluei;        }        else blue = 0;        if (blue >= (31 - FADESPEED))        {          blue = 31;        }        set_bkg_palette_entry( tempe, tempf, (blue*32*32)|(green*32)|red);          /* fadein sprites */        redi = (SpritePal[tempe*4+tempf] & 0x1FU) - 31 + tempg;        if (redi >= 0) red = redi;        else red = 0;        if (red > 31 - FADESPEED) red = 31;        greeni = ((SpritePal[tempe*4+tempf] & 0x3E0U)/32) - 31 + tempg;        if (greeni >= 0) green = greeni;        else green = 0;        if (green > 31 - FADESPEED) green = 31;        bluei = (((SpritePal[tempe*4+tempf] & 0x7C00U)/32)/32) - 31 + tempg;        if (bluei >= 0) blue = bluei;        else blue = 0;        if (blue > 31 - FADESPEED) blue = 31;         set_sprite_palette_entry( tempe, tempf, (blue*32*32)|(green*32)|red);      }    }  }}