void DrawSTextV(int t) { int offset = 540 + (t / 2); int i, c; t = t * 350 / 500; int cl = 350 - t; for (i = 0; i < 64; i++) { DrawRect(0, i * 15 - offset, 640, 15, (64 - i) * cl / 350); } for (i = 64; i < 128; i++) { DrawRect(0, i * 15 - offset, 640, 15, (i - 64) * cl / 350); } if (t < 300) { for (i = 0; i < 15; i++) { c = (255 + (i * 100) - t*10); if (c < 0) c = 0; if (c > 255) c = 255; draw_text(68, 150+i*12, STextV[i], 255-c); } } else { for (i = 0; i < 15; i++) { c = 5 + (t-300) * 5; draw_text(68, 150+i*12, STextV[i], 255-c); } } UpdatePalette(); VideoUpdate(); }
void DrawPText(int t) { int i; int c; int x, y; for (i = 0; i < 256; i++) { ending_pal[i].r = i; ending_pal[i].g = i; ending_pal[i].b = (i * 3 / 4) + 64; } if (t < 300) { for (i = 0; i < 10; i++) { c = (255 + (i * 100) - t*10); if (c < 0) c = 0; if (c > 255) c = 255; if (player_shield != 30) { draw_text(68, 180+i*12, PText[i], c); } else { draw_text(68, 180+i*12, PTextV[i], c); } } } else { for (i = 0; i < 10; i++) { c = 5 + (t-300) * 5; if (player_shield != 30) { draw_text(68, 180+i*12, PText[i], c); } else { draw_text(68, 180+i*12, PTextV[i], c); } } } for (i = 0; i < (32 * 8); i++) { x = (i % 32)*20; y = (i / 32)*20; c = 237 + (i/32*2) + (rand()% (19 - (i/32) *2)); DrawRect(x, y, 20, 20, c); c = 237 + (i/32*2) + (rand()% (19 - (i/32) *2)); DrawRect(x, 460 - y, 20, 20, c); } UpdatePalette(); VideoUpdate(); }
void DrawCircuitFlash(int t, int method) { static SDL_Surface *circ = NULL; static int xpos, ypos; int i, j; SDL_Rect from; if (circ == NULL) { circ = IMG_Load("dat/i/circuits_1.png"); } if (t == 0) { if (method == 0) { xpos = rand()%641; ypos = rand()%481; } else { xpos = 320; ypos = 240; } } from.x = xpos; from.y = ypos; from.w = 640; from.h = 480; SDL_BlitSurface(circ, &from, screen, NULL); for (i = 0; i < 256; i++) { if (method == 0) { j = i * t / 4; } else { j = i * t / 8; if (t >= 20) { j += t * 25; } } if (j > 255) j = 255; ending_pal[i].r = j; ending_pal[i].g = j; ending_pal[i].b = j; } UpdatePalette(); VideoUpdate(); }
void RunParticleStorm(int offset) { SDL_Rect draw_from, draw_to; int i; for (i = 0; i < 64; i++) { DrawRect(0, i * 15 - offset, 640, 15, 64 - i); } for (i = 0; i < 500; i++) { if (pt_t[i] > 0) { pt_t[i]--; } else { pt_vy[i] += 0.1; pt_x[i] += pt_vx[i]; pt_y[i] += pt_vy[i]; } draw_from.x = (rand()%3)*32; draw_from.y = 0; draw_from.w = 32; draw_from.h = 32; draw_to.x = (int)pt_x[i] - 16; draw_to.y = (int)pt_y[i] - 16 - offset; SDL_BlitSurface(glitter, &draw_from, screen, &draw_to); } for (i = 0; i < 128; i++) { ending_pal[i].r = i*2; ending_pal[i].g = i*2; ending_pal[i].b = 0; } for (i = 128; i < 256; i++) { ending_pal[i].r = 255; ending_pal[i].g = 255; ending_pal[i].b = (i - 128)*2+1; } UpdatePalette(); VideoUpdate(); }
void CSdlAppServ::RunL() { if(iStatus == KErrNone) { switch(iService) { case CSdlAppServ::EAppSrvWaitDsa: //EpocSdlEnv::SetWaitDsa(); iReturnValue = EpocSdlEnv::IsDsaAvailable(); break; /* case CSdlAppServ::EAppSrvStopThread: if(gEpocEnv->iDsa != NULL) gEpocEnv->iDsa->SetSuspend(); break;*/ case EpocSdlEnv::EDisableKeyBlocking: EnvUtils::DisableKeyBlocking(); break; case EpocSdlEnv::ESetAppOrientation: iReturnValue = EnvUtils::SetAppOrientation(static_cast<CSDL::TAppOrientation>(iReturnValue)); break; case EAppSrvWindowPointerCursorMode: iReturnValue = gEpocEnv->iDsa != NULL ? gEpocEnv->iDsa->Session().PointerCursorMode() : KErrNotReady; break; case EAppSrvDsaStatus: if(gEpocEnv->iDsa != NULL) gEpocEnv->iDsa->Stop(); iReturnValue = KErrNone; break; case CDsa::ERequestUpdate: gEpocEnv->iDsa->UnlockHWSurfaceRequestComplete(); break; case EVideoUpdate: VideoUpdate(); break; case EAppSrvNoop: break; case MSDLObserver::EEventResume: case MSDLObserver::EEventSuspend: case MSDLObserver::EEventScreenSizeChanged: case MSDLObserver::EEventWindowReserved: case MSDLObserver::EEventKeyMapInit: case MSDLObserver::EEventWindowNotAvailable: case MSDLObserver::EEventMainExit: case MSDLObserver::EEventVolumeChange: case MSDLObserver::EEventScreenSurfaceCreated: iReturnValue = ObserverEvent(iService, iReturnValue); HandleObserverValue(iService, iReturnValue, ETrue); break; default: PANIC(KErrNotSupported); } /* iStatus = KRequestPending; iStatusPtr = &iStatus; SetActive(); */ } if(EnvUtils::IsOwnThreaded()) iSema.Signal(); }
void DrawScrolly(int t) { int xp; int yp; int i, j; float a_dir; float v_radius; int all_blue = 0; SDL_Rect draw_from, draw_to; int x, y, r; float bright; if (t < 795) { xp = 8192 - 320 - 3180 + (t * 4); yp = t * 20; } else { xp = 8192 - 320 + ( (t-795) * 10); yp = 795 * 20 - (t-795)*10; } // Palette if ((rand() % 10)==9) { all_blue = 1; } for (i = 0; i < 256; i++) { bright = sin((float)t / 10.0) * 0.2 + 0.4; ending_pal[i].r = (i * bright + (256*(1.0-bright))) * ((float)(all_blue == 0) * 0.5 + 0.5); ending_pal[i].g = (i * bright + (256*(1.0-bright))) * ((float)(all_blue == 0) * 0.5 + 0.5); ending_pal[i].b = i * bright + (256*(1.0-bright)); } DrawLevel(xp, yp, 0, 0); v_radius = sin((float)t / 10.0)*20 + 100; for (i = 0; i < 5; i++) { x = rand()%640; y = rand()%480; r = rand()%500+100; DrawCircleEx(x, y, r+2, r-4, 128); DrawCircleEx(x, y, r, r-2, 255); } for (i = 0; i < 4; i++) { draw_from.x = (8 + i) * 32; draw_from.y = 0; draw_from.w = 32; draw_from.h = 32; a_dir = ((float)t / 10.0) + (M_PI*(float)i/2); for (j = 10; j >= 0; j--) { DrawCircleEx(320+cos(a_dir)*v_radius, 240+sin(a_dir)*v_radius, 22 + j * 2, 0, abs(j-3) * 15); } DrawCircleEx(320+cos(a_dir)*v_radius, 240+sin(a_dir)*v_radius, 20, 0, 0); draw_to.x = 320 + cos(a_dir) * v_radius - 16; draw_to.y = 240 + sin(a_dir) * v_radius - 16; SDL_BlitSurface(artifact_spr, &draw_from, screen, &draw_to); } UpdatePalette(); VideoUpdate(); }
void DrawStream(int t) { int i; int scr_x = 32; int scr_y = 0; int strm_scrl; SDL_Rect draw_from, draw_to; for (i = 0; i < 256; i++) { ending_pal[i].r = i; ending_pal[i].g = (i * 7 / 8) + 16 + sin( (float)t / 8 )*16; ending_pal[i].b = (i * 3 / 4) + 32 + sin( (float)t / 8 )*32; } if (t >= 300) { scr_x = 32 + rand()%32 - rand()%32; scr_y = rand()%8; } if (t < 10) { scr_y = (20 - t * 2); } DrawLevel(scr_x, scr_y, 0, 0); DrawPlayer(344 - scr_x, 228 - scr_y, 0, 0); for (i = 0; i < 7; i++) { strm_scrl = (t * 20) % 128; draw_to.x = 0 - strm_scrl - scr_x + (128*i); draw_to.y = 19 - scr_y; if (i >= 300) { draw_to.y += rand()%4; draw_to.y -= rand()%4; } SDL_BlitSurface(streamspr, NULL, screen, &draw_to); } // glitter for (i = 0; i < 20; i++) { draw_from.x = (rand()%3)*32; draw_from.y = 0; draw_from.w = 32; draw_from.h = 32; draw_to.x = rand()%(640+32)-32; draw_to.y = (rand()%(124)) + 3; SDL_BlitSurface(glitter, &draw_from, screen, &draw_to); } if (t > 250) { if (t < 300) { if (t == 251) { SND_CircuitRelease(1000); } DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 254) * 10, 255); DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 252) * 10, 225); DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 250) * 10, 195); } } UpdatePalette(); VideoUpdate(); }
void DrawCredits() { static SDL_Surface *fin = NULL; static SDL_Surface *theend[2] = {NULL}; SDL_Rect draw_to; int i; int ypos; int c; int n_credits = sizeof(credits)/sizeof(*credits); int finish_point; finish_point = 400 + (n_credits * 50); draw_to.x = 384; draw_to.y = 352; SDL_FillRect(screen, NULL, 0); if (fin == NULL) { fin = IMG_Load("dat/i/fin.png"); theend[0] = IMG_Load("dat/i/theend.png"); theend[1] = IMG_Load("dat/i/true_end.png"); } if (credits_scroll >= (finish_point + 80)) { SDL_BlitSurface(theend[(player_shield == 30)], NULL, screen, NULL); } else { SDL_BlitSurface(fin, NULL, screen, &draw_to); // Show each line of credits for (i = 0; i < n_credits; i++) { ypos = 800 + (i * 100) - credits_scroll * 2; if ((ypos >= 0)&&(ypos < 480)) { c = 255 - abs(ypos - 240); draw_text(120, ypos, credits[i], c); } } } for (i = 0; i < 128; i++) { ending_pal[i].r = 0; ending_pal[i].g = i; ending_pal[i].b = i*2; } for (i = 128; i < 256; i++) { ending_pal[i].r = (i - 128)*2+1; ending_pal[i].g = i; ending_pal[i].b = 255; } // Dim palette if we're just starting if (credits_scroll < 80) { for (i = 0; i < 256; i++) { ending_pal[i].r = ending_pal[i].r * credits_scroll / 80; ending_pal[i].g = ending_pal[i].g * credits_scroll / 80; ending_pal[i].b = ending_pal[i].b * credits_scroll / 80; } } // Also palette if we're finishing if ((credits_scroll >= (finish_point))&&(credits_scroll < (finish_point + 80))) { for (i = 0; i < 256; i++) { ending_pal[i].r = ending_pal[i].r * (finish_point+80-credits_scroll) / 80; ending_pal[i].g = ending_pal[i].g * (finish_point+80-credits_scroll) / 80; ending_pal[i].b = ending_pal[i].b * (finish_point+80-credits_scroll) / 80; } } if ((credits_scroll >= (finish_point + 80))&&(credits_scroll < (finish_point + 160))) { for (i = 0; i < 256; i++) { ending_pal[i].r = ending_pal[i].r * (credits_scroll - (finish_point + 80)) / 80; ending_pal[i].g = ending_pal[i].g * (credits_scroll - (finish_point + 80)) / 80; ending_pal[i].b = ending_pal[i].b * (credits_scroll - (finish_point + 80)) / 80; } } credits_scroll++; UpdatePalette(); VideoUpdate(); }