0001: #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
0002:
0003: #include <stdio.h>
0004: #include <allegro5/allegro.h>
0005: #include <allegro5/allegro_font.h>
0006: #include <allegro5/allegro_ttf.h>
0007: #include <allegro5/allegro_image.h>
0008: #include <allegro5/allegro_audio.h>
0009: #include <allegro5/allegro_acodec.h>
0010: #include <allegro5/allegro_primitives.h>
0011: #include <math.h>
0012:
0013: #define _RGB al_map_rgb
0014: #define _RGBA al_map_rgba
0015: #define oslSwapBuffers al_flip_display
0016: #define oslWaitVSync al_wait_for_vsync
0017: #define oslDeleteSound al_destroy_sample
0018: #define oslDrawFillRect al_draw_filled_rectangle
0019:
0020: #define STALLMAN Stupid_Toe_Cheese_Eater_Hippie
0021: #define GPL Shitty_Confusing_License
0022: #define BSD3CLAUSE Actual_License_Of_This_Program
0023:
0024: #define ESPAC_HORIZ 64
0025: #define HAUT_FIELD 138
0026: #define GRAVIT -0.05
0027:
0028:
0029:
0030: typedef struct {
0031: int rx;
0032: int ry;
0033: } RESOLUTION;
0034:
0035: typedef struct {
0036: ALLEGRO_SAMPLE *ref;
0037: ALLEGRO_SAMPLE_INSTANCE *instance;
0038: } OSL_SOUND;
0039:
0040: typedef struct {
0041: ALLEGRO_AUDIO_STREAM *stream;
0042: } OSL_MOD;
0043:
0044: typedef struct {
0045: ALLEGRO_BITMAP *asset;
0046: float sizeX;
0047: float sizeY;
0048: float x;
0049: float y;
0050: float stretchX;
0051: float stretchY;
0052: float centerX;
0053: float centerY;
0054: float angle;
0055:
0056: int R;
0057: int G;
0058: int B;
0059:
0060: int trans;
0061: } OSL_IMAGE;
0062:
0063: struct ball {
0064: float speed_h;
0065: float speed_v;
0066: float speed_z;
0067: int angle;
0068: int x2d;
0069: int y2d;
0070: int z3d;
0071: short poisoned;
0072: };
0073:
0074: struct pie_entity {
0075: int pie_hp;
0076: int pie_facemode; //mode sarko-JLM-autre?
0077: int pie_direction;
0078: int pie_x;
0079: int pie_y;
0080: };
0081:
0082: OSL_IMAGE court, benj;
0083: ALLEGRO_FONT *freesans = NULL;
0084: ALLEGRO_COLOR current_col;
0085: ALLEGRO_EVENT_QUEUE *event_queue;
0086: ALLEGRO_DISPLAY *display = NULL;
0087: ALLEGRO_SAMPLE_ID *id[16];
0088: ALLEGRO_KEYBOARD_STATE kbdstate;
0089: ALLEGRO_BITMAP *psp_screen = NULL;
0090: ALLEGRO_VOICE *voice;
0091: ALLEGRO_MIXER *mixer;
0092: ALLEGRO_TIMER *timer = NULL;
0093: ALLEGRO_EVENT_QUEUE *event_queue = NULL;
0094: short redraw = 1;
0095:
0096: unsigned long int counter=0;
0097: unsigned int ratio=0;
0098:
0099: const float FPS = 60;
0100:
0101: OSL_IMAGE oslSetImageRotCenter(OSL_IMAGE osl_img)
0102: {
0103: OSL_IMAGE dis = osl_img;
0104: dis.centerX = dis.sizeX/2;
0105: dis.centerY = dis.sizeY/2;
0106: return dis;
0107: }
0108:
0109: OSL_IMAGE oslSetImageTileSize(OSL_IMAGE img_param, int sx, int sy, int w, int h)
0110: {
0111: OSL_IMAGE dis;
0112: dis = img_param;
0113:
0114: dis.asset = al_create_sub_bitmap(dis.asset, sx, sy, w, h);
0115: dis.sizeX = w;
0116: dis.sizeY = h;
0117: dis.stretchX = w;
0118: dis.stretchY = h;
0119:
0120: return dis;
0121: }
0122:
0123: OSL_IMAGE LoadImg(const char *filename)
0124: {
0125: OSL_IMAGE dis;
0126:
0127: dis.asset = al_load_bitmap(filename);
0128: dis.sizeX = al_get_bitmap_width(dis.asset);
0129: dis.sizeY = al_get_bitmap_height(dis.asset);
0130: dis.x = 0;
0131: dis.y = 0;
0132: dis.stretchX = dis.sizeX;
0133: dis.stretchY = dis.sizeY;
0134: dis.centerX = 0;
0135: dis.centerY = 0;
0136: dis.angle = 0;
0137:
0138: dis.R=255;
0139: dis.G=255;
0140: dis.B=255;
0141:
0142: dis.trans=255;
0143:
0144: return dis;
0145: }
0146:
0147: OSL_IMAGE oslCreateImage(int w, int h)
0148: {
0149: OSL_IMAGE dis;
0150:
0151: dis.asset = al_create_bitmap(w, h);
0152: dis.sizeX = al_get_bitmap_width(dis.asset);
0153: dis.sizeY = al_get_bitmap_height(dis.asset);
0154: dis.x = 0;
0155: dis.y = 0;
0156: dis.stretchX = dis.sizeX;
0157: dis.stretchY = dis.sizeY;
0158: dis.centerX = 0;
0159: dis.centerY = 0;
0160: dis.angle = 0;
0161:
0162: dis.R=255;
0163: dis.G=255;
0164: dis.B=255;
0165:
0166: dis.trans=255;
0167:
0168: return dis;
0169: }
0170:
0171: int random(int k)
0172: {
0173: return rand()%k;
0174: }
0175:
0176: int swirl_collide(int px, int py, int gudule, int mgsy)
0177: {
0178: if ((px-(gudule))*(px-(gudule))+(py-(mgsy))*(py-(mgsy)) <= 512) return 1; else return 0;
0179: }
0180:
0181: struct ball initball()
0182: {
0183: struct ball abadgh;
0184:
0185: abadgh.x2d=random(320)+80; //x
0186: abadgh.y2d=170; //y
0187: abadgh.speed_v=-1; //vy
0188: abadgh.speed_h=0; //vx
0189: abadgh.speed_z=2; //vz
0190: abadgh.angle=0; //
0191: abadgh.z3d=2; //z
0192: abadgh.poisoned=0;
0193:
0194: return abadgh;
0195: }
0196:
0197: struct pie_entity initpie()
0198: {
0199: struct pie_entity abadgh;
0200: abadgh.pie_facemode=0;
0201: abadgh.pie_direction=0;
0202: abadgh.pie_x=128;
0203: abadgh.pie_y=136;
0204: return abadgh;
0205: }
0206:
0207: struct ball apply_impulse(struct ball ball_arg, float v, float v2, float angle)
0208: {
0209: struct ball dis = ball_arg;
0210:
0211: dis.speed_h = v;
0212: dis.speed_v = -v2;
0213:
0214: return dis;
0215: }
0216:
0217: int getScreenRatio()
0218: {
0219: ALLEGRO_MONITOR_INFO proutzob;
0220: RESOLUTION res;
0221: int a,b;
0222:
0223: al_get_monitor_info(0, &proutzob);
0224: a=(proutzob).x2 - (proutzob).x1 + 1;
0225: b=(proutzob).y2 - (proutzob).y1 + 1;
0226:
0227: res.rx = a;
0228: res.ry = b;
0229:
0230: return (a*100)/b;
0231: }
0232:
0233: OSL_IMAGE oslDeleteImage(OSL_IMAGE image)
0234: {
0235: OSL_IMAGE dis = image;
0236: al_destroy_bitmap(dis.asset);
0237: return dis;
0238: }
0239:
0240: void oslSetTextColor(ALLEGRO_COLOR col)
0241: {
0242: current_col = col;
0243: }
0244:
0245: void oslDrawString(float x, float y, const char *text)
0246: {
0247: al_draw_text(freesans, current_col, x, y, 0, text);
0248: }
0249:
0250: void spr_draw(OSL_IMAGE image, float x, float y)
0251: {
0252: 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);
0253: image.x = x;
0254: image.y = y;
0255: }
0256:
0257: OSL_MOD oslLoadSoundFileMOD(const char *filename)
0258: {
0259: OSL_MOD dis;
0260: dis.stream = al_load_audio_stream(filename, 10, 1024);
0261: al_attach_audio_stream_to_mixer(dis.stream, mixer);
0262: return dis;
0263: }
0264:
0265: void oslSetSoundLoopMOD(OSL_MOD sound, short yesno)
0266: {
0267: if (yesno == 1) al_set_audio_stream_playmode(sound.stream,ALLEGRO_PLAYMODE_LOOP); else al_set_audio_stream_playmode(sound.stream, ALLEGRO_PLAYMODE_ONCE);
0268: }
0269:
0270: void oslPlaySoundMOD(OSL_MOD sound)
0271: {
0272: al_set_audio_stream_playmode(sound.stream, ALLEGRO_PLAYMODE_LOOP);
0273: al_set_audio_stream_playing(sound.stream, true);
0274: }
0275:
0276: void oslStopSoundMOD(OSL_MOD sound)
0277: {
0278: al_set_audio_stream_playing(sound.stream, false);
0279: }
0280:
0281: void oslDeleteSoundMOD(OSL_MOD sound)
0282: {
0283: oslStopSoundMOD(sound);
0284: al_destroy_audio_stream(sound.stream);
0285: }
0286:
0287: OSL_SOUND oslLoadSoundFile(const char *filename)
0288: {
0289: OSL_SOUND dis;
0290: dis.ref = al_load_sample(filename);
0291: dis.instance = al_create_sample_instance(dis.ref);
0292: al_set_sample_instance_playmode(dis.instance, ALLEGRO_PLAYMODE_ONCE);
0293: al_attach_sample_instance_to_mixer(dis.instance, mixer);
0294: return dis;
0295: }
0296:
0297: void oslSetSoundLoop(OSL_SOUND sound, short yesno)
0298: {
0299: if (yesno == 1) al_set_sample_instance_playmode(sound.instance,ALLEGRO_PLAYMODE_LOOP); else al_set_sample_instance_playmode(sound.instance,ALLEGRO_PLAYMODE_ONCE);
0300: }
0301:
0302: void oslPlaySound(OSL_SOUND sound)
0303: {
0304: if (!al_play_sample_instance(sound.instance)) oslDrawString(0, 0, "could not play sound!");
0305: }
0306:
0307: void oslStopSound(OSL_SOUND sound)
0308: {
0309: al_stop_sample_instance(sound.instance);
0310: }
0311:
0312: void oslDeleteSound(OSL_SOUND sound)
0313: {
0314: oslStopSound(sound);
0315: al_destroy_sample_instance(sound.instance);
0316: }
0317:
0318: void oslStartDrawing()
0319: {
0320: al_set_target_bitmap(psp_screen);
0321: }
0322:
0323: void oslEndDrawing()
0324: {
0325: al_set_target_bitmap(al_get_backbuffer(display));
0326: 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);
0327: }
0328:
0329: OSL_IMAGE oslSetAlpha(OSL_IMAGE gfx, int trans_p)
0330: {
0331: OSL_IMAGE dis = gfx;
0332: dis.trans = trans_p;
0333: return dis;
0334: }
0335:
0336: OSL_IMAGE oslSetTint(OSL_IMAGE img_param, int pR, int pG, int pB)
0337: {
0338: OSL_IMAGE dis;
0339: dis = img_param;
0340:
0341: dis.R = pR;
0342: dis.G = pG;
0343: dis.B = pB;
0344:
0345: return dis;
0346: }
0347:
0348: int oslGetStringWidth(const char *text)
0349: {
0350: int j;
0351: j=al_get_text_width(freesans, text);
0352: return j;
0353: }
0354:
0355: void cls()
0356: {
0357: al_set_target_bitmap(al_get_backbuffer(display));
0358: oslDrawFillRect(0,0, al_get_display_width(display), al_get_display_height(display), _RGB(0, 0, 0));
0359: oslSwapBuffers();
0360: al_set_target_bitmap(psp_screen);
0361: }
0362:
0363: void fadeout()
0364: {
0365: int i;
0366: al_set_target_bitmap(al_get_backbuffer(display));
0367: for (i=0; i<80; i++)
0368: {
0369: oslDrawFillRect(0,0, al_get_display_width(display), al_get_display_height(display), _RGBA(0, 0, 0, i));
0370: oslSwapBuffers();
0371: oslWaitVSync();
0372: }
0373: al_set_target_bitmap(psp_screen);
0374: }
0375:
0376: void draw_benj(OSL_IMAGE benj, int px, int py, short shielded, OSL_IMAGE shield)
0377: {
0378:
0379: float court_zoom = 0.00192*(py+32) + 0.562;
0380: shield.stretchX = (int)(48*(float)court_zoom);
0381: shield.stretchY = (int)(48*(float)court_zoom);
0382:
0383: if ((benj.angle) == -90)
0384: {
0385: spr_draw(benj, px-16, py+88);
0386: }
0387: else if ((benj.angle) == 90)
0388: {
0389: spr_draw(benj, px+64, py+32);
0390: }
0391: else if ((benj.angle) == 0) spr_draw(benj, px, py);
0392:
0393: if (shielded)
0394: {
0395: shield.trans=128;
0396: spr_draw(shield, px+4, py+16);
0397: }
0398: }
0399:
0400: void amigatext(const char *arg, int x, int y, OSL_IMAGE amigafont, int width, int height)
0401: {
0402: int i, l=strlen(arg), tx=x, placex=(amigafont.sizeX)/width;
0403: OSL_IMAGE singlechar;
0404:
0405:
0406: for(i=0; i<l; i++)
0407: {
0408: if (arg[i] <= 'Z')
0409: {
0410: singlechar=oslSetImageTileSize(amigafont, ((arg[i]-32)%placex)*width, ((arg[i]-32)/placex)*height, width, height);
0411: spr_draw(singlechar, tx, y);
0412: }
0413:
0414: tx += width;
0415: }
0416: }
0417:
0418: void credz()
0419: {
0420: int frame=0, a=0, b=480, c=0, d=32, e=136, trans=0, skipframe=0, f=7, i, benj_frame=0;
0421: short quit=0;
0422: char buffer[39];
0423:
0424: const char *texts[23] = {"v2.00", "Released on 11/19/2014 for", "","", "(C) 2014 by",
0425: "Code, some GFX and .XM music by", "Ball physics and OSLib by",
0426: "Inspired by", "THE NONE", "Musics ingame ripped from", "EARTHBOUND",
0427: "PC Version powered by", "ALLEGRO V5", "Coding started on", "JULY 2013", "Hours of work", "COUNTLESS",
0428: "Most pictures were found on", "GOOGLE PICS", "Number of defeat animations", "25", " ", " "};
0429:
0430: const char *greeted[25] = {"ICEMAN", "PRINCEPS-BONUS", "ODIE_ONE", "MAGEDRAXGONVAMPIRE", "XELTEKSEN", "FEI", "SHYKOOPA77", "XIRIUS_THIR", "GOBOLZ",
0431: "MEZ", "ORION_", "ZEROSQUARE", "BRUNNI", "MATMOOK", "JEFFR3Y", "DR.DEIMOS", "GODZIL", "ARETHIUS", "TENDERNESS", "KEYDEE GAMER BOY",
0432: "OBO", "BARONLESTAT666", "ISOBEL", "LUNA240681", "...AND MANY OTHERS"};
0433:
0434: OSL_MOD theme;
0435: OSL_IMAGE aipc;
0436: OSL_IMAGE twt;
0437: OSL_IMAGE gml;
0438: OSL_IMAGE amiga;
0439: OSL_IMAGE giygas;
0440: OSL_IMAGE sonicexe;
0441: OSL_IMAGE flappy_redhill;
0442: OSL_IMAGE _1in24, aa, bb;
0443: OSL_IMAGE temp_gfx, temp_benj;
0444: OSL_IMAGE iamgod[4];
0445:
0446: theme = oslLoadSoundFileMOD("./muzaxx/credz.xm");
0447: aipc = LoadImg("./gfx/credz/aipc.png");
0448: twt = LoadImg("./gfx/credz/twitter.png");
0449: gml = LoadImg("./gfx/credz/gmail.png");
0450: amiga = LoadImg("./gfx/credz/amiga.png");
0451: giygas = LoadImg("./gfx/credz/giygas.png");
0452: sonicexe = LoadImg("./gfx/sonicexe.png");
0453: flappy_redhill = LoadImg("./gfx/flappy_redhill.png");
0454: aa = LoadImg("./gfx/pookey1.png");
0455: bb = LoadImg("./gfx/pona08.png");
0456: temp_gfx.asset = al_create_bitmap(480, 272);
0457:
0458: for (i=1; i<=4; i++)
0459: {
0460: sprintf(buffer,"./gfx/iamgod%d.png",i);
0461: iamgod[i-1] = LoadImg(buffer);
0462: }
0463:
0464: sprintf(buffer,"./gfx/pasta%d.png",random(42)+1);
0465: _1in24 = LoadImg(buffer);
0466:
0467:
0468: oslStartDrawing();
0469: oslDrawFillRect(0, 0, 480, 272, _RGB(0,0,0));
0470: oslEndDrawing();
0471: oslSwapBuffers();
0472:
0473: giygas = oslSetImageRotCenter(giygas);
0474:
0475: oslPlaySoundMOD(theme);
0476:
0477: while ((frame < 10600) && (!quit))
0478: {
0479: if (!skipframe)
0480: {
0481: oslStartDrawing();
0482: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
0483: if (frame < 684)
0484: {
0485: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64));
0486: for(a=0; a<16; a++)
0487: {
0488: oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255));
0489: if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255));
0490: }
0491:
0492: temp_benj = oslSetImageTileSize(benj, (benj_frame%8)*32, 48, 32,48);
0493: temp_benj.stretchX = 96;
0494: temp_benj.stretchY = 144;
0495: if (frame < 492) benj.trans=192; else benj.trans=684-frame;
0496: spr_draw(temp_benj, 78, 90);
0497: if (frame < 428) benj.trans=255; else benj.trans=684-frame;
0498:
0499: oslSetImageTileSize(aipc, 0, 0, (frame<76)?frame*4:304, 34);
0500: spr_draw(aipc, 10, 10);
0501: if (c > -32) c--; else c=0;
0502:
0503: if (frame > 180)
0504: {
0505: /*if (frame < 428)
0506: {
0507: if (d > 255) oslSetAlpha(OSL_FX_DEFAULT, 0); else oslSetAlpha(OSL_FX_ALPHA, d);
0508: }
0509: else
0510: {
0511: oslSetAlpha(OSL_FX_ALPHA, 684-frame);
0512: }*/
0513: oslSetTextColor(_RGB(255, 255, 255));
0514: for (a=0; a<5; a++) oslDrawString(b, 100+a*20, texts[a]);
0515: amigatext("A.C. 2014", b, 132, amiga, 16, 22);
0516: amigatext("240-185", b, 192, amiga, 16, 22);
0517: if (b > 264) b -= 4;
0518: if (d < 255) d += 2;
0519: }
0520:
0521: }
0522:
0523: if ((frame >= 684) && (frame < 1368))
0524: {
0525: if ((frame==684) || (frame == 1032))
0526: {
0527: d=-12;
0528: trans=0;
0529: }
0530:
0531: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64));
0532: for(a=0; a<16; a++)
0533: {
0534: oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255));
0535: if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255));
0536: }
0537: if (c > -32) c--; else c=0;
0538:
0539: //oslSetAlpha(OSL_FX_ALPHA, trans);
0540:
0541: if (trans < 252) trans+=4;
0542:
0543: if (frame < 1032)
0544: {
0545: b=oslGetStringWidth(texts[5]);
0546: oslDrawString((480-b)/2, d, texts[5]);
0547: amigatext("240-185", 184, d+32, amiga, 16, 22);
0548: }
0549: else
0550: {
0551: b=oslGetStringWidth(texts[6]);
0552: oslDrawString((480-b)/2, d, texts[6]);
0553: amigatext("BRUNNI", 192, d+32, amiga, 16, 22);
0554: }
0555:
0556: if (d < 66) d += 2;
0557: }
0558:
0559:
0560: if ((frame >= 1368) && (frame <= 2735))
0561: {
0562: temp_gfx.stretchX = 480;
0563: temp_gfx.centerX = 0;
0564: temp_gfx.centerY = 0;
0565:
0566: oslStartDrawing();
0567: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
0568:
0569:
0570:
0571:
0572: if (f < 21)
0573: {
0574: b=oslGetStringWidth(texts[f]);
0575: oslDrawString(240+(240-b)/2, 120, texts[f]);
0576:
0577: b=strlen(texts[f+1])*16;
0578: amigatext(texts[f+1], 240+(240-b)/2, 144, amiga, 16, 22);
0579: spr_draw(giygas, 120, 136);
0580: }
0581:
0582:
0583: temp_gfx=oslSetImageRotCenter(temp_gfx);
0584: temp_gfx.stretchX = d;
0585: temp_gfx.stretchY = (int)((float)(0.57)*d);
0586:
0587: if (frame == 1368)
0588: {
0589: d=0;
0590: e=136;
0591: }
0592:
0593: spr_draw(temp_gfx, 240, e);
0594:
0595: if (temp_gfx.stretchX > 1280) e += 8; else e=136;
0596: if (temp_gfx.stretchX < 1536) d += 8; else
0597: {
0598: f += 2;
0599: d=0;
0600: }
0601: oslEndDrawing();
0602: }
0603:
0604: if ((frame >= 2736) && (frame < 3422))
0605: {
0606: if (frame == 2736)
0607: {
0608: a=0;
0609: b=1;
0610: c=0;
0611: }
0612:
0613: spr_draw(sonicexe, 204, 20+16*sin(0.0625*frame));
0614:
0615: switch(c)
0616: {
0617: case 0:
0618: oslDrawString(198, 136, "SONIC.EXE by");
0619: amigatext("CRIMSON THE BAT", (480-strlen("CRIMSON THE BAT")*16)/2, 150, amiga, 16, 22);
0620: break;
0621:
0622: case 1:
0623: amigatext("SYMBIOTICFEDORAGEEK", (480-strlen("SYMBIOTICFEDORAGEEK")*16)/2, 150, amiga, 16, 22);
0624: break;
0625:
0626: case 2:
0627: amigatext("SHADOWNINJA976", (480-strlen("SHADOWNINJA976")*16)/2, 150, amiga, 16, 22);
0628: break;
0629:
0630: case 3:
0631: amigatext("HICHIGO1989", (480-strlen("HICHIGO1989")*16)/2, 150, amiga, 16, 22);
0632: break;
0633:
0634: default:
0635: break;
0636: }
0637:
0638: if (c>0) oslDrawString((480-strlen("SONIC.EXE DeviantArts by:")*6)/2, 136, "SONIC.EXE DeviantArts by:");
0639:
0640: for(i=0; i<32; i++)
0641: {
0642: spr_draw(flappy_redhill, a+i*16, 224);
0643: }
0644:
0645: a--;
0646:
0647: if (a == -16) a=0;
0648:
0649: b++;
0650: if ((!(b%172)) && (c<3)) c++;
0651: }
0652:
0653: if ((frame >= 3422) && (frame < 3764))
0654: {
0655: _1in24=oslSetImageRotCenter(_1in24);
0656: _1in24.angle = 16*sin(0.0625*frame);
0657: spr_draw(_1in24, 240, 136);
0658:
0659: oslDrawString(0, 0, "Weird movies stills taken from:");
0660: amigatext("STUART <ASHENS> ASHEN", 0, 30, amiga, 16, 22);
0661: amigatext("1IN24.TUMBLR.COM", 0, 60, amiga, 16, 22);
0662: }
0663:
0664: if ((frame >= 3764) && (frame < 4105))
0665: {
0666: if (frame == 3764)
0667: {
0668: aa=oslSetImageRotCenter(aa);
0669: }
0670:
0671: aa.angle = 16*sin(0.0625*frame);
0672: spr_draw(aa, 240, 136);
0673:
0674: oslDrawString(0, 0, "High-pitched Pookeymon Theme by");
0675: amigatext("DAN <LOUSY PANDAH> TOMLINSON", 0, 24, amiga, 16, 22);
0676: oslDrawString(0, 60, "Taken from animation 'POKEMON SHOWDOWN'");
0677: }
0678:
0679: if ((frame >= 4105) && (frame < 4447))
0680: {
0681: if (frame == 4105)
0682: {
0683: bb=oslSetImageRotCenter(bb);
0684: }
0685:
0686: bb.angle = 16*sin(0.0625*frame);
0687: spr_draw(bb, 240, 136);
0688:
0689: oslDrawString(0, 0, "Scene from 'Pikachu on Acid' taken from:");
0690: amigatext("HIGH5TOONS", 0, 24, amiga, 16, 22);
0691: }
0692:
0693: if ((frame >= 4447) && (frame < 5473))
0694: {
0695: if (frame == 4447)
0696: {
0697: c=0;
0698: }
0699:
0700: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64));
0701: for(a=0; a<16; a++)
0702: {
0703: oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255));
0704: if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255));
0705: }
0706:
0707: temp_benj=oslSetImageTileSize(benj, (benj_frame%8)*32, 48, 32, 48);
0708: temp_benj.stretchX = 96;
0709: temp_benj.stretchY = 144;
0710: temp_benj.trans=16;
0711: spr_draw(temp_benj, 192, 90);
0712:
0713: if (c > -32) c--; else c=0;
0714:
0715: if (frame <= 5090)
0716: {
0717: amigatext("SO, THERE WE ARE. I HAD TO", 0, 20, amiga, 16, 22);
0718: amigatext("TRAVEL FOR 700 KMS IN ORDER TO", 0, 42, amiga, 16, 22);
0719: amigatext("PRESENT MY SECOND HOMEBREW ON", 0, 64, amiga, 16, 22);
0720: amigatext("PSP.", 0, 86, amiga, 16, 22);
0721: amigatext("LITTLE DID I KNOW I HAD TO", 0, 130, amiga, 16, 22);
0722: amigatext("DEAL WITH A 2 PLAYER MODE ON A", 0, 152, amiga, 16, 22);
0723: amigatext("PORTABLE CONSOLE! LUCKILY, I", 0, 174, amiga, 16, 22);
0724: amigatext("WAS ADDICTED TO A MOBA GAME", 0, 196, amiga, 16, 22);
0725: amigatext("CALLED <SMITE>...", 0, 218, amiga, 16, 22);
0726: }
0727: else
0728: {
0729: amigatext("...AND THE IMPLEMENTATION OF", 0, 24, amiga, 16, 22);
0730: amigatext("A MOBA UI WAS A BREEZE. ", 0, 46, amiga, 16, 22);
0731: amigatext("THE MORAL OF THE STORY IS TO", 0, 90, amiga, 16, 22);
0732: amigatext("NEVER PREPARE YOUR PRODUCTION", 0, 112, amiga, 16, 22);
0733: amigatext("WAAAAAAAAAAY BEFORE THE CON", 0, 134, amiga, 16, 22);
0734: amigatext("BEGINS!", 0, 156, amiga, 16, 22);
0735: }
0736: }
0737:
0738: if ((frame >= 5473) && (frame < 8894))
0739: {
0740: if (frame == 5473)
0741: {
0742: d=480;
0743: i=0;
0744: }
0745:
0746: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 64));
0747: for(a=0; a<16; a++)
0748: {
0749: oslDrawFillRect(a*32+c, 0, a*32+c+4, 272, _RGB(94, 126, 255));
0750: if (a<11) oslDrawFillRect(0, a*32+c, 480, a*32+c+4, _RGB(94, 126, 255));
0751: }
0752:
0753: temp_benj = oslSetImageTileSize(benj, (benj_frame%8)*32, 48, 32, 48);
0754: temp_benj.stretchX = 96;
0755: temp_benj.stretchY = 144;
0756: temp_benj.trans=192;
0757: spr_draw(temp_benj, 192, 90);
0758:
0759:
0760: if (c > -32) c--; else c=0;
0761:
0762: oslDrawString(201, 4, "Greetings to:");
0763: amigatext(greeted[i], d, 136+32*sin(0.0625*frame), amiga, 16, 22);
0764:
0765: d=(int)(d-5.5);
0766:
0767: if ((d <= -288) && (i<23))
0768: {
0769: d=480;
0770: i++;
0771: }
0772:
0773: }
0774:
0775: if (frame >= 8894)
0776: {
0777: //if (frame < 10260) oslSetAlpha(OSL_FX_DEFAULT, 0); else oslSetAlpha(OSL_FX_ALPHA, trans);
0778: a = 54+32*sin(0.0625*frame);
0779: b = 296+32*cos(0.0625*frame);
0780:
0781: spr_draw(gml, a, 32);
0782: spr_draw(twt, b, 32);
0783:
0784: amigatext("@240185", 304+32*cos(0.0625*frame), 187, amiga, 16, 22);
0785: amigatext("ROUNDSOFTSTUDIO", 0, 172, amiga, 16, 22);
0786: amigatext("@ GMAIL.COM", 32+32*sin(0.0625*frame), 202, amiga, 16, 22);
0787:
0788: if (frame >= 9582)
0789: {
0790: if (frame == 9582)
0791: {
0792: c=480;
0793: trans=255;
0794: }
0795: oslDrawString(c, 256, "See you @ A.C. 2015 for my next project for PSP: THE FIFTH AXIS! Discover a twisted theory about time travel!");
0796:
0797: c -= 2;
0798: }
0799:
0800: if ((frame >= 10260) && (trans > 0)) trans--;
0801: }
0802:
0803: oslEndDrawing();
0804: //frame_debug(frame);
0805: }
0806: oslSwapBuffers();
0807: oslWaitVSync();
0808: frame++;
0809: if (!(frame%4)) benj_frame++;
0810: }
0811:
0812: oslStopSoundMOD(theme);
0813:
0814: oslDeleteSoundMOD(theme);
0815: oslDeleteImage(aipc);
0816: oslDeleteImage(amiga);
0817: oslDeleteImage(gml);
0818: oslDeleteImage(twt);
0819: oslDeleteImage(temp_gfx);
0820: oslDeleteImage(giygas);
0821: oslDeleteImage(sonicexe);
0822: oslDeleteImage(flappy_redhill);
0823: oslDeleteImage(_1in24);
0824: oslDeleteImage(aa);
0825: oslDeleteImage(bb);
0826:
0827: for (i=0; i<4; i++)
0828: {
0829: oslDeleteImage(iamgod[i]);
0830: }
0831:
0832: fadeout();
0833: }
0834:
0835: short sonicexe2(int diff)
0836: {
0837: int i, rects=1, sc=0, bx=240, frame=0, bouss=0;
0838:
0839: short reussi=0;
0840: OSL_IMAGE bg, pass, buttons, sexe2, slyexe;
0841: OSL_IMAGE temp_benj;
0842: OSL_SOUND oof = oslLoadSoundFile("./sfx/sfx-0009.wav");
0843: OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
0844: OSL_SOUND kte = oslLoadSoundFile("./sfx/kte.wav");
0845: OSL_SOUND sallyexe = oslLoadSoundFile("./sfx/sallyexe.wav");
0846:
0847: sexe2 = LoadImg("./gfx/sonicexe2.png");
0848: bg = LoadImg("./gfx/gfx-0776.png");
0849: pass = LoadImg("./gfx/gfx-0718.png");
0850: buttons = LoadImg("./gfx/arrows.png");
0851: slyexe = LoadImg("./gfx/sallyexe.png");
0852:
0853:
0854:
0855: sexe2=oslSetImageRotCenter(sexe2);
0856: buttons=oslSetImageRotCenter(buttons);
0857: pass=oslSetImageRotCenter(pass);
0858:
0859:
0860:
0861: oslSetSoundLoop(kte, 1);
0862: oslPlaySound(kte);
0863:
0864: while ((sc < 90*diff) && (rects < 240))
0865: {
0866: oslStartDrawing();
0867: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
0868: bg.trans=160;
0869: bg.G=0;
0870: bg.B=0;
0871: spr_draw(bg, 0, 0);
0872:
0873: al_get_keyboard_state(&kbdstate);
0874:
0875: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (bx > rects))
0876: {
0877: temp_benj=oslSetImageTileSize(benj,(abs(frame%32)/4)*32,144,32,48);
0878: temp_benj.stretchX = 64;
0879: temp_benj.stretchY = 96;
0880: bx -= 4;
0881: if (bouss==0)
0882: {
0883: bouss=1;
0884: sc++;
0885: }
0886: }
0887: else if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (bx < (448-(rects+1))))
0888: {
0889: temp_benj=oslSetImageTileSize(benj,(abs(frame%32)/4)*32,48,32,48);
0890: bx += 4;
0891: if (bouss==1)
0892: {
0893: bouss=0;
0894: sc++;
0895: }
0896: }
0897: else
0898: {
0899: temp_benj=oslSetImageTileSize(benj,0,192,32,48);
0900: }
0901:
0902: spr_draw(sexe2, 240+4*sin(0.0625*frame), 64);
0903: spr_draw(buttons, 240, 136);
0904:
0905: temp_benj.stretchX = 64;
0906: temp_benj.stretchY = 96;
0907: temp_benj.R = temp_benj.G = temp_benj.B = 0;
0908: spr_draw(temp_benj, bx, 176);
0909:
0910: oslDrawFillRect(0, 0, rects+1, 272, _RGB(0,0,0));
0911: oslDrawFillRect(480, 0, 480-(rects+1), 272, _RGB(0,0,0));
0912: oslDrawFillRect(0, 0, 480, rects+1, _RGB(0,0,0));
0913:
0914: oslEndDrawing();
0915: oslSwapBuffers();
0916: oslWaitVSync();
0917: frame++;
0918: if (!(frame%(20-((diff-1)*5)))) rects++;
0919: if (bx < rects) bx=rects+4;
0920: if (bx > (448-(rects+1))) bx=443-rects;
0921: }
0922:
0923:
0924: if (sc >= 90*diff)
0925: {
0926: for (i=0; i<4; i++)
0927: {
0928: oslStartDrawing();
0929: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
0930: oslEndDrawing();
0931: oslSwapBuffers();
0932: oslWaitVSync();
0933: }
0934: oslPlaySound(passs);
0935: for (i=135; i<=272; i+=24)
0936: {
0937: oslStartDrawing();
0938: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
0939: spr_draw(pass,240,136);
0940: pass.stretchX = pass.stretchY = i;
0941: oslEndDrawing();
0942: oslSwapBuffers();
0943: oslWaitVSync();
0944: }
0945: reussi=1;
0946: }
0947: else
0948: {
0949: al_set_sample_instance_position(sallyexe.instance, 16);
0950: oslPlaySound(sallyexe);
0951: while (al_get_sample_instance_position(sallyexe.instance))
0952: {
0953: oslStartDrawing();
0954: spr_draw(slyexe, 0, 0);
0955: oslEndDrawing();
0956: oslSwapBuffers();
0957: oslWaitVSync();
0958: }
0959: }
0960:
0961:
0962: oslStartDrawing();
0963: oslEndDrawing();
0964: oslSwapBuffers();
0965: oslWaitVSync();
0966:
0967:
0968: oslDeleteSound(kte);
0969: oslDeleteImage(sexe2);
0970: oslDeleteImage(bg);
0971: oslDeleteImage(pass);
0972: oslDeleteSound(oof);
0973: oslDeleteSound(passs);
0974: oslDeleteSound(sallyexe);
0975: oslDeleteImage(slyexe);
0976: return reussi;
0977: }
0978:
0979: short sonicexe(int diff)
0980: {
0981: short reussi=0, rebound=0;
0982: int i, j=0, k=0, l=20, benj_frame=0, bgx=0, flx=0, bb, by, sedx=80, sedy=16;
0983: OSL_IMAGE iamgod, sonicexebg, sonicexefloor, sonicexe_d, buttons, pass;
0984: OSL_IMAGE temp_benj, temp_butt;
0985: OSL_SOUND drowning;
0986: OSL_SOUND oof;
0987: OSL_SOUND passs;
0988:
0989: char buffer[20];
0990:
0991: i=random(4)+1;
0992: bb=random(4);
0993: sprintf(buffer,"./gfx/iamgod%d.png",i);
0994: iamgod = LoadImg(buffer);
0995: iamgod = oslSetImageRotCenter(iamgod);
0996: sonicexebg = LoadImg("./gfx/gfx-0973.png");
0997: sonicexefloor = LoadImg("./gfx/gfx-0974.png");
0998: buttons = LoadImg("./gfx/buttons_pc.png");
0999: sonicexe_d = LoadImg("./gfx/sonicexe.png");
1000: pass = LoadImg("./gfx/gfx-0718.png");
1001: pass = oslSetImageRotCenter(pass);
1002: drowning = oslLoadSoundFile("./sfx/sfx-0146.wav");
1003: oof = oslLoadSoundFile("./sfx/sfx-0009.wav");
1004: passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
1005:
1006: al_set_sample_instance_position(drowning.instance, 2);
1007: oslPlaySound(drowning);
1008:
1009: while ((al_get_sample_instance_position(drowning.instance)) && (j < 95*diff))
1010: {
1011: if (k > 96) l = 18;
1012: if (k > 188) l = 16;
1013: if (k > 262) l = 14;
1014: if (k > 342) l = 12;
1015: if (k > 390) l = 10;
1016: if (k > 462) l = 8;
1017: if (k > 516) l = 6;
1018: if (k > 600) l = 4;
1019:
1020: if (k%l < (l/2)) by=0; else by=32;
1021:
1022: if (!(k%10))
1023: {
1024: sedx++;
1025: sedy++;
1026: }
1027:
1028: oslStartDrawing();
1029: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1030:
1031: spr_draw(sonicexebg, bgx, 8);
1032: spr_draw(sonicexefloor, flx, 248);
1033: spr_draw(sonicexebg, bgx+480, 8);
1034: spr_draw(sonicexefloor, flx+480, 248);
1035: spr_draw(sonicexe_d, sedx, sedy);
1036:
1037: temp_benj = oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48);
1038: temp_butt = oslSetImageTileSize(buttons,bb*32,by,32,32);
1039: temp_benj.stretchX = 64;
1040: temp_benj.stretchY = 96;
1041: temp_butt.stretchX = temp_butt.stretchY = 64;
1042:
1043: spr_draw(temp_benj, 360, 152);
1044: spr_draw(temp_butt, 368, 82);
1045:
1046: /*sprintf(buffer,"%d %d", l, (int)oslGetRamStatus().maxAvailable);
1047: oslDrawString(0,8,buffer);*/
1048: oslEndDrawing();
1049: oslSwapBuffers();
1050:
1051: al_get_keyboard_state(&kbdstate);
1052:
1053: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) &&
1054: (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) &&
1055: (!al_key_down(&kbdstate, ALLEGRO_KEY_C)) &&
1056: (!al_key_down(&kbdstate, ALLEGRO_KEY_X))) rebound=0;
1057:
1058: 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))))
1059: {
1060: j++;
1061: rebound=1;
1062: }
1063:
1064: if (!(k%4)) benj_frame++;
1065: bgx -= 4;
1066: flx -= 8;
1067: if (bgx == -480) bgx=0;
1068: if (flx == -480) flx=0;
1069: k++;
1070:
1071: oslWaitVSync();
1072: }
1073:
1074: if (j >= 95*diff)
1075: {
1076: for (i=0; i<4; i++)
1077: {
1078: oslStartDrawing();
1079: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1080: oslEndDrawing();
1081: oslSwapBuffers();
1082: oslWaitVSync();
1083: }
1084:
1085: oslPlaySound(passs);
1086: for (i=135; i<=272; i+=24)
1087: {
1088: oslStartDrawing();
1089: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1090: spr_draw(pass,240,136);
1091: pass.stretchX = pass.stretchY = i;
1092: oslEndDrawing();
1093: oslSwapBuffers();
1094: oslWaitVSync();
1095: }
1096: reussi=1;
1097: }
1098: else
1099: {
1100:
1101: k=255;
1102: for (i=sedx; i<360; i+=5)
1103: {
1104: oslStartDrawing();
1105: bgx--;
1106: flx -= 2;
1107: spr_draw(sonicexebg, bgx, 8);
1108: spr_draw(sonicexefloor, flx, 248);
1109: spr_draw(sonicexebg, bgx+480, 8);
1110: spr_draw(sonicexefloor, flx+480, 248);
1111: spr_draw(temp_benj, 360, 152);
1112: sonicexe_d.trans = k;
1113: spr_draw(sonicexe_d, i, sedy);
1114: oslEndDrawing();
1115: oslSwapBuffers();
1116: oslWaitVSync();
1117: k -= 8;
1118: if (k<0) k=0;
1119: if (sedy < 168) sedy++;
1120: }
1121:
1122: for (i=0; i<4; i++)
1123: {
1124: oslStartDrawing();
1125: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1126: oslEndDrawing();
1127: oslSwapBuffers();
1128: oslWaitVSync();
1129: }
1130:
1131: oslPlaySound(oof);
1132: oslStartDrawing();
1133: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1134: spr_draw(iamgod,240,136);
1135: oslEndDrawing();
1136: oslSwapBuffers();
1137: fadeout();
1138: }
1139:
1140: oslStartDrawing();
1141: oslEndDrawing();
1142: oslSwapBuffers();
1143: oslWaitVSync();
1144:
1145: oslDeleteImage(iamgod);
1146: oslDeleteImage(sonicexebg);
1147: oslDeleteImage(sonicexefloor);
1148: oslDeleteImage(sonicexe_d);
1149: oslDeleteImage(buttons);
1150: oslDeleteImage(pass);
1151: oslDeleteSound(oof);
1152: oslDeleteSound(drowning);
1153: oslDeleteSound(passs);
1154:
1155: return reussi;
1156: }
1157:
1158: short mincer(int diff)
1159: {
1160: short reussi=0, floor=-1, score=0, rebound=0;
1161: int i, skipframe=0, by=-36, bgy=0, my=404, minced=0, bb=random(4);
1162: OSL_IMAGE mincer[3];
1163: OSL_IMAGE benj_mincer;
1164: OSL_IMAGE buttons;
1165: OSL_IMAGE pass;
1166: OSL_IMAGE temp_mincer, temp_butt, temp_m;
1167:
1168: OSL_SOUND passs;
1169: OSL_SOUND mincing;
1170: OSL_SOUND rightwrong[2];
1171:
1172: buttons = LoadImg("./gfx/buttons_pc.png");
1173: pass = LoadImg("./gfx/gfx-0718.png");
1174: mincer[0] = LoadImg("./gfx/mincer_bg.png");
1175: mincer[1] = LoadImg("./gfx/mincer.png");
1176: mincer[2] = LoadImg("./gfx/mincer_fg.png");
1177: passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
1178: mincing = oslLoadSoundFile("./sfx/sfx-0081.wav");
1179:
1180: rightwrong[0] = oslLoadSoundFile("./sfx/right.wav");
1181: rightwrong[1] = oslLoadSoundFile("./sfx/wrong.wav");
1182:
1183: benj_mincer = LoadImg("./gfx/benj_mincer.png");
1184:
1185: pass=oslSetImageRotCenter(pass);
1186:
1187: temp_mincer=oslSetImageTileSize(benj_mincer,0,0,29,34);
1188: temp_mincer.stretchX = temp_mincer.stretchY = 58;
1189:
1190: while ((floor <= (-2*diff+12)) && (score < (2*diff+3)))
1191: {
1192: if (!skipframe)
1193: {
1194: oslStartDrawing();
1195: temp_butt=oslSetImageTileSize(buttons,bb*32,0,32,32);
1196: temp_butt.stretchX = temp_butt.stretchY = 64;
1197:
1198: if (floor == -1)
1199: {
1200: oslDrawFillRect(0,0,480,272, _RGB(0,0,32));
1201: spr_draw(mincer[0], 80, 0);
1202: spr_draw(mincer[0], 80, 240);
1203: spr_draw(temp_mincer, 215, by);
1204: by += 4;
1205:
1206: if (by==136) floor=0;
1207: }
1208: else if (floor >= 0)
1209: {
1210: oslDrawFillRect(0,0,480,272, _RGB(0,0,32));
1211: spr_draw(mincer[0], 80, bgy);
1212: spr_draw(mincer[0], 80, bgy+240);
1213:
1214:
1215: if (floor >= (-2*diff+9))
1216: {
1217: spr_draw(mincer[1], 182, my);
1218: }
1219:
1220: spr_draw(mincer[0], 80, bgy+480);
1221:
1222:
1223: if (my < -108)
1224: {
1225: temp_mincer=oslSetImageTileSize(benj_mincer,29,0,29,34);
1226: temp_mincer.stretchX = temp_mincer.stretchY = 58;
1227: }
1228:
1229: spr_draw(temp_mincer, 215, 136);
1230:
1231: if (bgy<=-240)
1232: {
1233: floor++;
1234: bgy=0;
1235: }
1236:
1237: if ((my <= 48) && (my >= -180))
1238: {
1239: if ((!minced) && (my==48))
1240: {
1241: if (!(al_get_sample_instance_position(mincing.instance))) oslPlaySound(mincing);
1242: score=0;
1243: }
1244:
1245: switch(minced)
1246: {
1247: case 0:
1248: case 2:
1249: {
1250: bgy -= 2;
1251: if (floor >= (-2*diff+9))
1252: {
1253: temp_m=oslSetImageTileSize(mincer[0],0,0,101,240);
1254: spr_draw(temp_m, 80, my-164);
1255: temp_m=oslSetImageTileSize(mincer[0],226,0,94,240);
1256: spr_draw(temp_m, 306, my-164);
1257: spr_draw(mincer[2], 182, my+158);
1258: temp_m=oslSetImageTileSize(mincer[0],0,0,320,240);
1259: /*oslDrawFillRect(0,0,480,my-163, _RGB(0,0,32));
1260:
1261: spr_draw(temp_m, 80, my-164);*/
1262: oslDrawFillRect(400,0,480,272, _RGB(0,0,32));
1263: my -= 2;
1264: }
1265:
1266: if ((my == -96) && (!minced)) minced=1;
1267: break;
1268: }
1269:
1270: case 1:
1271: {
1272: bgy += 2;
1273: if (floor >= (-2*diff+9))
1274: {
1275: temp_m=oslSetImageTileSize(mincer[0],0,0,101,240);
1276: spr_draw(temp_m, 80, my-164);
1277: oslSetImageTileSize(mincer[0],226,0,94,240);
1278: spr_draw(temp_m, 306, my-164);
1279: spr_draw(mincer[2], 182, my+158);
1280: my += 2;
1281: temp_m=oslSetImageTileSize(mincer[0],0,0,320,240);
1282: oslDrawFillRect(400,0,480,272, _RGB(0,0,32));
1283: /*oslDrawFillRect(0,0,480,my-163, _RGB(0,0,32));
1284:
1285: spr_draw(temp_m, 80, my-164);*/
1286: }
1287: if (my == -12) minced=2;
1288: break;
1289: }
1290: }
1291:
1292: }
1293: else
1294: {
1295: bgy -= 4;
1296: if (floor >= (-2*diff+9))
1297: {
1298: spr_draw(mincer[2], 182, my+158);
1299: my -= 4;
1300: }
1301:
1302: al_get_keyboard_state(&kbdstate);
1303:
1304: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) &&
1305: (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) &&
1306: (!al_key_down(&kbdstate, ALLEGRO_KEY_C)) &&
1307: (!al_key_down(&kbdstate, ALLEGRO_KEY_X))) rebound=0;
1308:
1309: if (my > 48)
1310: {
1311: spr_draw(temp_butt, 326, 136);
1312:
1313: if (!rebound)
1314: {
1315:
1316:
1317: 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))))
1318: {
1319: score++;
1320: bb=random(4);
1321: oslStopSound(rightwrong[0]);
1322: oslStopSound(rightwrong[1]);
1323: oslPlaySound(rightwrong[0]);
1324: rebound=1;
1325: }
1326:
1327:
1328: 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))))
1329: {
1330: bb=random(4);
1331: oslStopSound(rightwrong[0]);
1332: oslStopSound(rightwrong[1]);
1333:
1334: oslPlaySound(rightwrong[1]);
1335: score--;
1336: rebound=1;
1337: }
1338: }
1339: }
1340: }
1341: }
1342:
1343: oslEndDrawing();
1344: oslSwapBuffers();
1345: oslWaitVSync();
1346: }
1347: }
1348:
1349: if (score == (2*diff+3))
1350: {
1351: for (i=0; i<4; i++)
1352: {
1353: oslStartDrawing();
1354: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1355: oslEndDrawing();
1356: oslSwapBuffers();
1357: oslWaitVSync();
1358: }
1359: oslPlaySound(passs);
1360: for (i=135; i<=272; i+=24)
1361: {
1362: oslStartDrawing();
1363: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1364: spr_draw(pass,240,136);
1365: pass.stretchX = pass.stretchY = i;
1366: oslEndDrawing();
1367: oslSwapBuffers();
1368: oslWaitVSync();
1369: }
1370: reussi=1;
1371: }
1372:
1373: oslStartDrawing();
1374: oslEndDrawing();
1375: oslSwapBuffers();
1376: oslWaitVSync();
1377:
1378: for (i=0; i<3; i++) oslDeleteImage(mincer[i]);
1379: oslDeleteImage(benj_mincer);
1380: oslDeleteSound(mincing);
1381: oslDeleteSound(rightwrong[0]);
1382: oslDeleteSound(rightwrong[1]);
1383: oslDeleteImage(buttons);
1384: oslDeleteImage(pass);
1385: oslDeleteSound(passs);
1386:
1387:
1388:
1389: return reussi;
1390: }
1391:
1392: short shoot_teevees(int diff, int *health, int round)
1393: {
1394: short reussi=1, enemyx=random(2), enemyy=random(3), fired=13, hasdied=0, rebound=0;
1395: int i, j, u, frame=0, skipframe=0, hgx=208;
1396:
1397: int teevees[3][4]; //angle-ecran-y-fallspeed
1398:
1399: OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
1400: OSL_SOUND dead = oslLoadSoundFile("./sfx/sfx-0025.wav");
1401: OSL_SOUND pew = oslLoadSoundFile("./sfx/sfx-0100.wav");
1402: OSL_SOUND oof = oslLoadSoundFile("./sfx/sfx-0101.wav");
1403: OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0017.wav");
1404: OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png");
1405: OSL_IMAGE bg = LoadImg("./gfx/gfx-0776.png");
1406: OSL_IMAGE teevee = LoadImg("./gfx/teevee.png");
1407: OSL_IMAGE teevee_targets = LoadImg("./gfx/teevee_targets.png");
1408: OSL_IMAGE numberz = LoadImg("./gfx/numberz.png");
1409: OSL_IMAGE handgun = LoadImg("./gfx/handgun.png");
1410: OSL_IMAGE explode = LoadImg("./gfx/explode.png");
1411:
1412: OSL_IMAGE temp_h, temp, temp_tv, temp_no;
1413:
1414: temp = oslCreateImage(128, 96);
1415:
1416: pass=oslSetImageRotCenter(pass);
1417: temp=oslSetImageRotCenter(temp);
1418:
1419: oslSetSoundLoop(ambient, 1);
1420:
1421: oslDrawFillRect(0,0, 480,272, _RGB(0,0,0));
1422:
1423: for (i=0; i<3; i++)
1424: {
1425: teevees[i][0]=random(180)-90;
1426: teevees[i][1]=random(2);
1427: teevees[i][2]=-1*random(128)-128;
1428: teevees[i][3]=diff+1+random(3);
1429: }
1430:
1431: temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64);
1432: oslPlaySound(ambient);
1433:
1434: while (frame < 900*diff)
1435: {
1436: if (!skipframe)
1437: {
1438: oslStartDrawing();
1439: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1440:
1441: spr_draw(bg, 0, 0);
1442:
1443: oslSetTextColor(_RGB(255, 255, 255));
1444: oslDrawString(160, 2, "Shoot the TVs with that screen:");
1445: temp_tv=oslSetImageTileSize(teevee_targets, 99*enemyx, 71*enemyy, 99, 71);
1446:
1447: temp_tv.stretchX = 50;
1448: temp_tv.stretchY = 35;
1449: spr_draw(temp_tv, 215, 14);
1450:
1451: teevee_targets.stretchX = 99;
1452: teevee_targets.stretchY = 71;
1453:
1454:
1455: explode.stretchX = 128;
1456: explode.stretchY = 96;
1457:
1458:
1459: temp_no=oslSetImageTileSize(numberz,160,0,16,16);
1460: spr_draw(temp_no, 2, 2);
1461:
1462:
1463: for (i=0; i<3; i++)
1464: {
1465: al_set_target_bitmap(temp.asset);
1466: temp_tv=oslSetImageTileSize(teevee_targets, teevees[i][1]*99, 71*enemyy, 99, 71);
1467: spr_draw(teevee, 0, 0);
1468: spr_draw(temp_tv, 14, 10);
1469:
1470: al_set_target_bitmap(psp_screen);
1471: temp.angle = teevees[i][0];
1472:
1473: spr_draw(temp, 160*i+80, teevees[i][2]);
1474: teevees[i][2] += teevees[i][3];
1475:
1476: if (teevees[i][2] > (336+((int)128*(sin(teevee.stretchX)*3.14/180))))
1477: {
1478: if (teevees[i][1]==enemyx)
1479: {
1480: *health -= 12*diff;
1481: if ((*health <= 0) && (!hasdied))
1482: {
1483: oslPlaySound(dead);
1484: hasdied=1;
1485: frame=900*diff-131;
1486: }
1487: }
1488: teevees[i][0]=random(180)-90;
1489: teevees[i][1]=random(2);
1490: teevees[i][2]=-1*random(128)-128;
1491: teevees[i][3]=diff+1+random(3);
1492: }
1493: }
1494:
1495: 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)));
1496:
1497: al_get_keyboard_state(&kbdstate);
1498:
1499: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (hgx > 8) && (*health > 0)) hgx-=8;
1500: if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (hgx < 408) && (*health > 0)) hgx+=8;
1501:
1502: if (fired < 13)
1503: {
1504: fired--;
1505:
1506: if ((teevees[hgx/160][1]==enemyx) && (teevees[hgx/160][2] > 140))
1507: {
1508: spr_draw(explode, 160*i+80, teevees[hgx/160][2]);
1509: }
1510:
1511: if (fired > 9)
1512: {
1513: temp_h=oslSetImageTileSize(handgun, 64, 0, 64, 64);
1514: spr_draw(temp_h, hgx, 211+((int)3*sin(0.0625*frame)));
1515: }
1516: else
1517: {
1518: temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64);
1519:
1520: if (fired==8)
1521: {
1522: if ((teevees[hgx/160][1]==enemyx) && (teevees[hgx/160][2] > 140))
1523: {
1524: teevees[hgx/160][0]=random(180)-90;
1525: teevees[hgx/160][1]=random(2);
1526: teevees[hgx/160][2]=-1*random(128)-128;
1527: teevees[hgx/160][3]=diff+1+random(3);
1528: *health += 2*(4-diff);
1529: if (*health >= 100) *health=100;
1530: }
1531: }
1532: }
1533:
1534: }
1535:
1536: if (!fired)
1537: {
1538: fired=13;
1539: temp_h=oslSetImageTileSize(handgun, 0, 0, 64, 64);
1540:
1541: }
1542:
1543: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) rebound=0;
1544:
1545: if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (fired==13) && (*health > 0) && (!rebound))
1546: {
1547: fired--;
1548: oslStopSound(pew);
1549: oslPlaySound(pew);
1550: rebound=1;
1551:
1552: if ((teevees[hgx/160][1]!=enemyx) && (teevees[hgx/160][2] > 140))
1553: {
1554: *health -= 6*diff;
1555: oslPlaySound(oof);
1556: }
1557: }
1558:
1559: i=random(15);
1560: u=18;
1561:
1562: if (*health <= 0)
1563: {
1564: *health=0;
1565: }
1566:
1567: if (*health < 25) j=16; else j=0;
1568:
1569: if (*health / 100)
1570: {
1571: temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16);
1572: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
1573: u += 16;
1574: }
1575:
1576: if (*health > 9)
1577: {
1578: if (round==2)
1579: {
1580: if (i<12)
1581: {
1582: temp_no=oslSetImageTileSize(numberz,((*health%100)/10)*16,j,16,16);
1583: }
1584: else
1585: {
1586: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
1587: }
1588: }
1589: else temp_no=oslSetImageTileSize(numberz,((*health%100)/10)*16,j,16,16);
1590: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
1591: u += 16;
1592: }
1593:
1594: if (round==2)
1595: {
1596: if (i<12)
1597: {
1598: temp_no=oslSetImageTileSize(numberz,(*health%10)*16,j,16,16);
1599: }
1600: else
1601: {
1602: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
1603: }
1604: }
1605: else temp_no=oslSetImageTileSize(numberz,(*health%10)*16,j,16,16);
1606: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
1607:
1608: frame++;
1609: oslEndDrawing();
1610: oslSwapBuffers();
1611: oslWaitVSync();
1612: }
1613: }
1614:
1615:
1616: if (*health > 0)
1617: {
1618: oslStopSound(ambient);
1619: for (i=0; i<4; i++)
1620: {
1621: oslStartDrawing();
1622: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1623: oslEndDrawing();
1624: oslSwapBuffers();
1625: oslWaitVSync();
1626: }
1627: oslPlaySound(passs);
1628: for (i=135; i<=272; i+=24)
1629: {
1630: oslStartDrawing();
1631: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1632: spr_draw(pass,240,136);
1633: pass.stretchX = pass.stretchY = i;
1634: oslEndDrawing();
1635: oslSwapBuffers();
1636: oslWaitVSync();
1637: }
1638: }
1639: else reussi=0;
1640:
1641: oslStartDrawing();
1642: oslEndDrawing();
1643: oslSwapBuffers();
1644: oslWaitVSync();
1645:
1646: oslDeleteImage(bg);
1647: oslDeleteImage(pass);
1648: oslDeleteImage(teevee);
1649: oslDeleteImage(teevee_targets);
1650: oslDeleteImage(handgun);
1651: oslDeleteImage(temp);
1652: oslDeleteImage(numberz);
1653: oslDeleteImage(explode);
1654: oslDeleteSound(passs);
1655: oslDeleteSound(dead);
1656: oslDeleteSound(pew);
1657: oslDeleteSound(ambient);
1658: oslDeleteSound(oof);
1659:
1660: return reussi;
1661: }
1662:
1663: short flappy_cacodemon(int diff)
1664: {
1665: short reussi=1, bunk=0, bgx=0, ghgx=0, dead=0, cacoy=32, pressed=26, mess=0, rebound=0;
1666: int i, frame=0, skipframe=0, growl=random(360)+35, postree=0, gu;
1667:
1668: int walls[7]={0,0,0,0,0,0,random(100)};
1669:
1670: OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png");
1671: OSL_IMAGE cacod = LoadImg("./gfx/cacodemon.png");
1672: OSL_IMAGE pot = LoadImg("./gfx/pot.png");
1673: OSL_IMAGE pot_edge = LoadImg("./gfx/pot_edge.png");
1674: OSL_IMAGE flappy_bg = LoadImg("./gfx/flappy_bg.png");
1675: OSL_IMAGE flappy_redhill = LoadImg("./gfx/flappy_redhill.png");
1676: OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
1677: OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0017.wav");
1678: OSL_SOUND caco_sfx[2];
1679: OSL_IMAGE temp_cacod;
1680:
1681: caco_sfx[0]= oslLoadSoundFile("./sfx/cacogrowl.wav");
1682: caco_sfx[1]= oslLoadSoundFile("./sfx/cacodie.wav");
1683:
1684: temp_cacod=oslSetImageTileSize(cacod, 0, 0, 64, 64);
1685: temp_cacod=oslSetImageRotCenter(temp_cacod);
1686: temp_cacod.y=32;
1687: pass=oslSetImageRotCenter(pass);
1688:
1689: oslSetSoundLoop(ambient, 1);
1690: oslPlaySound(ambient);
1691:
1692: oslSetTextColor(_RGB(0,0,0));
1693:
1694: while ((frame < 300*diff+300) && (dead < 5))
1695: {
1696: if (!(frame%growl))
1697: {
1698: growl=random(360)+35;
1699: oslPlaySound(caco_sfx[0]);
1700: }
1701: if (!skipframe)
1702: {
1703: oslStartDrawing();
1704: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1705:
1706: for (i=0; i<5; i++) spr_draw(flappy_bg, bgx+i*138, 128);
1707:
1708: if (!bunk)
1709: {
1710: for (i=6; i>=0; i--)
1711: {
1712: if (walls[i])
1713: {
1714: pot.stretchY = walls[i];
1715: spr_draw(pot, i*80-(postree%80), 230-walls[i]);
1716: spr_draw(pot_edge, i*80-(postree%80), 230-walls[i]);
1717:
1718: pot.stretchY = 94-walls[i];
1719: spr_draw(pot, i*80-(postree%80), 0);
1720: spr_draw(pot_edge, i*80-(postree%80), 94-walls[i]);
1721:
1722: }
1723: }
1724:
1725: }
1726:
1727: if ((!bunk) && (!dead))
1728: {
1729: if ((postree%80) == (80-((diff==1)?1:((diff==2)?2:4))))
1730: {
1731: for (i=0; i<7; i++)
1732: {
1733: if (i < 6)
1734: {
1735: if (walls[i+1]) walls[i]=walls[i+1];
1736: }
1737: else
1738: {
1739: walls[6]=walls[5]+(random(2)?1:-1)*random(32);
1740: if (walls[6] < 32) walls[6]=32;
1741: if (walls[6] > 110) walls[6]=110;
1742: }
1743: }
1744: }
1745: }
1746:
1747: for(i=0; i<32; i++)
1748: {
1749: spr_draw(flappy_redhill, ghgx+i*16, 224);
1750: }
1751:
1752: if (!bunk)
1753: {
1754: if (!(frame%2))
1755: {
1756: temp_cacod.angle = 8*sin(0.15*frame);
1757: }
1758: spr_draw(temp_cacod, 40, temp_cacod.y);
1759: }
1760: else
1761: {
1762: if ((!(frame%9))) dead++;
1763: gu=temp_cacod.y;
1764: temp_cacod=oslSetImageTileSize(temp_cacod, 64*dead, 0, 64, 64);
1765: temp_cacod=oslSetImageRotCenter(temp_cacod);
1766: temp_cacod.y=gu;
1767: spr_draw(temp_cacod, 40, temp_cacod.y);
1768: if (dead==1)
1769: {
1770: oslPlaySound(caco_sfx[1]);
1771: }
1772: }
1773:
1774: if (!mess) oslDrawString(200, 18, "MAKE HIM FLY!");
1775:
1776: al_get_keyboard_state(&kbdstate);
1777:
1778: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (!al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) rebound=0;
1779:
1780: if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (!rebound) && (!dead))
1781: {
1782: pressed=0;
1783: if (!mess) mess=1;
1784: rebound=1;
1785: }
1786:
1787: pressed++;
1788: if ((temp_cacod.y > 35) && (pressed < (-4*diff+28))) temp_cacod.y -= diff;
1789: if ((!dead) && (pressed > (-4*diff+28))) temp_cacod.y += diff;
1790:
1791:
1792: if (!bunk)
1793: {
1794: if (!(frame%2)) bgx -= diff+1;
1795: ghgx -= (diff+1);
1796:
1797: if (bgx <= -138) bgx=0;
1798: if (ghgx <= -16) ghgx=0;
1799:
1800: }
1801:
1802: if ((temp_cacod.y > 192) && (!bunk))
1803: {
1804: bunk=1;
1805: frame=0;
1806: }
1807:
1808: if ((walls[1]) && ((temp_cacod.y)-24 <= 102-walls[1]) && (!bunk) && (postree%80 < 40))
1809: {
1810: bunk=1;
1811: frame=0;
1812: }
1813:
1814: if ((walls[1]) && ((temp_cacod.y)+24 >= 230-walls[1]) && (!bunk) && (postree%80 < 40))
1815: {
1816: bunk=1;
1817: frame=0;
1818: }
1819:
1820: oslEndDrawing();
1821: oslSwapBuffers();
1822: oslWaitVSync();
1823: }
1824: frame++;
1825:
1826: if (!bunk)
1827: {
1828: postree += ((diff==1)?1:((diff==2)?2:4));
1829: }
1830:
1831: }
1832:
1833: while (al_get_sample_instance_position(caco_sfx[1].instance))
1834: {
1835: al_rest(0.016);
1836: oslWaitVSync();
1837: };
1838:
1839: if (!bunk)
1840: {
1841: oslStopSound(ambient);
1842: for (i=0; i<4; i++)
1843: {
1844: oslStartDrawing();
1845: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1846: oslEndDrawing();
1847: oslSwapBuffers();
1848: oslWaitVSync();
1849: }
1850: oslPlaySound(passs);
1851: for (i=135; i<=272; i+=24)
1852: {
1853: oslStartDrawing();
1854: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
1855: spr_draw(pass,240,136);
1856: pass.stretchX = pass.stretchY = i;
1857: oslEndDrawing();
1858: oslSwapBuffers();
1859: oslWaitVSync();
1860: }
1861: }
1862: else reussi=0;
1863:
1864: oslStartDrawing();
1865: oslEndDrawing();
1866: oslSwapBuffers();
1867: oslWaitVSync();
1868:
1869: oslDeleteImage(cacod);
1870: oslDeleteImage(flappy_bg);
1871: oslDeleteImage(flappy_redhill);
1872: oslDeleteImage(pot);
1873: oslDeleteImage(pot_edge);
1874: oslDeleteSound(ambient);
1875: oslDeleteImage(pass);
1876: oslDeleteSound(passs);
1877: oslDeleteSound(caco_sfx[0]);
1878: oslDeleteSound(caco_sfx[1]);
1879: return reussi;
1880: }
1881:
1882: short love_boat(int diff)
1883: {
1884: short reussi=1, alive=1, bx=240, boat_x=random(320)+80, sens;
1885: int i, frame, a=0;
1886:
1887: OSL_IMAGE boat = LoadImg("./gfx/boat.png");
1888: OSL_IMAGE boat_blood = LoadImg("./gfx/boat_blood.png");
1889: OSL_SOUND boat_sfx = oslLoadSoundFile("./sfx/boat.wav");
1890: OSL_SOUND sflartch = oslLoadSoundFile("./sfx/beng-0037.wav");
1891: OSL_IMAGE pass = LoadImg("./gfx/gfx-0718.png");
1892: OSL_IMAGE temp_benj;
1893: OSL_SOUND passs = oslLoadSoundFile("./sfx/sfx-0053.wav");
1894: OSL_SOUND ambient = oslLoadSoundFile("./sfx/sfx-0061.wav");
1895: pass=oslSetImageRotCenter(pass);
1896: boat=oslSetImageRotCenter(boat);
1897: boat_blood=oslSetImageRotCenter(boat_blood);
1898:
1899: oslSetSoundLoop(ambient, 1);
1900: oslPlaySound(ambient);
1901:
1902: frame = -1*random(540)-240;
1903:
1904: if (diff == 3)
1905: {
1906: if (boat_x%4)
1907: {
1908: boat_x += 4-(boat_x%4);
1909: }
1910: }
1911:
1912: while (frame < 255)
1913: {
1914: if (!frame) oslPlaySound(boat_sfx);
1915:
1916: oslStartDrawing();
1917: oslDrawFillRect(0,0,480,272, _RGB(16,0,0));
1918:
1919: if (diff==3)
1920: {
1921: if (frame == 92)
1922: {
1923: a = bx+32;
1924: }
1925: else if (frame > 92)
1926: {
1927: if (boat_x > a) boat_x -= 4;
1928: if (boat_x < a) boat_x += 4;
1929: }
1930: }
1931: else if (diff==2)
1932: {
1933: sens=random(2);
1934: if ((sens) && (boat_x < (400-(boat.stretchX)/2))) boat_x += 4;
1935: if ((!sens) && (boat_x > (boat.stretchX)/2)) boat_x -=4;
1936: }
1937:
1938: if (frame >= 0)
1939: {
1940: boat.trans=frame;
1941: boat.stretchX = frame*2;
1942: boat.stretchY = (int)((float)1.5*(boat.stretchX));
1943: spr_draw(boat, boat_x, 96);
1944: }
1945:
1946: al_get_keyboard_state(&kbdstate);
1947:
1948: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (bx > 0))
1949: {
1950: temp_benj = oslSetImageTileSize(benj,(abs(frame%32)/4)*32,144,32,48);
1951: bx -= 4;
1952: }
1953: else if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (bx < 448))
1954: {
1955: temp_benj = oslSetImageTileSize(benj,(abs(frame%32)/4)*32,48,32,48);
1956: bx += 4;
1957: }
1958: else
1959: {
1960: temp_benj = oslSetImageTileSize(benj,0,192,32,48);
1961: }
1962:
1963: temp_benj.stretchX = 64;
1964: temp_benj.stretchY = 96;
1965:
1966: if (alive) spr_draw(temp_benj, bx, 176);
1967:
1968: if (((boat.stretchX) >= 200))
1969: {
1970: if ((alive) && ((bx+32) >= (boat_x-((boat.stretchX)/4))) && ((bx+32) <= (boat_x+((boat.stretchX)/4))))
1971: {
1972: alive=0;
1973: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1974: oslPlaySound(sflartch);
1975: }
1976: }
1977:
1978: if (!alive)
1979: {
1980: spr_draw(boat_blood, 240, 136);
1981: }
1982:
1983: oslEndDrawing();
1984: oslSwapBuffers();
1985: oslWaitVSync();
1986: frame++;
1987: }
1988:
1989: if (alive)
1990: {
1991: for (i=0; i<4; i++)
1992: {
1993: oslStartDrawing();
1994: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
1995: oslEndDrawing();
1996: oslSwapBuffers();
1997: oslWaitVSync();
1998: }
1999: oslPlaySound(passs);
2000: for (i=135; i<=272; i+=24)
2001: {
2002: oslStartDrawing();
2003: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2004: spr_draw(pass,240,136);
2005: pass.stretchX = pass.stretchY = i;
2006: oslEndDrawing();
2007: oslSwapBuffers();
2008: oslWaitVSync();
2009: }
2010: }
2011: else reussi=0;
2012:
2013: oslStartDrawing();
2014: oslEndDrawing();
2015: oslSwapBuffers();
2016: oslWaitVSync();
2017:
2018: oslDeleteImage(boat);
2019: oslDeleteImage(boat_blood);
2020: oslDeleteSound(boat_sfx);
2021: oslDeleteImage(pass);
2022: oslDeleteSound(passs);
2023: oslDeleteSound(sflartch);
2024: oslDeleteSound(ambient);
2025: return reussi;
2026: }
2027:
2028: void draw_ball(struct ball ball_ent, OSL_IMAGE ball_gfx, OSL_IMAGE ball_shad)
2029: {
2030: float yr = pow((ball_ent.y2d - 160) / HAUT_FIELD, 1.4f) * HAUT_FIELD + 160;
2031: float x_pr_centre = ball_ent.x2d - 240;
2032: float x_percent = x_pr_centre / 240;
2033: float y_percent = (272-yr)/HAUT_FIELD;
2034: float x_mult = 240 - ESPAC_HORIZ*y_percent;
2035: float xr = x_percent * x_mult + 240;
2036:
2037: ball_gfx.stretchX = ball_gfx.stretchY = 8*(1-0.266f*y_percent);
2038: ball_shad.stretchX = ball_shad.stretchY = 8*(1-0.266f*y_percent);
2039:
2040: spr_draw(ball_gfx, ball_ent.x2d, ball_ent.y2d-ball_ent.z3d);
2041: spr_draw(ball_shad, ball_ent.x2d, ball_ent.y2d);
2042: }
2043:
2044: int shoop_da_whoop(int health, int round, int diff)
2045: {
2046: int i=480, f=0, ta=0, j, u, k=0, sc=0, a=0, b=0;
2047: short sens=0, by=0;
2048:
2049: OSL_IMAGE starsky = LoadImg("./gfx/starsky.png");
2050: OSL_SOUND firin = oslLoadSoundFile("./sfx/sdw.wav");
2051:
2052: OSL_SOUND sdwh = oslLoadSoundFile("./sfx/sdw2.wav");
2053: OSL_SOUND expl_sound = oslLoadSoundFile("./sfx/sfx-0018.wav");
2054: OSL_IMAGE buttons = LoadImg("./gfx/arrows.png");
2055: OSL_IMAGE sdw = LoadImg("./gfx/sdw.png");
2056: OSL_IMAGE sdw_sh = LoadImg("./gfx/sdw_sh.png");
2057: OSL_IMAGE planet = LoadImg("./gfx/planet.png");
2058:
2059: OSL_IMAGE numberz = LoadImg("./gfx/numberz.png");
2060: OSL_IMAGE explode = LoadImg("./gfx/explode.png");
2061:
2062: OSL_IMAGE temp = oslCreateImage(480, 272);
2063: OSL_IMAGE shoot = oslCreateImage(160, 60);
2064:
2065: OSL_IMAGE temp_no;
2066:
2067: temp=oslSetImageRotCenter(temp);
2068: sdw=oslSetImageRotCenter(sdw);
2069: sdw_sh=oslSetImageRotCenter(sdw_sh);
2070: planet=oslSetImageRotCenter(planet);
2071: buttons=oslSetImageRotCenter(buttons);
2072:
2073: oslPlaySound(firin);
2074: starsky=oslSetImageRotCenter(starsky);
2075:
2076: oslStartDrawing();
2077: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2078: spr_draw(starsky, 240, 136);
2079: oslEndDrawing();
2080: oslSwapBuffers();
2081:
2082: for (i=480; i>=128; i-=4)
2083: {
2084: planet.stretchX = planet.stretchY = i;
2085: oslStartDrawing();
2086: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2087: spr_draw(starsky, 240, 136);
2088: spr_draw(planet, 240, 136);
2089: oslEndDrawing();
2090: oslSwapBuffers();
2091: oslWaitVSync();
2092: }
2093:
2094: for (i=480; i>=360; i-=4)
2095: {
2096: oslStartDrawing();
2097: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2098: spr_draw(starsky, 240, 136);
2099: spr_draw(planet, 240, 136);
2100: spr_draw(sdw, i, 136);
2101: oslEndDrawing();
2102: oslSwapBuffers();
2103: oslWaitVSync();
2104: }
2105:
2106:
2107:
2108: for (k=0; k<(diff+1); k++)
2109: {
2110: f=0;
2111:
2112: sc=0;
2113:
2114: if (k)
2115: {
2116: al_destroy_bitmap(shoot.asset);
2117: shoot.asset = al_create_bitmap(160, 60);
2118:
2119: al_destroy_bitmap(temp.asset);
2120: temp.asset = al_create_bitmap(480, 272);
2121: }
2122:
2123: while ((f < 270) && (health > 0))
2124: {
2125: if ((f%30) >= 15) by=32; else by=0;
2126:
2127: oslStartDrawing();
2128: spr_draw(sdw_sh, 240, 136);
2129:
2130: if (f < 120)
2131: {
2132: if (!(f%20)) sens=random(2);
2133:
2134: al_set_target_bitmap(temp.asset);
2135:
2136: spr_draw(sdw, 360, 136);
2137:
2138: ta += (sens)?6:-6;
2139:
2140: if (ta < 0) ta += 360;
2141: if (ta > 359) ta = ta%360;
2142:
2143: temp.angle = ta;
2144:
2145: al_get_keyboard_state(&kbdstate);
2146:
2147:
2148: if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT))
2149: {
2150: sdw_sh.angle -= 12;
2151: }
2152:
2153: if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT))
2154: {
2155: sdw_sh.angle += 12;
2156: }
2157:
2158: if ((sdw_sh.angle) < 0)
2159: {
2160: (sdw_sh.angle) += 360;
2161: }
2162:
2163: if ((sdw_sh.angle) > 359)
2164: {
2165: sdw_sh.angle = (float)((int)((sdw_sh.angle))%360);
2166: }
2167:
2168:
2169: /*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)))
2170: {
2171: sc++;
2172: }*/
2173: }
2174:
2175: if (((sdw_sh.angle - 60) < (temp.angle)) && ((sdw_sh.angle + 60) > (temp.angle)) && (f==119)) sc = 2*diff+2;
2176:
2177: if (((sdw_sh.angle - 60) < ((temp.angle)+360)) && ((sdw_sh.angle + 60) > ((temp.angle)+360)) && (f==119)) sc = 2*diff+2;
2178:
2179:
2180: if ((f >= 120) && (f <= 150))
2181: {
2182: temp.angle = 0;
2183: shoot.angle = 0;
2184:
2185: al_set_target_bitmap(shoot.asset);
2186: oslDrawFillRect(160, 0, (-16/3)*f+800, 60, _RGB(0,0,255));
2187: oslDrawFillRect(160, 10, (-16/3)*f+800, 50, _RGB(0,128,255));
2188: oslDrawFillRect(160, 20, (-16/3)*f+800, 40, _RGB(0,255,255));
2189: oslDrawFillRect(160, 23, (-16/3)*f+800, 37, _RGB(128,255,255));
2190: oslDrawFillRect(160, 26, (-16/3)*f+800, 33, _RGB(255,255,255));
2191:
2192: al_set_target_bitmap(temp.asset);
2193: spr_draw(shoot, 208, 116);
2194:
2195: temp.angle = ta;
2196: }
2197:
2198: if (sc == 2*diff+2)
2199: {
2200: if (f >= 150)
2201: {
2202: al_set_target_bitmap(temp.asset);
2203: spr_draw(sdw, 360, 136);
2204: if (f == 150) oslPlaySound(sdwh);
2205:
2206: if (!(f%15))
2207: {
2208: oslStopSound(expl_sound);
2209: oslPlaySound(expl_sound);
2210: a=330+random(35);
2211: b=72+random(64);
2212: }
2213:
2214: if ((f%10) < 5)
2215: {
2216: explode.stretchX = 64;
2217: explode.stretchY = 96;
2218: spr_draw(explode, a, b);
2219: }
2220: else
2221: {
2222: explode.stretchX = 32;
2223: explode.stretchY = 48;
2224: spr_draw(explode, a+16, b+24);
2225: }
2226: }
2227: if (f > 180) f=333;
2228: }
2229:
2230: al_set_target_bitmap(psp_screen);
2231: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2232: spr_draw(starsky, 240, 136);
2233: spr_draw(temp, 240, 136);
2234: spr_draw(planet, ((f > 150) && (sc < 2*diff+1))?(238+random(5)):240, ((f > 150) && (sc < 2*diff+1))?(134+random(5)):136);
2235: spr_draw(buttons, 240, 136);
2236: spr_draw(sdw_sh, 240, 136);
2237:
2238: //if (f < 120) spr_draw(buttons, 208, 118);
2239: if ((f >= 180) && (f <= 240) && (sc < 2*diff+1))
2240: {
2241: if (f > 180)
2242: {
2243: if (!(f%3)) health--;
2244: }
2245:
2246: if (!(f%15))
2247: {
2248: oslPlaySound(expl_sound);
2249: a=180+random(128);
2250: b=68+random(128);
2251: }
2252:
2253: if ((f%10) < 5)
2254: {
2255: explode.stretchX = 64;
2256: explode.stretchY = 96;
2257: spr_draw(explode, a, b);
2258: }
2259: else
2260: {
2261: explode.stretchX = 32;
2262: explode.stretchY = 48;
2263: spr_draw(explode, a+16, b+24);
2264: }
2265:
2266: }
2267:
2268: i=random(15);
2269: u=18;
2270:
2271: if (health <= 0)
2272: {
2273: health=0;
2274: }
2275:
2276: temp_no=oslSetImageTileSize(numberz,160,0,16,16);
2277: spr_draw(temp_no, 2, 2);
2278:
2279: if (health < 25) j=16; else j=0;
2280:
2281: if (health / 100)
2282: {
2283: temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16);
2284: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
2285: u += 16;
2286: }
2287:
2288: if (health > 9)
2289: {
2290: if (round==2)
2291: {
2292: if (i<12)
2293: {
2294: temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16);
2295: }
2296: else
2297: {
2298: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
2299: }
2300: }
2301: else temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16);
2302: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
2303: u += 16;
2304: }
2305:
2306: if (round==2)
2307: {
2308: if (i<12)
2309: {
2310: temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16);
2311: }
2312: else
2313: {
2314: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
2315: }
2316: }
2317: else temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16);
2318: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
2319:
2320:
2321: oslEndDrawing();
2322: oslSwapBuffers();
2323: oslWaitVSync();
2324: f++;
2325: }
2326: }
2327:
2328: oslStartDrawing();
2329: oslEndDrawing();
2330: oslSwapBuffers();
2331: oslWaitVSync();
2332:
2333: oslDeleteSound(firin);
2334: oslDeleteSound(sdwh);
2335: oslDeleteSound(expl_sound);
2336: oslDeleteImage(buttons);
2337: oslDeleteImage(sdw);
2338: oslDeleteImage(planet);
2339: oslDeleteImage(starsky);
2340: oslDeleteImage(temp);
2341: oslDeleteImage(shoot);
2342: oslDeleteImage(explode);
2343: oslDeleteImage(sdw_sh);
2344: return health;
2345: }
2346:
2347: void sad()
2348: {
2349: int f=0;
2350: OSL_IMAGE gr = LoadImg("./gfx/happyface.png");
2351: OSL_SOUND ss = oslLoadSoundFile("./sfx/sfx-0027.wav");
2352: OSL_SOUND dummy = oslLoadSoundFile("./sfx/dummy.wav");
2353:
2354: gr=oslSetImageRotCenter(gr);
2355: oslSetSoundLoop(ss, 1);
2356:
2357: for (f=0; f<8; f++) oslPlaySound(dummy);
2358: oslPlaySound(ss);
2359:
2360: f=0;
2361:
2362: while(f < 120)
2363: {
2364: oslStartDrawing();
2365: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
2366: gr.stretchX = random(150)+400;
2367: gr.stretchY =(int)((float) 0.75*(gr.stretchX));
2368: spr_draw(gr, 240, 136);
2369: oslEndDrawing();
2370: oslSwapBuffers();
2371: oslWaitVSync();
2372: f++;
2373: }
2374:
2375: oslStartDrawing();
2376: oslEndDrawing();
2377: oslSwapBuffers();
2378: oslWaitVSync();
2379:
2380: oslDeleteImage(gr);
2381: oslDeleteSound(ss);
2382: oslDeleteSound(dummy);
2383: }
2384:
2385: int game(int round, int diff, int nbp)
2386: {
2387: 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;
2388: 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;
2389:
2390: 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;
2391: short swinging=0, ulting=0;
2392:
2393: int giyg_bg_angles[3] = {0, 0, 0};
2394: float court_zoom=1, reddv=0;
2395: char buffer[20];
2396:
2397: int pie_attacks[8][5]; //numeroattaque-duree(frames)-x-y?
2398: int att_cooldowns[15];
2399: int stars_ult[5];
2400:
2401: int meteors[3][3];
2402:
2403: struct pie_entity pie_ent = initpie();
2404: struct ball ball_ent = initball();
2405:
2406: ALLEGRO_EVENT ev;
2407:
2408: OSL_IMAGE pie, tvnoise[20], numberz, ulting_gfx;
2409: OSL_SOUND minigametime = oslLoadSoundFile("./sfx/sfx-0080.wav");
2410: OSL_SOUND tvnoisesound;
2411: OSL_SOUND giygas[3];
2412: OSL_SOUND quitter = oslLoadSoundFile("./sfx/quitter.wav");
2413: OSL_SOUND ko_sfx = oslLoadSoundFile("./sfx/sfx-0045.wav");
2414: OSL_SOUND expl_sound = oslLoadSoundFile("./sfx/sfx-0018.wav");
2415: OSL_SOUND pew = oslLoadSoundFile("./sfx/sfx-0100.wav");
2416: OSL_SOUND paf = oslLoadSoundFile("./sfx/beng-0011.wav");
2417: OSL_SOUND meteor_fall = oslLoadSoundFile("./sfx/sfx-0040.wav");
2418: OSL_SOUND expl_sound2 = oslLoadSoundFile("./sfx/sfx-0036.wav");
2419: OSL_SOUND bulbsfx[7];
2420: OSL_SOUND stun_sound = oslLoadSoundFile("./sfx/sfx-0038.wav");
2421: OSL_SOUND elec = oslLoadSoundFile("./sfx/elec.wav");
2422: OSL_SOUND thunder = oslLoadSoundFile("./sfx/thunder.wav");
2423: OSL_SOUND psis_sfx = oslLoadSoundFile("./sfx/sfx-0043.wav");
2424: OSL_SOUND dictators_sfx[4];
2425:
2426: OSL_SOUND mouth_sfx[2];
2427:
2428: OSL_SOUND whine = oslLoadSoundFile("./sfx/sfx-0097.wav");
2429: OSL_SOUND bounce = oslLoadSoundFile("./sfx/racketbounce.wav");
2430:
2431:
2432: OSL_IMAGE lightning = LoadImg("./gfx/lightning.png");
2433: OSL_IMAGE premess = LoadImg("./gfx/premess.png");
2434: OSL_IMAGE giyg_bg[33], starsky = LoadImg("./gfx/starsky.png");
2435: OSL_IMAGE sleepwell = LoadImg("./gfx/sleepwell.png");
2436: OSL_IMAGE ball_gfx = LoadImg("./gfx/ball.png");
2437: OSL_IMAGE ball_shad = LoadImg("./gfx/ball_shadow.png");
2438: OSL_IMAGE ko = LoadImg("./gfx/ko.png");
2439: OSL_IMAGE mgswirl = LoadImg("./gfx/mgswirl.png");
2440: OSL_IMAGE explode = LoadImg("./gfx/explode.png");
2441: OSL_IMAGE rckch[2];
2442: OSL_IMAGE psycho = LoadImg("./gfx/gfx-0672.png");
2443: OSL_IMAGE paused_gfx = LoadImg("./gfx/paused.png");
2444: OSL_IMAGE ultgauge = LoadImg("./gfx/ultgauge.png");
2445: OSL_IMAGE shlgauge = LoadImg("./gfx/shlgauge.png");
2446: OSL_IMAGE visor = LoadImg("./gfx/visor.png");
2447: OSL_IMAGE bulbasaur = LoadImg("./gfx/bulbasaur.png");
2448: OSL_IMAGE recipe = LoadImg("./gfx/darkness.png");
2449: OSL_IMAGE shield = LoadImg("./gfx/shield.png");
2450: OSL_IMAGE meteor = LoadImg("./gfx/gfx-0471.png");
2451: OSL_IMAGE stunning = LoadImg("./gfx/creepycircle.png");
2452: OSL_IMAGE psis = LoadImg("./gfx/psis.png");
2453: OSL_IMAGE dictators = LoadImg("./gfx/dictators.png");
2454: OSL_IMAGE mouth = LoadImg("./gfx/gfx-0102.png");
2455: OSL_IMAGE powerball = LoadImg("./gfx/powerball.png");
2456: OSL_IMAGE star = LoadImg("./gfx/star.png");
2457: OSL_IMAGE juche = LoadImg("./gfx/juche.png");
2458: OSL_IMAGE suppo_gfx = LoadImg("./gfx/suppo.png");
2459: OSL_IMAGE attch = LoadImg("./gfx/attchoice.png");
2460: OSL_IMAGE cp2 = LoadImg("./gfx/cursor2p.png");
2461:
2462: OSL_SOUND benj_sfx[11];
2463:
2464:
2465: 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;
2466:
2467: numberz = LoadImg("./gfx/numberz.png");
2468:
2469: ulting_gfx = LoadImg("./gfx/ulting.png");
2470:
2471: benj_sfx[0] = oslLoadSoundFile("./sfx/beng-0000.wav");
2472: benj_sfx[1] = oslLoadSoundFile("./sfx/beng-0001.wav");
2473: benj_sfx[2] = oslLoadSoundFile("./sfx/beng-0002.wav");
2474: benj_sfx[3] = oslLoadSoundFile("./sfx/beng-0003.wav");
2475: benj_sfx[4] = oslLoadSoundFile("./sfx/beng-0004.wav"); //hurt
2476: benj_sfx[5] = oslLoadSoundFile("./sfx/beng-0013.wav");
2477: benj_sfx[6] = oslLoadSoundFile("./sfx/beng-0016.wav");
2478: benj_sfx[7] = oslLoadSoundFile("./sfx/beng-0020.wav"); //pass
2479: benj_sfx[8] = oslLoadSoundFile("./sfx/beng-0009.wav");
2480: benj_sfx[9] = oslLoadSoundFile("./sfx/beng-0015.wav"); //ult
2481: benj_sfx[10] = oslLoadSoundFile("./sfx/beng-0006.wav"); //shield
2482:
2483: dictators_sfx[0] = oslLoadSoundFile("./sfx/putin.wav"),
2484: dictators_sfx[1] = oslLoadSoundFile("./sfx/kjun.wav"),
2485: dictators_sfx[2] = oslLoadSoundFile("./sfx/hitler.wav"),
2486: dictators_sfx[3] = oslLoadSoundFile("./sfx/skeletor.wav"),
2487:
2488: mouth_sfx[0] = oslLoadSoundFile("./sfx/sfx-0021.wav");
2489: mouth_sfx[1] = oslLoadSoundFile("./sfx/sfx-0022.wav"),
2490:
2491: rckch[0] = LoadImg("./gfx/rocking_chair.png");
2492: rckch[1] = LoadImg("./gfx/rocking_chair2.png");
2493:
2494: pie_ent.pie_hp=100*round*diff;
2495:
2496: pie=LoadImg("./gfx/pie.png");
2497: pie=oslSetImageRotCenter(pie);
2498: starsky=oslSetImageRotCenter(starsky);
2499: sleepwell=oslSetImageRotCenter(sleepwell);
2500: rckch[0].centerX = 32;
2501: rckch[0].centerY = 47;
2502: rckch[1]=oslSetImageRotCenter(rckch[1]);
2503: recipe=oslSetImageRotCenter(recipe);
2504: paused_gfx=oslSetImageRotCenter(paused_gfx);
2505: visor=oslSetImageRotCenter(visor);
2506: mouth=oslSetImageRotCenter(mouth);
2507: stunning=oslSetImageRotCenter(stunning);
2508: powerball=oslSetImageRotCenter(powerball);
2509: star=oslSetImageRotCenter(star);
2510: ball_gfx.centerX = 3;
2511: ball_gfx.centerY = 7;
2512:
2513: al_register_event_source(event_queue, al_get_display_event_source(display));
2514: al_register_event_source(event_queue, al_get_timer_event_source(timer));
2515: al_start_timer(timer);
2516:
2517: temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32);
2518: tvnoisesound = oslLoadSoundFile("./sfx/dummy.wav");
2519:
2520: mouth.stretchX = 10;
2521: mouth.stretchY = 16;
2522:
2523:
2524: for (i=0; i<8; i++)
2525: {
2526: for (j=0; j<5; j++)
2527: {
2528: pie_attacks[i][j]=0;
2529: stars_ult[j]=-32;
2530: }
2531: }
2532:
2533:
2534:
2535: for (i=0; i<7; i++)
2536: {
2537: sprintf(buffer,"./sfx/sfx-0%d.wav",i+114);
2538: bulbsfx[i]=oslLoadSoundFile(buffer);
2539: }
2540:
2541: for (i=0; i<15; i++)
2542: {
2543: att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800);
2544: 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]));
2545: if ((i!=0) && (i!=3) && (i!=4)) att_cooldowns[i]=att_cooldowns[i]/(0.5*round+0.5);
2546: }
2547:
2548: oslSetSoundLoop(psis_sfx, 1);
2549:
2550: if (round == 2)
2551: {
2552: giygas[0] = oslLoadSoundFile("./sfx/sfx-0006.wav");
2553: giygas[1] = oslLoadSoundFile("./sfx/sfx-0007.wav");
2554: giygas[2] = oslLoadSoundFile("./sfx/sfx-0008.wav");
2555:
2556: for (i=0; i<20; i++)
2557: {
2558: sprintf(buffer,"./gfx/gfx-0%d.png",i+642);
2559: tvnoise[i]= LoadImg(buffer);
2560: tvnoise[i].stretchX = 480;
2561: tvnoise[i].stretchY = 272;
2562: }
2563:
2564: oslDeleteSound(tvnoisesound);
2565:
2566: tvnoisesound = oslLoadSoundFile("./sfx/sfx-0028.wav");
2567: //tvnoisesound . volumeLeft = tvnoisesound . volumeRight = 0x2000;
2568: oslSetSoundLoop(tvnoisesound, 1);
2569:
2570: if (round==2)
2571: {
2572: for (i=0; i<33; i++)
2573: {
2574: sprintf(buffer,"./gfx/gfx-0%d.png",i+103);
2575: giyg_bg[i]=LoadImg(buffer);
2576: giyg_bg[i]=oslSetImageRotCenter(giyg_bg[i]);
2577: giyg_bg[i].stretchX = giyg_bg[i].stretchY = 512;
2578: }
2579: }
2580: }
2581: else
2582: {
2583: giygas[0] = oslLoadSoundFile("./sfx/sfx-0155.wav");
2584: giygas[1] = oslLoadSoundFile("./sfx/sfx-0153.wav");
2585: giygas[2] = oslLoadSoundFile("./sfx/dummy.wav");
2586:
2587: for (i=0; i<5; i++)
2588: {
2589: tvnoise[i]=LoadImg("./gfx/dummy.png");
2590: }
2591: }
2592:
2593:
2594:
2595:
2596: //oslSetTransparentColor(RGB(255,0,255));
2597:
2598:
2599: for (i=0; i<3; i++)
2600: {
2601: oslSetSoundLoop(giygas[i], 1);
2602: }
2603:
2604: oslPlaySound(giygas[0]);
2605: health=100;
2606:
2607: while(!quit)
2608: {
2609: al_wait_for_event(event_queue, &ev);
2610:
2611: if(ev.type == ALLEGRO_EVENT_TIMER) skipframe=1; else skipframe=0;
2612:
2613: if ((skipframe) && al_event_queue_is_empty(event_queue))
2614: {
2615: oslStartDrawing();
2616: skipframe=0;
2617: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
2618:
2619: if (pie_ent.pie_hp < 1)
2620: {
2621: pie_ent.pie_y = 136+5*sin(0.5*global_fr);
2622: }
2623:
2624: spr_draw(starsky,239,136);
2625:
2626: if ((whineface) && (health > 0) && (pie_ent.pie_hp > 0))
2627: {
2628: //oslSetAlpha(OSL_FX_DEFAULT, 0);
2629: pie.R=255;
2630: pie.G=pie.B=(32-whineface)*8;
2631: spr_draw(pie, pie_ent.pie_x, pie_ent.pie_y);
2632: temp_dics=oslSetImageTileSize(dictators, 160, 80, 80, 80);
2633: temp_dics=oslSetImageRotCenter(temp_dics);
2634: temp_dics.trans=whineface*8;
2635: spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22);
2636: whineface--;
2637: pie.R=pie.G=pie.B=255;
2638: }
2639: else
2640: {
2641: pie.R=pie.G=pie.B=255;
2642: spr_draw(pie,pie_ent.pie_x, pie_ent.pie_y);
2643: }
2644:
2645:
2646:
2647:
2648: //oslSetAlpha(OSL_FX_DEFAULT, 0);
2649:
2650: for (i=0; i<((2*diff)+2); i++)
2651: {
2652: if ((pie_attacks[i][0]==12) && (health > 0))
2653: {
2654: temp_dics=oslSetImageTileSize(dictators, 80*(pie_ent.pie_facemode%2), 80*(pie_ent.pie_facemode/2),80 ,80);
2655: temp_dics=oslSetImageRotCenter(temp_dics);
2656:
2657: if (pie_attacks[i][1] > (240*diff-255))
2658: {
2659: temp_dics.trans=240*diff - pie_attacks[i][1];
2660: }
2661: else
2662: {
2663: temp_dics.trans=255;
2664: }
2665:
2666: if (pie_attacks[i][1] < 0)
2667: {
2668: temp_dics.trans=255+pie_attacks[i][1];
2669: }
2670:
2671: if (!whineface) spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22);
2672:
2673: if (!paused) pie_attacks[i][1]--;
2674:
2675: if (pie_attacks[i][1] == -255)
2676: {
2677: pie_attacks[i][0]=0;
2678: pie_ent.pie_facemode=0;
2679: putin=0;
2680: }
2681:
2682: temp_dics.trans=255;
2683:
2684: if ((pie_ent.pie_facemode == 2) && (pie_attacks[i][1]==90))
2685: {
2686: for (i=0; i<15; i++)
2687: {
2688: if ((i!=0) && (i!=3) && (i!=4) && (i != 11) && (i!=6)) att_cooldowns[i]=random(250);
2689: }
2690: }
2691:
2692: if (pie_ent.pie_facemode == 0)
2693: {
2694: if (pie_attacks[i][1] > -255) putin=1; else putin=0;
2695: }
2696: if (pie_ent.pie_facemode == 1)
2697: {
2698: spr_draw(juche, pie_attacks[i][2], 40+30*sin(0.0625*pie_attacks[i][2]));
2699: pie_attacks[i][2] -= 3;
2700: }
2701: }
2702: }
2703:
2704: if (health <= 0)
2705: {
2706: temp_dics=oslSetImageTileSize(dictators, 160, 0, 80, 80);
2707: temp_dics=oslSetImageRotCenter(temp_dics);
2708: temp_dics.trans=255;
2709: spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22);
2710: }
2711: else if (pie_ent.pie_hp < 1)
2712: {
2713: temp_dics=oslSetImageTileSize(dictators, 160, 80, 80, 80);
2714: temp_dics=oslSetImageRotCenter(temp_dics);
2715: temp_dics.trans=255;
2716: spr_draw(temp_dics, pie_ent.pie_x, pie_ent.pie_y-22);
2717: }
2718:
2719: spr_draw(court,0,0);
2720:
2721:
2722: if (!paused)
2723: {
2724: if (pie_ent.pie_hp > 0)
2725: {
2726: if (!(pie_ent.pie_direction))
2727: {
2728: pie_ent.pie_x++;
2729: pie.angle+=((round==2)?(giyg_flag+1):1)*4;
2730:
2731: if (pie_ent.pie_x>=351) pie_ent.pie_direction=1;
2732:
2733: }
2734: else
2735: {
2736: pie_ent.pie_x--;
2737: pie.angle-=((round==2)?(giyg_flag+1):1)*4;
2738:
2739:
2740: if (pie_ent.pie_x<=128) pie_ent.pie_direction=0;
2741: }
2742: }
2743:
2744:
2745: if (round==2) starsky.angle=starsky.angle-(giyg_flag+1)*((random(10))-1);
2746:
2747: if (counter >= 240)
2748: {
2749:
2750: if (diff != 3) a=diff; else a=2;
2751:
2752: if (counter == 240) ball_ent=apply_impulse(ball_ent, -1*a, -1*a, 30*3.14/180);
2753:
2754: if (ultlvl > 239) ultlvl=239;
2755:
2756: if ((!mgcd) && (!lightsoff) && (!rckchscr) && (mouth.stretchX == 10))
2757: {
2758: ball_ent.x2d += ball_ent.speed_h;
2759: ball_ent.y2d += ball_ent.speed_v;
2760:
2761: /*ball_ent.speed_z += GRAVITY;
2762: ball_ent.z3d += ball_ent.speed_z;
2763:
2764: if (ball_ent.z3d < 0)
2765: {
2766: ball_ent.speed_z = -1*(ball_ent.speed_z);
2767: ball_ent.z3d=0;
2768: }*/
2769:
2770: ball_ent.z3d = abs(16*sin(0.0625*global_fr));
2771: }
2772:
2773: if (ball_ent.y2d < 138)
2774: {
2775: ball_ent.speed_v = -1*(ball_ent.speed_v);
2776: ball_ent.y2d = 140;
2777:
2778: returned=0;
2779:
2780: if ((ball_ent.x2d >= pie_ent.pie_x-128) && (ball_ent.x2d <= pie_ent.pie_x+128))
2781: {
2782: pie_ent.pie_hp -= (4-diff);
2783: ultlvl += 5-diff;
2784: oslPlaySound(whine);
2785: whineface=31;
2786: }
2787: else
2788: {
2789: if ((!suppo) && ((health) || (pie_ent.pie_hp)))
2790: {
2791: suppo = 150;
2792: suppox = px - 32;
2793: suppoy = py + 48;
2794: }
2795: }
2796:
2797:
2798: if (ball_ent.speed_v > 0)
2799: {
2800: a=random(100);
2801: //if (a > 85) ball_ent.poisoned=1; else ball_ent.poisoned=0;
2802: }
2803:
2804: }
2805:
2806: if (ball_ent.y2d > 288)
2807: {
2808: ball_ent.speed_v = -1*(ball_ent.speed_v);
2809: ball_ent.y2d = 286;
2810:
2811: ball_ent.poisoned=0;
2812:
2813: if (!shielded)
2814: {
2815: stun=616;
2816: health -= diff+1;
2817: oslPlaySound(thunder);
2818: }
2819:
2820:
2821: returned=1;
2822: }
2823:
2824: if ((ball_ent.x2d >= 480 - 16/2) || (ball_ent.x2d < 4))
2825: {
2826: ball_ent.speed_h = -1*(ball_ent.speed_h);
2827: if (ball_ent.x2d < 4) ball_ent.x2d = 6; else ball_ent.x2d = 478 - 16/2;
2828: }
2829:
2830:
2831: }
2832:
2833: }
2834:
2835: al_get_keyboard_state(&kbdstate);
2836:
2837: 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))
2838: {
2839: rebound=0;
2840: swinging=0;
2841: ulting=0;
2842: frappe=-1;
2843: frappe_ult=-1;
2844: }
2845:
2846: if (((al_key_down(&kbdstate, ALLEGRO_KEY_I)) || (al_key_down(&kbdstate, ALLEGRO_KEY_O))) && (nbp==2) && (!rebound))
2847: {
2848: att_ch_timer=0;
2849: if ((al_key_down(&kbdstate, ALLEGRO_KEY_I)) && (cursor2p > 0)) cursor2p--;
2850: if ((al_key_down(&kbdstate, ALLEGRO_KEY_O)) && (cursor2p < 13)) cursor2p++;
2851: rebound=1;
2852: }
2853:
2854: if ((al_key_down(&kbdstate, ALLEGRO_KEY_P)) && (pie_ent.pie_hp) && (health) && (!mgcd) && (counter > 256) && (!rebound))
2855: {
2856: rebound=1;
2857: if (!paused)
2858: {
2859: if (!lightsoff) oslStopSound(giygas[giyg_flag%3]);
2860: paused=1;
2861: if (al_get_sample_instance_position(quitter.instance))
2862: {
2863: health -= 5;
2864: if (putin) health -=2;
2865: oslStopSound(quitter);
2866: }
2867: if (al_get_sample_instance_position(tvnoisesound.instance)) oslStopSound(tvnoisesound);
2868: if (al_get_sample_instance_position(psis_sfx.instance)) oslStopSound(psis_sfx);
2869: }
2870: else
2871: {
2872: paused=0;
2873: oslPlaySound(giygas[giyg_flag%3]);
2874: }
2875:
2876:
2877: }
2878:
2879:
2880: if ((al_key_down(&kbdstate, ALLEGRO_KEY_L)) && (paused))
2881: {
2882: if ((al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L)))
2883: {
2884: if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L)))
2885: {
2886: paused=0;
2887: health=0;
2888: mort=2;
2889: }
2890:
2891: if ((al_key_down(&kbdstate, ALLEGRO_KEY_N)) && (al_key_down(&kbdstate, ALLEGRO_KEY_R)) && (al_key_down(&kbdstate, ALLEGRO_KEY_L)))
2892: {
2893: paused=0;
2894: pie_ent.pie_hp=0;
2895: pie_ent.pie_facemode=0;
2896: }
2897: }
2898: }
2899:
2900:
2901: counter++;
2902: global_fr++;
2903: if (nbp==2) att_ch_timer++; else att_ch_timer=4;
2904:
2905: if ((att_ch_timer >= 81) && (att_cooldowns[cursor2p] == 1) && (nbp==2))
2906: {
2907: att_cooldowns[cursor2p]=0;
2908: }
2909:
2910:
2911: benj.stretchX = 32;
2912: benj.stretchY = 48;
2913: benj.angle = 0;
2914:
2915: if (stun > 600)
2916: {
2917: lightning.trans=(stun%600)*16;
2918: temp_lghtn=oslSetImageTileSize(lightning,0,0,32,py+64);
2919: spr_draw(temp_lghtn, px, 0);
2920: }
2921:
2922:
2923: if (health > 0)
2924: {
2925: shadow=oslSetImageTileSize(benj,32,192,32,48);
2926: shadow.trans=128;
2927: spr_draw(shadow, px+8, py+26);
2928: }
2929:
2930: temp_benj=oslSetImageTileSize(benj,0,192,32,48);
2931:
2932: 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))
2933: {
2934: frappe_ult=1;
2935: ulting=1;
2936: rebound=1;
2937: oslPlaySound(benj_sfx[(random(2)+8)]);
2938: racket_devnull++;
2939:
2940: stary=py+48;
2941:
2942: if ((ultlvl > 59) && (ultlvl < 120))
2943: {
2944: stars_ult[0]=px+32;
2945: nbult=1;
2946: }
2947:
2948: else if ((ultlvl > 119) && (ultlvl < 239))
2949: {
2950: stars_ult[0]=px-48;
2951: stars_ult[1]=px+32;
2952: stars_ult[2]=px+112;
2953: nbult=3;
2954: }
2955:
2956: else if (ultlvl==239)
2957: {
2958: stars_ult[0]=px-48;
2959: stars_ult[1]=px-8;
2960: stars_ult[2]=px+32;
2961: stars_ult[3]=px+72;
2962: stars_ult[4]=px+112;
2963: nbult=5;
2964: }
2965:
2966:
2967: if (ultlvl > 59) ultlvl -= ((diff==1)?60:((diff==2)?(ultlvl%60+60):ultlvl));
2968:
2969: }
2970:
2971: if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (health>0) && (!mgcd) && (!paused) && (shldlvl > 2) && (!stun))
2972: {
2973: racket_devnull++;
2974: }
2975:
2976: if (((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) || (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE))) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (!rebound) && (!swinging))
2977: {
2978: if (!(racket_devnull%2)) oslPlaySound(benj_sfx[random(3)+5]);
2979: racket_devnull++;
2980: frappe=1;
2981: rebound=1;
2982: swinging=1;
2983: }
2984:
2985: if ((al_key_down(&kbdstate, ALLEGRO_KEY_UP)) && (py >= 102) && (health>0) && (!mgcd) && (!paused) && (frappe == -1) && (!stun) && (mouth.stretchX == 10))
2986: {
2987: if (pie_ent.pie_facemode != 1)
2988: {
2989: pbouss=0;
2990: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,0,32,48);
2991: if (al_key_down(&kbdstate, ALLEGRO_KEY_UP))
2992: {
2993: if (pie_ent.pie_facemode != 3) py-=4; else py-=2;
2994: fs=3;
2995: }
2996: }
2997: else
2998: {
2999: pbouss=2;
3000: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,96,32,48);
3001: if (al_key_down(&kbdstate, ALLEGRO_KEY_UP))
3002: {
3003: if (pie_ent.pie_facemode != 3) py+=4; else py+=2;
3004: fs=3;
3005: }
3006: if (py > 224) py=216;
3007: }
3008:
3009: temp_pb=oslSetImageTileSize(powerball, 32, 0, 32, 32);
3010: if (!(counter%fs)) benj_frame++;
3011: }
3012: 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))
3013: {
3014: if (pie_ent.pie_facemode != 1)
3015: {
3016: pbouss=3;
3017: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,pbouss*48,32,48);
3018: if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT))
3019: {
3020: if (frappe < 4)
3021: {
3022: if (pie_ent.pie_facemode != 3) px-=4; else px-=2;
3023: }
3024: fs=3;
3025: }
3026: }
3027: else
3028: {
3029: pbouss=1;
3030: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48);
3031: if (al_key_down(&kbdstate, ALLEGRO_KEY_LEFT))
3032: {
3033: if (frappe < 4)
3034: {
3035: if (pie_ent.pie_facemode != 3) px+=4; else px+=2;
3036: }
3037: fs=3;
3038: }
3039: if (px > (0.492*py+321.792)) px = (0.492*py+321.792);
3040: }
3041:
3042: temp_pb=oslSetImageTileSize(powerball, 32, 0, 32, 32);
3043: if (!(counter%fs)) benj_frame++;
3044: }
3045: 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))
3046: {
3047: if (pie_ent.pie_facemode != 1)
3048: {
3049: pbouss=1;
3050: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,48,32,48);
3051: if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT))
3052: {
3053: if (frappe < 4)
3054: {
3055: if (pie_ent.pie_facemode != 3) px+=4; else px+=2;
3056: }
3057: fs=3;
3058: }
3059: }
3060: else
3061: {
3062: pbouss=3;
3063: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,pbouss*48,32,48);
3064: if (al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT))
3065: {
3066: if (frappe < 4)
3067: {
3068: if (pie_ent.pie_facemode != 3) px-=4; else px-=2;
3069: }
3070: fs=3;
3071: }
3072:
3073: if (px < (-0.492*py+94.184)) px = (-0.492*py+94.184);
3074: }
3075: temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32);
3076: if (!(counter%fs)) benj_frame++;
3077: }
3078: if ((al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) && (py <= 224) && (health>0) && (!mgcd) && (!paused) && (frappe == -1) && (!stun) && (mouth.stretchX == 10))
3079: {
3080: if (pie_ent.pie_facemode != 1)
3081: {
3082: pbouss=2;
3083: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,96,32,48);
3084: if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN))
3085: {
3086: if (pie_ent.pie_facemode != 3) py+=4; else py+=2;
3087: fs=3;
3088: }
3089: }
3090: else
3091: {
3092: pbouss=0;
3093: temp_benj=oslSetImageTileSize(benj,(benj_frame%8)*32,0,32,48);
3094: if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN))
3095: {
3096: if (pie_ent.pie_facemode != 3) py-=4; else py-=2;
3097: fs=3;
3098: }
3099: if (py < 102) py=110;
3100: }
3101:
3102: temp_pb=oslSetImageTileSize(powerball, 0, 0, 32, 32);
3103: if (!(counter%fs)) benj_frame++;
3104: }
3105:
3106: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LCTRL)) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (swinging))
3107: {
3108: if ((!(counter%3))) frappe++;
3109: temp_benj=oslSetImageTileSize(benj,(frappe)*32,240,32,48);
3110:
3111:
3112: if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (frappe > -1))
3113: {
3114: if (frappe>3) temp_benj.angle = 90;
3115: temp_benj=oslSetImageTileSize(benj,(frappe)*32,432,32,48);
3116:
3117: }
3118: else if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (frappe > -1))
3119: {
3120: if (frappe>3) temp_benj.angle = -90;
3121: temp_benj=oslSetImageTileSize(benj,(frappe)*32,384,32,48);
3122: }
3123:
3124: 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))
3125: {
3126: if (diff != 3) a=diff; else a=2;
3127: ball_ent = apply_impulse(ball_ent, a, a, (180-15*frappe)*3.14/180);
3128: oslPlaySound(bounce);
3129: frappe=-1;
3130: returned=1;
3131: //swinging=0;
3132: }
3133: }
3134:
3135:
3136: if ((al_key_down(&kbdstate, ALLEGRO_KEY_SPACE)) && (health>0) && (!mgcd) && (!paused) && (frappe<7) && (!stun) && (swinging))
3137: {
3138: if ((!(counter%3))) frappe++;
3139: temp_benj=oslSetImageTileSize(benj,(frappe)*32,288,32,48);
3140:
3141:
3142: if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (frappe > -1))
3143: {
3144: if (frappe>3) temp_benj.angle = 90;
3145: temp_benj=oslSetImageTileSize(benj,(frappe)*32,432,32,48);
3146: }
3147: else if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (frappe > -1))
3148: {
3149: if (frappe>3) temp_benj.angle = -90;
3150: temp_benj=oslSetImageTileSize(benj,(frappe)*32,384,32,48);
3151: }
3152:
3153: 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))
3154: {
3155: if (diff != 3) a=diff; else a=2;
3156: ball_ent = apply_impulse(ball_ent, -1*a, a, (15*frappe)*3.14/180);
3157: oslPlaySound(bounce);
3158: frappe=-1;
3159: returned=1;
3160: //swinging=0;
3161: }
3162: }
3163:
3164: if ((al_key_down(&kbdstate, ALLEGRO_KEY_X)) && (health>0) && (!mgcd) && (!paused) && (shldlvl > 0) && (!stun))
3165: {
3166: if ((!shielded) && (shldlvl > 2)) oslPlaySound(benj_sfx[10]);
3167: if ((!(counter%(4-diff)))) shldlvl--;
3168: shielded=1;
3169: }
3170:
3171: if ((al_key_down(&kbdstate, ALLEGRO_KEY_C)) && (health>0) && (!mgcd) && (!paused) && (frappe_ult<7) && (!stun) && (counter > 300) && (!rebound) && (ulting))
3172: {
3173: if (!(counter%3)) frappe_ult++;
3174: }
3175:
3176: /*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)))
3177: {
3178:
3179: }*/
3180:
3181: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_X)) || (!shldlvl))
3182: {
3183: shielded=0;
3184: }
3185:
3186: if (stun)
3187: {
3188: frappe=-1;
3189: temp_benj=oslSetImageTileSize(benj,64,192,32,48);
3190: stun--;
3191: if (!(stun%200)) stun=0;
3192: }
3193:
3194: if (px < (-0.492*py+94.184)) px = (-0.492*py+94.184);
3195: if (px > (0.492*py+321.792)) px = (0.492*py+321.792);
3196:
3197: 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)) &&
3198: (!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)))
3199: {
3200: benj_frame=0;
3201: }
3202:
3203:
3204: if ((frappe >= 7) && (swinging))
3205: {
3206: frappe=7;
3207: rebound=1;
3208: }
3209:
3210: if ((frappe_ult >= 7) && (ulting))
3211: {
3212: frappe_ult=7;
3213: rebound=1;
3214: }
3215:
3216: if (ulting) temp_benj=oslSetImageTileSize(ulting_gfx,(frappe_ult)*32,0,32,48);
3217:
3218: court_zoom = 0.00192*py + 0.562;
3219:
3220: temp_benj.stretchX = (int)(64*(float)court_zoom);
3221: temp_benj.stretchY = (int)(96*(float)court_zoom);
3222:
3223: shield.stretchX = (int)(48*(float)court_zoom);
3224: shield.stretchY = (int)(48*(float)court_zoom);
3225:
3226:
3227:
3228: ball_gfx.stretchX = (int)(8*(float)court_zoom);
3229: ball_gfx.stretchY = ball_gfx . stretchX;
3230:
3231: temp_pb.stretchX = temp_pb.stretchY = (int)(32*(float)(court_zoom));
3232:
3233:
3234: if (health > 0)
3235: {
3236: if (stary > 0)
3237: {
3238: for(u=0; u<nbult; u++)
3239: {
3240: spr_draw(star, stars_ult[u], stary);
3241:
3242: if (stary <= 136)
3243: {
3244: if ((stars_ult[u] >= (pie_ent.pie_x-128)) && (stars_ult[u] <= (pie_ent.pie_x+128))) pie_ent.pie_hp -= 10;
3245: stary=-64;
3246: stars_ult[u]=-32;
3247: nbult=0;
3248: }
3249:
3250: }
3251: star.angle -= 5;
3252: stary -= 4;
3253:
3254: }
3255:
3256: if (ball_ent.poisoned) ball_gfx.R=ball_gfx.G=0;
3257: if (pie_ent.pie_hp > 0) draw_ball(ball_ent, ball_gfx, ball_shad);
3258: draw_benj(temp_benj, px, py, shielded, shield);
3259: if (((pbouss == 3) || (pbouss == 0)) && (pie_ent.pie_facemode == 3)) spr_draw(temp_pb, px+64, py+48);
3260: if (((pbouss == 1) || (pbouss == 2)) && (pie_ent.pie_facemode == 3)) spr_draw(temp_pb, px, py+48);
3261: if (ball_ent.poisoned) ball_gfx.R=ball_gfx.G=0;
3262:
3263:
3264: }
3265:
3266:
3267:
3268: if (suppo)
3269: {
3270: if (!paused) suppo--;
3271: if (suppo<40)
3272: {
3273: temp_suppo=oslSetImageTileSize(suppo_gfx, suppo/10*32, 0, 32, 32);
3274: }
3275:
3276: if (suppo>110)
3277: {
3278: temp_suppo=oslSetImageTileSize(suppo_gfx, (150-suppo)/10*32, 0, 32, 32);
3279: }
3280:
3281: court_zoom = 0.00192*suppoy + 0.562;
3282: temp_suppo.stretchX = (int)(32*(float)court_zoom);
3283: temp_suppo.stretchY = (int)(32*(float)court_zoom);
3284:
3285: spr_draw(temp_suppo, suppox, suppoy);
3286: spr_draw(temp_suppo, suppox+64, suppoy);
3287:
3288: if ((suppo>65) && (suppo<85))
3289: {
3290: if ((px>=suppox) && (px<=suppox+64) && (py>=suppoy-64) && (py <= suppoy))
3291: {
3292: temp_benj.R=0;
3293: temp_benj.G=128;
3294: temp_benj.B=128;
3295:
3296: if ((suppo%4) < 2)
3297: {
3298: draw_benj(temp_benj, px, py, shielded, shield);
3299: }
3300:
3301: if ((suppo == 67) && (!mgcd) && (!rckchscr))
3302: {
3303: health -= diff;
3304: oslPlaySound(elec);
3305: }
3306: temp_benj.R=temp_benj.G=temp_benj.B=255;
3307: }
3308: }
3309: }
3310:
3311: if ((pie_ent.pie_hp > 25*round*diff) && (!giyg_flag) && (pie_ent.pie_hp <= 50*round*diff))
3312: {
3313: giyg_flag=1;
3314: oslStopSound(giygas[0]);
3315: oslPlaySound(giygas[1]);
3316: }
3317:
3318:
3319:
3320: if (round==2)
3321: {
3322: giyg_bg[gbg].trans=random(64);
3323: spr_draw(giyg_bg[gbg], 240, 138);
3324:
3325: giyg_bg_angles[0] = random(10)-5;
3326:
3327: giyg_bg[gbg].angle += giyg_bg_angles[0];
3328:
3329: if (pie_ent.pie_hp <= 50*round*diff)
3330: {
3331: giyg_bg_angles[1] = 2*(random(10)-5);
3332: giyg_bg[gbg].angle += giyg_bg_angles[1];
3333: giyg_bg[gbg].trans=random(64)+64;
3334: spr_draw(giyg_bg[gbg], 240, 138);
3335:
3336: }
3337:
3338: if (pie_ent.pie_hp <= 25*round*diff)
3339: {
3340: giyg_bg_angles[2] = 4*(random(10)-5);
3341: giyg_bg[gbg].angle += giyg_bg_angles[2];
3342: giyg_bg[gbg].trans=random(64)+128;
3343: spr_draw(giyg_bg[gbg], 240, 138);
3344:
3345: if ((giyg_flag < 2))
3346: {
3347: giyg_flag=2;
3348: oslStopSound(giygas[1]);
3349: oslPlaySound(giygas[2]);
3350: }
3351:
3352: }
3353: }
3354:
3355: if (!(global_fr%5))
3356: {
3357: gbg++;
3358: gbg=gbg%33;
3359: }
3360:
3361: if ((counter >= 640))
3362: {
3363:
3364: //initializing attacks
3365: for (i=0; i<14; i++)
3366: {
3367: if ((nbp==1) && (!paused)) att_cooldowns[i]--;
3368: if ((nbp==2) && (!paused) && (att_cooldowns[i]>1)) att_cooldowns[i]--;
3369:
3370: if ((i==7) && (bulbfell > 0)) att_cooldowns[7]++;
3371:
3372: if ((att_cooldowns[i] <= 0) && (pie_ent.pie_hp > 0))
3373: {
3374:
3375: attf=0;
3376: for (j=0; j<((2*diff)+2); j++)
3377: {
3378: if (pie_attacks[j][0] == (i+1)) attf=1;
3379: }
3380:
3381: for (j=0; j<((2*diff)+2); j++)
3382: {
3383: if ((!(pie_attacks[j][0])) && (!attf))
3384: {
3385: pie_attacks[j][0]=i+1;
3386:
3387: switch(i+1)
3388: {
3389: case 1:
3390: pie_attacks[j][1]=140;
3391: break;
3392:
3393: case 2:
3394: pie_attacks[j][1]=(py-(pie_ent.pie_y))/(px-pie_ent.pie_x);
3395: pie_attacks[j][2]=(pie_ent.pie_y)-pie_attacks[j][1]*pie_ent.pie_x;
3396: pie_attacks[j][3]=pie_ent.pie_x;
3397: pie_attacks[j][4]=px;
3398: mgsy=pie_attacks[i][1]*pie_attacks[i][3]+pie_attacks[i][2];
3399: break;
3400:
3401: case 3:
3402: darkness=0;
3403: for (u=0; u<((2*diff)+2); u++)
3404: {
3405: if (pie_attacks[u][0]==7) darkness=1;
3406: }
3407:
3408: if (!darkness)
3409: {
3410: pie_attacks[j][1]=360-(15*diff);
3411: pie_attacks[j][2]=random(160)+80;
3412: pie_attacks[j][3]=random(112)+160;
3413: pie_attacks[j][4]=2*diff+3;
3414: }
3415: else pie_attacks[j][0]=0;
3416: break;
3417:
3418: case 4:
3419: pie_attacks[j][1]=diff*166;
3420: lightsoff=1;
3421: break;
3422:
3423: case 5:
3424: pie_attacks[j][1]=-218;
3425: pie_attacks[j][2]=255;
3426: break;
3427:
3428: case 6:
3429: pie_attacks[j][1]=225*diff;
3430: pie_attacks[j][2]=random(416);
3431: pie_attacks[j][3]=random(100)+108;
3432:
3433: if ((diff > 1) && (pie_attacks[j][2]%diff))
3434: {
3435: pie_attacks[j][2] += (diff)-(pie_attacks[j][2]%diff);
3436: }
3437:
3438: if ((diff > 1) && (pie_attacks[j][3]%diff))
3439: {
3440: pie_attacks[j][3] += (diff)-(pie_attacks[j][3]%diff);
3441: }
3442: break;
3443:
3444: case 7:
3445: chair=0;
3446: for (u=0; u<((2*diff)+2); u++)
3447: {
3448: if (pie_attacks[u][0]==3) chair=1;
3449: }
3450:
3451: if (!chair)
3452: {
3453:
3454: if (px+16 < 240) pie_attacks[j][1]=0; else pie_attacks[j][1]=1;
3455: pie_attacks[j][2]=random(400)+600;
3456: if (pie_attacks[j][1]) pie_attacks[j][3]=400-random(160); else pie_attacks[j][3]=random(160)+80;
3457: if (pie_attacks[j][1]) pie_attacks[j][4]=480; else pie_attacks[j][4]=0;
3458:
3459: mouth.stretchX = 10;
3460: mouth.stretchY = 16;
3461: }
3462: else pie_attacks[j][0]=0;
3463:
3464: break;
3465:
3466: case 8:
3467: pie_attacks[j][1]=diff+2;
3468: pie_attacks[j][2]=random(4); //sens bulbasaur
3469: pie_attacks[j][3]=random(320)+80; //bulb_x
3470: pie_attacks[j][4]=-64; //bulb_y
3471: bulbfell=1;
3472: if (!lightsoff) oslPlaySound(bulbsfx[(random(2)?1:6)]);
3473: break;
3474:
3475: case 9:
3476: pie_attacks[j][1]=120*diff+120;
3477: if (px < 240) pie_attacks[j][2]=1; else pie_attacks[j][2]=0;
3478: pie_attacks[j][3]=py;
3479:
3480: for (u=0; u<3; u++)
3481: {
3482: meteors[u][0]=0;
3483: meteors[u][1]=0;
3484: meteors[u][2]=0;
3485: }
3486: break;
3487:
3488: case 10:
3489: pie_attacks[j][1]=96;
3490: if ((!shielded) && (!stun)) stun=96;
3491: break;
3492:
3493: case 11:
3494: pie_attacks[j][1]=1;
3495: pie_attacks[j][2]=30;
3496: if (!lightsoff) oslPlaySound(psis_sfx);
3497: break;
3498:
3499: case 12:
3500: pie_attacks[j][1]=240*diff;
3501: pie_ent.pie_facemode=random(4);
3502: if ((!lightsoff) && (health > 0)) oslPlaySound(dictators_sfx[pie_ent.pie_facemode]);
3503: if (pie_ent.pie_facemode==1)
3504: {
3505: pie_attacks[j][2]=560;
3506: }
3507: break;
3508:
3509: case 13:
3510: if ((round==2) && (pie_ent.pie_hp < 20*round*diff) && (!ulted) && (!lightsoff))
3511: {
3512: oslStopSound(giygas[giyg_flag]);
3513: oslStopSound(psis_sfx);
3514: oslEndDrawing();
3515: health=shoop_da_whoop(health, round, diff);
3516: oslStartDrawing();
3517: ulted=1;
3518: oslPlaySound(giygas[giyg_flag]);
3519: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
3520: }
3521: pie_attacks[j][0]=0;
3522: break;
3523:
3524: case 14:
3525: if ((round==2) && (pie_ent.pie_hp < 10*round*diff) && (ulted==1) && (!lightsoff))
3526: {
3527: oslStopSound(giygas[giyg_flag]);
3528: oslStopSound(psis_sfx);
3529: oslEndDrawing();
3530: sad();
3531: oslStartDrawing();
3532: ulted=2;
3533: oslPlaySound(giygas[giyg_flag]);
3534: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
3535: }
3536: pie_attacks[j][0]=0;
3537: break;
3538:
3539:
3540: default:
3541: break;
3542: }
3543:
3544: j=2*diff+3; //break;
3545: }
3546: }
3547:
3548:
3549: //att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800)*(2*i+11);
3550: att_cooldowns[i]=(random((8-(diff*2)))*100+random(3*diff)*100+800);
3551: 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]));
3552: if ((i!=0) && (i!=3) && (i!=4)) att_cooldowns[i]=att_cooldowns[i]/(0.5*round+0.5);
3553: if (i == 11) att_cooldowns[i] += 1792;
3554:
3555: }
3556: }
3557:
3558:
3559: //programming attacks
3560:
3561:
3562: if (!paused) {
3563:
3564: for (i=0; i<((2*diff)+2); i++)
3565: {
3566: switch(pie_attacks[i][0])
3567: {
3568: case 1:
3569: {
3570: if ((mgcd < 1) && (health > 0) && (!lightsoff))
3571: {
3572: ko.R=0;
3573: ko.B=ko.G=128;
3574: ko.trans=255;
3575: if (pie_attacks[i][1] > 115)
3576: {
3577: temp_ko=oslSetImageTileSize(ko,0,0,120,96);
3578: spr_draw(temp_ko, (int)(9.6*(140-pie_attacks[i][1])-120), 88);
3579: }
3580:
3581: if ((pie_attacks[i][1] <= 115) && (pie_attacks[i][1] >= 90))
3582: {
3583: temp_ko=oslSetImageTileSize(ko,0,0,120,96);
3584: spr_draw(temp_ko, 120, 88);
3585: temp_ko=oslSetImageTileSize(ko,120,0,120,96);
3586: spr_draw(temp_ko, (int)(-9.6*(140-pie_attacks[i][1])+720), 88);
3587: }
3588:
3589: if ((pie_attacks[i][1] > 0) && (pie_attacks[i][1] < 90))
3590: {
3591: temp_ko=oslSetImageTileSize(ko,0,0,240,96);
3592: spr_draw(temp_ko, 120, 88);
3593: }
3594:
3595: if ((pie_attacks[i][1] <= 0))
3596: {
3597: pie_attacks[i][0]=0;
3598: }
3599:
3600: if (pie_attacks[i][1] > 80)
3601: {
3602: if ((pie_attacks[i][1]%6) < 3)
3603: {
3604: explode.stretchX = 64;
3605: explode.stretchY = 96;
3606: spr_draw(explode, px, py);
3607: }
3608: else
3609: {
3610: explode.stretchX = 32;
3611: explode.stretchY = 48;
3612: spr_draw(explode, px+16, py+24);
3613: }
3614: }
3615:
3616: pie_attacks[i][1]--;
3617: //oslSetAlpha(OSL_FX_DEFAULT, 0);
3618: }
3619: break;
3620: }
3621:
3622: case 2:
3623: {
3624: //frame_debug(j);
3625:
3626: if ((!mgcd) && (!lightsoff))
3627: {
3628: mgswirl.trans=128;
3629:
3630: if (pie_attacks[i][4] < pie_attacks[i][3])
3631: {
3632: pie_attacks[i][4]-=3;
3633: pie_attacks[i][3]-=3;
3634: }
3635: else
3636: {
3637: pie_attacks[i][4]+=3;
3638: pie_attacks[i][3]+=3;
3639: }
3640:
3641: if (mgsy < py) mgsy += random(8)+2; else mgsy -= random(8)+2;
3642:
3643: court_zoom = 0.00192*(mgsy) + 0.562;
3644:
3645: mgswirl.stretchX = (int)(128*(float)court_zoom);
3646: mgswirl.stretchY = (int)(128*(float)court_zoom);
3647:
3648: spr_draw(mgswirl, pie_attacks[i][3], mgsy);
3649: }
3650:
3651: if ((swirl_collide(px, py, pie_attacks[i][3], mgsy)) && (health>0))
3652: {
3653:
3654: if (!mgcd)
3655: {
3656: al_set_sample_instance_position(minigametime.instance,16);
3657: oslStopSound(giygas[giyg_flag%3]);
3658: oslPlaySound(minigametime);
3659: if (al_get_sample_instance_position(tvnoisesound.instance)) oslStopSound(tvnoisesound);
3660: if (al_get_sample_instance_position(meteor_fall.instance)) oslStopSound(meteor_fall);
3661: oslStopSound(psis_sfx);
3662: sleepwell.stretchX = sleepwell. stretchY = 272;
3663: }
3664:
3665: mgcd++;
3666:
3667: if (mgcd >= 1)
3668: {
3669:
3670: oslStopSound(psis_sfx);
3671: if (mgcd < 9) oslDrawFillRect(0,0,480,272, _RGB(255,255,255)); else
3672: {
3673: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
3674: sleepwell.trans=255-((int)(mgcd*2.55));
3675: sleepwell.stretchX+=18;
3676: sleepwell.stretchY+=36;
3677: spr_draw(sleepwell,240,138);
3678: sleepwell.trans=255;
3679: }
3680:
3681:
3682: }
3683:
3684: }
3685:
3686: if ((pie_attacks[i][3] <= -128) || (pie_attacks[i][3] >= 544))
3687: {
3688: pie_attacks[i][0]=0;
3689: mgcd=0;
3690: }
3691:
3692:
3693: break;
3694: }
3695:
3696: case 3:
3697: {
3698: if ((mgcd < 1) && (health > 0) && (!lightsoff))
3699: {
3700:
3701: if (pie_attacks[i][4] > 0)
3702: {
3703: pie_attacks[i][1]--;
3704:
3705: if (pie_attacks[i][1] > 90)
3706: {
3707:
3708: if (pie_attacks[i][1] < 180) rckch[0].angle = (int)(6*sin(0.5*counter));
3709: else rckch[0].angle = 0;
3710:
3711: court_zoom = 0.00192*(pie_attacks[i][3]+15) + 0.562;
3712: rckch[0].stretchX = (int)(64*(float)court_zoom);
3713: rckch[0].stretchY = (int)(64*(float)court_zoom);
3714:
3715: spr_draw(rckch[0], pie_attacks[i][2], pie_attacks[i][3]+15);
3716:
3717: if ((((px-pie_attacks[i][2])*(px-pie_attacks[i][2])+(py-pie_attacks[i][3])*(py-pie_attacks[i][3])) <= 3000) & (frappe >= 1))
3718: {
3719: if (swinging)
3720: {
3721: rckch[0].B=0;
3722: spr_draw(rckch[0], pie_attacks[i][2], pie_attacks[i][3]+15);
3723: rckch[0].B=255;
3724: pie_attacks[i][4]--;
3725: //if (osl_keys . held.triangle) pie_attacks[i][4]=0;
3726: oslPlaySound(paf);
3727: ultlvl += 5-diff;
3728: frappe=-1;
3729: swinging=0;
3730: }
3731: }
3732:
3733: if (pie_attacks[i][4] <= 0) pie_attacks[i][1]=20;
3734: }
3735: else
3736: {
3737: if (pie_attacks[i][1] > 59)
3738: {
3739: rckch[1].stretchX = (90-pie_attacks[i][1])*16;
3740: rckch[1].stretchY = (int)(0.567 * (rckch[1] . stretchX));
3741: rckch[1].angle = ((pie_attacks[i][1]-30)*12);
3742: }
3743: if (pie_attacks[i][1] == 59)
3744: {
3745: rckch[1].angle = 0;
3746: rckch[1].stretchX = 480;
3747: rckch[1].stretchY = 272;
3748: rckchscr=1;
3749: oslPlaySound(quitter);
3750: }
3751: spr_draw(rckch[1], 240+random(8)-4, 136+random(8)-4);
3752: if (!(pie_attacks[i][1]%36) && (!shielded))
3753: {
3754: health--;
3755: if (putin) health--;
3756: }
3757: }
3758:
3759: if (pie_attacks[i][1] <= -180)
3760: {
3761:
3762: oslStopSound(quitter);
3763: pie_attacks[i][0]=0;
3764: rckchscr=0;
3765:
3766: }
3767:
3768: if (py > ((pie_attacks[i][3]-62)*court_zoom))
3769: {
3770: temp_benj.trans=255;
3771: draw_benj(temp_benj, px, py, shielded, shield);
3772: }
3773:
3774:
3775: }
3776: else
3777: {
3778: if (pie_attacks[i][1]==20) oslPlaySound(expl_sound2);
3779: explode.stretchX = explode.stretchY = 20 - pie_attacks[i][1];
3780: spr_draw(explode, pie_attacks[i][2], pie_attacks[i][3]);
3781: pie_attacks[i][1]--;
3782: if (pie_attacks[i][1]==0)
3783: {
3784: pie_attacks[i][0]=0;
3785: }
3786:
3787: }
3788: }
3789:
3790:
3791: break;
3792: }
3793:
3794: case 4:
3795: {
3796: if ((mgcd < 1) && (health > 0))
3797: {
3798: if ((pie_attacks[i][1] == diff*166) || (pie_attacks[i][1] == 0))
3799: {
3800: oslStopSound(giygas[giyg_flag%3]);
3801: }
3802: if (lightsoff)
3803: {
3804: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
3805: draw_benj(temp_benj, px, py, shielded, shield);
3806:
3807:
3808: for (u=0; u<(2*diff+2); u++)
3809: {
3810: if (pie_attacks[u][0] != 4)
3811: {
3812: pie_attacks[u][0]=0;
3813: }
3814: }
3815: }
3816: }
3817:
3818: if (!pie_attacks[i][1])
3819: {
3820: lightsoff=0;
3821: pie_attacks[i][0]=0;
3822: oslPlaySound(giygas[giyg_flag%3]);
3823: }
3824:
3825: pie_attacks[i][1]--;
3826: break;
3827: }
3828:
3829: case 5:
3830: {
3831: if ((mgcd < 1) && (health > 0))
3832: {
3833: if (pie_attacks[i][1] < (px-108))
3834: {
3835: spr_draw(psycho, pie_attacks[i][1], abs(32*sin(0.0125*3.14*pie_attacks[i][1]))+8);
3836: }
3837: else
3838: {
3839:
3840: if (pie_attacks[i][2] > 2) pie_attacks[i][2]-=2; else pie_attacks[i][0]=0;
3841: oslDrawFillRect(0,0,480,272, _RGBA(255,255,255,pie_attacks[i][2]));
3842: }
3843: pie_attacks[i][1]+=4;
3844: }
3845: break;
3846: }
3847:
3848: case 6:
3849: {
3850: if ((mgcd < 1) && (health > 0))
3851: {
3852:
3853: if (pie_attacks[i][1] < 51)
3854: {
3855: if ((pie_attacks[i][1])%4 < 3)
3856: {
3857: visor.R=0;
3858: visor.G=0;
3859: visor.trans=192;
3860: }
3861: else
3862: {
3863: visor.R=visor.G=visor.B=visor.trans=255;
3864: }
3865: }
3866: else
3867: {
3868: visor.R=255;
3869: visor.G=255;
3870: visor.trans=255;
3871: }
3872:
3873: if (pie_attacks[i][1] > 0) spr_draw(visor, pie_attacks[i][2], pie_attacks[i][3]);
3874:
3875:
3876:
3877: if (px+32 < pie_attacks[i][2])
3878: {
3879: pie_attacks[i][2] -= diff;
3880: }
3881: else if (px+32 > pie_attacks[i][2])
3882: {
3883: pie_attacks[i][2] += diff;
3884: }
3885:
3886: if (py+48 < pie_attacks[i][3])
3887: {
3888: pie_attacks[i][3] -= diff;
3889: }
3890: else if (py+48 > pie_attacks[i][3])
3891: {
3892: pie_attacks[i][3] += diff;
3893: }
3894:
3895:
3896: pie_attacks[i][1]--;
3897:
3898: if (!pie_attacks[i][1])
3899: {
3900: oslPlaySound(pew);
3901: 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))
3902: {
3903: health -= 2*diff+6;
3904: if (putin) health -= 3;
3905: oslPlaySound(benj_sfx[random(5)]);
3906: }
3907: }
3908:
3909: if (pie_attacks[i][1] < 0)
3910: {
3911: explode.stretchX = explode.stretchY = 20 + 2*pie_attacks[i][1];
3912: spr_draw(explode, pie_attacks[i][2], pie_attacks[i][3]);
3913:
3914: if (pie_attacks[i][1] == -10) pie_attacks[i][0]=0;
3915: }
3916: }
3917: break;
3918: }
3919:
3920:
3921:
3922: case 8:
3923: {
3924: if ((mgcd < 1) && (health > 0))
3925: {
3926: if (bulbfell==1)
3927: {
3928: temp_bulb=oslSetImageTileSize(bulbasaur, 0, 128, 64, 64);
3929: court_zoom = 0.00192*pie_attacks[i][4] + 0.562;
3930: temp_bulb.stretchX = (int)(64*(float)court_zoom);
3931: temp_bulb.stretchY = (int)(64*(float)court_zoom);
3932:
3933: spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]);
3934: pie_attacks[i][4] += 8;
3935: if (pie_attacks[i][4] >= 136)
3936: {
3937: pie_attacks[i][4]=136;
3938: bulbfell=2;
3939: }
3940:
3941: if (py > ((pie_attacks[i][4])*court_zoom))
3942: {
3943: draw_benj(temp_benj, px, py, shielded, shield);
3944: }
3945: }
3946:
3947: else if (bulbfell==2)
3948: {
3949: if (pie_attacks[i][2] != 4)
3950: {
3951: temp_bulb=oslSetImageTileSize(bulbasaur, bulbfs*64, pie_attacks[i][2]*64, 64, 64);
3952: }
3953: else
3954: {
3955:
3956: if (abs(pie_attacks[i][3]-px) > abs(pie_attacks[i][4]-py))
3957: {
3958: if (pie_attacks[i][3] > px)
3959: {
3960: temp_bulb=oslSetImageTileSize(bulbasaur, 0, 192, 64, 64);
3961: }
3962: else
3963: {
3964: temp_bulb=oslSetImageTileSize(bulbasaur, 0, 64, 64, 64);
3965: }
3966: }
3967: else
3968: {
3969: if (pie_attacks[i][4] > py)
3970: {
3971: temp_bulb=oslSetImageTileSize(bulbasaur, 0, 0, 64, 64);
3972: }
3973: else
3974: {
3975: temp_bulb=oslSetImageTileSize(bulbasaur, 0, 128, 64, 64);
3976: }
3977: }
3978: }
3979:
3980: court_zoom = 0.00192*pie_attacks[i][4] + 0.562;
3981: temp_bulb.stretchX = (int)(64*(float)court_zoom);
3982: temp_bulb.stretchY = (int)(64*(float)court_zoom);
3983:
3984: spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]);
3985:
3986: if (!(counter%52) && ((counter%416) < 364))
3987: {
3988: pie_attacks[i][2]=random(4);
3989: }
3990: else
3991: {
3992: switch(pie_attacks[i][2])
3993: {
3994: case 0:
3995: if (pie_attacks[i][4] > 128) pie_attacks[i][4] -= 2; else pie_attacks[i][2]=2;
3996: break;
3997:
3998: case 1:
3999: if (pie_attacks[i][3] < 400) pie_attacks[i][3] += 2; else pie_attacks[i][2]=3;
4000: break;
4001:
4002: case 2:
4003: if (pie_attacks[i][4] < 240) pie_attacks[i][4] += 2; else pie_attacks[i][2]=0;
4004: break;
4005:
4006: case 3:
4007: if (pie_attacks[i][3] > 80) pie_attacks[i][3] -= 2; else pie_attacks[i][2]=1;
4008: break;
4009: }
4010: }
4011:
4012:
4013:
4014: if ((counter%416) >= 364)
4015: {
4016: pie_attacks[i][2]=4;
4017:
4018: if ((counter%416) == 364) oslPlaySound(bulbsfx[random(3)+3]);
4019:
4020: if (pie_attacks[i][3] > px) pie_attacks[i][3] -= 4; else pie_attacks[i][3] += 4;
4021: if (pie_attacks[i][4] > py) pie_attacks[i][4] -= 2; else if (pie_attacks[i][4] < 238) pie_attacks[i][4] += 2;
4022:
4023: }
4024:
4025:
4026:
4027: 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))
4028: {
4029: if (!stun) stun=200+3*diff;
4030: pie_attacks[i][2]=random(4);
4031: health -= diff+1;
4032: if (putin) health -= diff;
4033: oslPlaySound(benj_sfx[random(5)]);
4034: counter += (counter%417)+1;
4035: oslPlaySound(bulbsfx[0]);
4036: }
4037:
4038: if ((((px-pie_attacks[i][3])*(px-pie_attacks[i][3])+(py-pie_attacks[i][4])*(py-pie_attacks[i][4])) <= 1500) && (frappe >= 1))
4039: {
4040: if (swinging)
4041: {
4042: temp_bulb.B=0;
4043: spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]);
4044: ultlvl += 5-diff;
4045: temp_bulb.B=255;
4046: pie_attacks[i][1]--;
4047: //if (osl_keys . held.triangle) pie_attacks[i][4]=0;
4048: oslPlaySound(paf);
4049: frappe=-1;
4050: swinging=0;
4051: }
4052:
4053: }
4054:
4055: bulbfs=(counter%20)/5;
4056:
4057: if (py > ((pie_attacks[i][4])*court_zoom))
4058: {
4059: //oslSetAlpha(OSL_FX_DEFAULT, 0);
4060: draw_benj(temp_benj, px, py, shielded, shield);
4061: }
4062: }
4063:
4064: if (pie_attacks[i][1] <= 0)
4065: {
4066: bulbfell=0;
4067: if (!pie_attacks[i][1]) oslPlaySound(bulbsfx[2]);
4068: pie_attacks[i][2]=4;
4069: pie_attacks[i][1]--;
4070:
4071: if (pie_attacks[i][1] == -35)
4072: {
4073: pie_attacks[i][0]=0;
4074: }
4075:
4076: bulbfs=(abs(pie_attacks[i][1]))/9;
4077: temp_bulb=oslSetImageTileSize(temp_bulb, bulbfs*64, pie_attacks[i][2]*64, 64, 64);
4078: spr_draw(temp_bulb, pie_attacks[i][3], pie_attacks[i][4]);
4079:
4080: }
4081:
4082: }
4083: break;
4084:
4085: case 9:
4086: {
4087:
4088: if ((mgcd <1) && (!lightsoff))
4089: {
4090: if (pie_attacks[i][1] == 120*diff+120)
4091: {
4092:
4093:
4094: for(u=0; u<3; u++)
4095: {
4096: meteors[u][1] = random(176);
4097: if (pie_attacks[i][2]) meteors[u][0]=-48; else meteors[u][0]=480;
4098: meteors[u][2] = random(3)+1;
4099: }
4100:
4101: oslPlaySound(meteor_fall);
4102: }
4103: else
4104: {
4105: if (!al_get_sample_instance_position(meteor_fall.instance)) oslPlaySound(meteor_fall);
4106:
4107: for(u=0; u<3; u++)
4108: {
4109:
4110: temp_met=oslSetImageTileSize(meteor, u*48, 0, 48, 48);
4111: temp_met.stretchX = temp_met.stretchY = 12*meteors[u][2];
4112: spr_draw(temp_met, meteors[u][0], meteors[u][1]);
4113:
4114: if (pie_attacks[i][2]) meteors[u][0]+=random(9)+1; else meteors[u][0]-=random(9)+1;
4115:
4116: meteors[u][1]+=4;
4117:
4118: if ((meteors[u][1] < pie_attacks[i][3]+32) && (meteors[u][1] >= pie_attacks[i][3]))
4119: {
4120: explode . stretchX = explode . stretchY = 48;
4121: spr_draw(explode, meteors[u][0], meteors[u][1]);
4122: oslPlaySound(expl_sound2);
4123: }
4124:
4125: if (meteors[u][1] >= pie_attacks[i][3]+32)
4126: {
4127: if (((px-meteors[u][0])*(px-meteors[u][0])+(py+32-meteors[u][1])*(py+32-meteors[u][1]) <= 196) && (!shielded))
4128: {
4129: oslPlaySound(expl_sound2);
4130: health -= round;
4131: if (putin) health -= round;
4132: oslPlaySound(benj_sfx[random(5)]);
4133: }
4134:
4135: if (pie_attacks[i][1] <= 0) meteors[u][2]=0; else meteors[u][2] = random(3)+1;
4136: meteors[u][1]=random(176);
4137: if (pie_attacks[i][2]) meteors[u][0]=-48; else meteors[u][0]=480;
4138:
4139: }
4140: }
4141: }
4142:
4143: pie_attacks[i][1]--;
4144:
4145: if (pie_attacks[i][1] == 0)
4146: {
4147: oslStopSound(meteor_fall);
4148: }
4149:
4150: if (meteors[0][2]+meteors[1][2]+meteors[2][2] == 0) pie_attacks[i][0]=0;
4151: }
4152: }
4153: break;
4154:
4155: case 10:
4156: {
4157: if ((mgcd <1) && (!lightsoff))
4158: {
4159: if (!shielded)
4160: {
4161:
4162: if (pie_attacks[i][1] == 96)
4163: {
4164: stunning.stretchX = stunning.stretchY = 24;
4165: oslPlaySound(stun_sound);
4166: }
4167:
4168:
4169: for (u=0; u<135; u++)
4170: {
4171: stunning.R=0;
4172: stunning.trans=192;
4173: if (stunning.stretchX > 4) spr_draw(stunning, (u%15)*32+12, ((int)(u/15))*32+12);
4174: stunning.R = stunning.trans = 255;
4175: }
4176: }
4177:
4178: pie_attacks[i][1]--;
4179:
4180: if (!((pie_attacks[i][1])%8))
4181: {
4182: if (stunning.stretchX > 4)
4183: {
4184: stunning.stretchX -= 4;
4185: stunning.stretchY -= 4;
4186: }
4187: }
4188:
4189: if (!(pie_attacks[i][1]))
4190: {
4191: pie_attacks[i][0]=0;
4192: }
4193: }
4194: break;
4195: }
4196:
4197: case 11:
4198: {
4199: if ((mgcd <1) && (!lightsoff) && (health > 0))
4200: {
4201: if (pie_attacks[i][2] > 0)
4202: {
4203: temp_psis=oslSetImageTileSize(psis, ((int)(counter%18)/6)*16, 0, 16, 32);
4204: temp_psis=oslSetImageRotCenter(temp_psis);
4205:
4206: temp_psis.angle = pie_attacks[i][1];
4207:
4208: court_zoom = 0.00192*(py+24) + 0.562;
4209: psis.stretchX = (int)(16*(float)court_zoom);
4210: psis.stretchY = (int)(32*(float)court_zoom);
4211:
4212: 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));
4213: 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));
4214:
4215: pie_attacks[i][1] += 16;
4216:
4217: if (pie_attacks[i][1] > 360)
4218: {
4219: pie_attacks[i][1] = pie_attacks[i][1]%360;
4220: pie_attacks[i][2]-=2;
4221: }
4222: }
4223: else if (pie_attacks[i][2] <= 0)
4224: {
4225: explode.stretchX = explode.stretchY = 40 + 4*pie_attacks[i][2];
4226: spr_draw(explode, px, py);
4227:
4228: if (!(pie_attacks[i][2])) oslPlaySound(expl_sound);
4229:
4230: if ((!shielded) && (counter%2))
4231: {
4232: health -= diff;
4233: if (putin) health -= diff;
4234: oslPlaySound(benj_sfx[random(5)]);
4235: }
4236: pie_attacks[i][2]--;
4237:
4238: if (pie_attacks[i][2] == -10)
4239: {
4240: oslStopSound(psis_sfx);
4241: pie_attacks[i][0]=0;
4242: }
4243: }
4244: }
4245: break;
4246: }
4247:
4248: case 7:
4249: {
4250: if ((mgcd < 1) && (health > 0) && (!lightsoff))
4251: {
4252: if (!(pie_attacks[i][1]))
4253: {
4254: temp_recipe=oslSetImageTileSize(recipe,0, 0, 32, 136);
4255: }
4256: else
4257: {
4258: temp_recipe=oslSetImageTileSize(recipe, 32, 0, 32, 136);
4259: }
4260: temp_recipe.trans=128;
4261:
4262: if (pie_attacks[i][2] > 0)
4263: {
4264: oslDrawFillRect(pie_attacks[i][4], 0, (pie_attacks[i][1])?480:0, 272, _RGBA(0, 0, 0, 128));
4265:
4266: for(u=0; u<4; u++)
4267: {
4268: spr_draw(temp_recipe, pie_attacks[i][4]+((pie_attacks[i][1])?0:32), u*136-(global_fr%137));
4269: }
4270:
4271: //oslSetAlpha(OSL_FX_DEFAULT, 0);
4272:
4273: if (((pie_attacks[i][1]) && (pie_attacks[i][2] <= (480-pie_attacks[i][3]))) ||
4274: ((!(pie_attacks[i][1])) && (pie_attacks[i][2] <= pie_attacks[i][3])))
4275: {
4276:
4277:
4278: if (((pie_attacks[i][1]) && (px+32 >= pie_attacks[i][4])) || (!(pie_attacks[i][1]) && (px+32 <= pie_attacks[i][4])))
4279: {
4280: if (!al_get_sample_instance_position(mouth_sfx[0].instance)) oslPlaySound(mouth_sfx[0]);
4281: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
4282: spr_draw(mouth, 240, 136);
4283:
4284: pie_attacks[i][2]++;
4285: mouth.stretchX += 6;
4286: mouth.stretchY = 1.63*mouth.stretchX;
4287:
4288: if (mouth . stretchY >= 420)
4289: {
4290: if (!al_get_sample_instance_position(mouth_sfx[1].instance)) oslPlaySound(mouth_sfx[1]);
4291: oslDrawFillRect(0, 0, 480, 272, _RGB(255, 0, 0));
4292: }
4293:
4294: if (mouth . stretchY >= 450)
4295: {
4296: health -= 2*diff+4;
4297: if (putin) health -= 2;
4298: pie_attacks[i][0]=0;
4299: mouth . stretchX = 10;
4300: mouth . stretchY = 16;
4301: }
4302:
4303: }
4304: else
4305: {
4306: if (!(pie_attacks[i][1]))
4307: {
4308: pie_attacks[i][4]--;
4309:
4310: }
4311: else
4312: {
4313: pie_attacks[i][4]++;
4314:
4315: }
4316: }
4317: }
4318: else
4319: {
4320: if (!(pie_attacks[i][1]))
4321: {
4322: if (pie_attacks[i][4] < pie_attacks[i][3]) pie_attacks[i][4]++;
4323: if (pie_attacks[i][4] > 512)
4324: {
4325: darkness=0;
4326: pie_attacks[i][0]=0;
4327: }
4328: }
4329: else
4330: {
4331: if (pie_attacks[i][4] > pie_attacks[i][3]) pie_attacks[i][4]--;
4332: if (pie_attacks[i][4] < -64)
4333: {
4334: darkness=0;
4335: pie_attacks[i][0]=0;
4336: }
4337: }
4338: }
4339: pie_attacks[i][2]--;
4340:
4341:
4342: }
4343: else
4344: {
4345: darkness=0;
4346: pie_attacks[i][0]=0;
4347: }
4348:
4349: if (pie_attacks[i][2] <= 0)
4350: {
4351: pie_attacks[i][0]=0;
4352: }
4353: }
4354: break;
4355: }
4356:
4357:
4358: }
4359: }
4360: }
4361: }
4362:
4363: if ((!al_get_sample_instance_position(minigametime.instance)) && (!al_get_sample_instance_position(tvnoisesound.instance)) && (!paused))
4364: {
4365: tvnoise_ev=random((3800/(100*round*diff))*pie_ent.pie_hp+4200);
4366: }
4367:
4368: if ((tvnoise_ev <= 4000) && (tvnoise_ev > 3940) && (round==2) && (health>0) && (!lightsoff) && (!paused))
4369: {
4370: i=random(20);
4371: spr_draw(tvnoise[i], 0, 0);
4372: if (!al_get_sample_instance_position(tvnoisesound.instance)) oslPlaySound(tvnoisesound);
4373: tvnoise_ev--;
4374: }
4375: else
4376: {
4377: oslStopSound(tvnoisesound);
4378: }
4379: }
4380:
4381: if ((pie_ent.pie_hp) && (!mgcd))
4382: {
4383: reddv = (-0.64/(round*diff))*pie_ent.pie_hp+64;
4384:
4385: oslDrawFillRect(0, 0, 480, 272, _RGBA(255, 0, 0, (int)(reddv*1.5)));
4386: }
4387:
4388:
4389:
4390: if ((health < 1) || (pie_ent.pie_hp < 1))
4391: {
4392: oslStopSound(psis_sfx);
4393: ball_ent.speed_v=0;
4394: if (pie_ent.pie_hp < 1)
4395: {
4396: if (!ko_frame)
4397: {
4398: a=pie_ent.pie_x-128+random(256);
4399:
4400: for (i=0; i<8; i++)
4401: {
4402: for (j=0; j<5; j++)
4403: {
4404: pie_attacks[i][j]=0;
4405: }
4406: bulbfell=0;
4407: }
4408: }
4409:
4410: mort=1;
4411:
4412:
4413: if (round==2)
4414: {
4415: if (!(ko_frame%9))
4416: {
4417: oslPlaySound(expl_sound);
4418: kx=pie_ent.pie_x-128+random(256);
4419: ky=random(136);
4420: }
4421:
4422: if ((ko_frame%6) < 3)
4423: {
4424: explode.stretchX = 64;
4425: explode.stretchY = 96;
4426: spr_draw(explode, kx, ky);
4427: }
4428: else
4429: {
4430: explode.stretchX = 32;
4431: explode.stretchY = 48;
4432: spr_draw(explode, kx+16, ky+24);
4433: }
4434: }
4435: }
4436:
4437: if (ko_frame == 0)
4438: {
4439: oslPlaySound(ko_sfx);
4440: oslPlaySound(expl_sound);
4441: u=0;
4442: }
4443:
4444: if (health < 1)
4445: {
4446: if (ko_frame < 60)
4447: {
4448: if ((ko_frame%6) < 3)
4449: {
4450: explode.stretchX = 64;
4451: explode.stretchY = 96;
4452: spr_draw(explode, px, py);
4453: }
4454: else
4455: {
4456: explode.stretchX = 32;
4457: explode.stretchY = 48;
4458: spr_draw(explode, px+16, py+24);
4459: }
4460: }
4461: }
4462:
4463:
4464: if (ko_frame < 25)
4465: {
4466: temp_ko=oslSetImageTileSize(ko,0,0,120,96);
4467: spr_draw(temp_ko, (int)(9.6*ko_frame-120), 88);
4468: }
4469:
4470: if ((ko_frame >= 25) && (ko_frame <= 50))
4471: {
4472: temp_ko=oslSetImageTileSize(ko,0,0,120,96);
4473: spr_draw(temp_ko, 120, 88);
4474: temp_ko=oslSetImageTileSize(ko,120,0,120,96);
4475: spr_draw(temp_ko, (int)(-9.6*ko_frame+720), 88);
4476: }
4477:
4478: if (ko_frame > 50)
4479: {
4480: temp_ko=oslSetImageTileSize(ko,0,0,240,96);
4481: spr_draw(temp_ko, 120, 88);
4482: }
4483:
4484: if (ko_frame >= 140) quit=1;
4485:
4486:
4487: ko_frame++;
4488: }
4489:
4490: if (health < 0) health=0;
4491:
4492: if (!mgcd)
4493: {
4494: temp_no=oslSetImageTileSize(numberz,160,0,16,16);
4495: spr_draw(temp_no, 2, 2);
4496:
4497: u=random(5);
4498:
4499: temp_ultg=oslSetImageTileSize(ultgauge,0,0,64,8);
4500: spr_draw(temp_ultg, 2+((round==2)?u:0), (round==2)?20+u:21);
4501: temp_ultg=oslSetImageTileSize(ultgauge,(int)((ultlvl/60)*6),9,6,6);
4502: spr_draw(temp_ultg, 69+((round==2)?u:0), (round==2)?21+u:22);
4503: spr_draw(shlgauge, 2+((round==2)?u:0), (round==2)?28+u:30);
4504:
4505: 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));
4506: 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));
4507:
4508: if ((ultlvl%60) > 15)
4509: {
4510: if ((ultrectshine+16) <= ultlvl%60)
4511: {
4512: 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));
4513: }
4514: else
4515: {
4516: 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));
4517: }
4518:
4519: if ((ultrectshine+8) <= ultlvl%60)
4520: {
4521: 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));
4522: }
4523: else
4524: {
4525: 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));
4526: }
4527:
4528: ultrectshine++;
4529:
4530: if (ultrectshine > ultlvl%60)
4531: {
4532: ultrectshine=0;
4533: }
4534: }
4535:
4536: i=random(15);
4537:
4538: u=18;
4539:
4540: if (health < 25) j=16; else j=0;
4541:
4542: if (health / 100)
4543: {
4544: temp_no=oslSetImageTileSize(numberz,((round==2)?((i<12)?16:random(144)):16),0,16,16);
4545: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
4546: u += 16;
4547: }
4548:
4549: if (health > 9)
4550: {
4551: if (round==2)
4552: {
4553: if (i<12)
4554: {
4555: temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16);
4556: }
4557: else
4558: {
4559: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
4560: }
4561: }
4562: else temp_no=oslSetImageTileSize(numberz,((health%100)/10)*16,j,16,16);
4563: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
4564: u += 16;
4565: }
4566:
4567: if (round==2)
4568: {
4569: if (i<12)
4570: {
4571: temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16);
4572: }
4573: else
4574: {
4575: temp_no=oslSetImageTileSize(numberz,random(128),j,16,16);
4576: }
4577: }
4578: else temp_no=oslSetImageTileSize(numberz,(health%10)*16,j,16,16);
4579: spr_draw(temp_no, u + ((round==2)?random(3):0), ((round==2)?1+random(3):2));
4580: }
4581:
4582:
4583:
4584: if ((paused) && (health))
4585: {
4586: oslDrawFillRect(0,0,480,272, _RGBA(0,8,0,224));
4587: spr_draw(paused_gfx, 240, 136);
4588: }
4589:
4590: if ((!(counter%6)) && (shldlvl<60) && (!shielded) && (!paused)) shldlvl++;
4591:
4592:
4593: if (counter < 256)
4594: {
4595: if (counter < 128)
4596: {
4597: temp_prem=oslSetImageTileSize(premess,0,0,256,64);
4598:
4599: if (counter < 32) temp_prem.stretchY = counter*2;
4600: else if (counter > 96) temp_prem.stretchY = 128-counter*2;
4601: else temp_prem.stretchY = 64;
4602:
4603: spr_draw(temp_prem, 112, 136-(premess.stretchY)/2);
4604: }
4605:
4606: else if (counter >= 128)
4607: {
4608: temp_prem=oslSetImageTileSize(premess,0,64,256,64);
4609: if (counter < 160) temp_prem.stretchY = (counter-128)*2;
4610: else if (counter > 224) temp_prem.stretchY = 256-counter*2;
4611: else temp_prem.stretchY = 64;
4612:
4613: spr_draw(temp_prem, 112, 136-(premess.stretchY)/2);
4614: }
4615:
4616: // if (counter==255) oslDeleteImage(premess);
4617: }
4618:
4619:
4620:
4621: /*if ((nbp==1) && (DEBUG))
4622: {
4623: if (osl_keys.held.R)
4624: {
4625: for (i=0; i<16; i++)
4626: {
4627: sprintf(buffer,"%d",(i<15)?att_cooldowns[i]:(int)reddv);
4628: u = oslGetStringWidth(buffer);
4629:
4630: oslSetTransparentColor(RGB(255,0,255));
4631: oslSetBkColor(RGB(255,0,255));
4632: oslSetTextColor(RGB(255, 255, 255));
4633: oslDrawString(480-u, i*12, buffer);
4634: }
4635: }
4636:
4637:
4638: if (osl_keys.held.L)
4639: {
4640: for (i=0; i<10; i++)
4641: {
4642: sprintf(buffer,"%d", (i<8)?pie_attacks[i][0]:
4643: (i==8)?(pie_ent.pie_hp):
4644: (int)(-2.55/(round*diff)*(pie_ent.pie_hp)+255));
4645: u = oslGetStringWidth(buffer);
4646:
4647: oslSetTransparentColor(RGB(255,0,255));
4648: oslSetBkColor(RGB(255,0,255));
4649: oslSetTextColor(RGB(255, 255, 255));
4650: oslDrawString(480-u, i*12, buffer);
4651: }
4652: }
4653: }*/
4654:
4655: if ((att_ch_timer < 80) && (nbp==2) && (health > 0) && (pie_ent.pie_hp > 0) && (!paused))
4656: {
4657: spr_draw(attch, 32, 33);
4658: spr_draw(cp2, 40 + cursor2p*32, 68);
4659: for (i=0; i<15; i++)
4660: {
4661: if (att_cooldowns[i] > 1)
4662: {
4663: sprintf(buffer, "%d", att_cooldowns[i]/60);
4664:
4665: oslDrawFillRect(32+i*32, 33, 32+(i+1)*32, 67, _RGBA(1, 1, 1, 128));
4666:
4667: if (i < 12) oslDrawString(36+i*32, 42, buffer);
4668: if ((i==12) && (pie_ent.pie_hp > 25*round*diff) && (ulted == 0) && (att_cooldowns[12] > 1))
4669: {
4670: al_draw_line(32+i*32, 33, 32+(i+1)*32, 66, _RGB(255, 0, 0), 0);
4671: }
4672: if ((i==13) && (pie_ent.pie_hp > 10*round*diff) && (ulted != 1) && (att_cooldowns[13] > 1))
4673: {
4674: al_draw_line(32+i*32, 33, 32+(i+1)*32, 66, _RGB(255, 0, 0), 0);
4675: }
4676: }
4677: }
4678: }
4679:
4680: if (nbp == 2)
4681: {
4682: oslSetTextColor( _RGBA(255, 255, 255, 255-(global_fr%64)*4));
4683: oslDrawString(270, 2, "OTHER MORTAL, USE I OR O TO ATTACK!");
4684: oslSetTextColor( _RGB(255, 255, 255));
4685: }
4686:
4687: oslEndDrawing();
4688: oslSwapBuffers();
4689: }
4690:
4691: //oslWaitVSync();
4692:
4693: /*oslSwapBuffers();
4694: oslWaitVSync();*/
4695:
4696: if (mgcd==100)
4697: {
4698: u=random(6);
4699:
4700: switch(u)
4701: {
4702: case 0:
4703: i=sonicexe(diff);
4704: break;
4705:
4706: case 1:
4707: i=mincer(diff);
4708: break;
4709:
4710: case 2:
4711: i=shoot_teevees(diff, &health, round);
4712: break;
4713:
4714: case 3:
4715: i=flappy_cacodemon(diff);
4716: break;
4717:
4718: case 4:
4719: i=love_boat(diff);
4720: break;
4721:
4722: case 5:
4723: i=sonicexe2(diff);
4724: break;
4725: }
4726: if (i)
4727: {
4728: oslPlaySound(giygas[giyg_flag%3]);
4729:
4730: } else health=0;
4731:
4732:
4733: for (i=0; i<8; i++)
4734: {
4735: for (j=0; j<5; j++)
4736: {
4737: pie_attacks[i][j]=0;
4738: }
4739: bulbfell=0;
4740: }
4741:
4742: pie_ent.pie_facemode=0;
4743: mgcd=0;
4744: mouth.stretchX = 10;
4745: if (diff != 3) a=diff; else a=2;
4746: ball_ent = apply_impulse(ball_ent, random(2)?a:-1*a, random(2)?a:-1*a, (180-15*frappe)*3.14/180);
4747: frappe=-1;
4748: rckchscr=0;
4749: if (putin) putin=0;
4750: }
4751: }
4752:
4753:
4754: if ((mort==1) && (round==2))
4755: {
4756: oslStopSound(tvnoisesound);
4757: oslDeleteSound(paf);
4758: paf = oslLoadSoundFile("./sfx/sfx-0029.wav");
4759:
4760: oslStopSound(giygas[2]);
4761:
4762: oslPlaySound(tvnoisesound);
4763:
4764:
4765: for(i=0; i<420; i++)
4766: {
4767: oslStartDrawing();
4768: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
4769: u=random(4);
4770: //oslSetBilinearFilter(1);
4771: spr_draw(tvnoise[u], 0, 0);
4772: spr_draw(tvnoise[u], random(480), random(272));
4773: spr_draw(tvnoise[u], random(480)-240, random(272)-136);
4774: spr_draw(tvnoise[u], random(240)-120, random(136)-68);
4775: //oslSetBilinearFilter(0);
4776: oslEndDrawing();
4777: oslWaitVSync();
4778: oslSwapBuffers();
4779: }
4780:
4781: oslStopSound(tvnoisesound);
4782: oslPlaySound(paf);
4783:
4784: for(i=0; i<=135; i+=2)
4785: {
4786: oslStartDrawing();
4787: oslDrawFillRect(0, 0, 480, 272, _RGB(0, 0, 0));
4788: oslDrawFillRect(0, i, 480, 272-i, _RGB(255, 255, 255));
4789: oslEndDrawing();
4790: oslWaitVSync();
4791: oslSwapBuffers();
4792: }
4793:
4794: fadeout();
4795: }
4796:
4797:
4798: for (i=0; i<3; i++) oslDeleteSound(giygas[i]);
4799:
4800: for (i=0; i<4; i++) oslDeleteSound(dictators_sfx[i]);
4801:
4802: for (i=0; i<5; i++) oslDeleteImage(tvnoise[i]);
4803:
4804: for (i=0; i<7; i++) oslDeleteSound(bulbsfx[i]);
4805:
4806: for (i=0; i<11; i++) oslDeleteSound(benj_sfx[i]);
4807:
4808: oslDeleteSound(tvnoisesound);
4809:
4810: if (round==2)
4811: {
4812: for (i=0; i<33; i++) oslDeleteImage(giyg_bg[i]);
4813: }
4814:
4815: oslDeleteSound(ko_sfx);
4816: oslDeleteSound(quitter);
4817: oslDeleteSound(pew);
4818: oslDeleteSound(paf);
4819: oslDeleteSound(psis_sfx);
4820: oslDeleteImage(numberz);
4821: oslDeleteImage(starsky);
4822: oslDeleteImage(lightning);
4823: oslDeleteImage(pie);
4824: oslDeleteImage(sleepwell);
4825: oslDeleteImage(ko);
4826: oslDeleteImage(explode);
4827: oslDeleteImage(ball_gfx);
4828: oslDeleteImage(ball_shad);
4829: oslDeleteImage(mgswirl);
4830: oslDeleteImage(powerball);
4831: oslDeleteSound(minigametime);
4832: oslDeleteSound(expl_sound);
4833: oslDeleteSound(expl_sound2);
4834: oslDeleteSound(meteor_fall);
4835: oslDeleteSound(stun_sound);
4836: oslDeleteSound(elec);
4837: oslDeleteSound(thunder);
4838: oslDeleteSound(whine);
4839: oslDeleteSound(mouth_sfx[0]);
4840: oslDeleteSound(mouth_sfx[1]);
4841: oslDeleteSound(bounce);
4842: oslDeleteImage(rckch[0]);
4843: oslDeleteImage(rckch[1]);
4844: oslDeleteImage(psycho);
4845: oslDeleteImage(paused_gfx);
4846: oslDeleteImage(ultgauge);
4847: oslDeleteImage(shlgauge);
4848: oslDeleteImage(visor);
4849: oslDeleteImage(bulbasaur);
4850: oslDeleteImage(recipe);
4851: oslDeleteImage(shield);
4852: oslDeleteImage(meteor);
4853: oslDeleteImage(stunning);
4854: oslDeleteImage(juche);
4855: oslDeleteImage(psis);
4856: oslDeleteImage(dictators);
4857: oslDeleteImage(mouth);
4858: oslDeleteImage(star);
4859: oslDeleteImage(suppo_gfx);
4860: oslDeleteImage(ulting_gfx);
4861: oslDeleteImage(attch);
4862: oslDeleteImage(cp2);
4863:
4864: return mort;
4865: }
4866:
4867: void taunt(int nbt)
4868: {
4869: int frame=0, k;
4870: 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",
4871: "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"};
4872:
4873: OSL_SOUND wind = oslLoadSoundFile("./sfx/sfx-0019.wav");
4874:
4875: k = oslGetStringWidth(texts[nbt]);
4876:
4877: oslPlaySound(wind);
4878:
4879: while(frame<282)
4880: {
4881: oslStartDrawing();
4882: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
4883:
4884:
4885: if (frame < 82)
4886: {
4887: oslSetTextColor(_RGB(frame*3, frame*3, frame*3));
4888: oslDrawString((480 - k)/2, 130, texts[nbt]);
4889: }
4890: if ((frame >= 82) && (frame <= 200))
4891: {
4892: oslSetTextColor(_RGB(255, 255, 255));
4893: oslDrawString((480 - k)/2, 130, texts[nbt]);
4894: }
4895: else if (frame > 200)
4896: {
4897: oslSetTextColor(_RGB((282-frame)*3, (282-frame)*3, (282-frame)*3));
4898: oslDrawString((480 - k)/2, 130, texts[nbt]);
4899: }
4900: oslEndDrawing();
4901: oslSwapBuffers();
4902: oslWaitVSync();
4903: frame++;
4904: }
4905:
4906: oslDeleteSound(wind);
4907: }
4908:
4909: void creepypasta(int cpn)
4910: {
4911: int i, j, k, l, frame=0;
4912: char buffer[20];
4913: OSL_IMAGE suicidemouse[18];
4914: OSL_IMAGE temp_gfx;
4915: OSL_SOUND creepysfx, sfx;
4916: int bok[4][16];
4917: 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"};
4918:
4919: switch(cpn)
4920: {
4921:
4922: case 0:
4923:
4924: for (i=0; i<18; i++)
4925: {
4926: sprintf(buffer,"./gfx/gfx-%d.png",i+1160);
4927: suicidemouse[i]=LoadImg(buffer);
4928:
4929: suicidemouse[i].stretchX = 363;
4930: suicidemouse[i].stretchY = 272;
4931: suicidemouse[i]=oslSetImageRotCenter(suicidemouse[i]);
4932: }
4933:
4934: creepysfx = oslLoadSoundFile("./sfx/sfx-0065.wav");
4935: oslSetSoundLoop(creepysfx, 1);
4936: oslPlaySound(creepysfx);
4937:
4938: i=0;
4939:
4940:
4941:
4942: while (frame < 620)
4943: {
4944: if (!(frame%6)) i++;
4945: oslStartDrawing();
4946: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
4947: spr_draw(suicidemouse[i%18],240,138);
4948: oslEndDrawing();
4949: oslSwapBuffers();
4950:
4951: oslWaitVSync();
4952: frame++;
4953: }
4954:
4955: for (i=0; i<18; i++)
4956: {
4957: oslDeleteImage(suicidemouse[i]);
4958: }
4959:
4960: oslStopSound(creepysfx);
4961: oslDeleteSound(creepysfx);
4962:
4963: break;
4964:
4965:
4966:
4967: case 1:
4968: suicidemouse[0]=LoadImg("./gfx/gfx-1038.png");
4969: suicidemouse[1]=LoadImg("./gfx/gfx-1039.png");
4970:
4971: suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]);
4972:
4973: creepysfx = oslLoadSoundFile("./sfx/sfx-0058.wav");
4974:
4975: oslSetSoundLoop(creepysfx, 0);
4976: oslPlaySound(creepysfx);
4977:
4978: while (frame < 45)
4979: {
4980: oslStartDrawing();
4981: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
4982: suicidemouse[0]=oslSetAlpha(suicidemouse[0], frame*4);
4983: spr_draw(suicidemouse[0],240,271);
4984: oslEndDrawing();
4985: //frame_debug(frame);
4986: oslSwapBuffers();
4987:
4988: suicidemouse[0].stretchX +=2;
4989: suicidemouse[0].stretchY +=2;
4990:
4991: oslSetImageRotCenter(suicidemouse[0]);
4992: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
4993: frame++;
4994: oslWaitVSync();
4995: }
4996:
4997: for (i=0; i<4; i++)
4998: {
4999: oslStartDrawing();
5000: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
5001: oslEndDrawing();
5002: oslSwapBuffers();
5003: oslWaitVSync();
5004: }
5005:
5006: for (i=0; i<4; i++)
5007: {
5008: oslStartDrawing();
5009: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
5010: spr_draw(suicidemouse[1],0,0);
5011: oslEndDrawing();
5012: oslSwapBuffers();
5013: }
5014: fadeout();
5015: oslDeleteImage(suicidemouse[0]);
5016: oslDeleteImage(suicidemouse[1]);
5017:
5018: /*while (oslGetSoundChannel(creepysfx) == 0);*/
5019:
5020: oslDeleteSound(creepysfx);
5021: break;
5022:
5023: case 2:
5024:
5025: j = random(2);
5026:
5027: if (!j) suicidemouse[0] = LoadImg("./gfx/endisneigh.png");
5028: else suicidemouse[0] = LoadImg("./gfx/endisneigh2.png");
5029:
5030: if (!j) creepysfx = oslLoadSoundFile("./sfx/sfx-0083.wav");
5031: else creepysfx = oslLoadSoundFile("./sfx/sfx-0109.wav");
5032:
5033: oslSetSoundLoop(creepysfx, 0);
5034: oslPlaySound(creepysfx);
5035:
5036: for (i=0; i<10; i++)
5037: {
5038: oslStartDrawing();
5039: spr_draw(suicidemouse[0],0,0);
5040: oslEndDrawing();
5041: oslSwapBuffers();
5042: oslWaitVSync();
5043: }
5044: fadeout();
5045: oslDeleteImage(suicidemouse[0]);
5046: break;
5047:
5048:
5049: case 3:
5050: suicidemouse[0] = LoadImg("./gfx/safe.png");
5051: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5052: creepysfx = oslLoadSoundFile("./sfx/sfx-0026.wav");
5053:
5054: oslSetSoundLoop(creepysfx, 0);
5055: oslPlaySound(creepysfx);
5056:
5057: for (i=0; i<3; i++)
5058: {
5059: oslStartDrawing();
5060: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
5061: oslEndDrawing();
5062: oslSwapBuffers();
5063: oslWaitVSync();
5064: }
5065:
5066: for (i=0; i<200; i++)
5067: {
5068: oslStartDrawing();
5069: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5070: spr_draw(suicidemouse[0],239,135);
5071: oslEndDrawing();
5072: oslSwapBuffers();
5073: oslWaitVSync();
5074: }
5075:
5076: fadeout();
5077: oslDeleteImage(suicidemouse[0]);
5078: oslDeleteSound(creepysfx);
5079: break;
5080:
5081: case 4:
5082: for (i=0; i<4; i++)
5083: {
5084: sprintf(buffer,"./gfx/bnours%d.png",i+1);
5085: suicidemouse[i]=LoadImg(buffer);
5086: }
5087: creepysfx = oslLoadSoundFile("./sfx/sfx-0149.wav");
5088:
5089: oslSetSoundLoop(creepysfx, 0);
5090: oslPlaySound(creepysfx);
5091:
5092: i=0;
5093:
5094: while (frame < 600)
5095: {
5096: if (!(frame%4)) i++;
5097: oslStartDrawing();
5098: spr_draw(suicidemouse[i%4],0,0);
5099: oslEndDrawing();
5100: oslSwapBuffers();
5101: frame++;
5102: oslWaitVSync();
5103: }
5104:
5105: fadeout();
5106:
5107: for (i=0; i<4; i++)
5108: {
5109: oslDeleteImage(suicidemouse[i]);
5110: }
5111: oslDeleteSound(creepysfx);
5112: break;
5113:
5114: case 5:
5115: suicidemouse[0] = LoadImg("./gfx/court_joy.png");
5116: suicidemouse[1] = LoadImg("./gfx/gfx-0717.png");
5117: creepysfx = oslLoadSoundFile("./sfx/sfx-0147.wav");
5118: sfx=oslLoadSoundFile("./sfx/sfx-0011.wav");
5119:
5120: oslPlaySound(sfx);
5121:
5122: for (j=0; j<256; j+=3)
5123: {
5124: oslStartDrawing();
5125: oslDrawFillRect(0,0,480,272, _RGB(255,255,255));
5126:
5127: suicidemouse[0]=oslSetAlpha(suicidemouse[0], j);
5128: suicidemouse[1]=oslSetAlpha(suicidemouse[1], j);
5129: spr_draw(suicidemouse[0],0,0);
5130: spr_draw(suicidemouse[1],177,215);
5131:
5132: oslEndDrawing();
5133: oslSwapBuffers();
5134: oslWaitVSync();
5135: }
5136:
5137: /*oslSetAlpha(OSL_FX_DEFAULT,0);*/
5138:
5139: oslSetSoundLoop(creepysfx, 0);
5140: oslPlaySound(creepysfx);
5141:
5142: while (frame < 292)
5143: {
5144: oslStartDrawing();
5145: spr_draw(suicidemouse[0],0,0);
5146: spr_draw(suicidemouse[1],177,215);
5147: oslEndDrawing();
5148:
5149: oslSwapBuffers();
5150:
5151: frame++;
5152: oslWaitVSync();
5153: }
5154:
5155: fadeout();
5156: oslDeleteImage(suicidemouse[0]);
5157: oslDeleteImage(suicidemouse[1]);
5158: oslDeleteSound(creepysfx);
5159: oslDeleteSound(sfx);
5160: break;
5161:
5162: case 6:
5163: creepysfx = oslLoadSoundFile("./sfx/sfx-0060.wav");
5164: suicidemouse[0] = LoadImg("./gfx/oag1.png");
5165: suicidemouse[1] = LoadImg("./gfx/oag2.png");
5166:
5167: oslStartDrawing();
5168: spr_draw(suicidemouse[0],0,0);
5169: oslEndDrawing();
5170:
5171: oslSwapBuffers();
5172:
5173: while (frame < 720)
5174: {
5175: if (frame==480)
5176: {
5177: oslSetSoundLoop(creepysfx, 0);
5178: oslPlaySound(creepysfx);
5179: }
5180:
5181: if (frame >= 480)
5182: {
5183:
5184: oslStartDrawing();
5185: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5186: spr_draw(suicidemouse[1],173,26);
5187: oslEndDrawing();
5188: oslSwapBuffers();
5189:
5190: }
5191: else if (frame < 480)
5192: {
5193: oslStartDrawing();
5194: spr_draw(suicidemouse[0],0,0);
5195: oslEndDrawing();
5196: oslSwapBuffers();
5197: }
5198:
5199:
5200: frame++;
5201: oslWaitVSync();
5202: }
5203:
5204: fadeout();
5205: oslDeleteImage(suicidemouse[0]);
5206: oslDeleteImage(suicidemouse[1]);
5207: oslDeleteSound(creepysfx);
5208: break;
5209:
5210: case 7:
5211: creepysfx = oslLoadSoundFile("./sfx/sfx-0148.wav");
5212: suicidemouse[0] = LoadImg("./gfx/smurf_village.png");
5213: suicidemouse[1] = LoadImg("./gfx/smurf_sprite.png");
5214: suicidemouse[2] = LoadImg("./gfx/smurf_papazombie.png");
5215:
5216: oslStartDrawing();
5217: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5218: spr_draw(suicidemouse[0],0,0);
5219: oslEndDrawing();
5220:
5221: i=0;
5222: j=-32;
5223: frame=0;
5224:
5225: oslSetSoundLoop(creepysfx, 0);
5226: oslPlaySound(creepysfx);
5227: suicidemouse[2]=oslSetImageRotCenter(suicidemouse[2]);
5228:
5229: //fadein(suicidemouse[0]);
5230:
5231: while (frame < 400)
5232: {
5233:
5234: if (!(frame%2))
5235: {
5236: if (j < 222) j+=4;
5237: }
5238: if (!(frame%3))
5239: {
5240: i++;
5241: }
5242:
5243: oslStartDrawing();
5244: spr_draw(suicidemouse[0],0,0);
5245: temp_gfx = oslSetImageTileSize(suicidemouse[1],(i%8)*32,0,32,42);
5246: temp_gfx.stretchX = 64;
5247: temp_gfx.stretchY = 84;
5248: spr_draw(temp_gfx, j, 181);
5249: oslEndDrawing();
5250:
5251: if (j >= 222)
5252: {
5253: oslStartDrawing();
5254: spr_draw(suicidemouse[0],0,0);
5255: temp_gfx = oslSetImageTileSize(suicidemouse[1],256,0,32,42);
5256: temp_gfx.stretchX = 64;
5257: temp_gfx.stretchY = 84;
5258: spr_draw(temp_gfx, j, 181);
5259:
5260: oslEndDrawing();
5261:
5262:
5263: if (frame > 248)
5264: {
5265: oslStartDrawing();
5266: oslDrawFillRect(0,0,480,272, _RGBA(255,0,0,155));
5267: suicidemouse[2]=oslSetAlpha(suicidemouse[2], 250);
5268: spr_draw(suicidemouse[2],238,136);
5269: if (!(frame%2))
5270: {
5271: suicidemouse[2].stretchX+=16;
5272: suicidemouse[2].stretchY+=16;
5273: }
5274: oslEndDrawing();
5275: }
5276: }
5277:
5278: //frame_debug(frame);
5279:
5280: oslSwapBuffers();
5281: frame++;
5282: oslWaitVSync();
5283: }
5284:
5285: oslDeleteImage(suicidemouse[0]);
5286: oslDeleteImage(suicidemouse[1]);
5287: oslDeleteImage(suicidemouse[2]);
5288: oslDeleteSound(creepysfx);
5289:
5290: /*oslSetBilinearFilter(1);
5291:
5292:
5293: oslDeleteSound(sfx);*/
5294:
5295: break;
5296:
5297: case 8:
5298: creepysfx = oslLoadSoundFile("./sfx/sfx-0151.wav");
5299: suicidemouse[0] = LoadImg("./gfx/squiward_suicide.png");
5300: suicidemouse[1] = LoadImg("./gfx/bikini_hell.png");
5301:
5302: suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]);
5303: suicidemouse[1]=oslSetImageRotCenter(suicidemouse[1]);
5304:
5305: oslStartDrawing();
5306: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5307: oslEndDrawing();
5308:
5309:
5310: oslSetSoundLoop(creepysfx, 0);
5311: oslPlaySound(creepysfx);
5312:
5313:
5314:
5315: frame=0;
5316:
5317: while((suicidemouse[0].stretchX) >= 0)
5318: {
5319: if (!(frame%2))
5320: {
5321: oslStartDrawing();
5322: spr_draw(suicidemouse[1],240,136);
5323: spr_draw(suicidemouse[0],240,136);
5324: if (!(frame%4) && (frame < 282))
5325: {
5326: suicidemouse[0].stretchX++;
5327: suicidemouse[0].stretchY++;
5328: suicidemouse[0].angle += 6;
5329: }
5330: if (frame >= 282)
5331: {
5332: suicidemouse[0].stretchX-=3;
5333: suicidemouse[0].stretchY-=3;
5334: suicidemouse[0].angle -= 11;
5335: }
5336: oslEndDrawing();
5337: //frame_debug(frame);
5338: oslSwapBuffers();
5339: }
5340: else
5341: {
5342: oslStartDrawing();
5343: spr_draw(suicidemouse[1],240,136);
5344: spr_draw(suicidemouse[0],240,136);
5345: oslEndDrawing();
5346: oslSwapBuffers();
5347: }
5348: oslWaitVSync();
5349: frame++;
5350: }
5351:
5352: oslStartDrawing();
5353: spr_draw(suicidemouse[1],240,136);
5354: oslEndDrawing();
5355: oslSwapBuffers();
5356:
5357: oslDeleteImage(suicidemouse[0]);
5358: oslDeleteImage(suicidemouse[1]);
5359:
5360: oslDeleteSound(creepysfx);
5361: /*oslSetTransparentColor(RGB(255,0,255));
5362: oslDeleteSound(sfx);*/
5363: break;
5364:
5365: case 9:
5366: creepysfx = oslLoadSoundFile("./sfx/sfx-0152.wav");
5367:
5368: j=0;
5369: i=0;
5370:
5371: frame=0;
5372:
5373: oslStartDrawing();
5374: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5375: oslEndDrawing();
5376:
5377: for (k=0; k<16; k++)
5378: {
5379: suicidemouse[k] = LoadImg("./gfx/creepycircle.png");
5380: suicidemouse[k] = oslSetImageRotCenter(suicidemouse[k]);
5381: }
5382:
5383: while (frame<16*2)
5384: {
5385: if (!(frame%2))
5386: {
5387: bok[0][i]=(2*(random(24)+1))-24;
5388:
5389:
5390: bok[1][i]= random(128)+127;
5391: bok[2][i]= random(128)+127;
5392: bok[3][i]= random(128)+127;
5393:
5394:
5395:
5396:
5397: oslStartDrawing();
5398: if (bok[0][i] > 0) suicidemouse[i].stretchX = bok[0][i]; else suicidemouse[i].stretchX = 1;
5399: if (bok[0][i] > 0) suicidemouse[i].stretchY = bok[0][i]; else suicidemouse[i].stretchY = 1;
5400:
5401: spr_draw(suicidemouse[i],(i%4)*40+172, (i/4)*40+64);
5402:
5403: oslEndDrawing();
5404: i++;
5405: }
5406: else
5407: {
5408: oslWaitVSync();
5409: }
5410: frame++;
5411: }
5412:
5413: oslSwapBuffers();
5414: //oslWaitKey();
5415:
5416:
5417: i=0;
5418: j=0;
5419: k=0;
5420: frame=0;
5421:
5422: while(k < 100)
5423: {
5424:
5425: if (!(frame%4))
5426: {
5427: oslStartDrawing();
5428: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5429:
5430: for (j=0; j<16; j++)
5431: {
5432:
5433: if (bok[0][j] > -24) bok[0][j]--;
5434:
5435: if (bok[0][j] <= -24)
5436: {
5437: k++;
5438: bok[0][j]=24;
5439: i=0;
5440:
5441: oslPlaySound(creepysfx);
5442:
5443: bok[1][j]= random(128)+127;
5444: bok[2][j]= random(128)+127;
5445: bok[3][j]= random(128)+127;
5446: }
5447:
5448: if (bok[0][j] > 1) suicidemouse[j].stretchX = suicidemouse[j].stretchY = bok[0][j];
5449:
5450: suicidemouse[j].R=bok[2][j];
5451: suicidemouse[j].G=bok[3][j];
5452: suicidemouse[j].B=bok[1][j];
5453:
5454: if (bok[0][j] > 21) suicidemouse[j].R=suicidemouse[j].G=suicidemouse[j].B=255;
5455:
5456: spr_draw(suicidemouse[j],(j%4)*40+172, (j/4)*40+64);
5457: }
5458: oslEndDrawing();
5459: //frame_debug(frame);
5460: oslSwapBuffers();
5461: //oslWaitKey();
5462:
5463:
5464:
5465: }
5466: else
5467: {
5468: oslWaitVSync();
5469: }
5470:
5471: frame++;
5472: }
5473:
5474: for(i=0; i<16; i++) oslDeleteImage(suicidemouse[i]);
5475: oslDeleteSound(creepysfx);
5476: break;
5477:
5478: case 10:
5479: case 15:
5480: creepysfx = oslLoadSoundFile("./sfx/sfx-0057.wav");
5481: sfx = oslLoadSoundFile("./sfx/bark.wav");
5482:
5483: suicidemouse[0] = LoadImg("./gfx/gfx-0253.png");
5484: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5485:
5486:
5487:
5488: for (i=1; i<9; i++)
5489: {
5490: sprintf(buffer,"./gfx/gfx-0%d.png",i+661);
5491: suicidemouse[i]=LoadImg(buffer);
5492: suicidemouse[i].stretchX = 480;
5493: suicidemouse[i].stretchY = 272;
5494: }
5495:
5496: frame=0;
5497: j=0;
5498: /*oslStopSound(w4c);*/
5499:
5500: oslSetSoundLoop(creepysfx, 1);
5501: oslPlaySound(creepysfx);
5502:
5503: while (frame < 750)
5504: {
5505:
5506: if (!(frame%16))
5507: {
5508: suicidemouse[0].stretchX++;
5509: suicidemouse[0].stretchY = (int)(1.27*(suicidemouse[0].stretchX));
5510: }
5511:
5512: if (!(frame%4))
5513: {
5514: oslStartDrawing();
5515: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5516: spr_draw(suicidemouse[(j%8)+1],0,0);
5517: suicidemouse[0]=oslSetAlpha(suicidemouse[0],75);
5518: spr_draw(suicidemouse[0],240,136);
5519: oslEndDrawing();
5520: oslSwapBuffers();
5521: }
5522: else
5523: {
5524: j++;
5525: al_rest(0.016);
5526: }
5527:
5528: frame++;
5529: oslWaitVSync();
5530: }
5531:
5532: if (cpn == 15)
5533: {
5534: suicidemouse[0].stretchX = 480;
5535: suicidemouse[0].stretchY = 610;
5536: oslStartDrawing();
5537: suicidemouse[0]=oslSetAlpha(suicidemouse[0],255);
5538: spr_draw(suicidemouse[0],240,136);
5539: oslEndDrawing();
5540: oslSwapBuffers();
5541: oslWaitVSync();
5542: al_set_sample_instance_position(sfx.instance, 16);
5543: oslPlaySound(sfx);
5544: while (al_get_sample_instance_position(sfx.instance));
5545: }
5546:
5547: for (i=0; i<9; i++)
5548: {
5549: oslDeleteImage(suicidemouse[i]);
5550: }
5551:
5552: oslDeleteSound(creepysfx);
5553: oslDeleteSound(sfx);
5554: fadeout();
5555: break;
5556:
5557: case 11:
5558: case 16:
5559: suicidemouse[0] = LoadImg("./gfx/dolan.png");
5560: creepysfx = oslLoadSoundFile("./sfx/dolan.wav");
5561:
5562: oslSetSoundLoop(creepysfx, 0);
5563: i=272;
5564: frame=0;
5565: j=random(7);
5566:
5567: while(frame < 1200)
5568: {
5569: if (!(frame%2))
5570: {
5571: if (i>72)
5572: {
5573: oslStartDrawing();
5574: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5575: spr_draw(suicidemouse[0], 332, i);
5576: oslEndDrawing();
5577: oslSwapBuffers();
5578: oslWaitVSync();
5579: i--;
5580: }
5581: if ((frame > 800) && (i<73))
5582: {
5583: if (cpn == 16)
5584: {
5585: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5586: suicidemouse[0].stretchX = 480;
5587: suicidemouse[0].stretchY = 648;
5588: oslStartDrawing();
5589: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5590: spr_draw(suicidemouse[0],240,136);
5591: oslEndDrawing();
5592: oslSwapBuffers();
5593: if (frame == 812) oslPlaySound(creepysfx);
5594: oslWaitVSync();
5595: }
5596: else
5597: {
5598: oslStartDrawing();
5599: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5600: spr_draw(suicidemouse[0], 332, i+1);
5601: oslSetTextColor(_RGB(255, 255, 255));
5602: k = oslGetStringWidth(text[j]);
5603: oslDrawString((480 - k)/2, 32, text[j]);
5604: oslEndDrawing();
5605: oslSwapBuffers();
5606: oslWaitVSync();
5607: }
5608: }
5609: oslWaitVSync();
5610: }
5611: else
5612: {
5613: al_rest(0.008);
5614: }
5615: frame++;
5616: oslWaitVSync();
5617: }
5618:
5619: oslDeleteImage(suicidemouse[0]);
5620: oslDeleteSound(creepysfx);
5621:
5622: /* while (oslGetSoundChannel(creepysfx) == 1);
5623:
5624: oslDeleteSound(sfx);*/
5625:
5626: break;
5627:
5628: case 12:
5629: k=random(42);
5630: j=random(25);
5631:
5632: sprintf(buffer,"./sfx/sfx-0%d.wav",j+121);
5633: creepysfx = oslLoadSoundFile(buffer);
5634:
5635: j=random(25);
5636: sprintf(buffer,"./sfx/sfx-0%d.wav",j+121);
5637: sfx = oslLoadSoundFile(buffer);
5638:
5639: sprintf(buffer,"./gfx/pasta%d.png",k+1);
5640: suicidemouse[0] = LoadImg(buffer);
5641:
5642: oslSetSoundLoop(creepysfx, 0);
5643: al_set_sample_instance_position(creepysfx.instance, 16);
5644: oslPlaySound(creepysfx);
5645: suicidemouse[0]=oslSetImageRotCenter(suicidemouse[0]);
5646:
5647: frame=0;
5648:
5649: //oslSetBilinearFilter(1);
5650:
5651: while (al_get_sample_instance_position(creepysfx.instance))
5652: {
5653: oslStartDrawing();
5654: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5655: spr_draw(suicidemouse[0], 240, 136);
5656: oslEndDrawing();
5657: oslSwapBuffers();
5658: oslWaitVSync();
5659: if (!(frame%4)) suicidemouse[0].stretchX++;
5660: suicidemouse[0].stretchY = (int)((float)(suicidemouse[0].sizeY)/(suicidemouse[0].sizeX)*suicidemouse[0].stretchX);
5661: frame++;
5662: }
5663:
5664: oslSetSoundLoop(sfx, 0);
5665: al_set_sample_instance_position(sfx.instance, 16);
5666: oslPlaySound(sfx);
5667:
5668: while (al_get_sample_instance_position(sfx.instance))
5669: {
5670: oslStartDrawing();
5671: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5672: spr_draw(suicidemouse[0], 240, 136);
5673: oslEndDrawing();
5674: oslSwapBuffers();
5675: oslWaitVSync();
5676: if (!(frame%4)) suicidemouse[0].stretchX++;
5677: suicidemouse[0].stretchY = (int)((float)(suicidemouse[0].sizeY)/(suicidemouse[0].sizeX)*suicidemouse[0].stretchX);
5678: frame++;
5679: }
5680:
5681: //oslSetBilinearFilter(0);
5682:
5683: oslDeleteSound(creepysfx);
5684: oslDeleteImage(suicidemouse[0]);
5685: oslDeleteSound(sfx);
5686:
5687: break;
5688:
5689: case 13:
5690:
5691: creepysfx = oslLoadSoundFile("./sfx/sfx-0150.wav");
5692:
5693: oslSetSoundLoop(creepysfx, 0);
5694: al_set_sample_instance_position(creepysfx.instance, 16);
5695: oslPlaySound(creepysfx);
5696:
5697: oslStartDrawing();
5698: oslDrawFillRect(0,0,480,272, _RGB(0,0,255));
5699: oslSetTextColor(_RGB(255, 255, 255));
5700:
5701: al_draw_text(freesans, current_col, 8, 0, 0, "FATAL ERROR OCURRED IN THREAD");
5702: al_draw_text(freesans, current_col, 8, 12, 0, "Shit happens... :-(");
5703: al_draw_text(freesans, current_col, 8, 36, 0, "Exception Details:");
5704: al_draw_text(freesans, current_col, 8, 48, 0, "Exception - Bus error (death)");
5705: al_draw_text(freesans, current_col, 8, 60, 0, "EPC - 08A1C208");
5706: al_draw_text(freesans, current_col, 8, 72, 0, "Cause - 07H30P13");
5707: al_draw_text(freesans, current_col, 8, 84, 0, "Status - D34D0L0L");
5708: al_draw_text(freesans, current_col, 8, 96, 0, "BadVAddr - 0012AC40");
5709: al_draw_text(freesans, current_col, 8, 108, 0, "zr:000Y0000 at:0008OF00 v0:000U0000 v1:00000012");
5710: al_draw_text(freesans, current_col, 8, 120, 0, "a0:0000A001 a1:000R002E a2:09FFE768 a3:09FF06BC");
5711: al_draw_text(freesans, current_col, 8, 132, 0, "t0:00D0E6BC t1:000E07D4 t2:0000A032 t3:8804D000");
5712: al_draw_text(freesans, current_col, 8, 144, 0, "t4:09FFY5F8 t5:000O0E00 t6:08A2U658 t7:00008600");
5713: al_draw_text(freesans, current_col, 8, 156, 0, "t8:000S0000 t9:000U8368 s0:08AC0000 s1:08AFK53C");
5714: al_draw_text(freesans, current_col, 8, 168, 0, "s2:08BA0C20 s3:08BT453C s4:08A30000 s5:08A30000");
5715: al_draw_text(freesans, current_col, 8, 180, 0, "s6:000T00EC s7:0000H0F9 k0:09FFIF00 k1:0000S000");
5716: al_draw_text(freesans, current_col, 8, 192, 0, "gp:08AGD390 sp:000AFF00 fp:08A3M000 ra:0896E4BC");
5717: al_draw_text(freesans, current_col, 8, 216, 0, "Will exit to Windows desktop in 10 seconds");
5718: oslEndDrawing();
5719: oslSwapBuffers();
5720:
5721: while (al_get_sample_instance_position(creepysfx.instance));
5722: oslDeleteSound(creepysfx);
5723: fadeout();
5724: break;
5725:
5726:
5727: case 14:
5728: if (random(2)) suicidemouse[0] = LoadImg("./gfx/smilechu.png"); else suicidemouse[0] = LoadImg("./gfx/smilechu2.png");
5729: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5730:
5731: i=0;
5732: j=0;
5733: frame=0;
5734:
5735: while (i < 12)
5736: {
5737: if (!(frame%3))
5738: {
5739: if (!j)
5740: {
5741: k=random(70);
5742: suicidemouse[0].stretchX = 10+random(150);
5743: l=82+random(36);
5744: }
5745: else k++;
5746: oslStartDrawing();
5747: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5748: if (k>44)
5749: {
5750: j=1;
5751:
5752: if (k < 74)
5753: {
5754: suicidemouse[0].stretchX += 13;
5755: suicidemouse[0].stretchY = (int)(1.18 * (suicidemouse[0].stretchX));
5756:
5757: spr_draw(suicidemouse[0],240,138);
5758: }
5759:
5760: if (k==l)
5761: {
5762: i++;
5763: j=0;
5764: }
5765: }
5766: //frame_debug(k);
5767: oslEndDrawing();
5768: oslSwapBuffers();
5769: oslWaitVSync();
5770: }
5771: else
5772: {
5773: al_rest(0.008);
5774: oslWaitVSync();
5775: }
5776: frame++;
5777: oslWaitVSync();
5778: }
5779:
5780: oslDeleteImage(suicidemouse[0]);
5781: //oslDeleteSound(sfx);
5782: break;
5783:
5784: case 17:
5785: suicidemouse[0] = LoadImg("./gfx/nigel.png");
5786: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5787:
5788: creepysfx = oslLoadSoundFile("./sfx/smashing.wav");
5789:
5790: frame=0;
5791:
5792: oslPlaySound(creepysfx);
5793:
5794: while (frame<512)
5795: {
5796: oslStartDrawing();
5797: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5798:
5799: for(i=0; i<8; i++)
5800: {
5801: j=random(10)-20;
5802: oslDrawFillRect(i*60,120+j,(i*60)+60,152+(-1*j), _RGB(96,96,0));
5803: oslDrawFillRect(i*60,128+j,(i*60)+60,144+(-1*j), _RGB(128,128,0));
5804: oslDrawFillRect(i*60,136+j,(i*60)+60,136+(-1*j), _RGB(160,160,0));
5805: }
5806:
5807: if (frame >= 480)
5808: {
5809:
5810: spr_draw(suicidemouse[0],240,138);
5811:
5812: suicidemouse[0].stretchX += 16;
5813: suicidemouse[0].stretchY = (int)(1.33*(suicidemouse[0].stretchX));
5814: }
5815: oslEndDrawing();
5816: oslSwapBuffers();
5817: oslWaitVSync();
5818: frame++;
5819: }
5820:
5821: oslDeleteSound(creepysfx);
5822: oslDeleteImage(suicidemouse[0]);
5823:
5824: break;
5825:
5826: case 18:
5827: suicidemouse[0] = LoadImg("./gfx/caaat.png");
5828: suicidemouse[1] = LoadImg("./gfx/caaat_ns.png");
5829: creepysfx = oslLoadSoundFile("./sfx/caaat.wav");
5830: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5831: suicidemouse[1] = oslSetImageRotCenter(suicidemouse[1]);
5832:
5833: al_set_sample_instance_position(creepysfx.instance, 16);
5834: oslPlaySound(creepysfx);
5835:
5836: frame=0;
5837:
5838: while (al_get_sample_instance_position(creepysfx.instance))
5839: {
5840: oslStartDrawing();
5841: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5842:
5843: if (frame<150)
5844: {
5845: spr_draw(suicidemouse[1],240,138);
5846: }
5847: else
5848: {
5849: spr_draw(suicidemouse[0],240,138);
5850: }
5851:
5852: oslEndDrawing();
5853: oslSwapBuffers();
5854: oslWaitVSync();
5855: frame++;
5856: }
5857: oslDeleteSound(creepysfx);
5858: oslDeleteImage(suicidemouse[0]);
5859: oslDeleteImage(suicidemouse[1]);
5860: break;
5861:
5862: case 19:
5863: for (i=0; i<9; i++)
5864: {
5865: sprintf(buffer,"./gfx/pona0%d.png",i);
5866: suicidemouse[i]=LoadImg(buffer);
5867:
5868: suicidemouse[i].stretchX = 480;
5869: suicidemouse[i].stretchY = 272;
5870: suicidemouse[i]=oslSetImageRotCenter(suicidemouse[i]);
5871: }
5872:
5873: frame=0;
5874:
5875: creepysfx = oslLoadSoundFile("./sfx/pona.wav");
5876: oslPlaySound(creepysfx);
5877:
5878: i=0;
5879:
5880: while (frame < 333)
5881: {
5882:
5883: oslStartDrawing();
5884: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5885:
5886: if (frame < 110)
5887: {
5888: spr_draw(suicidemouse[frame/14],240,138);
5889: }
5890:
5891: if ((frame >= 110) && (frame <= 140))
5892: {
5893: spr_draw(suicidemouse[8],240,138);
5894: }
5895:
5896: oslEndDrawing();
5897: //frame_debug((int)oslGetRamStatus().maxAvailable);
5898: oslSwapBuffers();
5899:
5900: oslWaitVSync();
5901: frame++;
5902: }
5903:
5904: oslDeleteSound(creepysfx);
5905: for (i=0; i<9; i++)
5906: {
5907: oslDeleteImage(suicidemouse[i]);
5908: }
5909: break;
5910:
5911: case 20:
5912: suicidemouse[0] = LoadImg("./gfx/pookey1.png");
5913: suicidemouse[1] = LoadImg("./gfx/pookey2.png");
5914: creepysfx = oslLoadSoundFile("./sfx/pookeymon.wav");
5915: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5916: suicidemouse[1] = oslSetImageRotCenter(suicidemouse[1]);
5917:
5918: oslPlaySound(creepysfx);
5919:
5920: frame=0;
5921:
5922: while(frame < 550)
5923: {
5924: oslStartDrawing();
5925: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5926:
5927: if ((frame >= 375) && (frame < 389)) spr_draw(suicidemouse[0], 240, 136);
5928: if ((frame >= 389) && (frame < 401)) spr_draw(suicidemouse[1], 240, 136);
5929:
5930: oslEndDrawing();
5931: oslSwapBuffers();
5932:
5933: oslWaitVSync();
5934:
5935: frame++;
5936: }
5937:
5938: oslDeleteImage(suicidemouse[0]);
5939: oslDeleteImage(suicidemouse[1]);
5940: oslDeleteSound(creepysfx);
5941: break;
5942:
5943: case 21:
5944: suicidemouse[0] = LoadImg("./gfx/gfx-0825.png");
5945: creepysfx = oslLoadSoundFile("./sfx/sfx-0030.wav");
5946: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
5947:
5948: oslPlaySound(creepysfx);
5949:
5950: frame=0;
5951:
5952: suicidemouse[0].stretchX = i = 396;
5953: suicidemouse[0].stretchY = (int)(1.68*suicidemouse[0].stretchX);
5954:
5955: while(frame < 480)
5956: {
5957: oslStartDrawing();
5958: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
5959:
5960:
5961: i=suicidemouse[0].stretchX;
5962:
5963: if ((suicidemouse[0].stretchX) > -72)
5964: {
5965:
5966: if (suicidemouse[0].stretchX >= 0)
5967: {
5968: suicidemouse[0].trans=255;
5969: spr_draw(suicidemouse[0], 240, 136);
5970: }
5971:
5972: if (suicidemouse[0].stretchX >= -36)
5973: {
5974: suicidemouse[0].stretchX += 36;
5975: suicidemouse[0].stretchY = (int)(1.68* (suicidemouse[0].stretchX));
5976:
5977:
5978: suicidemouse[0].trans=128;
5979: spr_draw(suicidemouse[0], 240, 136);
5980: }
5981:
5982:
5983: suicidemouse[0].stretchX += ((suicidemouse[0].stretchX < -36)?72:36);
5984: suicidemouse[0].stretchY = (int)(1.68* (suicidemouse[0].stretchX));
5985:
5986: suicidemouse[0].trans=64;
5987: spr_draw(suicidemouse[0], 240, 136);
5988: }
5989:
5990: suicidemouse[0].stretchX = i;
5991:
5992: if (!(frame%5))
5993: {
5994: suicidemouse[0].stretchX = i - 18;
5995: }
5996:
5997: suicidemouse[0].stretchY = (int)(1.68*suicidemouse[0].stretchX);
5998:
5999: oslEndDrawing();
6000: oslSwapBuffers();
6001: oslWaitVSync();
6002: frame++;
6003: }
6004:
6005: oslDeleteImage(suicidemouse[0]);
6006: oslDeleteSound(creepysfx);
6007: break;
6008:
6009: case 22:
6010: suicidemouse[0] = LoadImg("./gfx/lavender.png");
6011: creepysfx = oslLoadSoundFile("./sfx/lavender.wav");
6012:
6013: temp_gfx = oslSetImageTileSize(suicidemouse[0],0,0,48,48);
6014: temp_gfx = oslSetImageRotCenter(temp_gfx);
6015: oslPlaySound(creepysfx);
6016:
6017: frame=0;
6018:
6019: while(frame < 420)
6020: {
6021: oslStartDrawing();
6022: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6023:
6024: if (frame <= 341)
6025: {
6026: temp_gfx.trans=random(128);
6027: temp_gfx.stretchX = temp_gfx.stretchY = 96;
6028: }
6029: else
6030: {
6031: temp_gfx.trans=255;
6032: temp_gfx = oslSetImageTileSize(suicidemouse[0],48,0,48,48);
6033: temp_gfx = oslSetImageRotCenter(temp_gfx);
6034: temp_gfx.stretchX = temp_gfx.stretchY = 640;
6035: }
6036:
6037: if (frame < 395) spr_draw(temp_gfx, 240+((frame>341)?0:random(4)), 136+((frame>341)?104:random(4)));
6038:
6039: oslEndDrawing();
6040: oslSwapBuffers();
6041: oslWaitVSync();
6042: frame++;
6043: }
6044:
6045:
6046: oslDeleteImage(suicidemouse[0]);
6047: oslDeleteSound(creepysfx);
6048: break;
6049:
6050: case 23:
6051: frame=0;
6052: suicidemouse[0] = LoadImg("./gfx/c64.png");
6053: suicidemouse[1] = LoadImg("./gfx/c64-ar.png");
6054:
6055: while (frame < 360)
6056: {
6057: oslStartDrawing();
6058: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6059: oslDrawFillRect(60, 0, 420, 272, _RGB(165,165,255));
6060: oslDrawFillRect(80, 46, 400, 226, _RGB(66,66,231));
6061:
6062: if (frame < 150)
6063: {
6064: for(i=0; i<1000; i++)
6065: {
6066: spr_draw(suicidemouse[1], (i%40)*8+80, ((int)(i/40))*8+38);
6067: }
6068: }
6069: else
6070: {
6071: spr_draw(suicidemouse[0], 80, 46);
6072: if ((frame%60) < 30)
6073: {
6074: oslDrawFillRect(80, 94, 88, 102, _RGB(165,165,255));
6075: }
6076: }
6077: oslEndDrawing();
6078: oslSwapBuffers();
6079: oslWaitVSync();
6080: frame++;
6081: }
6082: oslDeleteImage(suicidemouse[0]);
6083: oslDeleteImage(suicidemouse[1]);
6084: break;
6085:
6086: case 24:
6087: suicidemouse[0] = LoadImg("./gfx/sncell.png");
6088: suicidemouse[1] = LoadImg("./gfx/sncpnt.png");
6089: suicidemouse[0] = oslSetImageRotCenter(suicidemouse[0]);
6090: creepysfx = oslLoadSoundFile("./sfx/nuls.wav");
6091:
6092: al_set_sample_instance_position(creepysfx.instance, 16);
6093: oslPlaySound(creepysfx);
6094:
6095: frame=0;
6096:
6097: while (al_get_sample_instance_position(creepysfx.instance))
6098: {
6099: oslStartDrawing();
6100: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6101: spr_draw(suicidemouse[0], 236+random(7), 132+random(7));
6102: spr_draw(suicidemouse[1], 224+random(7), 132+random(7));
6103: spr_draw(suicidemouse[1], 246+random(7), 132+random(7));
6104: oslEndDrawing();
6105: oslSwapBuffers();
6106: oslWaitVSync();
6107: }
6108:
6109: oslStartDrawing();
6110: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6111: oslEndDrawing();
6112: oslSwapBuffers();
6113: fadeout();
6114:
6115: oslDeleteImage(suicidemouse[0]);
6116: oslDeleteImage(suicidemouse[1]);
6117: oslDeleteSound(creepysfx);
6118:
6119: cls();
6120: break;
6121: }
6122:
6123:
6124: fadeout();
6125: }
6126:
6127: void ben()
6128: {
6129: OSL_IMAGE noise[9];
6130: ALLEGRO_BITMAP *ben_sub;
6131: OSL_SOUND ben_mzx = oslLoadSoundFile("./sfx/ben.wav");
6132: char buffer[20];
6133: int i, j, frame=0, trans;
6134:
6135: noise[0]=LoadImg("./gfx/ben.png");
6136:
6137: for (i=1; i<9; i++)
6138: {
6139: sprintf(buffer,"./gfx/gfx-0%d.png",i+661);
6140: noise[i]=LoadImg(buffer);
6141: noise[i].stretchX = 480;
6142: noise[i].stretchY = 272;
6143: }
6144:
6145: oslPlaySound(ben_mzx);
6146:
6147: while(frame<704)
6148: {
6149: oslStartDrawing();
6150: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6151: spr_draw(noise[(frame%8)+1],0,0);
6152:
6153: if (frame<192)
6154: {
6155: trans=frame;
6156: }
6157: else if (frame>512) trans=704-frame;
6158: else trans=192;
6159:
6160: i=0;
6161: while(i<272)
6162: {
6163: j=random(27)+13;
6164: ben_sub=al_create_sub_bitmap(noise[0].asset,0,i,425,i+j);
6165: al_draw_tinted_bitmap(ben_sub, al_map_rgba(255, 255, 255, trans), random(55), i, 0);
6166: i += j;
6167: }
6168:
6169: oslEndDrawing();
6170: oslSwapBuffers();
6171: oslWaitVSync();
6172: frame++;
6173: }
6174:
6175: for(i=0; i<9; i++)
6176: {
6177: oslDeleteImage(noise[i]);
6178: }
6179:
6180: oslDeleteSound(ben_mzx);
6181:
6182: fadeout();
6183: }
6184:
6185: void rndsft()
6186: {
6187: int frame=-3, i=0, j=0, k=0, l=0, m=0, n=0;
6188: OSL_IMAGE rndsft, px;
6189: ALLEGRO_BITMAP *rndsft_sub;
6190: OSL_MOD rndtheme;
6191:
6192: rndsft = LoadImg("./gfx/rndsft.png");
6193: px = LoadImg("./gfx/pixel.png");
6194: rndtheme = oslLoadSoundFileMOD("./muzaxx/rndsft.xm");
6195:
6196:
6197: rndsft=oslSetImageRotCenter(rndsft);
6198:
6199: oslSetSoundLoopMOD(rndtheme, 0);
6200: oslPlaySoundMOD(rndtheme);
6201:
6202: while(frame<470)
6203: {
6204:
6205:
6206: oslStartDrawing();
6207: al_clear_to_color(_RGB(0, 0, 0));
6208:
6209: if (frame >= 161)
6210: {
6211: 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);
6212: al_draw_bitmap(rndsft_sub, (480-rndsft.sizeX)/2, (272-rndsft.sizeY)/2, 0);
6213: }
6214:
6215: if ((frame >= 200) && (frame <= 220))
6216: {
6217: if (frame==200) i=random(360);
6218:
6219: if (!(frame%2))
6220: {
6221: oslDrawFillRect(0, 0, 480, 272, _RGB(0,0,0));
6222:
6223: for (j=0; j<13; j++)
6224: {
6225: oslDrawFillRect(i+j*16, 60, i+j*16+8, 272, _RGB(255,127,0));
6226: }
6227: }
6228: }
6229:
6230: if ((frame >= 259) && (frame <= 295))
6231: {
6232:
6233: if (frame == 259)
6234: {
6235: i=random(32)+24;
6236: k=random(9)+6;
6237: oslSetTextColor(_RGB(0, 224, 0));
6238: m=random(127);
6239: n=random(44);
6240: }
6241:
6242: for(j=0; j<k; j++)
6243: {
6244: for (l=0; l<i; l++)
6245: {
6246: oslDrawString(m+l*6, n+j*12, "@");
6247: }
6248: }
6249: }
6250:
6251: if ((frame >= 336) && (frame <= 345))
6252: {
6253: oslDrawFillRect(0,0,480,272, _RGB(0,0,0));
6254: spr_draw(rndsft,random(480),random(272));
6255: }
6256:
6257: if (frame >= 369)
6258: {
6259:
6260: for(i=0; i<48; i++)
6261: {
6262: for (j=0; j<17; j++)
6263: {
6264: al_draw_pixel(i*10, j*16, _RGB(random(256), random(256), random(256)));
6265: }
6266: }
6267:
6268: if ((frame == 369) || (!(frame%4))) k=random(360);
6269: oslDrawFillRect(k,0,k+32,272, _RGB(0,254,255));
6270:
6271:
6272: }
6273:
6274: oslEndDrawing();
6275: oslSwapBuffers();
6276: frame++;
6277: oslWaitVSync();
6278:
6279: }
6280:
6281: oslDeleteImage(rndsft);
6282: oslDeleteImage(px);
6283: oslStopSoundMOD(rndtheme);
6284: fadeout();
6285: }
6286:
6287: int warning_onepilepsy()
6288: {
6289: OSL_IMAGE warning = LoadImg("./gfx/warning.png");
6290: OSL_MOD theme = oslLoadSoundFileMOD("./muzaxx/giygas.xm");
6291:
6292: int i, w, frame=0, quit=0, red=0, accept=0;
6293: 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"};
6294:
6295: warning.stretchX = 360;
6296:
6297: warning=oslSetImageRotCenter(warning);
6298:
6299: oslPlaySoundMOD(theme);
6300:
6301: while (!quit)
6302: {
6303: oslStartDrawing();
6304: al_clear_to_color(_RGB(0, 0, 0));
6305:
6306:
6307: for (i=0; i<7; i++)
6308: {
6309: if (i<5) oslSetTextColor(_RGB(255, 255, 255));
6310: if (i>4) oslSetTextColor(_RGB(255, 255, 0));
6311: w = oslGetStringWidth(text[i]);
6312: oslDrawString((480 - w)/2, 92+i*20, text[i]);
6313: }
6314:
6315: warning.angle = 7*sin((0.25*frame)/3.14);
6316:
6317: spr_draw(warning, 240, 32);
6318:
6319: oslSetTextColor(_RGB(red, 0, 0));
6320: w = oslGetStringWidth(text[7]);
6321: oslDrawString((480 - w)/2, 256, text[7]);
6322: red -= 3;
6323: if (red < 0) red=255;
6324:
6325: al_get_keyboard_state(&kbdstate);
6326: if (al_key_down(&kbdstate, ALLEGRO_KEY_SPACE) || al_key_down(&kbdstate, ALLEGRO_KEY_ENTER))
6327: {
6328: accept=1;
6329: quit=1;
6330: }
6331: else if (al_key_down(&kbdstate, ALLEGRO_KEY_ESCAPE))
6332: {
6333: accept=0;
6334: quit=1;
6335: }
6336:
6337: oslEndDrawing();
6338: oslSwapBuffers();
6339: oslWaitVSync();
6340: frame++;
6341: }
6342:
6343: //oslFlushKey();
6344:
6345: //oslSetBilinearFilter(0);
6346: fadeout();
6347: oslStopSoundMOD(theme);
6348: oslDeleteSoundMOD(theme);
6349:
6350: return accept;
6351: }
6352:
6353: int main()
6354: {
6355: 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;
6356: int q=strlen("v2.00"), scrw, scrh, h=100;
6357: const char *items[4] = {"CHALLENGE THE PIE", "DIFFICULTY:", "WHO DID THIS MESS?", "FLEE TO WINDOWS LIKE A COWARD"};
6358: const char *diffs[3] = {"WUSS", "MANLY", "HELL"};
6359: OSL_IMAGE hand;
6360: OSL_IMAGE title;
6361: OSL_IMAGE alice;
6362: OSL_SOUND crack;
6363: OSL_SOUND theme;
6364:
6365: srand(time(NULL));
6366:
6367: if(!al_init()) {
6368: fprintf(stderr, "failed to initialize allegro!\n");
6369: exit(-1);
6370: }
6371:
6372: al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_REQUIRE);
6373: al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_REQUIRE);
6374: al_set_new_display_option(ALLEGRO_RENDER_METHOD, 0, ALLEGRO_REQUIRE);
6375: al_set_new_display_flags(ALLEGRO_FULLSCREEN);
6376:
6377: al_init_image_addon();
6378: al_init_primitives_addon();
6379: al_init_ttf_addon();
6380: al_install_audio();
6381: al_init_acodec_addon();
6382: al_install_keyboard();
6383:
6384: timer=al_create_timer(1.0 / 60);
6385: event_queue = al_create_event_queue();
6386:
6387: //al_reserve_samples(16);
6388: voice = al_create_voice(44100, ALLEGRO_AUDIO_DEPTH_INT16, ALLEGRO_CHANNEL_CONF_2);
6389: mixer = al_create_mixer(44100, ALLEGRO_AUDIO_DEPTH_FLOAT32, ALLEGRO_CHANNEL_CONF_2);
6390:
6391: al_attach_mixer_to_voice(mixer, voice);
6392:
6393: al_set_new_bitmap_flags(ALLEGRO_NO_PREMULTIPLIED_ALPHA);
6394: al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA);
6395: al_set_new_display_refresh_rate(60);
6396:
6397: freesans = al_load_ttf_font("./fonts/Nouveau_IBM.ttf", 11, 0); //ALLEGRO_TTF_MONOCHROME);
6398:
6399: court=LoadImg("./gfx/court_hell.png");
6400: benj=LoadImg("./gfx/boktai.png");
6401:
6402: crack = oslLoadSoundFile("./sfx/sfx-0026.wav");
6403: theme = oslLoadSoundFile("./sfx/theme.wav");
6404:
6405: ratio=getScreenRatio();
6406:
6407: if (ratio < 160)
6408: {
6409: scrw=800;
6410: scrh=600;
6411: }
6412: else if (ratio > 160)
6413: {
6414: scrw=1280;
6415: scrh=720;
6416: }
6417: else if (ratio == 160)
6418: {
6419: scrw=1280;
6420: scrh=800;
6421: }
6422:
6423: display = al_create_display(scrw, scrh);
6424: al_hide_mouse_cursor(display);
6425:
6426: psp_screen = al_create_bitmap(480, 272);
6427:
6428:
6429: hand = LoadImg("./gfx/hand.png");
6430: title = LoadImg("./gfx/title.png");
6431: alice = LoadImg("./gfx/alice.png");
6432:
6433: for (a=0; a<90; a++)
6434: {
6435: oslStartDrawing();
6436: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
6437: oslEndDrawing();
6438: oslSwapBuffers();
6439: oslWaitVSync();
6440: }
6441:
6442: a=warning_onepilepsy();
6443:
6444:
6445:
6446: if (a)
6447: {
6448:
6449: rndsft();
6450:
6451: while ((ch != 137) && (!quit))
6452: {
6453: oslStartDrawing();
6454: if (!f) oslPlaySound(theme);
6455:
6456: if (!(f%6))
6457: {
6458: tx=random(16);
6459: ty=random(32);
6460: }
6461:
6462: chd=chd%3;
6463:
6464: oslSetTextColor(_RGBA(255, 255, 255, gt));
6465: oslDrawFillRect(0,0,480,272, _RGB(0, 0, 0));
6466:
6467: title=oslSetAlpha(title, gt);
6468: spr_draw(title, tx, ty);
6469:
6470: title=oslSetAlpha(title, gt/2);
6471: spr_draw(title, random(16), random(32));
6472:
6473: title=oslSetAlpha(title, gt/4);
6474: spr_draw(title, random(16), random(32));
6475:
6476: alice=oslSetAlpha(alice, gt);
6477: spr_draw(alice, 299, 0);
6478:
6479: oslDrawString(480-(q*6), 260, "v2.00");
6480:
6481: for (i=0; i<4; i++)
6482: {
6483: oslDrawString(48, 182+i*20, items[i]);
6484: if ((!i) && (nbp==2)) oslDrawString(162, 182, "(AGAINST A MORTAL)");
6485: }
6486:
6487: hand=oslSetAlpha(hand,gt);
6488: spr_draw(hand, 8+4*sin(0.0625*f), 186+ch*20);
6489:
6490: oslSetTextColor(_RGBA(255, ((chd<2)?(255/(chd+1)):0), 0, gt));
6491: oslDrawString(120, 202, diffs[chd]);
6492:
6493:
6494:
6495: if (gt < 255) gt++;
6496:
6497: al_get_keyboard_state(&kbdstate);
6498:
6499: if ((!al_key_down(&kbdstate, ALLEGRO_KEY_UP) && !al_key_down(&kbdstate, ALLEGRO_KEY_DOWN) &&
6500: !al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT) && !al_key_down(&kbdstate, ALLEGRO_KEY_LEFT) &&
6501: !al_key_down(&kbdstate, ALLEGRO_KEY_ENTER))) rebound=0;
6502:
6503: if (!rebound)
6504: {
6505: if (al_key_down(&kbdstate, ALLEGRO_KEY_UP)) ch--;
6506: if (al_key_down(&kbdstate, ALLEGRO_KEY_DOWN)) ch++;
6507: if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (ch==1)) chd++;
6508:
6509: if ((al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT)) && (ch==0) && (nbp==1)) nbp++;
6510: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (ch==0) && (nbp==2)) nbp--;
6511:
6512: if ((al_key_down(&kbdstate, ALLEGRO_KEY_LEFT)) && (ch==1))
6513: {
6514: chd--;
6515: if (chd < 0) chd=2;
6516: }
6517: if ((al_key_down(&kbdstate, ALLEGRO_KEY_UP) || al_key_down(&kbdstate, ALLEGRO_KEY_DOWN) ||
6518: al_key_down(&kbdstate, ALLEGRO_KEY_RIGHT) || al_key_down(&kbdstate, ALLEGRO_KEY_LEFT))) rebound=1;
6519:
6520: }
6521:
6522:
6523: if (ch < 0) ch += 4;
6524: else if (ch > 3) ch -= 4;
6525:
6526: f++;
6527:
6528: if (al_key_down(&kbdstate, ALLEGRO_KEY_ESCAPE))
6529: {
6530: ch=137;
6531: quit=1;
6532: }
6533:
6534: if (al_key_down(&kbdstate, ALLEGRO_KEY_C))
6535: {
6536: oslStopSound(theme);
6537: fadeout();
6538: for (i=0; i<25; i++) creepypasta(i);
6539: oslPlaySound(theme);
6540: }
6541:
6542: if ((al_key_down(&kbdstate, ALLEGRO_KEY_ENTER)) && (!rebound) && (!quit))
6543: {
6544: rebound=1;
6545:
6546: if (!(ch%2)) fadeout();
6547:
6548: switch(ch)
6549: {
6550:
6551: case 0:
6552: {
6553: vies=2;
6554: mort=0;
6555: round=1;
6556: f=-1;
6557:
6558: oslStopSound(theme);
6559:
6560: while ((vies > 0) && (round < 3))
6561: {
6562: mort=game(round, chd+1, nbp);
6563:
6564: counter=0;
6565: if ((!mort) || (mort==2))
6566: {
6567: i=random(25);
6568:
6569: if (!mort)
6570: {
6571: oslPlaySound(crack);
6572:
6573: for (a=0; a<15; a++)
6574: {
6575: oslStartDrawing();
6576: oslDrawFillRect(0,0,480,272, _RGB(255, 255, 255));
6577: oslEndDrawing();
6578: oslSwapBuffers();
6579: oslWaitVSync();
6580: }
6581: creepypasta(i);
6582: vies--;
6583: }
6584: else
6585: {
6586: vies=-1;
6587: }
6588: }
6589: else
6590: {
6591: fadeout();
6592: if (round==1) ben();
6593: round++;
6594: }
6595: if ((vies > 0) && (round < 3))
6596: {
6597: taunt(random(12));
6598: }
6599: }
6600:
6601: break;
6602: }
6603:
6604: case 1:
6605: {
6606: chd++;
6607: break;
6608: }
6609:
6610: case 2:
6611: {
6612: f=-1;
6613: oslStopSound(theme);
6614:
6615:
6616: h=100;
6617:
6618: credz();
6619:
6620: /*if (DEBUG)
6621: {
6622: sonicexe(chd+1);
6623: }
6624: else
6625: {
6626: credz();
6627: }*/
6628: break;
6629: }
6630:
6631: case 3:
6632: {
6633: ch=137;
6634: quit=1;
6635: break;
6636: }
6637: }
6638: }
6639: oslEndDrawing();
6640: oslSwapBuffers();
6641: oslWaitVSync();
6642: }
6643: }
6644:
6645: fadeout();
6646: al_show_mouse_cursor(display);
6647: al_destroy_display(display);
6648:
6649: return 0;
6650: }