OSDN Git Service

cleaned up and made fade.exe work correctly!
[proj16/16.git] / 16 / 16 / SCRC / PALETTE.C
index 7a7e734..9a3c871 100755 (executable)
@@ -24,6 +24,12 @@ fadeOff(word fade, byte *palette) {
 \r
 \r
 void\r
+fadeOffHalf(word fade, byte *palette) {\r
+       fadePaletteHalf(fade, 0, 64/fade+1, palette);\r
+}\r
+\r
+\r
+void\r
 flashOn(word fade, byte *palette) {\r
     fadePalette(fade, -64, 64/fade+1, palette);\r
 }\r
@@ -61,6 +67,31 @@ fadePalette(byte fade, byte start, word iter, byte *palette) {
     }\r
 }\r
 \r
+static void\r
+fadePaletteHalf(byte fade, byte start, word iter, byte *palette) {\r
+    word i;\r
+    byte dim = start;\r
+\r
+    /* handle the case where we just update */\r
+    if(iter == 0) {\r
+       palUpdate(palette);\r
+       return;\r
+    }\r
+\r
+    while(iter > iter/2) {  /* FadeLoop */\r
+       for(i=0; i<PAL_SIZE; i++) { /* loadpal_loop */\r
+           tmppal[i] = palette[i] - dim;\r
+           if(tmppal[i] > 127) {\r
+               tmppal[i] = 0;\r
+           } else if(tmppal[i] > 63) {\r
+               tmppal[i] = 63;\r
+           }\r
+       }\r
+        palUpdate(tmppal);\r
+       iter--;\r
+       dim += fade;\r
+    }\r
+}\r
 \r
 /* save and load */\r
 void\r