#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") #include #include #include #include #include #include #include #include #include #define _RGB al_map_rgb #define _RGBA al_map_rgba #define oslSwapBuffers al_flip_display #define oslWaitVSync al_wait_for_vsync #define oslDeleteSound al_destroy_sample #define oslDrawFillRect al_draw_filled_rectangle #define STALLMAN Stupid_Toe_Cheese_Eater_Hippie #define GPL Shitty_Confusing_License #define BSD3CLAUSE Actual_License_Of_This_Program #define ESPAC_HORIZ 64 #define HAUT_FIELD 138 #define GRAVIT -0.05 typedef struct { int rx; int ry; } RESOLUTION; typedef struct { ALLEGRO_SAMPLE *ref; ALLEGRO_SAMPLE_INSTANCE *instance; } OSL_SOUND; typedef struct { ALLEGRO_AUDIO_STREAM *stream; } OSL_MOD; typedef struct { ALLEGRO_BITMAP *asset; float sizeX; float sizeY; float x; float y; float stretchX; float stretchY; float centerX; float centerY; float angle; int R; int G; int B; int trans; } OSL_IMAGE; struct ball { float speed_h; float speed_v; float speed_z; int angle; int x2d; int y2d; int z3d; short poisoned; }; struct pie_entity { int pie_hp; int pie_facemode; //mode sarko-JLM-autre? int pie_direction; int pie_x; int pie_y; }; OSL_IMAGE court, benj; ALLEGRO_FONT *freesans = NULL; ALLEGRO_COLOR current_col; ALLEGRO_EVENT_QUEUE *event_queue; ALLEGRO_DISPLAY *display = NULL; ALLEGRO_SAMPLE_ID *id[16]; ALLEGRO_KEYBOARD_STATE kbdstate; ALLEGRO_BITMAP *psp_screen = NULL; ALLEGRO_VOICE *voice; ALLEGRO_MIXER *mixer; ALLEGRO_TIMER *timer = NULL; ALLEGRO_EVENT_QUEUE *event_queue = NULL; short redraw = 1; unsigned long int counter=0; unsigned int ratio=0; const float FPS = 60; OSL_IMAGE oslSetImageRotCenter(OSL_IMAGE osl_img) { OSL_IMAGE dis = osl_img; dis.centerX = dis.sizeX/2; dis.centerY = dis.sizeY/2; return dis; } OSL_IMAGE oslSetImageTileSize(OSL_IMAGE img_param, int sx, int sy, int w, int h) { OSL_IMAGE dis; dis = img_param; dis.asset = al_create_sub_bitmap(dis.asset, sx, sy, w, h); dis.sizeX = w; dis.sizeY = h; dis.stretchX = w; dis.stretchY = h; return dis; } OSL_IMAGE LoadImg(const char *filename) { OSL_IMAGE dis; dis.asset = al_load_bitmap(filename); dis.sizeX = al_get_bitmap_width(dis.asset); dis.sizeY = al_get_bitmap_height(dis.asset); dis.x = 0; dis.y = 0; dis.stretchX = dis.sizeX; dis.stretchY = dis.sizeY; dis.centerX = 0; dis.centerY = 0; dis.angle = 0; dis.R=255; dis.G=255; dis.B=255; dis.trans=255; return dis; } OSL_IMAGE oslCreateImage(int w, int h) { OSL_IMAGE dis; dis.asset = al_create_bitmap(w, h); dis.sizeX = al_get_bitmap_width(dis.asset); dis.sizeY = al_get_bitmap_height(dis.asset); dis.x = 0; dis.y = 0; dis.stretchX = dis.sizeX; dis.stretchY = dis.sizeY; dis.centerX = 0; dis.centerY = 0; dis.angle = 0; dis.R=255; dis.G=255; dis.B=255; dis.trans=255; return dis; } int random(int k) { return rand()%k; } int swirl_collide(int px, int py, int gudule, int mgsy) { if ((px-(gudule))*(px-(gudule))+(py-(mgsy))*(py-(mgsy)) <= 512) return 1; else return 0; } struct ball initball() { struct ball abadgh; abadgh.x2d=random(320)+80; //x abadgh.y2d=170; //y abadgh.speed_v=-1; //vy abadgh.speed_h=0; //vx abadgh.speed_z=2; //vz abadgh.angle=0; // abadgh.z3d=2; //z abadgh.poisoned=0; return abadgh; } struct pie_entity initpie() { struct pie_entity abadgh; abadgh.pie_facemode=0; abadgh.pie_direction=0; abadgh.pie_x=128; abadgh.pie_y=136; return abadgh; } struct ball apply_impulse(struct ball ball_arg, float v, float v2, float angle) { struct ball dis = ball_arg; dis.speed_h = v; dis.speed_v = -v2; return dis; } int getScreenRatio() { ALLEGRO_MONITOR_INFO proutzob; RESOLUTION res; int a,b; al_get_monitor_info(0, &proutzob); a=(proutzob).x2 - (proutzob).x1 + 1; b=(proutzob).y2 - (proutzob).y1 + 1; res.rx = a; res.ry = b; return (a*100)/b; } OSL_IMAGE oslDeleteImage(OSL_IMAGE image) { OSL_IMAGE dis = image; al_destroy_bitmap(dis.asset); return dis; } void oslSetTextColor(ALLEGRO_COLOR col) { current_col = col; } void oslDrawString(float x, float y, const char *text) { al_draw_text(freesans, current_col, x, y, 0, text); } void spr_draw(OSL_IMAGE image, float x, float y) { al_draw_tinted_scaled_rotated_bitmap(image.asset, al_map_rgba(image.R, image.G, image.B, image.trans), image.centerX, image.centerY, x, y, (image.stretchX)/(image.sizeX), (image.stretchY)/(image.sizeY), (image.angle)/60, 0); image.x = x; image.y = y; } OSL_MOD oslLoadSoundFileMOD(const char *filename) { OSL_MOD dis; dis.stream = al_load_audio_stream(filename, 10, 1024); al_attach_audio_stream_to_mixer(dis.stream, mixer); return dis; } void oslSetSoundLoopMOD(OSL_MOD sound, short yesno) { if (yesno == 1) al_set_audio_stream_playmode(sound.stream,ALLEGRO_PLAYMODE_LOOP); else al_set_audio_stream_playmode(sound.stream, ALLEGRO_PLAYMODE_ONCE); } void oslPlaySoundMOD(OSL_MOD sound) { al_set_audio_stream_playmode(sound.stream, ALLEGRO_PLAYMODE_LOOP); al_set_audio_stream_playing(sound.stream, true); } void oslStopSoundMOD(OSL_MOD sound) { al_set_audio_stream_playing(sound.stream, false); } void oslDeleteSoundMOD(OSL_MOD sound) { oslStopSoundMOD(sound); al_destroy_audio_stream(sound.stream); } OSL_SOUND oslLoadSoundFile(const char *filename) { OSL_SOUND dis; dis.ref = al_load_sample(filename); dis.instance = al_create_sample_instance(dis.ref); al_set_sample_instance_playmode(dis.instance, ALLEGRO_PLAYMODE_ONCE); al_attach_sample_instance_to_mixer(dis.instance, mixer); return dis; } void oslSetSoundLoop(OSL_SOUND sound, short yesno) { if (yesno == 1) al_set_sample_instance_playmode(sound.instance,ALLEGRO_PLAYMODE_LOOP); else al_set_sample_instance_playmode(sound.instance,ALLEGRO_PLAYMODE_ONCE); } void oslPlaySound(OSL_SOUND sound) { if (!al_play_sample_instance(sound.instance)) oslDrawString(0, 0, "could not play sound!"); } void oslStopSound(OSL_SOUND sound) { al_stop_sample_instance(sound.instance); } void oslDeleteSound(OSL_SOUND sound) { oslStopSound(sound); al_destroy_sample_instance(sound.instance); } void oslStartDrawing() { al_set_target_bitmap(psp_screen); } void oslEndDrawing() { al_set_target_bitmap(al_get_backbuffer(display)); al_draw_scaled_bitmap(psp_screen, 0, 0, 480, 272, 0, (al_get_display_height(display)-al_get_display_width(display)*9/16)/2, al_get_display_width(display), al_get_display_width(display)*9/16, 0); } OSL_IMAGE oslSetAlpha(OSL_IMAGE gfx, int trans_p) { OSL_IMAGE dis = gfx; dis.trans = trans_p; return dis; } OSL_IMAGE oslSetTint(OSL_IMAGE img_param, int pR, int pG, int pB) { OSL_IMAGE dis; dis = img_param; dis.R = pR; dis.G = pG; dis.B = pB; return dis; } int oslGetStringWidth(const char *text) { int j; j=al_get_text_width(freesans, text); return j; } void cls() { al_set_target_bitmap(al_get_backbuffer(display)); oslDrawFillRect(0,0, al_get_display_width(display), al_get_display_height(display), _RGB(0, 0, 0)); oslSwapBuffers(); al_set_target_bitmap(psp_screen); } void fadeout() { int i; al_set_target_bitmap(al_get_backbuffer(display)); for (i=0; i<80; i++) { oslDrawFillRect(0,0, al_get_display_width(display), al_get_display_height(display), _RGBA(0, 0, 0, i)); oslSwapBuffers(); oslWaitVSync(); } al_set_target_bitmap(psp_screen); } void draw_benj(OSL_IMAGE benj, int px, int py, short shielded, OSL_IMAGE shield) { float court_zoom = 0.00192*(py+32) + 0.562; shield.stretchX = (int)(48*(float)court_zoom); shield.stretchY = (int)(48*(float)court_zoom); if ((benj.angle) == -90) { spr_draw(benj, px-16, py+88); } else if ((benj.angle) == 90) { spr_draw(benj, px+64, py+32); } else if ((benj.angle) == 0) spr_draw(benj, px, py); if (shielded) { shield.trans=128; spr_draw(shield, px+4, py+16); } } void amigatext(const char *arg, int x, int y, OSL_IMAGE amigafont, int width, int height) { int i, l=strlen(arg), tx=x, placex=(amigafont.sizeX)/width; OSL_IMAGE singlechar; for(i=0; i -32) c--; else c=0; if (frame > 180) { /*if (frame < 428) { if (d > 255) oslSetAlpha(OSL_FX_DEFAULT, 0); else oslSetAlpha(OSL_FX_ALPHA, d); } else { oslSetAlpha(OSL_FX_ALPHA, 684-frame); }*/ oslSetTextColor(_RGB(255, 255, 255)); for (a=0; a<5; a++) oslDrawString(b, 100+a*20, texts[a]); amigatext("A.C. 2014", b, 132, amiga, 16, 22); amigatext("240-185", b, 192, amiga, 16, 22); if (b > 264) b -= 4; if (d < 255) d += 2; } } if ((frame >= 684) && (frame < 1368)) { if ((frame==684) || (frame == 1032)) { d=-12; trans=0; } oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64)); for(a=0; a<16; a++) { oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255)); if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255)); } if (c > -32) c--; else c=0; //oslSetAlpha(OSL_FX_ALPHA, trans); if (trans < 252) trans+=4; if (frame < 1032) { b=oslGetStringWidth(texts[5]); oslDrawString((480-b)/2, d, texts[5]); amigatext("240-185", 184, d+32, amiga, 16, 22); } else { b=oslGetStringWidth(texts[6]); oslDrawString((480-b)/2, d, texts[6]); amigatext("BRUNNI", 192, d+32, amiga, 16, 22); } if (d < 66) d += 2; } if ((frame >= 1368) && (frame <= 2735)) { temp_gfx.stretchX = 480; temp_gfx.centerX = 0; temp_gfx.centerY = 0; oslStartDrawing(); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); if (f < 21) { b=oslGetStringWidth(texts[f]); oslDrawString(240+(240-b)/2, 120, texts[f]); b=strlen(texts[f+1])*16; amigatext(texts[f+1], 240+(240-b)/2, 144, amiga, 16, 22); spr_draw(giygas, 120, 136); } temp_gfx=oslSetImageRotCenter(temp_gfx); temp_gfx.stretchX = d; temp_gfx.stretchY = (int)((float)(0.57)*d); if (frame == 1368) { d=0; e=136; } spr_draw(temp_gfx, 240, e); if (temp_gfx.stretchX > 1280) e += 8; else e=136; if (temp_gfx.stretchX < 1536) d += 8; else { f += 2; d=0; } oslEndDrawing(); } if ((frame >= 2736) && (frame < 3422)) { if (frame == 2736) { a=0; b=1; c=0; } spr_draw(sonicexe, 204, 20+16*sin(0.0625*frame)); switch(c) { case 0: oslDrawString(198, 136, "SONIC.EXE by"); amigatext("CRIMSON THE BAT", (480-strlen("CRIMSON THE BAT")*16)/2, 150, amiga, 16, 22); break; case 1: amigatext("SYMBIOTICFEDORAGEEK", (480-strlen("SYMBIOTICFEDORAGEEK")*16)/2, 150, amiga, 16, 22); break; case 2: amigatext("SHADOWNINJA976", (480-strlen("SHADOWNINJA976")*16)/2, 150, amiga, 16, 22); break; case 3: amigatext("HICHIGO1989", (480-strlen("HICHIGO1989")*16)/2, 150, amiga, 16, 22); break; default: break; } if (c>0) oslDrawString((480-strlen("SONIC.EXE DeviantArts by:")*6)/2, 136, "SONIC.EXE DeviantArts by:"); for(i=0; i<32; i++) { spr_draw(flappy_redhill, a+i*16, 224); } a--; if (a == -16) a=0; b++; if ((!(b%172)) && (c<3)) c++; } if ((frame >= 3422) && (frame < 3764)) { _1in24=oslSetImageRotCenter(_1in24); _1in24.angle = 16*sin(0.0625*frame); spr_draw(_1in24, 240, 136); oslDrawString(0, 0, "Weird movies stills taken from:"); amigatext("STUART ASHEN", 0, 30, amiga, 16, 22); amigatext("1IN24.TUMBLR.COM", 0, 60, amiga, 16, 22); } if ((frame >= 3764) && (frame < 4105)) { if (frame == 3764) { aa=oslSetImageRotCenter(aa); } aa.angle = 16*sin(0.0625*frame); spr_draw(aa, 240, 136); oslDrawString(0, 0, "High-pitched Pookeymon Theme by"); amigatext("DAN TOMLINSON", 0, 24, amiga, 16, 22); oslDrawString(0, 60, "Taken from animation 'POKEMON SHOWDOWN'"); } if ((frame >= 4105) && (frame < 4447)) { if (frame == 4105) { bb=oslSetImageRotCenter(bb); } bb.angle = 16*sin(0.0625*frame); spr_draw(bb, 240, 136); oslDrawString(0, 0, "Scene from 'Pikachu on Acid' taken from:"); amigatext("HIGH5TOONS", 0, 24, amiga, 16, 22); } if ((frame >= 4447) && (frame < 5473)) { if (frame == 4447) { c=0; } oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64)); for(a=0; a<16; a++) { oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255)); if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255)); } temp_benj=oslSetImageTileSize(benj, (benj_frame%8)*32, 48, 32, 48); temp_benj.stretchX = 96; temp_benj.stretchY = 144; temp_benj.trans=16; spr_draw(temp_benj, 192, 90); if (c > -32) c--; else c=0; if (frame <= 5090) { amigatext("SO, THERE WE ARE. I HAD TO", 0, 20, amiga, 16, 22); amigatext("TRAVEL FOR 700 KMS IN ORDER TO", 0, 42, amiga, 16, 22); amigatext("PRESENT MY SECOND HOMEBREW ON", 0, 64, amiga, 16, 22); amigatext("PSP.", 0, 86, amiga, 16, 22); amigatext("LITTLE DID I KNOW I HAD TO", 0, 130, amiga, 16, 22); amigatext("DEAL WITH A 2 PLAYER MODE ON A", 0, 152, amiga, 16, 22); amigatext("PORTABLE CONSOLE! LUCKILY, I", 0, 174, amiga, 16, 22); amigatext("WAS ADDICTED TO A MOBA GAME", 0, 196, amiga, 16, 22); amigatext("CALLED ...", 0, 218, amiga, 16, 22); } else { amigatext("...AND THE IMPLEMENTATION OF", 0, 24, amiga, 16, 22); amigatext("A MOBA UI WAS A BREEZE. ", 0, 46, amiga, 16, 22); amigatext("THE MORAL OF THE STORY IS TO", 0, 90, amiga, 16, 22); amigatext("NEVER PREPARE YOUR PRODUCTION", 0, 112, amiga, 16, 22); amigatext("WAAAAAAAAAAY BEFORE THE CON", 0, 134, amiga, 16, 22); amigatext("BEGINS!", 0, 156, amiga, 16, 22); } } if ((frame >= 5473) && (frame < 8894)) { if (frame == 5473) { d=480; i=0; } oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64)); for(a=0; a<16; a++) { oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255)); if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255)); } temp_benj = oslSetImageTileSize(benj, (benj_frame%8)*32, 48, 32, 48); temp_benj.stretchX = 96; temp_benj.stretchY = 144; temp_benj.trans=192; spr_draw(temp_benj, 192, 90); if (c > -32) c--; else c=0; oslDrawString(201, 4, "Greetings to:"); amigatext(greeted[i], d, 136+32*sin(0.0625*frame), amiga, 16, 22); d=(int)(d-5.5); if ((d <= -288) && (i<23)) { d=480; i++; } } if (frame >= 8894) { //if (frame < 10260) oslSetAlpha(OSL_FX_DEFAULT, 0); else oslSetAlpha(OSL_FX_ALPHA, trans); a = 54+32*sin(0.0625*frame); b = 296+32*cos(0.0625*frame); spr_draw(gml, a, 32); spr_draw(twt, b, 32); amigatext("@240185", 304+32*cos(0.0625*frame), 187, amiga, 16, 22); amigatext("ROUNDSOFTSTUDIO", 0, 172, amiga, 16, 22); amigatext("@ GMAIL.COM", 32+32*sin(0.0625*frame), 202, amiga, 16, 22); if (frame >= 9582) { if (frame == 9582) { c=480; trans=255; } oslDrawString(c, 256, "See you @ A.C. 2015 for my next project for PSP: THE FIFTH AXIS! Discover a twisted theory about time travel!"); c -= 2; } if ((frame >= 10260) && (trans > 0)) trans--; } oslEndDrawing(); //frame_debug(frame); } oslSwapBuffers(); oslWaitVSync(); frame++; if (!(frame%4)) benj_frame++; } oslStopSoundMOD(theme); oslDeleteSoundMOD(theme); oslDeleteImage(aipc); oslDeleteImage(amiga); oslDeleteImage(gml); oslDeleteImage(twt); oslDeleteImage(temp_gfx); oslDeleteImage(giygas); oslDeleteImage(sonicexe); oslDeleteImage(flappy_redhill); oslDeleteImage(_1in24); oslDeleteImage(aa); oslDeleteImage(bb); for (i=0; i<4; i++) { oslDeleteImage(iamgod[i]); } fadeout(); } short sonicexe2(int diff) { int i, rects=1, sc=0, bx=240, frame=0, bouss=0; short reussi=0; OSL_IMAGE bg, pass, buttons, sexe2, slyexe; OSL_IMAGE temp_benj; OSL_SOUND oof = oslLoadSoundFile("./sfx/sfx-0009.wav"); OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); OSL_SOUND kte = oslLoadSoundFile("./sfx/kte.wav"); OSL_SOUND sallyexe = oslLoadSoundFile("./sfx/sallyexe.wav"); sexe2 = LoadImg("./gfx/sonicexe2.png"); bg = LoadImg("./gfx/gfx-0776.png"); pass = LoadImg("./gfx/gfx-0718.png"); buttons = LoadImg("./gfx/arrows.png"); slyexe = LoadImg("./gfx/sallyexe.png"); sexe2=oslSetImageRotCenter(sexe2); buttons=oslSetImageRotCenter(buttons); pass=oslSetImageRotCenter(pass); oslSetSoundLoop(kte, 1); oslPlaySound(kte); while ((sc < 90*diff) && (rects < 240)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); bg.trans=160; bg.G=0; bg.B=0; spr_draw(bg, 0, 0); al_get_keyboard_state(&kbdstate); if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (bx > rects)) { temp_benj=oslSetImageTileSize(benj,(abs(frame%32)/4)*32,144,32,48); temp_benj.stretchX = 64; temp_benj.stretchY = 96; bx -= 4; if (bouss==0) { bouss=1; sc++; } } else if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (bx < (448-(rects+1)))) { temp_benj=oslSetImageTileSize(benj,(abs(frame%32)/4)*32,48,32,48); bx += 4; if (bouss==1) { bouss=0; sc++; } } else { temp_benj=oslSetImageTileSize(benj,0,192,32,48); } spr_draw(sexe2, 240+4*sin(0.0625*frame), 64); spr_draw(buttons, 240, 136); temp_benj.stretchX = 64; temp_benj.stretchY = 96; temp_benj.R = temp_benj.G = temp_benj.B = 0; spr_draw(temp_benj, bx, 176); oslDrawFillRect(0, 0, rects+1, 272, _RGB(0,0,0)); oslDrawFillRect(480, 0, 480-(rects+1), 272, _RGB(0,0,0)); oslDrawFillRect(0, 0, 480, rects+1, _RGB(0,0,0)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; if (!(frame%(20-((diff-1)*5)))) rects++; if (bx < rects) bx=rects+4; if (bx > (448-(rects+1))) bx=443-rects; } if (sc >= 90*diff) { for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } reussi=1; } else { al_set_sample_instance_position(sallyexe.instance, 16); oslPlaySound(sallyexe); while (al_get_sample_instance_position(sallyexe.instance)) { oslStartDrawing(); spr_draw(slyexe, 0, 0); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteSound(kte); oslDeleteImage(sexe2); oslDeleteImage(bg); oslDeleteImage(pass); oslDeleteSound(oof); oslDeleteSound(passs); oslDeleteSound(sallyexe); oslDeleteImage(slyexe); return reussi; } short sonicexe(int diff) { short reussi=0, rebound=0; int i, j=0, k=0, l=20, benj_frame=0, bgx=0, flx=0, bb, by, sedx=80, sedy=16; OSL_IMAGE iamgod, sonicexebg, sonicexefloor, sonicexe_d, buttons, pass; OSL_IMAGE temp_benj, temp_butt; OSL_SOUND drowning; OSL_SOUND oof; OSL_SOUND passs; char buffer[20]; i=random(4)+1; bb=random(4); sprintf(buffer,"./gfx/iamgod%d.png",i); iamgod = LoadImg(buffer); iamgod = oslSetImageRotCenter(iamgod); sonicexebg = LoadImg("./gfx/gfx-0973.png"); sonicexefloor = LoadImg("./gfx/gfx-0974.png"); buttons = LoadImg("./gfx/buttons_pc.png"); sonicexe_d = LoadImg("./gfx/sonicexe.png"); pass = LoadImg("./gfx/gfx-0718.png"); pass = oslSetImageRotCenter(pass); drowning = oslLoadSoundFile("./sfx/sfx-0146.wav"); oof = oslLoadSoundFile("./sfx/sfx-0009.wav"); passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); al_set_sample_instance_position(drowning.instance, 2); oslPlaySound(drowning); while ((al_get_sample_instance_position(drowning.instance)) && (j < 95*diff)) { if (k > 96) l = 18; if (k > 188) l = 16; if (k > 262) l = 14; if (k > 342) l = 12; if (k > 390) l = 10; if (k > 462) l = 8; if (k > 516) l = 6; if (k > 600) l = 4; if (k%l < (l/2)) by=0; else by=32; if (!(k%10)) { sedx++; sedy++; } oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(sonicexebg, bgx, 8); spr_draw(sonicexefloor, flx, 248); spr_draw(sonicexebg, bgx+480, 8); spr_draw(sonicexefloor, flx+480, 248); spr_draw(sonicexe_d, sedx, sedy); temp_benj = oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48); temp_butt = oslSetImageTileSize(buttons,bb*32,by,32,32); temp_benj.stretchX = 64; temp_benj.stretchY = 96; temp_butt.stretchX = temp_butt.stretchY = 64; spr_draw(temp_benj, 360, 152); spr_draw(temp_butt, 368, 82); /*sprintf(buffer,"%d %d", l, (int)oslGetRamStatus().maxAvailable); oslDrawString(0,8,buffer);*/ oslEndDrawing(); oslSwapBuffers(); al_get_keyboard_state(&kbdstate); if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_X))) rebound=0; if ((!rebound) && ((bb==0) && (al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL))) || ((bb==1) && (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) || ((bb==2) && (al_key_down(&kbdstate, ALLEGRO_KEY_C))) || ((bb==3) && (al_key_down(&kbdstate, ALLEGRO_KEY_X)))) { j++; rebound=1; } if (!(k%4)) benj_frame++; bgx -= 4; flx -= 8; if (bgx == -480) bgx=0; if (flx == -480) flx=0; k++; oslWaitVSync(); } if (j >= 95*diff) { for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } reussi=1; } else { k=255; for (i=sedx; i<360; i+=5) { oslStartDrawing(); bgx--; flx -= 2; spr_draw(sonicexebg, bgx, 8); spr_draw(sonicexefloor, flx, 248); spr_draw(sonicexebg, bgx+480, 8); spr_draw(sonicexefloor, flx+480, 248); spr_draw(temp_benj, 360, 152); sonicexe_d.trans = k; spr_draw(sonicexe_d, i, sedy); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); k -= 8; if (k<0) k=0; if (sedy < 168) sedy++; } for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(oof); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(iamgod,240,136); oslEndDrawing(); oslSwapBuffers(); fadeout(); } oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteImage(iamgod); oslDeleteImage(sonicexebg); oslDeleteImage(sonicexefloor); oslDeleteImage(sonicexe_d); oslDeleteImage(buttons); oslDeleteImage(pass); oslDeleteSound(oof); oslDeleteSound(drowning); oslDeleteSound(passs); return reussi; } short mincer(int diff) { short reussi=0, floor=-1, score=0, rebound=0; int i, skipframe=0, by=-36, bgy=0, my=404, minced=0, bb=random(4); OSL_IMAGE mincer[3]; OSL_IMAGE benj_mincer; OSL_IMAGE buttons; OSL_IMAGE pass; OSL_IMAGE temp_mincer, temp_butt, temp_m; OSL_SOUND passs; OSL_SOUND mincing; OSL_SOUND rightwrong[2]; buttons = LoadImg("./gfx/buttons_pc.png"); pass = LoadImg("./gfx/gfx-0718.png"); mincer[0] = LoadImg("./gfx/mincer_bg.png"); mincer[1] = LoadImg("./gfx/mincer.png"); mincer[2] = LoadImg("./gfx/mincer_fg.png"); passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); mincing = oslLoadSoundFile("./sfx/sfx-0081.wav"); rightwrong[0] = oslLoadSoundFile("./sfx/right.wav"); rightwrong[1] = oslLoadSoundFile("./sfx/wrong.wav"); benj_mincer = LoadImg("./gfx/benj_mincer.png"); pass=oslSetImageRotCenter(pass); temp_mincer=oslSetImageTileSize(benj_mincer,0,0,29,34); temp_mincer.stretchX = temp_mincer.stretchY = 58; while ((floor <= (-2*diff+12)) && (score < (2*diff+3))) { if (!skipframe) { oslStartDrawing(); temp_butt=oslSetImageTileSize(buttons,bb*32,0,32,32); temp_butt.stretchX = temp_butt.stretchY = 64; if (floor == -1) { oslDrawFillRect(0,0,480,272, _RGB(0,0,32)); spr_draw(mincer[0], 80, 0); spr_draw(mincer[0], 80, 240); spr_draw(temp_mincer, 215, by); by += 4; if (by==136) floor=0; } else if (floor >= 0) { oslDrawFillRect(0,0,480,272, _RGB(0,0,32)); spr_draw(mincer[0], 80, bgy); spr_draw(mincer[0], 80, bgy+240); if (floor >= (-2*diff+9)) { spr_draw(mincer[1], 182, my); } spr_draw(mincer[0], 80, bgy+480); if (my < -108) { temp_mincer=oslSetImageTileSize(benj_mincer,29,0,29,34); temp_mincer.stretchX = temp_mincer.stretchY = 58; } spr_draw(temp_mincer, 215, 136); if (bgy<=-240) { floor++; bgy=0; } if ((my <= 48) && (my >= -180)) { if ((!minced) && (my==48)) { if (!(al_get_sample_instance_position(mincing.instance))) oslPlaySound(mincing); score=0; } switch(minced) { case 0: case 2: { bgy -= 2; if (floor >= (-2*diff+9)) { temp_m=oslSetImageTileSize(mincer[0],0,0,101,240); spr_draw(temp_m, 80, my-164); temp_m=oslSetImageTileSize(mincer[0],226,0,94,240); spr_draw(temp_m, 306, my-164); spr_draw(mincer[2], 182, my+158); temp_m=oslSetImageTileSize(mincer[0],0,0,320,240); /*oslDrawFillRect(0,0,480,my-163, _RGB(0,0,32)); spr_draw(temp_m, 80, my-164);*/ oslDrawFillRect(400,0,480,272, _RGB(0,0,32)); my -= 2; } if ((my == -96) && (!minced)) minced=1; break; } case 1: { bgy += 2; if (floor >= (-2*diff+9)) { temp_m=oslSetImageTileSize(mincer[0],0,0,101,240); spr_draw(temp_m, 80, my-164); oslSetImageTileSize(mincer[0],226,0,94,240); spr_draw(temp_m, 306, my-164); spr_draw(mincer[2], 182, my+158); my += 2; temp_m=oslSetImageTileSize(mincer[0],0,0,320,240); oslDrawFillRect(400,0,480,272, _RGB(0,0,32)); /*oslDrawFillRect(0,0,480,my-163, _RGB(0,0,32)); spr_draw(temp_m, 80, my-164);*/ } if (my == -12) minced=2; break; } } } else { bgy -= 4; if (floor >= (-2*diff+9)) { spr_draw(mincer[2], 182, my+158); my -= 4; } al_get_keyboard_state(&kbdstate); if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_X))) rebound=0; if (my > 48) { spr_draw(temp_butt, 326, 136); if (!rebound) { if (((bb==0) && (al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL))) || ((bb==1) && (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) || ((bb==2) && (al_key_down(&kbdstate, ALLEGRO_KEY_C))) || ((bb==3) && (al_key_down(&kbdstate, ALLEGRO_KEY_X)))) { score++; bb=random(4); oslStopSound(rightwrong[0]); oslStopSound(rightwrong[1]); oslPlaySound(rightwrong[0]); rebound=1; } else if (((bb!=0) && (al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL))) || ((bb!=1) && (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) || ((bb!=2) && (al_key_down(&kbdstate, ALLEGRO_KEY_C))) || ((bb!=3) && (al_key_down(&kbdstate, ALLEGRO_KEY_X)))) { bb=random(4); oslStopSound(rightwrong[0]); oslStopSound(rightwrong[1]); oslPlaySound(rightwrong[1]); score--; rebound=1; } } } } } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } if (score == (2*diff+3)) { for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } reussi=1; } oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); for (i=0; i<3; i++) oslDeleteImage(mincer[i]); oslDeleteImage(benj_mincer); oslDeleteSound(mincing); oslDeleteSound(rightwrong[0]); oslDeleteSound(rightwrong[1]); oslDeleteImage(buttons); oslDeleteImage(pass); oslDeleteSound(passs); return reussi; } short shoot_teevees(int diff, int *health, int round) { short reussi=1, enemyx=random(2), enemyy=random(3), fired=13, hasdied=0, rebound=0; int i, j, u, frame=0, skipframe=0, hgx=208; int teevees[3][4]; //angle-ecran-y-fallspeed OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); OSL_SOUND dead = oslLoadSoundFile("./sfx/sfx-0025.wav"); OSL_SOUND pew = oslLoadSoundFile("./sfx/sfx-0100.wav"); OSL_SOUND oof = oslLoadSoundFile("./sfx/sfx-0101.wav"); OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0017.wav"); OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png"); OSL_IMAGE bg = LoadImg("./gfx/gfx-0776.png"); OSL_IMAGE teevee = LoadImg("./gfx/teevee.png"); OSL_IMAGE teevee_targets = LoadImg("./gfx/teevee_targets.png"); OSL_IMAGE numberz = LoadImg("./gfx/numberz.png"); OSL_IMAGE handgun = LoadImg("./gfx/handgun.png"); OSL_IMAGE explode = LoadImg("./gfx/explode.png"); OSL_IMAGE temp_h, temp, temp_tv, temp_no; temp = oslCreateImage(128, 96); pass=oslSetImageRotCenter(pass); temp=oslSetImageRotCenter(temp); oslSetSoundLoop(ambient, 1); oslDrawFillRect(0,0, 480,272, _RGB(0,0,0)); for (i=0; i<3; i++) { teevees[i][0]=random(180)-90; teevees[i][1]=random(2); teevees[i][2]=-1*random(128)-128; teevees[i][3]=diff+1+random(3); } temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64); oslPlaySound(ambient); while (frame < 900*diff) { if (!skipframe) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(bg, 0, 0); oslSetTextColor(_RGB(255, 255, 255)); oslDrawString(160, 2, "Shoot the TVs with that screen:"); temp_tv=oslSetImageTileSize(teevee_targets, 99*enemyx, 71*enemyy, 99, 71); temp_tv.stretchX = 50; temp_tv.stretchY = 35; spr_draw(temp_tv, 215, 14); teevee_targets.stretchX = 99; teevee_targets.stretchY = 71; explode.stretchX = 128; explode.stretchY = 96; temp_no=oslSetImageTileSize(numberz,160,0,16,16); spr_draw(temp_no, 2, 2); for (i=0; i<3; i++) { al_set_target_bitmap(temp.asset); temp_tv=oslSetImageTileSize(teevee_targets, teevees[i][1]*99, 71*enemyy, 99, 71); spr_draw(teevee, 0, 0); spr_draw(temp_tv, 14, 10); al_set_target_bitmap(psp_screen); temp.angle = teevees[i][0]; spr_draw(temp, 160*i+80, teevees[i][2]); teevees[i][2] += teevees[i][3]; if (teevees[i][2] > (336+((int)128*(sin(teevee.stretchX)*3.14/180)))) { if (teevees[i][1]==enemyx) { *health -= 12*diff; if ((*health <= 0) && (!hasdied)) { oslPlaySound(dead); hasdied=1; frame=900*diff-131; } } teevees[i][0]=random(180)-90; teevees[i][1]=random(2); teevees[i][2]=-1*random(128)-128; teevees[i][3]=diff+1+random(3); } } if (*health > 0) spr_draw(temp_h, hgx, 211+((int)3*sin(0.0625*frame))); else spr_draw(temp_h, hgx, 211+((int)3*sin(frame))); al_get_keyboard_state(&kbdstate); if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (hgx > 8) && (*health > 0)) hgx-=8; if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (hgx < 408) && (*health > 0)) hgx+=8; if (fired < 13) { fired--; if ((teevees[hgx/160][1]==enemyx) && (teevees[hgx/160][2] > 140)) { spr_draw(explode, 160*i+80, teevees[hgx/160][2]); } if (fired > 9) { temp_h=oslSetImageTileSize(handgun, 64, 0, 64, 64); spr_draw(temp_h, hgx, 211+((int)3*sin(0.0625*frame))); } else { temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64); if (fired==8) { if ((teevees[hgx/160][1]==enemyx) && (teevees[hgx/160][2] > 140)) { teevees[hgx/160][0]=random(180)-90; teevees[hgx/160][1]=random(2); teevees[hgx/160][2]=-1*random(128)-128; teevees[hgx/160][3]=diff+1+random(3); *health += 2*(4-diff); if (*health >= 100) *health=100; } } } } if (!fired) { fired=13; temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64); } if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) rebound=0; if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (fired==13) && (*health > 0) && (!rebound)) { fired--; oslStopSound(pew); oslPlaySound(pew); rebound=1; if ((teevees[hgx/160][1]!=enemyx) && (teevees[hgx/160][2] > 140)) { *health -= 6*diff; oslPlaySound(oof); } } i=random(15); u=18; if (*health <= 0) { *health=0; } if (*health < 25) j=16; else j=0; if (*health / 100) { temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (*health > 9) { if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,((*health%100)/10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,((*health%100)/10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,(*health%10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,(*health%10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); frame++; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } if (*health > 0) { oslStopSound(ambient); for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } else reussi=0; oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteImage(bg); oslDeleteImage(pass); oslDeleteImage(teevee); oslDeleteImage(teevee_targets); oslDeleteImage(handgun); oslDeleteImage(temp); oslDeleteImage(numberz); oslDeleteImage(explode); oslDeleteSound(passs); oslDeleteSound(dead); oslDeleteSound(pew); oslDeleteSound(ambient); oslDeleteSound(oof); return reussi; } short flappy_cacodemon(int diff) { short reussi=1, bunk=0, bgx=0, ghgx=0, dead=0, cacoy=32, pressed=26, mess=0, rebound=0; int i, frame=0, skipframe=0, growl=random(360)+35, postree=0, gu; int walls[7]={0,0,0,0,0,0,random(100)}; OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png"); OSL_IMAGE cacod = LoadImg("./gfx/cacodemon.png"); OSL_IMAGE pot = LoadImg("./gfx/pot.png"); OSL_IMAGE pot_edge = LoadImg("./gfx/pot_edge.png"); OSL_IMAGE flappy_bg = LoadImg("./gfx/flappy_bg.png"); OSL_IMAGE flappy_redhill = LoadImg("./gfx/flappy_redhill.png"); OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0017.wav"); OSL_SOUND caco_sfx[2]; OSL_IMAGE temp_cacod; caco_sfx[0]= oslLoadSoundFile("./sfx/cacogrowl.wav"); caco_sfx[1]= oslLoadSoundFile("./sfx/cacodie.wav"); temp_cacod=oslSetImageTileSize(cacod, 0, 0, 64, 64); temp_cacod=oslSetImageRotCenter(temp_cacod); temp_cacod.y=32; pass=oslSetImageRotCenter(pass); oslSetSoundLoop(ambient, 1); oslPlaySound(ambient); oslSetTextColor(_RGB(0,0,0)); while ((frame < 300*diff+300) && (dead < 5)) { if (!(frame%growl)) { growl=random(360)+35; oslPlaySound(caco_sfx[0]); } if (!skipframe) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); for (i=0; i<5; i++) spr_draw(flappy_bg, bgx+i*138, 128); if (!bunk) { for (i=6; i>=0; i--) { if (walls[i]) { pot.stretchY = walls[i]; spr_draw(pot, i*80-(postree%80), 230-walls[i]); spr_draw(pot_edge, i*80-(postree%80), 230-walls[i]); pot.stretchY = 94-walls[i]; spr_draw(pot, i*80-(postree%80), 0); spr_draw(pot_edge, i*80-(postree%80), 94-walls[i]); } } } if ((!bunk) && (!dead)) { if ((postree%80) == (80-((diff==1)?1:((diff==2)?2:4)))) { for (i=0; i<7; i++) { if (i < 6) { if (walls[i+1]) walls[i]=walls[i+1]; } else { walls[6]=walls[5]+(random(2)?1:-1)*random(32); if (walls[6] < 32) walls[6]=32; if (walls[6] > 110) walls[6]=110; } } } } for(i=0; i<32; i++) { spr_draw(flappy_redhill, ghgx+i*16, 224); } if (!bunk) { if (!(frame%2)) { temp_cacod.angle = 8*sin(0.15*frame); } spr_draw(temp_cacod, 40, temp_cacod.y); } else { if ((!(frame%9))) dead++; gu=temp_cacod.y; temp_cacod=oslSetImageTileSize(temp_cacod, 64*dead, 0, 64, 64); temp_cacod=oslSetImageRotCenter(temp_cacod); temp_cacod.y=gu; spr_draw(temp_cacod, 40, temp_cacod.y); if (dead==1) { oslPlaySound(caco_sfx[1]); } } if (!mess) oslDrawString(200, 18, "MAKE HIM FLY!"); al_get_keyboard_state(&kbdstate); if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) rebound=0; if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (!rebound) && (!dead)) { pressed=0; if (!mess) mess=1; rebound=1; } pressed++; if ((temp_cacod.y > 35) && (pressed < (-4*diff+28))) temp_cacod.y -= diff; if ((!dead) && (pressed > (-4*diff+28))) temp_cacod.y += diff; if (!bunk) { if (!(frame%2)) bgx -= diff+1; ghgx -= (diff+1); if (bgx <= -138) bgx=0; if (ghgx <= -16) ghgx=0; } if ((temp_cacod.y > 192) && (!bunk)) { bunk=1; frame=0; } if ((walls[1]) && ((temp_cacod.y)-24 <= 102-walls[1]) && (!bunk) && (postree%80 < 40)) { bunk=1; frame=0; } if ((walls[1]) && ((temp_cacod.y)+24 >= 230-walls[1]) && (!bunk) && (postree%80 < 40)) { bunk=1; frame=0; } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } frame++; if (!bunk) { postree += ((diff==1)?1:((diff==2)?2:4)); } } while (al_get_sample_instance_position(caco_sfx[1].instance)) { al_rest(0.016); oslWaitVSync(); }; if (!bunk) { oslStopSound(ambient); for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } else reussi=0; oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteImage(cacod); oslDeleteImage(flappy_bg); oslDeleteImage(flappy_redhill); oslDeleteImage(pot); oslDeleteImage(pot_edge); oslDeleteSound(ambient); oslDeleteImage(pass); oslDeleteSound(passs); oslDeleteSound(caco_sfx[0]); oslDeleteSound(caco_sfx[1]); return reussi; } short love_boat(int diff) { short reussi=1, alive=1, bx=240, boat_x=random(320)+80, sens; int i, frame, a=0; OSL_IMAGE boat = LoadImg("./gfx/boat.png"); OSL_IMAGE boat_blood = LoadImg("./gfx/boat_blood.png"); OSL_SOUND boat_sfx = oslLoadSoundFile("./sfx/boat.wav"); OSL_SOUND sflartch = oslLoadSoundFile("./sfx/beng-0037.wav"); OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png"); OSL_IMAGE temp_benj; OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav"); OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0061.wav"); pass=oslSetImageRotCenter(pass); boat=oslSetImageRotCenter(boat); boat_blood=oslSetImageRotCenter(boat_blood); oslSetSoundLoop(ambient, 1); oslPlaySound(ambient); frame = -1*random(540)-240; if (diff == 3) { if (boat_x%4) { boat_x += 4-(boat_x%4); } } while (frame < 255) { if (!frame) oslPlaySound(boat_sfx); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(16,0,0)); if (diff==3) { if (frame == 92) { a = bx+32; } else if (frame > 92) { if (boat_x > a) boat_x -= 4; if (boat_x < a) boat_x += 4; } } else if (diff==2) { sens=random(2); if ((sens) && (boat_x < (400-(boat.stretchX)/2))) boat_x += 4; if ((!sens) && (boat_x > (boat.stretchX)/2)) boat_x -=4; } if (frame >= 0) { boat.trans=frame; boat.stretchX = frame*2; boat.stretchY = (int)((float)1.5*(boat.stretchX)); spr_draw(boat, boat_x, 96); } al_get_keyboard_state(&kbdstate); if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (bx > 0)) { temp_benj = oslSetImageTileSize(benj,(abs(frame%32)/4)*32,144,32,48); bx -= 4; } else if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (bx < 448)) { temp_benj = oslSetImageTileSize(benj,(abs(frame%32)/4)*32,48,32,48); bx += 4; } else { temp_benj = oslSetImageTileSize(benj,0,192,32,48); } temp_benj.stretchX = 64; temp_benj.stretchY = 96; if (alive) spr_draw(temp_benj, bx, 176); if (((boat.stretchX) >= 200)) { if ((alive) && ((bx+32) >= (boat_x-((boat.stretchX)/4))) && ((bx+32) <= (boat_x+((boat.stretchX)/4)))) { alive=0; oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslPlaySound(sflartch); } } if (!alive) { spr_draw(boat_blood, 240, 136); } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } if (alive) { for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslPlaySound(passs); for (i=135; i<=272; i+=24) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(pass,240,136); pass.stretchX = pass.stretchY = i; oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } else reussi=0; oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteImage(boat); oslDeleteImage(boat_blood); oslDeleteSound(boat_sfx); oslDeleteImage(pass); oslDeleteSound(passs); oslDeleteSound(sflartch); oslDeleteSound(ambient); return reussi; } void draw_ball(struct ball ball_ent, OSL_IMAGE ball_gfx, OSL_IMAGE ball_shad) { float yr = pow((ball_ent.y2d - 160) / HAUT_FIELD, 1.4f) * HAUT_FIELD + 160; float x_pr_centre = ball_ent.x2d - 240; float x_percent = x_pr_centre / 240; float y_percent = (272-yr)/HAUT_FIELD; float x_mult = 240 - ESPAC_HORIZ*y_percent; float xr = x_percent * x_mult + 240; ball_gfx.stretchX = ball_gfx.stretchY = 8*(1-0.266f*y_percent); ball_shad.stretchX = ball_shad.stretchY = 8*(1-0.266f*y_percent); spr_draw(ball_gfx, ball_ent.x2d, ball_ent.y2d-ball_ent.z3d); spr_draw(ball_shad, ball_ent.x2d, ball_ent.y2d); } int shoop_da_whoop(int health, int round, int diff) { int i=480, f=0, ta=0, j, u, k=0, sc=0, a=0, b=0; short sens=0, by=0; OSL_IMAGE starsky = LoadImg("./gfx/starsky.png"); OSL_SOUND firin = oslLoadSoundFile("./sfx/sdw.wav"); OSL_SOUND sdwh = oslLoadSoundFile("./sfx/sdw2.wav"); OSL_SOUND expl_sound = oslLoadSoundFile("./sfx/sfx-0018.wav"); OSL_IMAGE buttons = LoadImg("./gfx/arrows.png"); OSL_IMAGE sdw = LoadImg("./gfx/sdw.png"); OSL_IMAGE sdw_sh = LoadImg("./gfx/sdw_sh.png"); OSL_IMAGE planet = LoadImg("./gfx/planet.png"); OSL_IMAGE numberz = LoadImg("./gfx/numberz.png"); OSL_IMAGE explode = LoadImg("./gfx/explode.png"); OSL_IMAGE temp = oslCreateImage(480, 272); OSL_IMAGE shoot = oslCreateImage(160, 60); OSL_IMAGE temp_no; temp=oslSetImageRotCenter(temp); sdw=oslSetImageRotCenter(sdw); sdw_sh=oslSetImageRotCenter(sdw_sh); planet=oslSetImageRotCenter(planet); buttons=oslSetImageRotCenter(buttons); oslPlaySound(firin); starsky=oslSetImageRotCenter(starsky); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(starsky, 240, 136); oslEndDrawing(); oslSwapBuffers(); for (i=480; i>=128; i-=4) { planet.stretchX = planet.stretchY = i; oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(starsky, 240, 136); spr_draw(planet, 240, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } for (i=480; i>=360; i-=4) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(starsky, 240, 136); spr_draw(planet, 240, 136); spr_draw(sdw, i, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } for (k=0; k<(diff+1); k++) { f=0; sc=0; if (k) { al_destroy_bitmap(shoot.asset); shoot.asset = al_create_bitmap(160, 60); al_destroy_bitmap(temp.asset); temp.asset = al_create_bitmap(480, 272); } while ((f < 270) && (health > 0)) { if ((f%30) >= 15) by=32; else by=0; oslStartDrawing(); spr_draw(sdw_sh, 240, 136); if (f < 120) { if (!(f%20)) sens=random(2); al_set_target_bitmap(temp.asset); spr_draw(sdw, 360, 136); ta += (sens)?6:-6; if (ta < 0) ta += 360; if (ta > 359) ta = ta%360; temp.angle = ta; al_get_keyboard_state(&kbdstate); if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) { sdw_sh.angle -= 12; } if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) { sdw_sh.angle += 12; } if ((sdw_sh.angle) < 0) { (sdw_sh.angle) += 360; } if ((sdw_sh.angle) > 359) { sdw_sh.angle = (float)((int)((sdw_sh.angle))%360); } /*if (((bb==0) && (osl_keys . pressed.circle)) || ((bb==1) && (osl_keys . pressed.cross)) || ((bb==2) && (osl_keys . pressed.square)) || ((bb==3) && (osl_keys . pressed.triangle))) { sc++; }*/ } if (((sdw_sh.angle - 60) < (temp.angle)) && ((sdw_sh.angle + 60) > (temp.angle)) && (f==119)) sc = 2*diff+2; if (((sdw_sh.angle - 60) < ((temp.angle)+360)) && ((sdw_sh.angle + 60) > ((temp.angle)+360)) && (f==119)) sc = 2*diff+2; if ((f >= 120) && (f <= 150)) { temp.angle = 0; shoot.angle = 0; al_set_target_bitmap(shoot.asset); oslDrawFillRect(160, 0, (-16/3)*f+800, 60, _RGB(0,0,255)); oslDrawFillRect(160, 10, (-16/3)*f+800, 50, _RGB(0,128,255)); oslDrawFillRect(160, 20, (-16/3)*f+800, 40, _RGB(0,255,255)); oslDrawFillRect(160, 23, (-16/3)*f+800, 37, _RGB(128,255,255)); oslDrawFillRect(160, 26, (-16/3)*f+800, 33, _RGB(255,255,255)); al_set_target_bitmap(temp.asset); spr_draw(shoot, 208, 116); temp.angle = ta; } if (sc == 2*diff+2) { if (f >= 150) { al_set_target_bitmap(temp.asset); spr_draw(sdw, 360, 136); if (f == 150) oslPlaySound(sdwh); if (!(f%15)) { oslStopSound(expl_sound); oslPlaySound(expl_sound); a=330+random(35); b=72+random(64); } if ((f%10) < 5) { explode.stretchX = 64; explode.stretchY = 96; spr_draw(explode, a, b); } else { explode.stretchX = 32; explode.stretchY = 48; spr_draw(explode, a+16, b+24); } } if (f > 180) f=333; } al_set_target_bitmap(psp_screen); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(starsky, 240, 136); spr_draw(temp, 240, 136); spr_draw(planet, ((f > 150) && (sc < 2*diff+1))?(238+random(5)):240, ((f > 150) && (sc < 2*diff+1))?(134+random(5)):136); spr_draw(buttons, 240, 136); spr_draw(sdw_sh, 240, 136); //if (f < 120) spr_draw(buttons, 208, 118); if ((f >= 180) && (f <= 240) && (sc < 2*diff+1)) { if (f > 180) { if (!(f%3)) health--; } if (!(f%15)) { oslPlaySound(expl_sound); a=180+random(128); b=68+random(128); } if ((f%10) < 5) { explode.stretchX = 64; explode.stretchY = 96; spr_draw(explode, a, b); } else { explode.stretchX = 32; explode.stretchY = 48; spr_draw(explode, a+16, b+24); } } i=random(15); u=18; if (health <= 0) { health=0; } temp_no=oslSetImageTileSize(numberz,160,0,16,16); spr_draw(temp_no, 2, 2); if (health < 25) j=16; else j=0; if (health / 100) { temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (health > 9) { if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); f++; } } oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteSound(firin); oslDeleteSound(sdwh); oslDeleteSound(expl_sound); oslDeleteImage(buttons); oslDeleteImage(sdw); oslDeleteImage(planet); oslDeleteImage(starsky); oslDeleteImage(temp); oslDeleteImage(shoot); oslDeleteImage(explode); oslDeleteImage(sdw_sh); return health; } void sad() { int f=0; OSL_IMAGE gr = LoadImg("./gfx/happyface.png"); OSL_SOUND ss = oslLoadSoundFile("./sfx/sfx-0027.wav"); OSL_SOUND dummy = oslLoadSoundFile("./sfx/dummy.wav"); gr=oslSetImageRotCenter(gr); oslSetSoundLoop(ss, 1); for (f=0; f<8; f++) oslPlaySound(dummy); oslPlaySound(ss); f=0; while(f < 120) { oslStartDrawing(); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); gr.stretchX = random(150)+400; gr.stretchY =(int)((float) 0.75*(gr.stretchX)); spr_draw(gr, 240, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); f++; } oslStartDrawing(); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); oslDeleteImage(gr); oslDeleteSound(ss); oslDeleteSound(dummy); } int game(int round, int diff, int nbp) { int i, j, a=0, stun=0, u, global_fr=0, fs=0, quit=0, px=239, py=180, giyg_flag=0, mort=0, health, pbouss=0, benj_frame=0, tvnoise_ev=0, att_ch_timer=80, skipframe=0, gbg=0; int cursor2p=0, mgcd=0, ko_frame=0, mgsy=0, ultlvl=0, ultrectshine=4, frappe=-1, frappe_ult=-1, shldlvl=60, racket_devnull=0, stary=0, suppo=0, suppox, suppoy, whineface=0, kx=0, ky=0; short lightsoff=0, paused=0, bulbfell=0, bulbfs=0, shielded=0, darkness=0, chair=0, attf=0, putin=0, ulted=0, rckchscr=0, nbult=0, returned=0, rebound=0; short swinging=0, ulting=0; int giyg_bg_angles[3] = {0, 0, 0}; float court_zoom=1, reddv=0; char buffer[20]; int pie_attacks[8][5]; //numeroattaque-duree(frames)-x-y? int att_cooldowns[15]; int stars_ult[5]; int meteors[3][3]; struct pie_entity pie_ent = initpie(); struct ball ball_ent = initball(); ALLEGRO_EVENT ev; OSL_IMAGE pie, tvnoise[20], numberz, ulting_gfx; OSL_SOUND minigametime = oslLoadSoundFile("./sfx/sfx-0080.wav"); OSL_SOUND tvnoisesound; OSL_SOUND giygas[3]; OSL_SOUND quitter = oslLoadSoundFile("./sfx/quitter.wav"); OSL_SOUND ko_sfx = oslLoadSoundFile("./sfx/sfx-0045.wav"); OSL_SOUND expl_sound = oslLoadSoundFile("./sfx/sfx-0018.wav"); OSL_SOUND pew = oslLoadSoundFile("./sfx/sfx-0100.wav"); OSL_SOUND paf = oslLoadSoundFile("./sfx/beng-0011.wav"); OSL_SOUND meteor_fall = oslLoadSoundFile("./sfx/sfx-0040.wav"); OSL_SOUND expl_sound2 = oslLoadSoundFile("./sfx/sfx-0036.wav"); OSL_SOUND bulbsfx[7]; OSL_SOUND stun_sound = oslLoadSoundFile("./sfx/sfx-0038.wav"); OSL_SOUND elec = oslLoadSoundFile("./sfx/elec.wav"); OSL_SOUND thunder = oslLoadSoundFile("./sfx/thunder.wav"); OSL_SOUND psis_sfx = oslLoadSoundFile("./sfx/sfx-0043.wav"); OSL_SOUND dictators_sfx[4]; OSL_SOUND mouth_sfx[2]; OSL_SOUND whine = oslLoadSoundFile("./sfx/sfx-0097.wav"); OSL_SOUND bounce = oslLoadSoundFile("./sfx/racketbounce.wav"); OSL_IMAGE lightning = LoadImg("./gfx/lightning.png"); OSL_IMAGE premess = LoadImg("./gfx/premess.png"); OSL_IMAGE giyg_bg[33], starsky = LoadImg("./gfx/starsky.png"); OSL_IMAGE sleepwell = LoadImg("./gfx/sleepwell.png"); OSL_IMAGE ball_gfx = LoadImg("./gfx/ball.png"); OSL_IMAGE ball_shad = LoadImg("./gfx/ball_shadow.png"); OSL_IMAGE ko = LoadImg("./gfx/ko.png"); OSL_IMAGE mgswirl = LoadImg("./gfx/mgswirl.png"); OSL_IMAGE explode = LoadImg("./gfx/explode.png"); OSL_IMAGE rckch[2]; OSL_IMAGE psycho = LoadImg("./gfx/gfx-0672.png"); OSL_IMAGE paused_gfx = LoadImg("./gfx/paused.png"); OSL_IMAGE ultgauge = LoadImg("./gfx/ultgauge.png"); OSL_IMAGE shlgauge = LoadImg("./gfx/shlgauge.png"); OSL_IMAGE visor = LoadImg("./gfx/visor.png"); OSL_IMAGE bulbasaur = LoadImg("./gfx/bulbasaur.png"); OSL_IMAGE recipe = LoadImg("./gfx/darkness.png"); OSL_IMAGE shield = LoadImg("./gfx/shield.png"); OSL_IMAGE meteor = LoadImg("./gfx/gfx-0471.png"); OSL_IMAGE stunning = LoadImg("./gfx/creepycircle.png"); OSL_IMAGE psis = LoadImg("./gfx/psis.png"); OSL_IMAGE dictators = LoadImg("./gfx/dictators.png"); OSL_IMAGE mouth = LoadImg("./gfx/gfx-0102.png"); OSL_IMAGE powerball = LoadImg("./gfx/powerball.png"); OSL_IMAGE star = LoadImg("./gfx/star.png"); OSL_IMAGE juche = LoadImg("./gfx/juche.png"); OSL_IMAGE suppo_gfx = LoadImg("./gfx/suppo.png"); OSL_IMAGE attch = LoadImg("./gfx/attchoice.png"); OSL_IMAGE cp2 = LoadImg("./gfx/cursor2p.png"); OSL_SOUND benj_sfx[11]; OSL_IMAGE shadow, temp_ulting, temp_ultg, temp_psis, temp_recipe, temp_bulb, temp_prem, temp_benj, temp_pb, temp_dics, temp_lghtn, temp_suppo, temp_met, temp_no, temp_ko; numberz = LoadImg("./gfx/numberz.png"); ulting_gfx = LoadImg("./gfx/ulting.png"); benj_sfx[0] = oslLoadSoundFile("./sfx/beng-0000.wav"); benj_sfx[1] = oslLoadSoundFile("./sfx/beng-0001.wav"); benj_sfx[2] = oslLoadSoundFile("./sfx/beng-0002.wav"); benj_sfx[3] = oslLoadSoundFile("./sfx/beng-0003.wav"); benj_sfx[4] = oslLoadSoundFile("./sfx/beng-0004.wav"); //hurt benj_sfx[5] = oslLoadSoundFile("./sfx/beng-0013.wav"); benj_sfx[6] = oslLoadSoundFile("./sfx/beng-0016.wav"); benj_sfx[7] = oslLoadSoundFile("./sfx/beng-0020.wav"); //pass benj_sfx[8] = oslLoadSoundFile("./sfx/beng-0009.wav"); benj_sfx[9] = oslLoadSoundFile("./sfx/beng-0015.wav"); //ult benj_sfx[10] = oslLoadSoundFile("./sfx/beng-0006.wav"); //shield dictators_sfx[0] = oslLoadSoundFile("./sfx/putin.wav"), dictators_sfx[1] = oslLoadSoundFile("./sfx/kjun.wav"), dictators_sfx[2] = oslLoadSoundFile("./sfx/hitler.wav"), dictators_sfx[3] = oslLoadSoundFile("./sfx/skeletor.wav"), mouth_sfx[0] = oslLoadSoundFile("./sfx/sfx-0021.wav"); mouth_sfx[1] = oslLoadSoundFile("./sfx/sfx-0022.wav"), rckch[0] = LoadImg("./gfx/rocking_chair.png"); rckch[1] = LoadImg("./gfx/rocking_chair2.png"); pie_ent.pie_hp=100*round*diff; pie=LoadImg("./gfx/pie.png"); pie=oslSetImageRotCenter(pie); starsky=oslSetImageRotCenter(starsky); sleepwell=oslSetImageRotCenter(sleepwell); rckch[0].centerX = 32; rckch[0].centerY = 47; rckch[1]=oslSetImageRotCenter(rckch[1]); recipe=oslSetImageRotCenter(recipe); paused_gfx=oslSetImageRotCenter(paused_gfx); visor=oslSetImageRotCenter(visor); mouth=oslSetImageRotCenter(mouth); stunning=oslSetImageRotCenter(stunning); powerball=oslSetImageRotCenter(powerball); star=oslSetImageRotCenter(star); ball_gfx.centerX = 3; ball_gfx.centerY = 7; al_register_event_source(event_queue, al_get_display_event_source(display)); al_register_event_source(event_queue, al_get_timer_event_source(timer)); al_start_timer(timer); temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32); tvnoisesound = oslLoadSoundFile("./sfx/dummy.wav"); mouth.stretchX = 10; mouth.stretchY = 16; for (i=0; i<8; i++) { for (j=0; j<5; j++) { pie_attacks[i][j]=0; stars_ult[j]=-32; } } for (i=0; i<7; i++) { sprintf(buffer,"./sfx/sfx-0%d.wav",i+114); bulbsfx[i]=oslLoadSoundFile(buffer); } for (i=0; i<15; i++) { att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800); att_cooldowns[i] += (((i==0) || (i==3) || (i==4))?9*att_cooldowns[i]:0) + 2*random((int)(((i!=0)?1.5:3.5)*att_cooldowns[i])); if ((i!=0) && (i!=3) && (i!=4)) att_cooldowns[i]=att_cooldowns[i]/(0.5*round+0.5); } oslSetSoundLoop(psis_sfx, 1); if (round == 2) { giygas[0] = oslLoadSoundFile("./sfx/sfx-0006.wav"); giygas[1] = oslLoadSoundFile("./sfx/sfx-0007.wav"); giygas[2] = oslLoadSoundFile("./sfx/sfx-0008.wav"); for (i=0; i<20; i++) { sprintf(buffer,"./gfx/gfx-0%d.png",i+642); tvnoise[i]= LoadImg(buffer); tvnoise[i].stretchX = 480; tvnoise[i].stretchY = 272; } oslDeleteSound(tvnoisesound); tvnoisesound = oslLoadSoundFile("./sfx/sfx-0028.wav"); //tvnoisesound . volumeLeft = tvnoisesound . volumeRight = 0x2000; oslSetSoundLoop(tvnoisesound, 1); if (round==2) { for (i=0; i<33; i++) { sprintf(buffer,"./gfx/gfx-0%d.png",i+103); giyg_bg[i]=LoadImg(buffer); giyg_bg[i]=oslSetImageRotCenter(giyg_bg[i]); giyg_bg[i].stretchX = giyg_bg[i].stretchY = 512; } } } else { giygas[0] = oslLoadSoundFile("./sfx/sfx-0155.wav"); giygas[1] = oslLoadSoundFile("./sfx/sfx-0153.wav"); giygas[2] = oslLoadSoundFile("./sfx/dummy.wav"); for (i=0; i<5; i++) { tvnoise[i]=LoadImg("./gfx/dummy.png"); } } //oslSetTransparentColor(RGB(255,0,255)); for (i=0; i<3; i++) { oslSetSoundLoop(giygas[i], 1); } oslPlaySound(giygas[0]); health=100; while(!quit) { al_wait_for_event(event_queue, &ev); if(ev.type == ALLEGRO_EVENT_TIMER) skipframe=1; else skipframe=0; if ((skipframe) && al_event_queue_is_empty(event_queue)) { oslStartDrawing(); skipframe=0; oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if (pie_ent.pie_hp < 1) { pie_ent.pie_y = 136+5*sin(0.5*global_fr); } spr_draw(starsky,239,136); if ((whineface) && (health > 0) && (pie_ent.pie_hp > 0)) { //oslSetAlpha(OSL_FX_DEFAULT, 0); pie.R=255; pie.G=pie.B=(32-whineface)*8; spr_draw(pie, pie_ent.pie_x, pie_ent.pie_y); temp_dics=oslSetImageTileSize(dictators, 160, 80, 80, 80); temp_dics=oslSetImageRotCenter(temp_dics); temp_dics.trans=whineface*8; spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22); whineface--; pie.R=pie.G=pie.B=255; } else { pie.R=pie.G=pie.B=255; spr_draw(pie,pie_ent.pie_x, pie_ent.pie_y); } //oslSetAlpha(OSL_FX_DEFAULT, 0); for (i=0; i<((2*diff)+2); i++) { if ((pie_attacks[i][0]==12) && (health > 0)) { temp_dics=oslSetImageTileSize(dictators, 80*(pie_ent.pie_facemode%2), 80*(pie_ent.pie_facemode/2),80 ,80); temp_dics=oslSetImageRotCenter(temp_dics); if (pie_attacks[i][1] > (240*diff-255)) { temp_dics.trans=240*diff - pie_attacks[i][1]; } else { temp_dics.trans=255; } if (pie_attacks[i][1] < 0) { temp_dics.trans=255+pie_attacks[i][1]; } if (!whineface) spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22); if (!paused) pie_attacks[i][1]--; if (pie_attacks[i][1] == -255) { pie_attacks[i][0]=0; pie_ent.pie_facemode=0; putin=0; } temp_dics.trans=255; if ((pie_ent.pie_facemode == 2) && (pie_attacks[i][1]==90)) { for (i=0; i<15; i++) { if ((i!=0) && (i!=3) && (i!=4) && (i != 11) && (i!=6)) att_cooldowns[i]=random(250); } } if (pie_ent.pie_facemode == 0) { if (pie_attacks[i][1] > -255) putin=1; else putin=0; } if (pie_ent.pie_facemode == 1) { spr_draw(juche, pie_attacks[i][2], 40+30*sin(0.0625*pie_attacks[i][2])); pie_attacks[i][2] -= 3; } } } if (health <= 0) { temp_dics=oslSetImageTileSize(dictators, 160, 0, 80, 80); temp_dics=oslSetImageRotCenter(temp_dics); temp_dics.trans=255; spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22); } else if (pie_ent.pie_hp < 1) { temp_dics=oslSetImageTileSize(dictators, 160, 80, 80, 80); temp_dics=oslSetImageRotCenter(temp_dics); temp_dics.trans=255; spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22); } spr_draw(court,0,0); if (!paused) { if (pie_ent.pie_hp > 0) { if (!(pie_ent.pie_direction)) { pie_ent.pie_x++; pie.angle+=((round==2)?(giyg_flag+1):1)*4; if (pie_ent.pie_x>=351) pie_ent.pie_direction=1; } else { pie_ent.pie_x--; pie.angle-=((round==2)?(giyg_flag+1):1)*4; if (pie_ent.pie_x<=128) pie_ent.pie_direction=0; } } if (round==2) starsky.angle=starsky.angle-(giyg_flag+1)*((random(10))-1); if (counter >= 240) { if (diff != 3) a=diff; else a=2; if (counter == 240) ball_ent=apply_impulse(ball_ent, -1*a, -1*a, 30*3.14/180); if (ultlvl > 239) ultlvl=239; if ((!mgcd) && (!lightsoff) && (!rckchscr) && (mouth.stretchX == 10)) { ball_ent.x2d += ball_ent.speed_h; ball_ent.y2d += ball_ent.speed_v; /*ball_ent.speed_z += GRAVITY; ball_ent.z3d += ball_ent.speed_z; if (ball_ent.z3d < 0) { ball_ent.speed_z = -1*(ball_ent.speed_z); ball_ent.z3d=0; }*/ ball_ent.z3d = abs(16*sin(0.0625*global_fr)); } if (ball_ent.y2d < 138) { ball_ent.speed_v = -1*(ball_ent.speed_v); ball_ent.y2d = 140; returned=0; if ((ball_ent.x2d >= pie_ent.pie_x-128) && (ball_ent.x2d <= pie_ent.pie_x+128)) { pie_ent.pie_hp -= (4-diff); ultlvl += 5-diff; oslPlaySound(whine); whineface=31; } else { if ((!suppo) && ((health) || (pie_ent.pie_hp))) { suppo = 150; suppox = px - 32; suppoy = py + 48; } } if (ball_ent.speed_v > 0) { a=random(100); //if (a > 85) ball_ent.poisoned=1; else ball_ent.poisoned=0; } } if (ball_ent.y2d > 288) { ball_ent.speed_v = -1*(ball_ent.speed_v); ball_ent.y2d = 286; ball_ent.poisoned=0; if (!shielded) { stun=616; health -= diff+1; oslPlaySound(thunder); } returned=1; } if ((ball_ent.x2d >= 480 - 16/2) || (ball_ent.x2d < 4)) { ball_ent.speed_h = -1*(ball_ent.speed_h); if (ball_ent.x2d < 4) ball_ent.x2d = 6; else ball_ent.x2d = 478 - 16/2; } } } al_get_keyboard_state(&kbdstate); if (!al_key_down(&kbdstate, ALLEGRO_KEY_I) && !al_key_down(&kbdstate, ALLEGRO_KEY_O) && !al_key_down(&kbdstate, ALLEGRO_KEY_C) && !al_key_down(&kbdstate, ALLEGRO_KEY_P) && !al_key_down(&kbdstate, ALLEGRO_KEY_SPACE) && !al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) { rebound=0; swinging=0; ulting=0; frappe=-1; frappe_ult=-1; } if (((al_key_down(&kbdstate, ALLEGRO_KEY_I)) || (al_key_down(&kbdstate, ALLEGRO_KEY_O))) && (nbp==2) && (!rebound)) { att_ch_timer=0; if ((al_key_down(&kbdstate, ALLEGRO_KEY_I)) && (cursor2p > 0)) cursor2p--; if ((al_key_down(&kbdstate, ALLEGRO_KEY_O)) && (cursor2p < 13)) cursor2p++; rebound=1; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_P)) && (pie_ent.pie_hp) && (health) && (!mgcd) && (counter > 256) && (!rebound)) { rebound=1; if (!paused) { if (!lightsoff) oslStopSound(giygas[giyg_flag%3]); paused=1; if (al_get_sample_instance_position(quitter.instance)) { health -= 5; if (putin) health -=2; oslStopSound(quitter); } if (al_get_sample_instance_position(tvnoisesound.instance)) oslStopSound(tvnoisesound); if (al_get_sample_instance_position(psis_sfx.instance)) oslStopSound(psis_sfx); } else { paused=0; oslPlaySound(giygas[giyg_flag%3]); } } if ((al_key_down(&kbdstate, ALLEGRO_KEY_L)) && (paused)) { if ((al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L))) { if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L))) { paused=0; health=0; mort=2; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_N)) && (al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L))) { paused=0; pie_ent.pie_hp=0; pie_ent.pie_facemode=0; } } } counter++; global_fr++; if (nbp==2) att_ch_timer++; else att_ch_timer=4; if ((att_ch_timer >= 81) && (att_cooldowns[cursor2p] == 1) && (nbp==2)) { att_cooldowns[cursor2p]=0; } benj.stretchX = 32; benj.stretchY = 48; benj.angle = 0; if (stun > 600) { lightning.trans=(stun%600)*16; temp_lghtn=oslSetImageTileSize(lightning,0,0,32,py+64); spr_draw(temp_lghtn, px, 0); } if (health > 0) { shadow=oslSetImageTileSize(benj,32,192,32,48); shadow.trans=128; spr_draw(shadow, px+8, py+26); } temp_benj=oslSetImageTileSize(benj,0,192,32,48); if ((al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (pie_ent.pie_hp > 0) && (health>0) && (!mgcd) && (!paused) && (frappe_ult<7) && (!stun) && (counter > 300) && (stary <= 0) && (!ulting) && (!rebound)) { frappe_ult=1; ulting=1; rebound=1; oslPlaySound(benj_sfx[(random(2)+8)]); racket_devnull++; stary=py+48; if ((ultlvl > 59) && (ultlvl < 120)) { stars_ult[0]=px+32; nbult=1; } else if ((ultlvl > 119) && (ultlvl < 239)) { stars_ult[0]=px-48; stars_ult[1]=px+32; stars_ult[2]=px+112; nbult=3; } else if (ultlvl==239) { stars_ult[0]=px-48; stars_ult[1]=px-8; stars_ult[2]=px+32; stars_ult[3]=px+72; stars_ult[4]=px+112; nbult=5; } if (ultlvl > 59) ultlvl -= ((diff==1)?60:((diff==2)?(ultlvl%60+60):ultlvl)); } if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (health>0) && (!mgcd) && (!paused) && (shldlvl > 2) && (!stun)) { racket_devnull++; } if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (!rebound) && (!swinging)) { if (!(racket_devnull%2)) oslPlaySound(benj_sfx[random(3)+5]); racket_devnull++; frappe=1; rebound=1; swinging=1; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_UP)) && (py >= 102) && (health>0) && (!mgcd) && (!paused) && (frappe == -1) && (!stun) && (mouth.stretchX == 10)) { if (pie_ent.pie_facemode != 1) { pbouss=0; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,0,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_UP)) { if (pie_ent.pie_facemode != 3) py-=4; else py-=2; fs=3; } } else { pbouss=2; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,96,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_UP)) { if (pie_ent.pie_facemode != 3) py+=4; else py+=2; fs=3; } if (py > 224) py=216; } temp_pb=oslSetImageTileSize(powerball, 32, 0, 32, 32); if (!(counter%fs)) benj_frame++; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (!ulting) && (px >= (-0.492*py+94.184)) && (px <= (0.492*py+321.792)) && (health>0) && (!mgcd) && (!paused) && (frappe < 4) && (!stun) && (mouth.stretchX == 10)) { if (pie_ent.pie_facemode != 1) { pbouss=3; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,pbouss*48,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) { if (frappe < 4) { if (pie_ent.pie_facemode != 3) px-=4; else px-=2; } fs=3; } } else { pbouss=1; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) { if (frappe < 4) { if (pie_ent.pie_facemode != 3) px+=4; else px+=2; } fs=3; } if (px > (0.492*py+321.792)) px = (0.492*py+321.792); } temp_pb=oslSetImageTileSize(powerball, 32, 0, 32, 32); if (!(counter%fs)) benj_frame++; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (!ulting) && (px >= (-0.492*py+94.184)) && (px <= (0.492*py+321.792)) && (health>0) && (!mgcd) && (!paused) && (frappe < 4) && (!stun) && (mouth.stretchX == 10)) { if (pie_ent.pie_facemode != 1) { pbouss=1; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) { if (frappe < 4) { if (pie_ent.pie_facemode != 3) px+=4; else px+=2; } fs=3; } } else { pbouss=3; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,pbouss*48,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) { if (frappe < 4) { if (pie_ent.pie_facemode != 3) px-=4; else px-=2; } fs=3; } if (px < (-0.492*py+94.184)) px = (-0.492*py+94.184); } temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32); if (!(counter%fs)) benj_frame++; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) && (py <= 224) && (health>0) && (!mgcd) && (!paused) && (frappe == -1) && (!stun) && (mouth.stretchX == 10)) { if (pie_ent.pie_facemode != 1) { pbouss=2; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,96,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) { if (pie_ent.pie_facemode != 3) py+=4; else py+=2; fs=3; } } else { pbouss=0; temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,0,32,48); if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) { if (pie_ent.pie_facemode != 3) py-=4; else py-=2; fs=3; } if (py < 102) py=110; } temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32); if (!(counter%fs)) benj_frame++; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (swinging)) { if ((!(counter%3))) frappe++; temp_benj=oslSetImageTileSize(benj,(frappe)*32,240,32,48); if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (frappe > -1)) { if (frappe>3) temp_benj.angle = 90; temp_benj=oslSetImageTileSize(benj,(frappe)*32,432,32,48); } else if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (frappe > -1)) { if (frappe>3) temp_benj.angle = -90; temp_benj=oslSetImageTileSize(benj,(frappe)*32,384,32,48); } if (((px+24-(ball_ent.x2d))*(px+24-(ball_ent.x2d))+(py+24-(ball_ent.y2d))*(py+24-(ball_ent.y2d)) <= 404) && (!returned) && (py >= 142)) { if (diff != 3) a=diff; else a=2; ball_ent = apply_impulse(ball_ent, a, a, (180-15*frappe)*3.14/180); oslPlaySound(bounce); frappe=-1; returned=1; //swinging=0; } } if ((al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (swinging)) { if ((!(counter%3))) frappe++; temp_benj=oslSetImageTileSize(benj,(frappe)*32,288,32,48); if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (frappe > -1)) { if (frappe>3) temp_benj.angle = 90; temp_benj=oslSetImageTileSize(benj,(frappe)*32,432,32,48); } else if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (frappe > -1)) { if (frappe>3) temp_benj.angle = -90; temp_benj=oslSetImageTileSize(benj,(frappe)*32,384,32,48); } if (((px+36-(ball_ent.x2d))*(px+36-(ball_ent.x2d))+(py+36-(ball_ent.y2d))*(py+36-(ball_ent.y2d)) <= 404) && (!returned) && (py >= 142)) { if (diff != 3) a=diff; else a=2; ball_ent = apply_impulse(ball_ent, -1*a, a, (15*frappe)*3.14/180); oslPlaySound(bounce); frappe=-1; returned=1; //swinging=0; } } if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (health>0) && (!mgcd) && (!paused) && (shldlvl > 0) && (!stun)) { if ((!shielded) && (shldlvl > 2)) oslPlaySound(benj_sfx[10]); if ((!(counter%(4-diff)))) shldlvl--; shielded=1; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (health>0) && (!mgcd) && (!paused) && (frappe_ult<7) && (!stun) && (counter > 300) && (!rebound) && (ulting)) { if (!(counter%3)) frappe_ult++; } /*if ((frappe==7) && (swinging) && (!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (!al_key_down(&kbdstate, ALLEGRO_KEY_X)) || (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) { }*/ if ((!al_key_down(&kbdstate, ALLEGRO_KEY_X)) || (!shldlvl)) { shielded=0; } if (stun) { frappe=-1; temp_benj=oslSetImageTileSize(benj,64,192,32,48); stun--; if (!(stun%200)) stun=0; } if (px < (-0.492*py+94.184)) px = (-0.492*py+94.184); if (px > (0.492*py+321.792)) px = (0.492*py+321.792); if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_UP)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT))) { benj_frame=0; } if ((frappe >= 7) && (swinging)) { frappe=7; rebound=1; } if ((frappe_ult >= 7) && (ulting)) { frappe_ult=7; rebound=1; } if (ulting) temp_benj=oslSetImageTileSize(ulting_gfx,(frappe_ult)*32,0,32,48); court_zoom = 0.00192*py + 0.562; temp_benj.stretchX = (int)(64*(float)court_zoom); temp_benj.stretchY = (int)(96*(float)court_zoom); shield.stretchX = (int)(48*(float)court_zoom); shield.stretchY = (int)(48*(float)court_zoom); ball_gfx.stretchX = (int)(8*(float)court_zoom); ball_gfx.stretchY = ball_gfx . stretchX; temp_pb.stretchX = temp_pb.stretchY = (int)(32*(float)(court_zoom)); if (health > 0) { if (stary > 0) { for(u=0; u= (pie_ent.pie_x-128)) && (stars_ult[u] <= (pie_ent.pie_x+128))) pie_ent.pie_hp -= 10; stary=-64; stars_ult[u]=-32; nbult=0; } } star.angle -= 5; stary -= 4; } if (ball_ent.poisoned) ball_gfx.R=ball_gfx.G=0; if (pie_ent.pie_hp > 0) draw_ball(ball_ent, ball_gfx, ball_shad); draw_benj(temp_benj, px, py, shielded, shield); if (((pbouss == 3) || (pbouss == 0)) && (pie_ent.pie_facemode == 3)) spr_draw(temp_pb, px+64, py+48); if (((pbouss == 1) || (pbouss == 2)) && (pie_ent.pie_facemode == 3)) spr_draw(temp_pb, px, py+48); if (ball_ent.poisoned) ball_gfx.R=ball_gfx.G=0; } if (suppo) { if (!paused) suppo--; if (suppo<40) { temp_suppo=oslSetImageTileSize(suppo_gfx, suppo/10*32, 0, 32, 32); } if (suppo>110) { temp_suppo=oslSetImageTileSize(suppo_gfx, (150-suppo)/10*32, 0, 32, 32); } court_zoom = 0.00192*suppoy + 0.562; temp_suppo.stretchX = (int)(32*(float)court_zoom); temp_suppo.stretchY = (int)(32*(float)court_zoom); spr_draw(temp_suppo, suppox, suppoy); spr_draw(temp_suppo, suppox+64, suppoy); if ((suppo>65) && (suppo<85)) { if ((px>=suppox) && (px<=suppox+64) && (py>=suppoy-64) && (py <= suppoy)) { temp_benj.R=0; temp_benj.G=128; temp_benj.B=128; if ((suppo%4) < 2) { draw_benj(temp_benj, px, py, shielded, shield); } if ((suppo == 67) && (!mgcd) && (!rckchscr)) { health -= diff; oslPlaySound(elec); } temp_benj.R=temp_benj.G=temp_benj.B=255; } } } if ((pie_ent.pie_hp > 25*round*diff) && (!giyg_flag) && (pie_ent.pie_hp <= 50*round*diff)) { giyg_flag=1; oslStopSound(giygas[0]); oslPlaySound(giygas[1]); } if (round==2) { giyg_bg[gbg].trans=random(64); spr_draw(giyg_bg[gbg], 240, 138); giyg_bg_angles[0] = random(10)-5; giyg_bg[gbg].angle += giyg_bg_angles[0]; if (pie_ent.pie_hp <= 50*round*diff) { giyg_bg_angles[1] = 2*(random(10)-5); giyg_bg[gbg].angle += giyg_bg_angles[1]; giyg_bg[gbg].trans=random(64)+64; spr_draw(giyg_bg[gbg], 240, 138); } if (pie_ent.pie_hp <= 25*round*diff) { giyg_bg_angles[2] = 4*(random(10)-5); giyg_bg[gbg].angle += giyg_bg_angles[2]; giyg_bg[gbg].trans=random(64)+128; spr_draw(giyg_bg[gbg], 240, 138); if ((giyg_flag < 2)) { giyg_flag=2; oslStopSound(giygas[1]); oslPlaySound(giygas[2]); } } } if (!(global_fr%5)) { gbg++; gbg=gbg%33; } if ((counter >= 640)) { //initializing attacks for (i=0; i<14; i++) { if ((nbp==1) && (!paused)) att_cooldowns[i]--; if ((nbp==2) && (!paused) && (att_cooldowns[i]>1)) att_cooldowns[i]--; if ((i==7) && (bulbfell > 0)) att_cooldowns[7]++; if ((att_cooldowns[i] <= 0) && (pie_ent.pie_hp > 0)) { attf=0; for (j=0; j<((2*diff)+2); j++) { if (pie_attacks[j][0] == (i+1)) attf=1; } for (j=0; j<((2*diff)+2); j++) { if ((!(pie_attacks[j][0])) && (!attf)) { pie_attacks[j][0]=i+1; switch(i+1) { case 1: pie_attacks[j][1]=140; break; case 2: pie_attacks[j][1]=(py-(pie_ent.pie_y))/(px-pie_ent.pie_x); pie_attacks[j][2]=(pie_ent.pie_y)-pie_attacks[j][1]*pie_ent.pie_x; pie_attacks[j][3]=pie_ent.pie_x; pie_attacks[j][4]=px; mgsy=pie_attacks[i][1]*pie_attacks[i][3]+pie_attacks[i][2]; break; case 3: darkness=0; for (u=0; u<((2*diff)+2); u++) { if (pie_attacks[u][0]==7) darkness=1; } if (!darkness) { pie_attacks[j][1]=360-(15*diff); pie_attacks[j][2]=random(160)+80; pie_attacks[j][3]=random(112)+160; pie_attacks[j][4]=2*diff+3; } else pie_attacks[j][0]=0; break; case 4: pie_attacks[j][1]=diff*166; lightsoff=1; break; case 5: pie_attacks[j][1]=-218; pie_attacks[j][2]=255; break; case 6: pie_attacks[j][1]=225*diff; pie_attacks[j][2]=random(416); pie_attacks[j][3]=random(100)+108; if ((diff > 1) && (pie_attacks[j][2]%diff)) { pie_attacks[j][2] += (diff)-(pie_attacks[j][2]%diff); } if ((diff > 1) && (pie_attacks[j][3]%diff)) { pie_attacks[j][3] += (diff)-(pie_attacks[j][3]%diff); } break; case 7: chair=0; for (u=0; u<((2*diff)+2); u++) { if (pie_attacks[u][0]==3) chair=1; } if (!chair) { if (px+16 < 240) pie_attacks[j][1]=0; else pie_attacks[j][1]=1; pie_attacks[j][2]=random(400)+600; if (pie_attacks[j][1]) pie_attacks[j][3]=400-random(160); else pie_attacks[j][3]=random(160)+80; if (pie_attacks[j][1]) pie_attacks[j][4]=480; else pie_attacks[j][4]=0; mouth.stretchX = 10; mouth.stretchY = 16; } else pie_attacks[j][0]=0; break; case 8: pie_attacks[j][1]=diff+2; pie_attacks[j][2]=random(4); //sens bulbasaur pie_attacks[j][3]=random(320)+80; //bulb_x pie_attacks[j][4]=-64; //bulb_y bulbfell=1; if (!lightsoff) oslPlaySound(bulbsfx[(random(2)?1:6)]); break; case 9: pie_attacks[j][1]=120*diff+120; if (px < 240) pie_attacks[j][2]=1; else pie_attacks[j][2]=0; pie_attacks[j][3]=py; for (u=0; u<3; u++) { meteors[u][0]=0; meteors[u][1]=0; meteors[u][2]=0; } break; case 10: pie_attacks[j][1]=96; if ((!shielded) && (!stun)) stun=96; break; case 11: pie_attacks[j][1]=1; pie_attacks[j][2]=30; if (!lightsoff) oslPlaySound(psis_sfx); break; case 12: pie_attacks[j][1]=240*diff; pie_ent.pie_facemode=random(4); if ((!lightsoff) && (health > 0)) oslPlaySound(dictators_sfx[pie_ent.pie_facemode]); if (pie_ent.pie_facemode==1) { pie_attacks[j][2]=560; } break; case 13: if ((round==2) && (pie_ent.pie_hp < 20*round*diff) && (!ulted) && (!lightsoff)) { oslStopSound(giygas[giyg_flag]); oslStopSound(psis_sfx); oslEndDrawing(); health=shoop_da_whoop(health, round, diff); oslStartDrawing(); ulted=1; oslPlaySound(giygas[giyg_flag]); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); } pie_attacks[j][0]=0; break; case 14: if ((round==2) && (pie_ent.pie_hp < 10*round*diff) && (ulted==1) && (!lightsoff)) { oslStopSound(giygas[giyg_flag]); oslStopSound(psis_sfx); oslEndDrawing(); sad(); oslStartDrawing(); ulted=2; oslPlaySound(giygas[giyg_flag]); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); } pie_attacks[j][0]=0; break; default: break; } j=2*diff+3; //break; } } //att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800)*(2*i+11); att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800); att_cooldowns[i] += (((i==0) || (i==3) || (i==4))?9*att_cooldowns[i]:0) + 2*random((int)(((i!=0)?1.5:3.5)*att_cooldowns[i])); if ((i!=0) && (i!=3) && (i!=4)) att_cooldowns[i]=att_cooldowns[i]/(0.5*round+0.5); if (i == 11) att_cooldowns[i] += 1792; } } //programming attacks if (!paused) { for (i=0; i<((2*diff)+2); i++) { switch(pie_attacks[i][0]) { case 1: { if ((mgcd < 1) && (health > 0) && (!lightsoff)) { ko.R=0; ko.B=ko.G=128; ko.trans=255; if (pie_attacks[i][1] > 115) { temp_ko=oslSetImageTileSize(ko,0,0,120,96); spr_draw(temp_ko, (int)(9.6*(140-pie_attacks[i][1])-120), 88); } if ((pie_attacks[i][1] <= 115) && (pie_attacks[i][1] >= 90)) { temp_ko=oslSetImageTileSize(ko,0,0,120,96); spr_draw(temp_ko, 120, 88); temp_ko=oslSetImageTileSize(ko,120,0,120,96); spr_draw(temp_ko, (int)(-9.6*(140-pie_attacks[i][1])+720), 88); } if ((pie_attacks[i][1] > 0) && (pie_attacks[i][1] < 90)) { temp_ko=oslSetImageTileSize(ko,0,0,240,96); spr_draw(temp_ko, 120, 88); } if ((pie_attacks[i][1] <= 0)) { pie_attacks[i][0]=0; } if (pie_attacks[i][1] > 80) { if ((pie_attacks[i][1]%6) < 3) { explode.stretchX = 64; explode.stretchY = 96; spr_draw(explode, px, py); } else { explode.stretchX = 32; explode.stretchY = 48; spr_draw(explode, px+16, py+24); } } pie_attacks[i][1]--; //oslSetAlpha(OSL_FX_DEFAULT, 0); } break; } case 2: { //frame_debug(j); if ((!mgcd) && (!lightsoff)) { mgswirl.trans=128; if (pie_attacks[i][4] < pie_attacks[i][3]) { pie_attacks[i][4]-=3; pie_attacks[i][3]-=3; } else { pie_attacks[i][4]+=3; pie_attacks[i][3]+=3; } if (mgsy < py) mgsy += random(8)+2; else mgsy -= random(8)+2; court_zoom = 0.00192*(mgsy) + 0.562; mgswirl.stretchX = (int)(128*(float)court_zoom); mgswirl.stretchY = (int)(128*(float)court_zoom); spr_draw(mgswirl, pie_attacks[i][3], mgsy); } if ((swirl_collide(px, py, pie_attacks[i][3], mgsy)) && (health>0)) { if (!mgcd) { al_set_sample_instance_position(minigametime.instance,16); oslStopSound(giygas[giyg_flag%3]); oslPlaySound(minigametime); if (al_get_sample_instance_position(tvnoisesound.instance)) oslStopSound(tvnoisesound); if (al_get_sample_instance_position(meteor_fall.instance)) oslStopSound(meteor_fall); oslStopSound(psis_sfx); sleepwell.stretchX = sleepwell. stretchY = 272; } mgcd++; if (mgcd >= 1) { oslStopSound(psis_sfx); if (mgcd < 9) oslDrawFillRect(0,0,480,272, _RGB(255,255,255)); else { oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); sleepwell.trans=255-((int)(mgcd*2.55)); sleepwell.stretchX+=18; sleepwell.stretchY+=36; spr_draw(sleepwell,240,138); sleepwell.trans=255; } } } if ((pie_attacks[i][3] <= -128) || (pie_attacks[i][3] >= 544)) { pie_attacks[i][0]=0; mgcd=0; } break; } case 3: { if ((mgcd < 1) && (health > 0) && (!lightsoff)) { if (pie_attacks[i][4] > 0) { pie_attacks[i][1]--; if (pie_attacks[i][1] > 90) { if (pie_attacks[i][1] < 180) rckch[0].angle = (int)(6*sin(0.5*counter)); else rckch[0].angle = 0; court_zoom = 0.00192*(pie_attacks[i][3]+15) + 0.562; rckch[0].stretchX = (int)(64*(float)court_zoom); rckch[0].stretchY = (int)(64*(float)court_zoom); spr_draw(rckch[0], pie_attacks[i][2], pie_attacks[i][3]+15); if ((((px-pie_attacks[i][2])*(px-pie_attacks[i][2])+(py-pie_attacks[i][3])*(py-pie_attacks[i][3])) <= 3000) & (frappe >= 1)) { if (swinging) { rckch[0].B=0; spr_draw(rckch[0], pie_attacks[i][2], pie_attacks[i][3]+15); rckch[0].B=255; pie_attacks[i][4]--; //if (osl_keys . held.triangle) pie_attacks[i][4]=0; oslPlaySound(paf); ultlvl += 5-diff; frappe=-1; swinging=0; } } if (pie_attacks[i][4] <= 0) pie_attacks[i][1]=20; } else { if (pie_attacks[i][1] > 59) { rckch[1].stretchX = (90-pie_attacks[i][1])*16; rckch[1].stretchY = (int)(0.567 * (rckch[1] . stretchX)); rckch[1].angle = ((pie_attacks[i][1]-30)*12); } if (pie_attacks[i][1] == 59) { rckch[1].angle = 0; rckch[1].stretchX = 480; rckch[1].stretchY = 272; rckchscr=1; oslPlaySound(quitter); } spr_draw(rckch[1], 240+random(8)-4, 136+random(8)-4); if (!(pie_attacks[i][1]%36) && (!shielded)) { health--; if (putin) health--; } } if (pie_attacks[i][1] <= -180) { oslStopSound(quitter); pie_attacks[i][0]=0; rckchscr=0; } if (py > ((pie_attacks[i][3]-62)*court_zoom)) { temp_benj.trans=255; draw_benj(temp_benj, px, py, shielded, shield); } } else { if (pie_attacks[i][1]==20) oslPlaySound(expl_sound2); explode.stretchX = explode.stretchY = 20 - pie_attacks[i][1]; spr_draw(explode, pie_attacks[i][2], pie_attacks[i][3]); pie_attacks[i][1]--; if (pie_attacks[i][1]==0) { pie_attacks[i][0]=0; } } } break; } case 4: { if ((mgcd < 1) && (health > 0)) { if ((pie_attacks[i][1] == diff*166) || (pie_attacks[i][1] == 0)) { oslStopSound(giygas[giyg_flag%3]); } if (lightsoff) { oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); draw_benj(temp_benj, px, py, shielded, shield); for (u=0; u<(2*diff+2); u++) { if (pie_attacks[u][0] != 4) { pie_attacks[u][0]=0; } } } } if (!pie_attacks[i][1]) { lightsoff=0; pie_attacks[i][0]=0; oslPlaySound(giygas[giyg_flag%3]); } pie_attacks[i][1]--; break; } case 5: { if ((mgcd < 1) && (health > 0)) { if (pie_attacks[i][1] < (px-108)) { spr_draw(psycho, pie_attacks[i][1], abs(32*sin(0.0125*3.14*pie_attacks[i][1]))+8); } else { if (pie_attacks[i][2] > 2) pie_attacks[i][2]-=2; else pie_attacks[i][0]=0; oslDrawFillRect(0,0,480,272, _RGBA(255,255,255,pie_attacks[i][2])); } pie_attacks[i][1]+=4; } break; } case 6: { if ((mgcd < 1) && (health > 0)) { if (pie_attacks[i][1] < 51) { if ((pie_attacks[i][1])%4 < 3) { visor.R=0; visor.G=0; visor.trans=192; } else { visor.R=visor.G=visor.B=visor.trans=255; } } else { visor.R=255; visor.G=255; visor.trans=255; } if (pie_attacks[i][1] > 0) spr_draw(visor, pie_attacks[i][2], pie_attacks[i][3]); if (px+32 < pie_attacks[i][2]) { pie_attacks[i][2] -= diff; } else if (px+32 > pie_attacks[i][2]) { pie_attacks[i][2] += diff; } if (py+48 < pie_attacks[i][3]) { pie_attacks[i][3] -= diff; } else if (py+48 > pie_attacks[i][3]) { pie_attacks[i][3] += diff; } pie_attacks[i][1]--; if (!pie_attacks[i][1]) { oslPlaySound(pew); if ((pie_attacks[i][2] >= px-16) && (pie_attacks[i][2] <= px+80) && (pie_attacks[i][3] >= py+24) && (pie_attacks[i][3] <= py+72) && (!shielded)) { health -= 2*diff+6; if (putin) health -= 3; oslPlaySound(benj_sfx[random(5)]); } } if (pie_attacks[i][1] < 0) { explode.stretchX = explode.stretchY = 20 + 2*pie_attacks[i][1]; spr_draw(explode, pie_attacks[i][2], pie_attacks[i][3]); if (pie_attacks[i][1] == -10) pie_attacks[i][0]=0; } } break; } case 8: { if ((mgcd < 1) && (health > 0)) { if (bulbfell==1) { temp_bulb=oslSetImageTileSize(bulbasaur, 0, 128, 64, 64); court_zoom = 0.00192*pie_attacks[i][4] + 0.562; temp_bulb.stretchX = (int)(64*(float)court_zoom); temp_bulb.stretchY = (int)(64*(float)court_zoom); spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]); pie_attacks[i][4] += 8; if (pie_attacks[i][4] >= 136) { pie_attacks[i][4]=136; bulbfell=2; } if (py > ((pie_attacks[i][4])*court_zoom)) { draw_benj(temp_benj, px, py, shielded, shield); } } else if (bulbfell==2) { if (pie_attacks[i][2] != 4) { temp_bulb=oslSetImageTileSize(bulbasaur, bulbfs*64, pie_attacks[i][2]*64, 64, 64); } else { if (abs(pie_attacks[i][3]-px) > abs(pie_attacks[i][4]-py)) { if (pie_attacks[i][3] > px) { temp_bulb=oslSetImageTileSize(bulbasaur, 0, 192, 64, 64); } else { temp_bulb=oslSetImageTileSize(bulbasaur, 0, 64, 64, 64); } } else { if (pie_attacks[i][4] > py) { temp_bulb=oslSetImageTileSize(bulbasaur, 0, 0, 64, 64); } else { temp_bulb=oslSetImageTileSize(bulbasaur, 0, 128, 64, 64); } } } court_zoom = 0.00192*pie_attacks[i][4] + 0.562; temp_bulb.stretchX = (int)(64*(float)court_zoom); temp_bulb.stretchY = (int)(64*(float)court_zoom); spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]); if (!(counter%52) && ((counter%416) < 364)) { pie_attacks[i][2]=random(4); } else { switch(pie_attacks[i][2]) { case 0: if (pie_attacks[i][4] > 128) pie_attacks[i][4] -= 2; else pie_attacks[i][2]=2; break; case 1: if (pie_attacks[i][3] < 400) pie_attacks[i][3] += 2; else pie_attacks[i][2]=3; break; case 2: if (pie_attacks[i][4] < 240) pie_attacks[i][4] += 2; else pie_attacks[i][2]=0; break; case 3: if (pie_attacks[i][3] > 80) pie_attacks[i][3] -= 2; else pie_attacks[i][2]=1; break; } } if ((counter%416) >= 364) { pie_attacks[i][2]=4; if ((counter%416) == 364) oslPlaySound(bulbsfx[random(3)+3]); if (pie_attacks[i][3] > px) pie_attacks[i][3] -= 4; else pie_attacks[i][3] += 4; if (pie_attacks[i][4] > py) pie_attacks[i][4] -= 2; else if (pie_attacks[i][4] < 238) pie_attacks[i][4] += 2; } if ((((px-pie_attacks[i][3])*(px-pie_attacks[i][3])+(py-pie_attacks[i][4])*(py-pie_attacks[i][4])) <= 64) && (pie_attacks[i][2]==4) && (!shielded)) { if (!stun) stun=200+3*diff; pie_attacks[i][2]=random(4); health -= diff+1; if (putin) health -= diff; oslPlaySound(benj_sfx[random(5)]); counter += (counter%417)+1; oslPlaySound(bulbsfx[0]); } if ((((px-pie_attacks[i][3])*(px-pie_attacks[i][3])+(py-pie_attacks[i][4])*(py-pie_attacks[i][4])) <= 1500) && (frappe >= 1)) { if (swinging) { temp_bulb.B=0; spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]); ultlvl += 5-diff; temp_bulb.B=255; pie_attacks[i][1]--; //if (osl_keys . held.triangle) pie_attacks[i][4]=0; oslPlaySound(paf); frappe=-1; swinging=0; } } bulbfs=(counter%20)/5; if (py > ((pie_attacks[i][4])*court_zoom)) { //oslSetAlpha(OSL_FX_DEFAULT, 0); draw_benj(temp_benj, px, py, shielded, shield); } } if (pie_attacks[i][1] <= 0) { bulbfell=0; if (!pie_attacks[i][1]) oslPlaySound(bulbsfx[2]); pie_attacks[i][2]=4; pie_attacks[i][1]--; if (pie_attacks[i][1] == -35) { pie_attacks[i][0]=0; } bulbfs=(abs(pie_attacks[i][1]))/9; temp_bulb=oslSetImageTileSize(temp_bulb, bulbfs*64, pie_attacks[i][2]*64, 64, 64); spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]); } } break; case 9: { if ((mgcd <1) && (!lightsoff)) { if (pie_attacks[i][1] == 120*diff+120) { for(u=0; u<3; u++) { meteors[u][1] = random(176); if (pie_attacks[i][2]) meteors[u][0]=-48; else meteors[u][0]=480; meteors[u][2] = random(3)+1; } oslPlaySound(meteor_fall); } else { if (!al_get_sample_instance_position(meteor_fall.instance)) oslPlaySound(meteor_fall); for(u=0; u<3; u++) { temp_met=oslSetImageTileSize(meteor, u*48, 0, 48, 48); temp_met.stretchX = temp_met.stretchY = 12*meteors[u][2]; spr_draw(temp_met, meteors[u][0], meteors[u][1]); if (pie_attacks[i][2]) meteors[u][0]+=random(9)+1; else meteors[u][0]-=random(9)+1; meteors[u][1]+=4; if ((meteors[u][1] < pie_attacks[i][3]+32) && (meteors[u][1] >= pie_attacks[i][3])) { explode . stretchX = explode . stretchY = 48; spr_draw(explode, meteors[u][0], meteors[u][1]); oslPlaySound(expl_sound2); } if (meteors[u][1] >= pie_attacks[i][3]+32) { if (((px-meteors[u][0])*(px-meteors[u][0])+(py+32-meteors[u][1])*(py+32-meteors[u][1]) <= 196) && (!shielded)) { oslPlaySound(expl_sound2); health -= round; if (putin) health -= round; oslPlaySound(benj_sfx[random(5)]); } if (pie_attacks[i][1] <= 0) meteors[u][2]=0; else meteors[u][2] = random(3)+1; meteors[u][1]=random(176); if (pie_attacks[i][2]) meteors[u][0]=-48; else meteors[u][0]=480; } } } pie_attacks[i][1]--; if (pie_attacks[i][1] == 0) { oslStopSound(meteor_fall); } if (meteors[0][2]+meteors[1][2]+meteors[2][2] == 0) pie_attacks[i][0]=0; } } break; case 10: { if ((mgcd <1) && (!lightsoff)) { if (!shielded) { if (pie_attacks[i][1] == 96) { stunning.stretchX = stunning.stretchY = 24; oslPlaySound(stun_sound); } for (u=0; u<135; u++) { stunning.R=0; stunning.trans=192; if (stunning.stretchX > 4) spr_draw(stunning, (u%15)*32+12, ((int)(u/15))*32+12); stunning.R = stunning.trans = 255; } } pie_attacks[i][1]--; if (!((pie_attacks[i][1])%8)) { if (stunning.stretchX > 4) { stunning.stretchX -= 4; stunning.stretchY -= 4; } } if (!(pie_attacks[i][1])) { pie_attacks[i][0]=0; } } break; } case 11: { if ((mgcd <1) && (!lightsoff) && (health > 0)) { if (pie_attacks[i][2] > 0) { temp_psis=oslSetImageTileSize(psis, ((int)(counter%18)/6)*16, 0, 16, 32); temp_psis=oslSetImageRotCenter(temp_psis); temp_psis.angle = pie_attacks[i][1]; court_zoom = 0.00192*(py+24) + 0.562; psis.stretchX = (int)(16*(float)court_zoom); psis.stretchY = (int)(32*(float)court_zoom); spr_draw(temp_psis, px+32+pie_attacks[i][2]*cos(pie_attacks[i][1]*3.14/180), py+48+pie_attacks[i][2]*sin(pie_attacks[i][1]*3.14/180)); spr_draw(temp_psis, px+32+pie_attacks[i][2]*cos((pie_attacks[i][1]+180)*3.14/180), py+48+pie_attacks[i][2]*sin((pie_attacks[i][1]+180)*3.14/180)); pie_attacks[i][1] += 16; if (pie_attacks[i][1] > 360) { pie_attacks[i][1] = pie_attacks[i][1]%360; pie_attacks[i][2]-=2; } } else if (pie_attacks[i][2] <= 0) { explode.stretchX = explode.stretchY = 40 + 4*pie_attacks[i][2]; spr_draw(explode, px, py); if (!(pie_attacks[i][2])) oslPlaySound(expl_sound); if ((!shielded) && (counter%2)) { health -= diff; if (putin) health -= diff; oslPlaySound(benj_sfx[random(5)]); } pie_attacks[i][2]--; if (pie_attacks[i][2] == -10) { oslStopSound(psis_sfx); pie_attacks[i][0]=0; } } } break; } case 7: { if ((mgcd < 1) && (health > 0) && (!lightsoff)) { if (!(pie_attacks[i][1])) { temp_recipe=oslSetImageTileSize(recipe,0, 0, 32, 136); } else { temp_recipe=oslSetImageTileSize(recipe, 32, 0, 32, 136); } temp_recipe.trans=128; if (pie_attacks[i][2] > 0) { oslDrawFillRect(pie_attacks[i][4], 0, (pie_attacks[i][1])?480:0, 272, _RGBA(0, 0, 0, 128)); for(u=0; u<4; u++) { spr_draw(temp_recipe, pie_attacks[i][4]+((pie_attacks[i][1])?0:32), u*136-(global_fr%137)); } //oslSetAlpha(OSL_FX_DEFAULT, 0); if (((pie_attacks[i][1]) && (pie_attacks[i][2] <= (480-pie_attacks[i][3]))) || ((!(pie_attacks[i][1])) && (pie_attacks[i][2] <= pie_attacks[i][3]))) { if (((pie_attacks[i][1]) && (px+32 >= pie_attacks[i][4])) || (!(pie_attacks[i][1]) && (px+32 <= pie_attacks[i][4]))) { if (!al_get_sample_instance_position(mouth_sfx[0].instance)) oslPlaySound(mouth_sfx[0]); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); spr_draw(mouth, 240, 136); pie_attacks[i][2]++; mouth.stretchX += 6; mouth.stretchY = 1.63*mouth.stretchX; if (mouth . stretchY >= 420) { if (!al_get_sample_instance_position(mouth_sfx[1].instance)) oslPlaySound(mouth_sfx[1]); oslDrawFillRect(0, 0, 480, 272, _RGB(255, 0, 0)); } if (mouth . stretchY >= 450) { health -= 2*diff+4; if (putin) health -= 2; pie_attacks[i][0]=0; mouth . stretchX = 10; mouth . stretchY = 16; } } else { if (!(pie_attacks[i][1])) { pie_attacks[i][4]--; } else { pie_attacks[i][4]++; } } } else { if (!(pie_attacks[i][1])) { if (pie_attacks[i][4] < pie_attacks[i][3]) pie_attacks[i][4]++; if (pie_attacks[i][4] > 512) { darkness=0; pie_attacks[i][0]=0; } } else { if (pie_attacks[i][4] > pie_attacks[i][3]) pie_attacks[i][4]--; if (pie_attacks[i][4] < -64) { darkness=0; pie_attacks[i][0]=0; } } } pie_attacks[i][2]--; } else { darkness=0; pie_attacks[i][0]=0; } if (pie_attacks[i][2] <= 0) { pie_attacks[i][0]=0; } } break; } } } } } if ((!al_get_sample_instance_position(minigametime.instance)) && (!al_get_sample_instance_position(tvnoisesound.instance)) && (!paused)) { tvnoise_ev=random((3800/(100*round*diff))*pie_ent.pie_hp+4200); } if ((tvnoise_ev <= 4000) && (tvnoise_ev > 3940) && (round==2) && (health>0) && (!lightsoff) && (!paused)) { i=random(20); spr_draw(tvnoise[i], 0, 0); if (!al_get_sample_instance_position(tvnoisesound.instance)) oslPlaySound(tvnoisesound); tvnoise_ev--; } else { oslStopSound(tvnoisesound); } } if ((pie_ent.pie_hp) && (!mgcd)) { reddv = (-0.64/(round*diff))*pie_ent.pie_hp+64; oslDrawFillRect(0, 0, 480, 272, _RGBA(255, 0, 0, (int)(reddv*1.5))); } if ((health < 1) || (pie_ent.pie_hp < 1)) { oslStopSound(psis_sfx); ball_ent.speed_v=0; if (pie_ent.pie_hp < 1) { if (!ko_frame) { a=pie_ent.pie_x-128+random(256); for (i=0; i<8; i++) { for (j=0; j<5; j++) { pie_attacks[i][j]=0; } bulbfell=0; } } mort=1; if (round==2) { if (!(ko_frame%9)) { oslPlaySound(expl_sound); kx=pie_ent.pie_x-128+random(256); ky=random(136); } if ((ko_frame%6) < 3) { explode.stretchX = 64; explode.stretchY = 96; spr_draw(explode, kx, ky); } else { explode.stretchX = 32; explode.stretchY = 48; spr_draw(explode, kx+16, ky+24); } } } if (ko_frame == 0) { oslPlaySound(ko_sfx); oslPlaySound(expl_sound); u=0; } if (health < 1) { if (ko_frame < 60) { if ((ko_frame%6) < 3) { explode.stretchX = 64; explode.stretchY = 96; spr_draw(explode, px, py); } else { explode.stretchX = 32; explode.stretchY = 48; spr_draw(explode, px+16, py+24); } } } if (ko_frame < 25) { temp_ko=oslSetImageTileSize(ko,0,0,120,96); spr_draw(temp_ko, (int)(9.6*ko_frame-120), 88); } if ((ko_frame >= 25) && (ko_frame <= 50)) { temp_ko=oslSetImageTileSize(ko,0,0,120,96); spr_draw(temp_ko, 120, 88); temp_ko=oslSetImageTileSize(ko,120,0,120,96); spr_draw(temp_ko, (int)(-9.6*ko_frame+720), 88); } if (ko_frame > 50) { temp_ko=oslSetImageTileSize(ko,0,0,240,96); spr_draw(temp_ko, 120, 88); } if (ko_frame >= 140) quit=1; ko_frame++; } if (health < 0) health=0; if (!mgcd) { temp_no=oslSetImageTileSize(numberz,160,0,16,16); spr_draw(temp_no, 2, 2); u=random(5); temp_ultg=oslSetImageTileSize(ultgauge,0,0,64,8); spr_draw(temp_ultg, 2+((round==2)?u:0), (round==2)?20+u:21); temp_ultg=oslSetImageTileSize(ultgauge,(int)((ultlvl/60)*6),9,6,6); spr_draw(temp_ultg, 69+((round==2)?u:0), (round==2)?21+u:22); spr_draw(shlgauge, 2+((round==2)?u:0), (round==2)?28+u:30); if (ultlvl > 1) oslDrawFillRect(4+((round==2)?u:0), (round==2)?22+u:23, ultlvl%60+4+((round==2)?u:0), (round==2)?25+u:26, _RGB(0,0,255)); if (shldlvl > 1) oslDrawFillRect(4+((round==2)?u:0), (round==2)?31+u:32, shldlvl+4+((round==2)?u:0), (round==2)?34+u:35, _RGB(255,150,255)); if ((ultlvl%60) > 15) { if ((ultrectshine+16) <= ultlvl%60) { oslDrawFillRect(ultrectshine+((round==2)?u:0), (round==2)?22+u:23, ultrectshine+13+((round==2)?u:0), (round==2)?25+u:26, _RGB(0,255,255)); } else { oslDrawFillRect(ultrectshine+((round==2)?u:0), (round==2)?22+u:23, ultlvl%60+3+((round==2)?u:0), (round==2)?25+u:26, _RGB(0,255,255)); } if ((ultrectshine+8) <= ultlvl%60) { oslDrawFillRect(ultrectshine+4+((round==2)?u:0), (round==2)?22+u:23, ultrectshine+9+((round==2)?u:0), (round==2)?25+u:26, _RGB(255,255,255)); } else { oslDrawFillRect(ultrectshine+4+((round==2)?u:0), (round==2)?22+u:23, ultlvl%60+3+((round==2)?u:0), (round==2)?25+u:26, _RGB(255,255,255)); } ultrectshine++; if (ultrectshine > ultlvl%60) { ultrectshine=0; } } i=random(15); u=18; if (health < 25) j=16; else j=0; if (health / 100) { temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (health > 9) { if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); u += 16; } if (round==2) { if (i<12) { temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16); } else { temp_no=oslSetImageTileSize(numberz,random(128),j,16,16); } } else temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16); spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2)); } if ((paused) && (health)) { oslDrawFillRect(0,0,480,272, _RGBA(0,8,0,224)); spr_draw(paused_gfx, 240, 136); } if ((!(counter%6)) && (shldlvl<60) && (!shielded) && (!paused)) shldlvl++; if (counter < 256) { if (counter < 128) { temp_prem=oslSetImageTileSize(premess,0,0,256,64); if (counter < 32) temp_prem.stretchY = counter*2; else if (counter > 96) temp_prem.stretchY = 128-counter*2; else temp_prem.stretchY = 64; spr_draw(temp_prem, 112, 136-(premess.stretchY)/2); } else if (counter >= 128) { temp_prem=oslSetImageTileSize(premess,0,64,256,64); if (counter < 160) temp_prem.stretchY = (counter-128)*2; else if (counter > 224) temp_prem.stretchY = 256-counter*2; else temp_prem.stretchY = 64; spr_draw(temp_prem, 112, 136-(premess.stretchY)/2); } // if (counter==255) oslDeleteImage(premess); } /*if ((nbp==1) && (DEBUG)) { if (osl_keys.held.R) { for (i=0; i<16; i++) { sprintf(buffer,"%d",(i<15)?att_cooldowns[i]:(int)reddv); u = oslGetStringWidth(buffer); oslSetTransparentColor(RGB(255,0,255)); oslSetBkColor(RGB(255,0,255)); oslSetTextColor(RGB(255, 255, 255)); oslDrawString(480-u, i*12, buffer); } } if (osl_keys.held.L) { for (i=0; i<10; i++) { sprintf(buffer,"%d", (i<8)?pie_attacks[i][0]: (i==8)?(pie_ent.pie_hp): (int)(-2.55/(round*diff)*(pie_ent.pie_hp)+255)); u = oslGetStringWidth(buffer); oslSetTransparentColor(RGB(255,0,255)); oslSetBkColor(RGB(255,0,255)); oslSetTextColor(RGB(255, 255, 255)); oslDrawString(480-u, i*12, buffer); } } }*/ if ((att_ch_timer < 80) && (nbp==2) && (health > 0) && (pie_ent.pie_hp > 0) && (!paused)) { spr_draw(attch, 32, 33); spr_draw(cp2, 40 + cursor2p*32, 68); for (i=0; i<15; i++) { if (att_cooldowns[i] > 1) { sprintf(buffer, "%d", att_cooldowns[i]/60); oslDrawFillRect(32+i*32, 33, 32+(i+1)*32, 67, _RGBA(1, 1, 1, 128)); if (i < 12) oslDrawString(36+i*32, 42, buffer); if ((i==12) && (pie_ent.pie_hp > 25*round*diff) && (ulted == 0) && (att_cooldowns[12] > 1)) { al_draw_line(32+i*32, 33, 32+(i+1)*32, 66, _RGB(255, 0, 0), 0); } if ((i==13) && (pie_ent.pie_hp > 10*round*diff) && (ulted != 1) && (att_cooldowns[13] > 1)) { al_draw_line(32+i*32, 33, 32+(i+1)*32, 66, _RGB(255, 0, 0), 0); } } } } if (nbp == 2) { oslSetTextColor( _RGBA(255, 255, 255, 255-(global_fr%64)*4)); oslDrawString(270, 2, "OTHER MORTAL, USE I OR O TO ATTACK!"); oslSetTextColor( _RGB(255, 255, 255)); } oslEndDrawing(); oslSwapBuffers(); } //oslWaitVSync(); /*oslSwapBuffers(); oslWaitVSync();*/ if (mgcd==100) { u=random(6); switch(u) { case 0: i=sonicexe(diff); break; case 1: i=mincer(diff); break; case 2: i=shoot_teevees(diff, &health, round); break; case 3: i=flappy_cacodemon(diff); break; case 4: i=love_boat(diff); break; case 5: i=sonicexe2(diff); break; } if (i) { oslPlaySound(giygas[giyg_flag%3]); } else health=0; for (i=0; i<8; i++) { for (j=0; j<5; j++) { pie_attacks[i][j]=0; } bulbfell=0; } pie_ent.pie_facemode=0; mgcd=0; mouth.stretchX = 10; if (diff != 3) a=diff; else a=2; ball_ent = apply_impulse(ball_ent, random(2)?a:-1*a, random(2)?a:-1*a, (180-15*frappe)*3.14/180); frappe=-1; rckchscr=0; if (putin) putin=0; } } if ((mort==1) && (round==2)) { oslStopSound(tvnoisesound); oslDeleteSound(paf); paf = oslLoadSoundFile("./sfx/sfx-0029.wav"); oslStopSound(giygas[2]); oslPlaySound(tvnoisesound); for(i=0; i<420; i++) { oslStartDrawing(); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); u=random(4); //oslSetBilinearFilter(1); spr_draw(tvnoise[u], 0, 0); spr_draw(tvnoise[u], random(480), random(272)); spr_draw(tvnoise[u], random(480)-240, random(272)-136); spr_draw(tvnoise[u], random(240)-120, random(136)-68); //oslSetBilinearFilter(0); oslEndDrawing(); oslWaitVSync(); oslSwapBuffers(); } oslStopSound(tvnoisesound); oslPlaySound(paf); for(i=0; i<=135; i+=2) { oslStartDrawing(); oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0)); oslDrawFillRect(0, i, 480, 272-i, _RGB(255, 255, 255)); oslEndDrawing(); oslWaitVSync(); oslSwapBuffers(); } fadeout(); } for (i=0; i<3; i++) oslDeleteSound(giygas[i]); for (i=0; i<4; i++) oslDeleteSound(dictators_sfx[i]); for (i=0; i<5; i++) oslDeleteImage(tvnoise[i]); for (i=0; i<7; i++) oslDeleteSound(bulbsfx[i]); for (i=0; i<11; i++) oslDeleteSound(benj_sfx[i]); oslDeleteSound(tvnoisesound); if (round==2) { for (i=0; i<33; i++) oslDeleteImage(giyg_bg[i]); } oslDeleteSound(ko_sfx); oslDeleteSound(quitter); oslDeleteSound(pew); oslDeleteSound(paf); oslDeleteSound(psis_sfx); oslDeleteImage(numberz); oslDeleteImage(starsky); oslDeleteImage(lightning); oslDeleteImage(pie); oslDeleteImage(sleepwell); oslDeleteImage(ko); oslDeleteImage(explode); oslDeleteImage(ball_gfx); oslDeleteImage(ball_shad); oslDeleteImage(mgswirl); oslDeleteImage(powerball); oslDeleteSound(minigametime); oslDeleteSound(expl_sound); oslDeleteSound(expl_sound2); oslDeleteSound(meteor_fall); oslDeleteSound(stun_sound); oslDeleteSound(elec); oslDeleteSound(thunder); oslDeleteSound(whine); oslDeleteSound(mouth_sfx[0]); oslDeleteSound(mouth_sfx[1]); oslDeleteSound(bounce); oslDeleteImage(rckch[0]); oslDeleteImage(rckch[1]); oslDeleteImage(psycho); oslDeleteImage(paused_gfx); oslDeleteImage(ultgauge); oslDeleteImage(shlgauge); oslDeleteImage(visor); oslDeleteImage(bulbasaur); oslDeleteImage(recipe); oslDeleteImage(shield); oslDeleteImage(meteor); oslDeleteImage(stunning); oslDeleteImage(juche); oslDeleteImage(psis); oslDeleteImage(dictators); oslDeleteImage(mouth); oslDeleteImage(star); oslDeleteImage(suppo_gfx); oslDeleteImage(ulting_gfx); oslDeleteImage(attch); oslDeleteImage(cp2); return mort; } void taunt(int nbt) { int frame=0, k; const char *texts[12] = {"YOUR HEAD IS ALREADY OFF", "YOU WON'T SEE THE MOCK TURTLE", "MOTHER", "YOU'RE NOT EVEN TRYING", "AEIOU", "UNHAPPY UNBIRTHDAY", "YOU'RE LATE YOU'RE LATE YOU'RE LATE", "NO TIME TO SAY GOODBYE", "PAINTING YOUR BOWELS RED", "HOW DOTH THE LITTLE OF YOU LIVE", "I HAVE A VERY GOOD ADVICE", "THE WALRUS ATE THE CARPENTER"}; OSL_SOUND wind = oslLoadSoundFile("./sfx/sfx-0019.wav"); k = oslGetStringWidth(texts[nbt]); oslPlaySound(wind); while(frame<282) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); if (frame < 82) { oslSetTextColor(_RGB(frame*3, frame*3, frame*3)); oslDrawString((480 - k)/2, 130, texts[nbt]); } if ((frame >= 82) && (frame <= 200)) { oslSetTextColor(_RGB(255, 255, 255)); oslDrawString((480 - k)/2, 130, texts[nbt]); } else if (frame > 200) { oslSetTextColor(_RGB((282-frame)*3, (282-frame)*3, (282-frame)*3)); oslDrawString((480 - k)/2, 130, texts[nbt]); } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteSound(wind); } void creepypasta(int cpn) { int i, j, k, l, frame=0; char buffer[20]; OSL_IMAGE suicidemouse[18]; OSL_IMAGE temp_gfx; OSL_SOUND creepysfx, sfx; int bok[4][16]; const char *text[7]={"y wud u do dis","acually is dolan","fak u","FAGGT","u litl SHIZNIT", "gooby pls", "i wuz ins al a long"}; switch(cpn) { case 0: for (i=0; i<18; i++) { sprintf(buffer,"./gfx/gfx-%d.png",i+1160); suicidemouse[i]=LoadImg(buffer); suicidemouse[i].stretchX = 363; suicidemouse[i].stretchY = 272; suicidemouse[i]=oslSetImageRotCenter(suicidemouse[i]); } creepysfx = oslLoadSoundFile("./sfx/sfx-0065.wav"); oslSetSoundLoop(creepysfx, 1); oslPlaySound(creepysfx); i=0; while (frame < 620) { if (!(frame%6)) i++; oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); spr_draw(suicidemouse[i%18],240,138); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } for (i=0; i<18; i++) { oslDeleteImage(suicidemouse[i]); } oslStopSound(creepysfx); oslDeleteSound(creepysfx); break; case 1: suicidemouse[0]=LoadImg("./gfx/gfx-1038.png"); suicidemouse[1]=LoadImg("./gfx/gfx-1039.png"); suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]); creepysfx = oslLoadSoundFile("./sfx/sfx-0058.wav"); oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); while (frame < 45) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); suicidemouse[0]=oslSetAlpha(suicidemouse[0], frame*4); spr_draw(suicidemouse[0],240,271); oslEndDrawing(); //frame_debug(frame); oslSwapBuffers(); suicidemouse[0].stretchX +=2; suicidemouse[0].stretchY +=2; oslSetImageRotCenter(suicidemouse[0]); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); frame++; oslWaitVSync(); } for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } for (i=0; i<4; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); spr_draw(suicidemouse[1],0,0); oslEndDrawing(); oslSwapBuffers(); } fadeout(); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); /*while (oslGetSoundChannel(creepysfx) == 0);*/ oslDeleteSound(creepysfx); break; case 2: j = random(2); if (!j) suicidemouse[0] = LoadImg("./gfx/endisneigh.png"); else suicidemouse[0] = LoadImg("./gfx/endisneigh2.png"); if (!j) creepysfx = oslLoadSoundFile("./sfx/sfx-0083.wav"); else creepysfx = oslLoadSoundFile("./sfx/sfx-0109.wav"); oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); for (i=0; i<10; i++) { oslStartDrawing(); spr_draw(suicidemouse[0],0,0); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } fadeout(); oslDeleteImage(suicidemouse[0]); break; case 3: suicidemouse[0] = LoadImg("./gfx/safe.png"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); creepysfx = oslLoadSoundFile("./sfx/sfx-0026.wav"); oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); for (i=0; i<3; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } for (i=0; i<200; i++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0],239,135); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } fadeout(); oslDeleteImage(suicidemouse[0]); oslDeleteSound(creepysfx); break; case 4: for (i=0; i<4; i++) { sprintf(buffer,"./gfx/bnours%d.png",i+1); suicidemouse[i]=LoadImg(buffer); } creepysfx = oslLoadSoundFile("./sfx/sfx-0149.wav"); oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); i=0; while (frame < 600) { if (!(frame%4)) i++; oslStartDrawing(); spr_draw(suicidemouse[i%4],0,0); oslEndDrawing(); oslSwapBuffers(); frame++; oslWaitVSync(); } fadeout(); for (i=0; i<4; i++) { oslDeleteImage(suicidemouse[i]); } oslDeleteSound(creepysfx); break; case 5: suicidemouse[0] = LoadImg("./gfx/court_joy.png"); suicidemouse[1] = LoadImg("./gfx/gfx-0717.png"); creepysfx = oslLoadSoundFile("./sfx/sfx-0147.wav"); sfx=oslLoadSoundFile("./sfx/sfx-0011.wav"); oslPlaySound(sfx); for (j=0; j<256; j+=3) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255,255,255)); suicidemouse[0]=oslSetAlpha(suicidemouse[0], j); suicidemouse[1]=oslSetAlpha(suicidemouse[1], j); spr_draw(suicidemouse[0],0,0); spr_draw(suicidemouse[1],177,215); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } /*oslSetAlpha(OSL_FX_DEFAULT,0);*/ oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); while (frame < 292) { oslStartDrawing(); spr_draw(suicidemouse[0],0,0); spr_draw(suicidemouse[1],177,215); oslEndDrawing(); oslSwapBuffers(); frame++; oslWaitVSync(); } fadeout(); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteSound(creepysfx); oslDeleteSound(sfx); break; case 6: creepysfx = oslLoadSoundFile("./sfx/sfx-0060.wav"); suicidemouse[0] = LoadImg("./gfx/oag1.png"); suicidemouse[1] = LoadImg("./gfx/oag2.png"); oslStartDrawing(); spr_draw(suicidemouse[0],0,0); oslEndDrawing(); oslSwapBuffers(); while (frame < 720) { if (frame==480) { oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); } if (frame >= 480) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[1],173,26); oslEndDrawing(); oslSwapBuffers(); } else if (frame < 480) { oslStartDrawing(); spr_draw(suicidemouse[0],0,0); oslEndDrawing(); oslSwapBuffers(); } frame++; oslWaitVSync(); } fadeout(); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteSound(creepysfx); break; case 7: creepysfx = oslLoadSoundFile("./sfx/sfx-0148.wav"); suicidemouse[0] = LoadImg("./gfx/smurf_village.png"); suicidemouse[1] = LoadImg("./gfx/smurf_sprite.png"); suicidemouse[2] = LoadImg("./gfx/smurf_papazombie.png"); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0],0,0); oslEndDrawing(); i=0; j=-32; frame=0; oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); suicidemouse[2]=oslSetImageRotCenter(suicidemouse[2]); //fadein(suicidemouse[0]); while (frame < 400) { if (!(frame%2)) { if (j < 222) j+=4; } if (!(frame%3)) { i++; } oslStartDrawing(); spr_draw(suicidemouse[0],0,0); temp_gfx = oslSetImageTileSize(suicidemouse[1],(i%8)*32,0,32,42); temp_gfx.stretchX = 64; temp_gfx.stretchY = 84; spr_draw(temp_gfx, j, 181); oslEndDrawing(); if (j >= 222) { oslStartDrawing(); spr_draw(suicidemouse[0],0,0); temp_gfx = oslSetImageTileSize(suicidemouse[1],256,0,32,42); temp_gfx.stretchX = 64; temp_gfx.stretchY = 84; spr_draw(temp_gfx, j, 181); oslEndDrawing(); if (frame > 248) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGBA(255,0,0,155)); suicidemouse[2]=oslSetAlpha(suicidemouse[2], 250); spr_draw(suicidemouse[2],238,136); if (!(frame%2)) { suicidemouse[2].stretchX+=16; suicidemouse[2].stretchY+=16; } oslEndDrawing(); } } //frame_debug(frame); oslSwapBuffers(); frame++; oslWaitVSync(); } oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteImage(suicidemouse[2]); oslDeleteSound(creepysfx); /*oslSetBilinearFilter(1); oslDeleteSound(sfx);*/ break; case 8: creepysfx = oslLoadSoundFile("./sfx/sfx-0151.wav"); suicidemouse[0] = LoadImg("./gfx/squiward_suicide.png"); suicidemouse[1] = LoadImg("./gfx/bikini_hell.png"); suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]); suicidemouse[1]=oslSetImageRotCenter(suicidemouse[1]); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); oslEndDrawing(); oslSetSoundLoop(creepysfx, 0); oslPlaySound(creepysfx); frame=0; while((suicidemouse[0].stretchX) >= 0) { if (!(frame%2)) { oslStartDrawing(); spr_draw(suicidemouse[1],240,136); spr_draw(suicidemouse[0],240,136); if (!(frame%4) && (frame < 282)) { suicidemouse[0].stretchX++; suicidemouse[0].stretchY++; suicidemouse[0].angle += 6; } if (frame >= 282) { suicidemouse[0].stretchX-=3; suicidemouse[0].stretchY-=3; suicidemouse[0].angle -= 11; } oslEndDrawing(); //frame_debug(frame); oslSwapBuffers(); } else { oslStartDrawing(); spr_draw(suicidemouse[1],240,136); spr_draw(suicidemouse[0],240,136); oslEndDrawing(); oslSwapBuffers(); } oslWaitVSync(); frame++; } oslStartDrawing(); spr_draw(suicidemouse[1],240,136); oslEndDrawing(); oslSwapBuffers(); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteSound(creepysfx); /*oslSetTransparentColor(RGB(255,0,255)); oslDeleteSound(sfx);*/ break; case 9: creepysfx = oslLoadSoundFile("./sfx/sfx-0152.wav"); j=0; i=0; frame=0; oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); oslEndDrawing(); for (k=0; k<16; k++) { suicidemouse[k] = LoadImg("./gfx/creepycircle.png"); suicidemouse[k] = oslSetImageRotCenter(suicidemouse[k]); } while (frame<16*2) { if (!(frame%2)) { bok[0][i]=(2*(random(24)+1))-24; bok[1][i]= random(128)+127; bok[2][i]= random(128)+127; bok[3][i]= random(128)+127; oslStartDrawing(); if (bok[0][i] > 0) suicidemouse[i].stretchX = bok[0][i]; else suicidemouse[i].stretchX = 1; if (bok[0][i] > 0) suicidemouse[i].stretchY = bok[0][i]; else suicidemouse[i].stretchY = 1; spr_draw(suicidemouse[i],(i%4)*40+172, (i/4)*40+64); oslEndDrawing(); i++; } else { oslWaitVSync(); } frame++; } oslSwapBuffers(); //oslWaitKey(); i=0; j=0; k=0; frame=0; while(k < 100) { if (!(frame%4)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); for (j=0; j<16; j++) { if (bok[0][j] > -24) bok[0][j]--; if (bok[0][j] <= -24) { k++; bok[0][j]=24; i=0; oslPlaySound(creepysfx); bok[1][j]= random(128)+127; bok[2][j]= random(128)+127; bok[3][j]= random(128)+127; } if (bok[0][j] > 1) suicidemouse[j].stretchX = suicidemouse[j].stretchY = bok[0][j]; suicidemouse[j].R=bok[2][j]; suicidemouse[j].G=bok[3][j]; suicidemouse[j].B=bok[1][j]; if (bok[0][j] > 21) suicidemouse[j].R=suicidemouse[j].G=suicidemouse[j].B=255; spr_draw(suicidemouse[j],(j%4)*40+172, (j/4)*40+64); } oslEndDrawing(); //frame_debug(frame); oslSwapBuffers(); //oslWaitKey(); } else { oslWaitVSync(); } frame++; } for(i=0; i<16; i++) oslDeleteImage(suicidemouse[i]); oslDeleteSound(creepysfx); break; case 10: case 15: creepysfx = oslLoadSoundFile("./sfx/sfx-0057.wav"); sfx = oslLoadSoundFile("./sfx/bark.wav"); suicidemouse[0] = LoadImg("./gfx/gfx-0253.png"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); for (i=1; i<9; i++) { sprintf(buffer,"./gfx/gfx-0%d.png",i+661); suicidemouse[i]=LoadImg(buffer); suicidemouse[i].stretchX = 480; suicidemouse[i].stretchY = 272; } frame=0; j=0; /*oslStopSound(w4c);*/ oslSetSoundLoop(creepysfx, 1); oslPlaySound(creepysfx); while (frame < 750) { if (!(frame%16)) { suicidemouse[0].stretchX++; suicidemouse[0].stretchY = (int)(1.27*(suicidemouse[0].stretchX)); } if (!(frame%4)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[(j%8)+1],0,0); suicidemouse[0]=oslSetAlpha(suicidemouse[0],75); spr_draw(suicidemouse[0],240,136); oslEndDrawing(); oslSwapBuffers(); } else { j++; al_rest(0.016); } frame++; oslWaitVSync(); } if (cpn == 15) { suicidemouse[0].stretchX = 480; suicidemouse[0].stretchY = 610; oslStartDrawing(); suicidemouse[0]=oslSetAlpha(suicidemouse[0],255); spr_draw(suicidemouse[0],240,136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); al_set_sample_instance_position(sfx.instance, 16); oslPlaySound(sfx); while (al_get_sample_instance_position(sfx.instance)); } for (i=0; i<9; i++) { oslDeleteImage(suicidemouse[i]); } oslDeleteSound(creepysfx); oslDeleteSound(sfx); fadeout(); break; case 11: case 16: suicidemouse[0] = LoadImg("./gfx/dolan.png"); creepysfx = oslLoadSoundFile("./sfx/dolan.wav"); oslSetSoundLoop(creepysfx, 0); i=272; frame=0; j=random(7); while(frame < 1200) { if (!(frame%2)) { if (i>72) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0], 332, i); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); i--; } if ((frame > 800) && (i<73)) { if (cpn == 16) { suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); suicidemouse[0].stretchX = 480; suicidemouse[0].stretchY = 648; oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0],240,136); oslEndDrawing(); oslSwapBuffers(); if (frame == 812) oslPlaySound(creepysfx); oslWaitVSync(); } else { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0], 332, i+1); oslSetTextColor(_RGB(255, 255, 255)); k = oslGetStringWidth(text[j]); oslDrawString((480 - k)/2, 32, text[j]); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } oslWaitVSync(); } else { al_rest(0.008); } frame++; oslWaitVSync(); } oslDeleteImage(suicidemouse[0]); oslDeleteSound(creepysfx); /* while (oslGetSoundChannel(creepysfx) == 1); oslDeleteSound(sfx);*/ break; case 12: k=random(42); j=random(25); sprintf(buffer,"./sfx/sfx-0%d.wav",j+121); creepysfx = oslLoadSoundFile(buffer); j=random(25); sprintf(buffer,"./sfx/sfx-0%d.wav",j+121); sfx = oslLoadSoundFile(buffer); sprintf(buffer,"./gfx/pasta%d.png",k+1); suicidemouse[0] = LoadImg(buffer); oslSetSoundLoop(creepysfx, 0); al_set_sample_instance_position(creepysfx.instance, 16); oslPlaySound(creepysfx); suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]); frame=0; //oslSetBilinearFilter(1); while (al_get_sample_instance_position(creepysfx.instance)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0], 240, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); if (!(frame%4)) suicidemouse[0].stretchX++; suicidemouse[0].stretchY = (int)((float)(suicidemouse[0].sizeY)/(suicidemouse[0].sizeX)*suicidemouse[0].stretchX); frame++; } oslSetSoundLoop(sfx, 0); al_set_sample_instance_position(sfx.instance, 16); oslPlaySound(sfx); while (al_get_sample_instance_position(sfx.instance)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0], 240, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); if (!(frame%4)) suicidemouse[0].stretchX++; suicidemouse[0].stretchY = (int)((float)(suicidemouse[0].sizeY)/(suicidemouse[0].sizeX)*suicidemouse[0].stretchX); frame++; } //oslSetBilinearFilter(0); oslDeleteSound(creepysfx); oslDeleteImage(suicidemouse[0]); oslDeleteSound(sfx); break; case 13: creepysfx = oslLoadSoundFile("./sfx/sfx-0150.wav"); oslSetSoundLoop(creepysfx, 0); al_set_sample_instance_position(creepysfx.instance, 16); oslPlaySound(creepysfx); oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,255)); oslSetTextColor(_RGB(255, 255, 255)); al_draw_text(freesans, current_col, 8, 0, 0, "FATAL ERROR OCURRED IN THREAD"); al_draw_text(freesans, current_col, 8, 12, 0, "Shit happens... :-("); al_draw_text(freesans, current_col, 8, 36, 0, "Exception Details:"); al_draw_text(freesans, current_col, 8, 48, 0, "Exception - Bus error (death)"); al_draw_text(freesans, current_col, 8, 60, 0, "EPC - 08A1C208"); al_draw_text(freesans, current_col, 8, 72, 0, "Cause - 07H30P13"); al_draw_text(freesans, current_col, 8, 84, 0, "Status - D34D0L0L"); al_draw_text(freesans, current_col, 8, 96, 0, "BadVAddr - 0012AC40"); al_draw_text(freesans, current_col, 8, 108, 0, "zr:000Y0000 at:0008OF00 v0:000U0000 v1:00000012"); al_draw_text(freesans, current_col, 8, 120, 0, "a0:0000A001 a1:000R002E a2:09FFE768 a3:09FF06BC"); al_draw_text(freesans, current_col, 8, 132, 0, "t0:00D0E6BC t1:000E07D4 t2:0000A032 t3:8804D000"); al_draw_text(freesans, current_col, 8, 144, 0, "t4:09FFY5F8 t5:000O0E00 t6:08A2U658 t7:00008600"); al_draw_text(freesans, current_col, 8, 156, 0, "t8:000S0000 t9:000U8368 s0:08AC0000 s1:08AFK53C"); al_draw_text(freesans, current_col, 8, 168, 0, "s2:08BA0C20 s3:08BT453C s4:08A30000 s5:08A30000"); al_draw_text(freesans, current_col, 8, 180, 0, "s6:000T00EC s7:0000H0F9 k0:09FFIF00 k1:0000S000"); al_draw_text(freesans, current_col, 8, 192, 0, "gp:08AGD390 sp:000AFF00 fp:08A3M000 ra:0896E4BC"); al_draw_text(freesans, current_col, 8, 216, 0, "Will exit to Windows desktop in 10 seconds"); oslEndDrawing(); oslSwapBuffers(); while (al_get_sample_instance_position(creepysfx.instance)); oslDeleteSound(creepysfx); fadeout(); break; case 14: if (random(2)) suicidemouse[0] = LoadImg("./gfx/smilechu.png"); else suicidemouse[0] = LoadImg("./gfx/smilechu2.png"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); i=0; j=0; frame=0; while (i < 12) { if (!(frame%3)) { if (!j) { k=random(70); suicidemouse[0].stretchX = 10+random(150); l=82+random(36); } else k++; oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if (k>44) { j=1; if (k < 74) { suicidemouse[0].stretchX += 13; suicidemouse[0].stretchY = (int)(1.18 * (suicidemouse[0].stretchX)); spr_draw(suicidemouse[0],240,138); } if (k==l) { i++; j=0; } } //frame_debug(k); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } else { al_rest(0.008); oslWaitVSync(); } frame++; oslWaitVSync(); } oslDeleteImage(suicidemouse[0]); //oslDeleteSound(sfx); break; case 17: suicidemouse[0] = LoadImg("./gfx/nigel.png"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); creepysfx = oslLoadSoundFile("./sfx/smashing.wav"); frame=0; oslPlaySound(creepysfx); while (frame<512) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); for(i=0; i<8; i++) { j=random(10)-20; oslDrawFillRect(i*60,120+j,(i*60)+60,152+(-1*j), _RGB(96,96,0)); oslDrawFillRect(i*60,128+j,(i*60)+60,144+(-1*j), _RGB(128,128,0)); oslDrawFillRect(i*60,136+j,(i*60)+60,136+(-1*j), _RGB(160,160,0)); } if (frame >= 480) { spr_draw(suicidemouse[0],240,138); suicidemouse[0].stretchX += 16; suicidemouse[0].stretchY = (int)(1.33*(suicidemouse[0].stretchX)); } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteSound(creepysfx); oslDeleteImage(suicidemouse[0]); break; case 18: suicidemouse[0] = LoadImg("./gfx/caaat.png"); suicidemouse[1] = LoadImg("./gfx/caaat_ns.png"); creepysfx = oslLoadSoundFile("./sfx/caaat.wav"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); suicidemouse[1] = oslSetImageRotCenter(suicidemouse[1]); al_set_sample_instance_position(creepysfx.instance, 16); oslPlaySound(creepysfx); frame=0; while (al_get_sample_instance_position(creepysfx.instance)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if (frame<150) { spr_draw(suicidemouse[1],240,138); } else { spr_draw(suicidemouse[0],240,138); } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteSound(creepysfx); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); break; case 19: for (i=0; i<9; i++) { sprintf(buffer,"./gfx/pona0%d.png",i); suicidemouse[i]=LoadImg(buffer); suicidemouse[i].stretchX = 480; suicidemouse[i].stretchY = 272; suicidemouse[i]=oslSetImageRotCenter(suicidemouse[i]); } frame=0; creepysfx = oslLoadSoundFile("./sfx/pona.wav"); oslPlaySound(creepysfx); i=0; while (frame < 333) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if (frame < 110) { spr_draw(suicidemouse[frame/14],240,138); } if ((frame >= 110) && (frame <= 140)) { spr_draw(suicidemouse[8],240,138); } oslEndDrawing(); //frame_debug((int)oslGetRamStatus().maxAvailable); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteSound(creepysfx); for (i=0; i<9; i++) { oslDeleteImage(suicidemouse[i]); } break; case 20: suicidemouse[0] = LoadImg("./gfx/pookey1.png"); suicidemouse[1] = LoadImg("./gfx/pookey2.png"); creepysfx = oslLoadSoundFile("./sfx/pookeymon.wav"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); suicidemouse[1] = oslSetImageRotCenter(suicidemouse[1]); oslPlaySound(creepysfx); frame=0; while(frame < 550) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if ((frame >= 375) && (frame < 389)) spr_draw(suicidemouse[0], 240, 136); if ((frame >= 389) && (frame < 401)) spr_draw(suicidemouse[1], 240, 136); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteSound(creepysfx); break; case 21: suicidemouse[0] = LoadImg("./gfx/gfx-0825.png"); creepysfx = oslLoadSoundFile("./sfx/sfx-0030.wav"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); oslPlaySound(creepysfx); frame=0; suicidemouse[0].stretchX = i = 396; suicidemouse[0].stretchY = (int)(1.68*suicidemouse[0].stretchX); while(frame < 480) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); i=suicidemouse[0].stretchX; if ((suicidemouse[0].stretchX) > -72) { if (suicidemouse[0].stretchX >= 0) { suicidemouse[0].trans=255; spr_draw(suicidemouse[0], 240, 136); } if (suicidemouse[0].stretchX >= -36) { suicidemouse[0].stretchX += 36; suicidemouse[0].stretchY = (int)(1.68* (suicidemouse[0].stretchX)); suicidemouse[0].trans=128; spr_draw(suicidemouse[0], 240, 136); } suicidemouse[0].stretchX += ((suicidemouse[0].stretchX < -36)?72:36); suicidemouse[0].stretchY = (int)(1.68* (suicidemouse[0].stretchX)); suicidemouse[0].trans=64; spr_draw(suicidemouse[0], 240, 136); } suicidemouse[0].stretchX = i; if (!(frame%5)) { suicidemouse[0].stretchX = i - 18; } suicidemouse[0].stretchY = (int)(1.68*suicidemouse[0].stretchX); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteImage(suicidemouse[0]); oslDeleteSound(creepysfx); break; case 22: suicidemouse[0] = LoadImg("./gfx/lavender.png"); creepysfx = oslLoadSoundFile("./sfx/lavender.wav"); temp_gfx = oslSetImageTileSize(suicidemouse[0],0,0,48,48); temp_gfx = oslSetImageRotCenter(temp_gfx); oslPlaySound(creepysfx); frame=0; while(frame < 420) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); if (frame <= 341) { temp_gfx.trans=random(128); temp_gfx.stretchX = temp_gfx.stretchY = 96; } else { temp_gfx.trans=255; temp_gfx = oslSetImageTileSize(suicidemouse[0],48,0,48,48); temp_gfx = oslSetImageRotCenter(temp_gfx); temp_gfx.stretchX = temp_gfx.stretchY = 640; } if (frame < 395) spr_draw(temp_gfx, 240+((frame>341)?0:random(4)), 136+((frame>341)?104:random(4))); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteImage(suicidemouse[0]); oslDeleteSound(creepysfx); break; case 23: frame=0; suicidemouse[0] = LoadImg("./gfx/c64.png"); suicidemouse[1] = LoadImg("./gfx/c64-ar.png"); while (frame < 360) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); oslDrawFillRect(60, 0, 420, 272, _RGB(165,165,255)); oslDrawFillRect(80, 46, 400, 226, _RGB(66,66,231)); if (frame < 150) { for(i=0; i<1000; i++) { spr_draw(suicidemouse[1], (i%40)*8+80, ((int)(i/40))*8+38); } } else { spr_draw(suicidemouse[0], 80, 46); if ((frame%60) < 30) { oslDrawFillRect(80, 94, 88, 102, _RGB(165,165,255)); } } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); break; case 24: suicidemouse[0] = LoadImg("./gfx/sncell.png"); suicidemouse[1] = LoadImg("./gfx/sncpnt.png"); suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]); creepysfx = oslLoadSoundFile("./sfx/nuls.wav"); al_set_sample_instance_position(creepysfx.instance, 16); oslPlaySound(creepysfx); frame=0; while (al_get_sample_instance_position(creepysfx.instance)) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(suicidemouse[0], 236+random(7), 132+random(7)); spr_draw(suicidemouse[1], 224+random(7), 132+random(7)); spr_draw(suicidemouse[1], 246+random(7), 132+random(7)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); oslEndDrawing(); oslSwapBuffers(); fadeout(); oslDeleteImage(suicidemouse[0]); oslDeleteImage(suicidemouse[1]); oslDeleteSound(creepysfx); cls(); break; } fadeout(); } void ben() { OSL_IMAGE noise[9]; ALLEGRO_BITMAP *ben_sub; OSL_SOUND ben_mzx = oslLoadSoundFile("./sfx/ben.wav"); char buffer[20]; int i, j, frame=0, trans; noise[0]=LoadImg("./gfx/ben.png"); for (i=1; i<9; i++) { sprintf(buffer,"./gfx/gfx-0%d.png",i+661); noise[i]=LoadImg(buffer); noise[i].stretchX = 480; noise[i].stretchY = 272; } oslPlaySound(ben_mzx); while(frame<704) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(noise[(frame%8)+1],0,0); if (frame<192) { trans=frame; } else if (frame>512) trans=704-frame; else trans=192; i=0; while(i<272) { j=random(27)+13; ben_sub=al_create_sub_bitmap(noise[0].asset,0,i,425,i+j); al_draw_tinted_bitmap(ben_sub, al_map_rgba(255, 255, 255, trans), random(55), i, 0); i += j; } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } for(i=0; i<9; i++) { oslDeleteImage(noise[i]); } oslDeleteSound(ben_mzx); fadeout(); } void rndsft() { int frame=-3, i=0, j=0, k=0, l=0, m=0, n=0; OSL_IMAGE rndsft, px; ALLEGRO_BITMAP *rndsft_sub; OSL_MOD rndtheme; rndsft = LoadImg("./gfx/rndsft.png"); px = LoadImg("./gfx/pixel.png"); rndtheme = oslLoadSoundFileMOD("./muzaxx/rndsft.xm"); rndsft=oslSetImageRotCenter(rndsft); oslSetSoundLoopMOD(rndtheme, 0); oslPlaySoundMOD(rndtheme); while(frame<470) { oslStartDrawing(); al_clear_to_color(_RGB(0, 0, 0)); if (frame >= 161) { if (frame-160 < 35) rndsft_sub=al_create_sub_bitmap(rndsft.asset, 0, 0, 282, frame-160); else rndsft_sub=al_create_sub_bitmap(rndsft.asset, 0, 0, 282, frame-160); al_draw_bitmap(rndsft_sub, (480-rndsft.sizeX)/2, (272-rndsft.sizeY)/2, 0); } if ((frame >= 200) && (frame <= 220)) { if (frame==200) i=random(360); if (!(frame%2)) { oslDrawFillRect(0, 0, 480, 272, _RGB(0,0,0)); for (j=0; j<13; j++) { oslDrawFillRect(i+j*16, 60, i+j*16+8, 272, _RGB(255,127,0)); } } } if ((frame >= 259) && (frame <= 295)) { if (frame == 259) { i=random(32)+24; k=random(9)+6; oslSetTextColor(_RGB(0, 224, 0)); m=random(127); n=random(44); } for(j=0; j= 336) && (frame <= 345)) { oslDrawFillRect(0,0,480,272, _RGB(0,0,0)); spr_draw(rndsft,random(480),random(272)); } if (frame >= 369) { for(i=0; i<48; i++) { for (j=0; j<17; j++) { al_draw_pixel(i*10, j*16, _RGB(random(256), random(256), random(256))); } } if ((frame == 369) || (!(frame%4))) k=random(360); oslDrawFillRect(k,0,k+32,272, _RGB(0,254,255)); } oslEndDrawing(); oslSwapBuffers(); frame++; oslWaitVSync(); } oslDeleteImage(rndsft); oslDeleteImage(px); oslStopSoundMOD(rndtheme); fadeout(); } int warning_onepilepsy() { OSL_IMAGE warning = LoadImg("./gfx/warning.png"); OSL_MOD theme = oslLoadSoundFileMOD("./muzaxx/giygas.xm"); int i, w, frame=0, quit=0, red=0, accept=0; const char *text[8] = {"This game contains flashing patterns that may cause","epileptic seizures when players attempt to see them.","It also contains strange pictures that may cause some players","to have brief but intense adrenaline surges in their body."," ","Consult a doctor if you experience","unusual symptoms while playing games!","Press SPACE to play or ESC to quit"}; warning.stretchX = 360; warning=oslSetImageRotCenter(warning); oslPlaySoundMOD(theme); while (!quit) { oslStartDrawing(); al_clear_to_color(_RGB(0, 0, 0)); for (i=0; i<7; i++) { if (i<5) oslSetTextColor(_RGB(255, 255, 255)); if (i>4) oslSetTextColor(_RGB(255, 255, 0)); w = oslGetStringWidth(text[i]); oslDrawString((480 - w)/2, 92+i*20, text[i]); } warning.angle = 7*sin((0.25*frame)/3.14); spr_draw(warning, 240, 32); oslSetTextColor(_RGB(red, 0, 0)); w = oslGetStringWidth(text[7]); oslDrawString((480 - w)/2, 256, text[7]); red -= 3; if (red < 0) red=255; al_get_keyboard_state(&kbdstate); if (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE) || al_key_down(&kbdstate, ALLEGRO_KEY_ENTER)) { accept=1; quit=1; } else if (al_key_down(&kbdstate, ALLEGRO_KEY_ESCAPE)) { accept=0; quit=1; } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); frame++; } //oslFlushKey(); //oslSetBilinearFilter(0); fadeout(); oslStopSoundMOD(theme); oslDeleteSoundMOD(theme); return accept; } int main() { short i, a, tx=0, ty=0, gt=0, ch=0, chd=1, mort=0, vies=2, round=1, f=0, nbp=1, fs=0, quit=0, rebound=0; int q=strlen("v2.00"), scrw, scrh, h=100; const char *items[4] = {"CHALLENGE THE PIE", "DIFFICULTY:", "WHO DID THIS MESS?", "FLEE TO WINDOWS LIKE A COWARD"}; const char *diffs[3] = {"WUSS", "MANLY", "HELL"}; OSL_IMAGE hand; OSL_IMAGE title; OSL_IMAGE alice; OSL_SOUND crack; OSL_SOUND theme; srand(time(NULL)); if(!al_init()) { fprintf(stderr, "failed to initialize allegro!\n"); exit(-1); } al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_REQUIRE); al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_REQUIRE); al_set_new_display_option(ALLEGRO_RENDER_METHOD, 0, ALLEGRO_REQUIRE); al_set_new_display_flags(ALLEGRO_FULLSCREEN); al_init_image_addon(); al_init_primitives_addon(); al_init_ttf_addon(); al_install_audio(); al_init_acodec_addon(); al_install_keyboard(); timer=al_create_timer(1.0 / 60); event_queue = al_create_event_queue(); //al_reserve_samples(16); voice = al_create_voice(44100, ALLEGRO_AUDIO_DEPTH_INT16, ALLEGRO_CHANNEL_CONF_2); mixer = al_create_mixer(44100, ALLEGRO_AUDIO_DEPTH_FLOAT32, ALLEGRO_CHANNEL_CONF_2); al_attach_mixer_to_voice(mixer, voice); al_set_new_bitmap_flags(ALLEGRO_NO_PREMULTIPLIED_ALPHA); al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA); al_set_new_display_refresh_rate(60); freesans = al_load_ttf_font("./fonts/Nouveau_IBM.ttf", 11, 0); //ALLEGRO_TTF_MONOCHROME); court=LoadImg("./gfx/court_hell.png"); benj=LoadImg("./gfx/boktai.png"); crack = oslLoadSoundFile("./sfx/sfx-0026.wav"); theme = oslLoadSoundFile("./sfx/theme.wav"); ratio=getScreenRatio(); if (ratio < 160) { scrw=800; scrh=600; } else if (ratio > 160) { scrw=1280; scrh=720; } else if (ratio == 160) { scrw=1280; scrh=800; } display = al_create_display(scrw, scrh); al_hide_mouse_cursor(display); psp_screen = al_create_bitmap(480, 272); hand = LoadImg("./gfx/hand.png"); title = LoadImg("./gfx/title.png"); alice = LoadImg("./gfx/alice.png"); for (a=0; a<90; a++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } a=warning_onepilepsy(); if (a) { rndsft(); while ((ch != 137) && (!quit)) { oslStartDrawing(); if (!f) oslPlaySound(theme); if (!(f%6)) { tx=random(16); ty=random(32); } chd=chd%3; oslSetTextColor(_RGBA(255, 255, 255, gt)); oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0)); title=oslSetAlpha(title, gt); spr_draw(title, tx, ty); title=oslSetAlpha(title, gt/2); spr_draw(title, random(16), random(32)); title=oslSetAlpha(title, gt/4); spr_draw(title, random(16), random(32)); alice=oslSetAlpha(alice, gt); spr_draw(alice, 299, 0); oslDrawString(480-(q*6), 260, "v2.00"); for (i=0; i<4; i++) { oslDrawString(48, 182+i*20, items[i]); if ((!i) && (nbp==2)) oslDrawString(162, 182, "(AGAINST A MORTAL)"); } hand=oslSetAlpha(hand,gt); spr_draw(hand, 8+4*sin(0.0625*f), 186+ch*20); oslSetTextColor(_RGBA(255, ((chd<2)?(255/(chd+1)):0), 0, gt)); oslDrawString(120, 202, diffs[chd]); if (gt < 255) gt++; al_get_keyboard_state(&kbdstate); if ((!al_key_down(&kbdstate, ALLEGRO_KEY_UP) && !al_key_down(&kbdstate, ALLEGRO_KEY_DOWN) && !al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT) && !al_key_down(&kbdstate, ALLEGRO_KEY_LEFT) && !al_key_down(&kbdstate, ALLEGRO_KEY_ENTER))) rebound=0; if (!rebound) { if (al_key_down(&kbdstate, ALLEGRO_KEY_UP)) ch--; if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) ch++; if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (ch==1)) chd++; if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (ch==0) && (nbp==1)) nbp++; if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (ch==0) && (nbp==2)) nbp--; if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (ch==1)) { chd--; if (chd < 0) chd=2; } if ((al_key_down(&kbdstate, ALLEGRO_KEY_UP) || al_key_down(&kbdstate, ALLEGRO_KEY_DOWN) || al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT) || al_key_down(&kbdstate, ALLEGRO_KEY_LEFT))) rebound=1; } if (ch < 0) ch += 4; else if (ch > 3) ch -= 4; f++; if (al_key_down(&kbdstate, ALLEGRO_KEY_ESCAPE)) { ch=137; quit=1; } if (al_key_down(&kbdstate, ALLEGRO_KEY_C)) { oslStopSound(theme); fadeout(); for (i=0; i<25; i++) creepypasta(i); oslPlaySound(theme); } if ((al_key_down(&kbdstate, ALLEGRO_KEY_ENTER)) && (!rebound) && (!quit)) { rebound=1; if (!(ch%2)) fadeout(); switch(ch) { case 0: { vies=2; mort=0; round=1; f=-1; oslStopSound(theme); while ((vies > 0) && (round < 3)) { mort=game(round, chd+1, nbp); counter=0; if ((!mort) || (mort==2)) { i=random(25); if (!mort) { oslPlaySound(crack); for (a=0; a<15; a++) { oslStartDrawing(); oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255)); oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } creepypasta(i); vies--; } else { vies=-1; } } else { fadeout(); if (round==1) ben(); round++; } if ((vies > 0) && (round < 3)) { taunt(random(12)); } } break; } case 1: { chd++; break; } case 2: { f=-1; oslStopSound(theme); h=100; credz(); /*if (DEBUG) { sonicexe(chd+1); } else { credz(); }*/ break; } case 3: { ch=137; quit=1; break; } } } oslEndDrawing(); oslSwapBuffers(); oslWaitVSync(); } } fadeout(); al_show_mouse_cursor(display); al_destroy_display(display); return 0; }