xgalaga-2.1.1.0/0000755000175000001440000000000010763613570012634 5ustar hermannusersxgalaga-2.1.1.0/main.c0000644000175000001440000012411310763613570013726 0ustar hermannusers/* Copyright (c) 1995-1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" /* * main.c for XGalaga */ #include #include #include #include #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_UNISTD_H # include #endif #include "libsprite/Wlib.h" #include "struct.h" #include "data.h" #include "images.h" #include "defs.h" #include "paths.h" #include "proto.h" #include "sound.h" struct torp torps[MAXTORPS]; struct star stars[NUMSTARS]; struct torp *first_etorp=0; static int convoyx = 0, convoymove = 1; static int livecount = 0; static int starspeed = 1; static int attacking = 0, maxattacking, entering=0; static int maxetorps = 5, numetorps=0; static int plflash = 50; static int fullscreen = 0; #ifndef ORIGINAL_XGALAGA static int shots = 0; static int hits = 0; #endif #define convoy_x_pos(i) (convoyx+(20 * (i - 10 * (i/10)))) #define convoy_y_pos(i) (20 + (20*(i/10))) static int moves[16][2] = { {0,-4}, {1,-4}, {3,-3}, {4,-1}, {4,0}, {4,1}, {3,3}, {1,4}, {0,4}, {-1,4}, {-3,3}, {-4,1}, {-4,0}, {-4,-1}, {-3,-3}, {-1,-4} }; void xgal_exit(int v) { /* W_AutoRepeatOn();*/ /* Destroy our main window so the fullscreen mode gets unset if we're running fullscreen. (We should really clean up much more here!) */ W_DestroyWindow(shellWin); #ifdef SOUND kill_sound(); #endif /* sleep(1);*/ /* Without this, the auto-repeat request fails on my machine... */ /* Note if we ever need this autorepeat thingie again, the sleep can and should be replaced by a call to XSync() */ exit(v); } static void print_usage() { #ifdef SOUND #define PRINT_SOUND "-nosound Turn sound OFF\n" #else #define PRINT_SOUND "" #endif printf("\ XGalaga v%s\n\ Copyright (c) 1995-1998 Joe Rumsey\n\ Contributions by Hermann Riedel\n\ Command line options:\n\ -scores Prints out the high score files and exits\n\ -display Set your display\n\ -mouse Use mouse control (same as 'm' at the title screen)\n\ -keyboard Use keyboard control (same as 'k')\n%s\ -level Choose starting level (>= 1)\n\ -window Start in windowed mode instead of fullscreen\n\ -winsize Window size (default 468 x 596)\n\ -b turn buffered mode off, use this if it runs\n\ too slowly. Will cause flicker, maybe lots,\n\ maybe only a little.\n\ \n\ This game is now free software, under the GPL\n\ \n\ Basic instructions:\n\ It's Galaga, you know how to play Galaga, stop bothering me.\n\ (Ship follows the mouse, button fires. Auto-fire by holding it\n\ down, so no-one accuses me of breaking their mouse!)\n\ \n\ Keyboard commands:\n\ \n\ p - pauses\n\ q - end this game\n\ b - Toggle buffering (flicker vs. speed.)\n\ alt + enter - Toggle fullscreen - window\n", VERSION, PRINT_SOUND ); } /*------------------stars-----------------*/ static void init_stars() { int i; for(i=0;i= WINHEIGHT) { stars[i].y-=WINHEIGHT+starspeed; stars[i].x = random() % WINWIDTH; switch(random()%5) { case 0: stars[i].color = W_White; break; case 1: stars[i].color = W_Green; break; case 2: stars[i].color = W_Cyan; break; case 3: stars[i].color = W_Red; break; default: stars[i].color = W_Yellow; break; } } W_DrawPoint(baseWin, stars[i].x, stars[i].y, stars[i].color); } #ifdef SHOW_SHIELD_BAR if ((plshield > 0) || (shieldsleft > 0)) { int shieldcount = 0; int total_shields = (plshield + shieldsleft) * 19 / SHIELDTIME + 1; while (total_shields > 0) { shieldcount++; total_shields -= 19; W_DrawImage(baseWin, WINWIDTH - 20 * shieldcount, 0, 0, shieldImage, W_Cyan); } while (total_shields < 0) { int column; column = WINWIDTH - 20 * shieldcount - total_shields++; W_MakeLine(baseWin, column, 0, column, 20, W_Black); W_MakeLine(baseWin, column - 1, 0, column - 1, 20, W_Black); } } #endif /* SHOW_SHIELD_BAR */ } if(starspeed != 1) { char buf[20]; #ifndef ORIGINAL_XGALAGA int y; #endif drewlevel = 1; sprintf(buf, "LEVEL %d", level+1); #ifndef ORIGINAL_XGALAGA y = WINHEIGHT/2-W_BigTextheight/2; #endif W_MaskText(baseWin, WINWIDTH/2 - (W_StringWidth(buf, W_BigFont)/2), WINHEIGHT/2-W_BigTextheight/2, W_Red, buf, strlen(buf), W_BigFont); #ifndef ORIGINAL_XGALAGA if (shots > 0) { int x = WINWIDTH/2 - 14 * W_Textwidth; y += W_BigTextheight + 20; sprintf(buf, "Torps: %d Hits: %d", shots, hits); W_MaskText(baseWin, x, y, W_Yellow, buf, strlen(buf), W_RegularFont); x += 23 * W_Textwidth; sprintf(buf, "(%d%%)", 100 * hits / shots); W_MaskText(baseWin, x, y, W_Green, buf, strlen(buf), W_RegularFont); } #endif } } /*-------------------aliens---------------*/ static void delete_etorps() { struct torp *tmp; while(first_etorp) { tmp = first_etorp->next; free(first_etorp); first_etorp = tmp; } } static void init_aliens(int level) { int i; convoyx=0; convoymove = 1; maxattacking = 1 + (level*2); if(maxattacking > 30) maxattacking = 30; attacking = 0; maxetorps = 10 + (level*5); numetorps = 0; delete_etorps(); metaLevel = 1; if(read_level(level) <= 0) { fprintf(stderr, "Error reading level %d\n", level); exit(0); } for(i=0;iwidth/2), aliens[i].y-(aliens[i].shape->height/2), aliens[i].shape->width, aliens[i].shape->height); if(aliens[i].dying) { aliens[i].alive = 0; aliens[i].dying=0; } } } static void do_escort(int i) { int fs = aliens[i].escorting; if(!aliens[fs].alive) { aliens[i].escorting = -1; } else if(aliens[fs].dir >= 0) { aliens[i].dir = aliens[fs].dir; } else { aliens[i].x = 20 * (i - 10 * (i/10)) + convoyx + convoymove; aliens[i].y = -10; aliens[i].dir = -2; aliens[i].path = -1; aliens[i].steer = 2; aliens[i].escorting = -1; } } static void do_convoy(int i) { aliens[i].x += convoymove; if((entering == 0) && (attacking < maxattacking) && ((livecount < maxattacking) || ((random()%10000) < (level + 2 *(48-(livecount)))))) { switch(random()%2) { case 0: path_dir(P_PEELLEFT, 0, &aliens[i].dir, &aliens[i].steer); aliens[i].path = P_PEELLEFT; break; case 1: path_dir(P_PEELRIGHT, 0, &aliens[i].dir, &aliens[i].steer); aliens[i].path = P_PEELRIGHT; break; } aliens[i].path_pos = 0; attacking++; if(i<10) { /* Flagship, grab escorts */ int e; for(e=i+9;enext = first_etorp; if(t->next) t->next->prev = t; t->prev = 0; first_etorp = t; t->x = x; t->y = y; t->xspeed = xs; t->yspeed = ys; t->alive = 1; t->frame = 0; numetorps++; } static void do_enter(int i) { int diffx, diffy; int tc; if(aliens[i].enterdelay) { aliens[i].enterdelay--; return; } if(aliens[i].path >= 0) { aliens[i].x += moves[aliens[i].dir][0] + metaLevel * moves[aliens[i].dir][0]/2; aliens[i].y += moves[aliens[i].dir][1] + metaLevel * moves[aliens[i].dir][1]/2; aliens[i].steer--; if(aliens[i].steer <= 0) { aliens[i].path_pos++; enter_path_dir(aliens[i].path, aliens[i].path_pos, &aliens[i].dir, &aliens[i].steer); if(metaLevel > 1) aliens[i].steer = aliens[i].steer / (1 + ((metaLevel - 1) * .5)); /*aliens[i].steer -= ((metaLevel - 1) * (aliens[i].steer / 3));*/ if(aliens[i].dir < 0) { aliens[i].path = -1; } } tc = TORPCHANCE - level/2 - weapon*5; if(tc < 35) tc = 35; if(numetorps < maxetorps && (!(random()%tc))) { int xs, ys; /* could aim better, not sure it should! */ if(aliens[i].x > plx + 200) { xs = -3; } else if(aliens[i].x > plx + 100) { xs = -2; } else if(aliens[i].x < plx - 200) { xs = 3; } else if(aliens[i].x < plx - 100) { xs = 2; } else { xs = 0; } ys = (ETORPSPEED+level/5) - ABS(xs); new_etorp(aliens[i].x, aliens[i].y, xs, ys); } } else { diffx = ABS(convoy_x_pos(i) - aliens[i].x); diffy = ABS(convoy_y_pos(i) - aliens[i].y); if(diffy< 4 + (metaLevel * 2)) { aliens[i].y = convoy_y_pos(i); if(diffx < 4 + (metaLevel * 2)) { aliens[i].x = convoy_x_pos(i); aliens[i].dir = -1; aliens[i].entering = 0; return; } aliens[i].dir = 0; if(convoy_x_pos(i) > aliens[i].x) aliens[i].dir = 4; else aliens[i].dir = 12; } else { if(convoy_y_pos(i) < aliens[i].y) { if(diffx < 4 + (metaLevel * 2)) { aliens[i].x = convoy_x_pos(i); aliens[i].dir = 0; } else { if(convoy_x_pos(i) > aliens[i].x) aliens[i].dir = 2; else aliens[i].dir = 14; } } else { if(diffx < 4 + (metaLevel * 2)) { aliens[i].x = convoy_x_pos(i); aliens[i].dir = 8; } else { if(convoy_x_pos(i) > aliens[i].x) aliens[i].dir = 6; else aliens[i].dir = 10; } } } aliens[i].x += moves[aliens[i].dir][0] + metaLevel * moves[aliens[i].dir][0]/2; aliens[i].y += moves[aliens[i].dir][1] + metaLevel * moves[aliens[i].dir][1]/2; } } static void do_aliens() { int i, j; int tc; if(!paused) { convoyx += convoymove; if(convoyx <= 0) { convoyx=0; convoymove = -convoymove; } else if(convoyx >= (WINWIDTH-180)) { convoyx = WINWIDTH - 180; convoymove = -convoymove; } } livecount=0; attacking = 0; for(i=0, livecount=0, entering=0; i < MAXALIENS; i++) { if(aliens[i].alive) { livecount++; if(aliens[i].dir >= 0 && aliens[i].escorting < 0 && !(aliens[i].entering)) attacking++; if(aliens[i].entering) entering++; } } for(i=0; i < MAXALIENS; i++) { if(aliens[i].alive) { if(!paused) { if(aliens[i].escorting >= 0) { do_escort(i); } if(aliens[i].entering) { do_enter(i); } else if(aliens[i].dir == -1) { do_convoy(i); } else if(aliens[i].dir == -2) { aliens[i].x += convoymove; aliens[i].y+=2; if(aliens[i].y >= 20 + (20*(i/10))) { aliens[i].y = 20 + (20*(i/10)); aliens[i].dir = -1; } } else { aliens[i].x += moves[aliens[i].dir][0]; aliens[i].y += moves[aliens[i].dir][1]; if(aliens[i].x > WINWIDTH+20) aliens[i].x = -20; else if(aliens[i].x < -20) aliens[i].x = WINWIDTH+20; if(aliens[i].y > WINHEIGHT) { aliens[i].x = 20 * (i - 10 * (i/10)) + convoyx + convoymove; aliens[i].y = -30; aliens[i].dir = -2; aliens[i].path = -1; aliens[i].steer = 2; aliens[i].escorting = -1; attacking--; if(i < 10) { for(j=i+9;j= 0) { int lastdir=aliens[i].dir; aliens[i].path_pos++; path_dir(aliens[i].path, aliens[i].path_pos, &aliens[i].dir, &aliens[i].steer); if(aliens[i].dir < 0) { aliens[i].dir = lastdir; newpath: switch(random()%8) { case 0: start_path(P_LOOP, &aliens[i]); break; case 1: start_path(P_SWOOP1, &aliens[i]); break; case 2: start_path(P_SWOOP2, &aliens[i]); break; case 3: start_path(P_ZIGZAG, &aliens[i]); break; case 4: start_path(P_LOOP2, &aliens[i]); break; case 5: start_path(P_SPIN, &aliens[i]); break; case 6: start_path(P_LEFTDIAG, &aliens[i]); break; case 7: start_path(P_RIGHTDIAG, &aliens[i]); break; default: aliens[i].steer = TURNSPEED; aliens[i].path = -1; } if((aliens[i].path < 0) || (aliens[i].steer < 0)) { goto newpath; } } } else { if(random()%2) { aliens[i].dir++; if(aliens[i].dir > 15) aliens[i].dir = 0; } else { aliens[i].dir--; if(aliens[i].dir < 0) aliens[i].dir = 15; } aliens[i].steer = TURNSPEED; } } } tc = TORPCHANCE - level/2 - weapon*5; if(tc < 35) tc = 35; if(numetorps < maxetorps && (!(random()%tc))) { int xs, ys; /* could aim better, not sure it should! */ if(aliens[i].x > plx + 200) { xs = -3; } else if(aliens[i].x > plx + 100) { xs = -2; } else if(aliens[i].x < plx - 200) { xs = 3; } else if(aliens[i].x < plx - 100) { xs = 2; } else { xs = 0; } ys = (ETORPSPEED+level/5) - ABS(xs); new_etorp(aliens[i].x, aliens[i].y, xs, ys); } } W_DrawImage(baseWin, aliens[i].x-(aliens[i].shape->width/2), aliens[i].y-(aliens[i].shape->height/2), aliens[i].dir < 0 ? 0 : aliens[i].dir, aliens[i].shape, W_Green); } else { /* paused */ W_DrawImage(baseWin, aliens[i].x-(aliens[i].shape->width/2), aliens[i].y-(aliens[i].shape->height/2), aliens[i].dir < 0 ? 0 : aliens[i].dir, aliens[i].shape, W_Green); } } } if(livecount == 0 && !paused) { starspeed++; #ifdef SOUND if(starspeed == 2) play_sound(SND_WARP); #endif if(starspeed >= 120) { starspeed = -20; } else if(starspeed == 1) { init_aliens(++level); gotlemon = 0; starspeed = 1; numtorps=0; } } } /*------------------player----------------*/ static void init_player() { int i; for(i=0;iwidth/2), torps[i].y-(playerTorp->height/2), playerTorp->width, playerTorp->height+1); } } } static void do_torps() { int i,j,k, ne; for(i=0;i= 0) attacking--; torps[i].alive=0; numtorps--; if(j >= 10) { if(aliens[j].dir < 0) score += 50; else { score += (6-(j/10))*100; if(!(random()%(gotlemon ? 3 : PRIZECHANCE))) new_prize(aliens[j].x, aliens[j].y); } new_explosion(aliens[j].x, aliens[j].y, 0); } else { if(aliens[j].dir < 0) score += 200; else { ne=0; /* count how many escorts */ for(k = j+9;k < j+12; k++) { if(aliens[k].escorting == j) ne++; } score_flagship(aliens[j].x, aliens[j].y, ne); } new_explosion(aliens[j].x, aliens[j].y, 1); } goto skip; } } if(torps[i].y < -torps[i].yspeed || torps[i].x < ABS(torps[i].xspeed) || torps[i].x > WINWIDTH-ABS(torps[i].xspeed)) { torps[i].alive = 0; numtorps--; } else W_DrawImage(baseWin, torps[i].x-(playerTorp->width/2), torps[i].y-(playerTorp->height/2), torps[i].frame, playerTorp, W_Red); skip: ; } else {/* paused */ W_DrawImage(baseWin, torps[i].x-(playerTorp->width/2), torps[i].y-(playerTorp->height/2), torps[i].frame, playerTorp, W_Red); } } } } static void do_etorps() { struct torp *t = first_etorp, *nextt; while(t) { nextt=t->next; if(t->alive) { if(!paused) { t->y+=t->yspeed; t->x+=t->xspeed; t->frame++; if(t->y > WINHEIGHT || t->x < 0 || t->x > WINWIDTH) { if(t->next) t->next->prev = t->prev; if(t->prev) t->prev->next = t->next; if(t == first_etorp) first_etorp = t->next; free(t); numetorps--; } else if(!pldead && !plflash && !plshield && (ABS(t->x - plx) < 8) && (ABS(t->y - (WINHEIGHT - (int)playerShip->height / 2)) < 8)) { /* DEAD! */ pldead = 1; new_explosion(plx, WINHEIGHT - playerShip->height/2, 2); } else { W_DrawImage(baseWin, t->x-(enemyTorp->width/2), t->y-(enemyTorp->height/2), t->frame, enemyTorp, W_Red); } } else { W_DrawImage(baseWin, t->x-(enemyTorp->width/2), t->y-(enemyTorp->height/2), t->frame, enemyTorp, W_Red); } } t = nextt; } } static void undo_etorps() { struct torp *t = first_etorp; while(t) { W_CacheClearArea(baseWin, t->x-(enemyTorp->width/2), t->y-(enemyTorp->width/2), enemyTorp->width, enemyTorp->height); t=t->next; } } static void undo_player() { int y = WINHEIGHT - playerShip->height, h = playerShip->height; if(plshield) { y -= 3; h += 3; } W_CacheClearArea(baseWin, plx-(playerShip->width/2), y, playerShip->width, h); } static void do_player(mx, my, but) int mx, my, but; { static int torpok; #ifdef ENABLE_MACHINE_GUN static int shotside = 0; #endif W_Event wev; static int keys = 0; if(gameOver) { while(W_EventsPending()) { W_NextEvent(&wev); if(gameOver) mouseControl = 1; switch(wev.type) { case W_EV_KEY: if(score_key(&wev)) continue; switch(wev.key) { case 'q': case 'Q': case 256+'Q': //369: case 256+'q': //337: xgal_exit(0); break; case 'm': case 256+'m': //365: mouseControl = 2; break; case 'k': case 256+'k': //363: mouseControl = 0; W_UngrabPointer(); break; case '\r'+256: W_ToggleFullscreen(shellWin); fullscreen = !fullscreen; if (fullscreen) W_BlankCursor(baseWin); else W_RevertCursor(baseWin); return; break; #ifdef SOUND case 's': /* toggle sound on the title screen */ case 256+'s': playSounds = !playSounds; return; /* this key must not start the game */ break; #endif default: /*printf ("1keyevent %d\n", wev.key); */ return; /* unhandled key must not cause any action */ break; } if(mouseControl < 2) mouseControl = 0; case W_EV_BUTTON: if(!getting_name) { if(mouseControl) W_GrabPointer(baseWin); gameOver = 0; maxtorps = MINTORPS; weapon = 0; movespeed = MINSPEED; ships=2; #ifdef ACTIVATED_SHIELD shieldsleft = STARTSHIELDS; shieldon = 0; #else shieldsleft = 0; #endif level=startLevel; /* change made here */ init_aliens(level); gotlemon = 0; pldead = 0; score = 0; nextBonus = 20000; plx = WINWIDTH/2; W_ClearWindow(baseWin); } break; case W_EV_EXPOSE: if (wev.Window == shellWin) draw_score(); break; default: /*printf ("2keyevent %d\n", wev.key);*/ break; } } return; } while(W_EventsPending()) { W_NextEvent(&wev); switch(wev.type) { case W_EV_KEY_OFF: switch(wev.key) { case 'f'+128: keys &= ~(RIGHTKEY); break; case 'b'+128: keys &= ~(LEFTKEY); break; case ' ': case 256+' ': //288: keys &= ~(FIREKEY); break; #ifdef ACTIVATED_SHIELD case 'x': case 256+'x': shieldsleft += plshield; plshield = 0; shieldon = 0; break; #endif } break; case W_EV_KEY: switch(wev.key) { case 'f'+128: keys |= RIGHTKEY; break; case 'b'+128: keys |= LEFTKEY; break; case ' ': case 256+' ': //288: keys |= FIREKEY; break; case 'k': case 256+'k': //363: mouseControl = 0; W_UngrabPointer(); break; case 'm': case 256+'m': //365: mouseControl = 1; W_GrabPointer(baseWin); break; #ifdef ACTIVATED_SHIELD case 'x': case 256+'x': plshield += shieldsleft; shieldsleft = 0; shieldon = 1; break; #endif case 'q': case 256+'q': //369: if(!pldead && !paused) { new_explosion(plx, WINHEIGHT - ((playerShip->height)/2), 2); ships = 0; pldead = 1; } break; case 'Q': case 256+'Q': //337: xgal_exit(0); break; case 'b': case 256+'b': //354: W_Buffer(baseWin, !W_IsBuffered(baseWin)); W_ClearWindow(baseWin); break; case 'p': case 256+'p': //368: paused=!paused; if(!paused) { undo_pause(); if(mouseControl) W_GrabPointer(baseWin); } else W_UngrabPointer(); break; #ifdef SOUND case 's': case 256+'s': //371: playSounds = !playSounds; break; #endif #ifdef IM_A_BIG_FAT_CHEATER case 'i': case 256+'i': //361: if(plflash >= 0) plflash = -2; else plflash = 0; break; case 'l': case 256+'l': //364: { int i; for(i=0;i MAXTORPS) maxtorps = MINTORPS; break; #endif /* IM_A_BIG_FAT_CHEATER */ case '\r'+256: W_ToggleFullscreen(shellWin); fullscreen = !fullscreen; if (fullscreen) W_BlankCursor(baseWin); else W_RevertCursor(baseWin); break; default: /*printf ("3keyevent %d\n", wev.key);*/ break; } case W_EV_EXPOSE: if (wev.Window == shellWin) draw_score(); break; } } if(!paused) { torpok--; if((!mouseControl && ! js_device) || (js_device && mx == plx && but == 0)) { if(keys & LEFTKEY) mx = 0; else if(keys & RIGHTKEY) mx = WINWIDTH; else mx = plx; if(keys & FIREKEY) but = W_LBUTTON; else but = 0; } if(pldead) { pldead++; if(pldead >= 100) { if(ships<=0) { gameOver = 1; W_UngrabPointer(); if(check_score(score)) { #ifdef USE_REAL_NAMES add_score(getUsersFullName(), score); title_page = 1; pagetimer = 300; #else getting_name = 1; #endif } } else { #ifdef DISABLE_RESET_ON_DEATH ships--; maxtorps--; if (maxtorps < MINTORPS) maxtorps = MINTORPS; switch (weapon) { case SINGLESHOT: if (maxtorps < 3) { maxtorps = 3; weapon = SINGLESHOT; } break; case DOUBLESHOT: if (maxtorps < 4) { maxtorps = 4; } break; case SPREADSHOT: if (maxtorps < 5) { maxtorps = 5; } break; case TRIPLESHOT: if (maxtorps < 6) { maxtorps = 6; } break; case MACHINEGUN: if (maxtorps < 3) { maxtorps = 3; } break; } #else ships--; maxtorps = MINTORPS; weapon = 0; movespeed = MINSPEED; #endif /* DISABLE_RESET_ON_DEATH */ pldead = 0; plflash = 50; plx = WINWIDTH/2; } } return; } if(but && torpok <= 0 && (starspeed == 1)) { switch(weapon) { case SINGLESHOT: if(numtorps < maxtorps) new_torp(plx, WINHEIGHT - playerShip->height, 0, -TORPSPEED); torpok = TORPDELAY; break; case DOUBLESHOT: if(numtorps < maxtorps-1) { new_torp(plx-5, WINHEIGHT - playerShip->height, 0, -TORPSPEED); new_torp(plx+5, WINHEIGHT - playerShip->height, 0, -TORPSPEED); torpok = TORPDELAY; } break; case TRIPLESHOT: if(numtorps < maxtorps-2) { new_torp(plx-5, WINHEIGHT - playerShip->height, -2, 1-TORPSPEED); new_torp(plx, WINHEIGHT - playerShip->height, 0, -TORPSPEED); new_torp(plx+5, WINHEIGHT - playerShip->height, 2, 1-TORPSPEED); torpok = TORPDELAY; } break; #ifdef ENABLE_SPREAD_SHOT case SPREADSHOT: if (numtorps == 0) { if ((maxtorps % 2) == 1) new_torp(plx, WINHEIGHT - playerShip->height, 0, -TORPSPEED*1.15); else { new_torp(plx - 5, WINHEIGHT - playerShip->height, 0, -TORPSPEED*1.15); new_torp(plx + 5, WINHEIGHT - playerShip->height, 0, -TORPSPEED*1.15); } if (maxtorps > 2) { new_torp(plx, WINHEIGHT - playerShip->height - 15, -2, -TORPSPEED*1.15); new_torp(plx, WINHEIGHT - playerShip->height - 15, 2, -TORPSPEED*1.15); } if (maxtorps > 4) { new_torp(plx, WINHEIGHT - playerShip->height - 25, -4, -TORPSPEED*1.15); new_torp(plx, WINHEIGHT - playerShip->height - 25, 4, -TORPSPEED*1.15); } if (maxtorps > 6) { new_torp(plx, WINHEIGHT - playerShip->height - 35, -6, -TORPSPEED*1.15); new_torp(plx, WINHEIGHT - playerShip->height - 35, 6, -TORPSPEED*1.15); } if (maxtorps > 8) { new_torp(plx, WINHEIGHT - playerShip->height - 50, -8, -TORPSPEED*1.15); new_torp(plx, WINHEIGHT - playerShip->height - 50, 8, -TORPSPEED*1.15); } if (maxtorps > 10) { new_torp(plx, WINHEIGHT - playerShip->height - 60, -10, -TORPSPEED*1.15); new_torp(plx, WINHEIGHT - playerShip->height - 60, 10, -TORPSPEED*1.15); } torpok = TORPDELAY; } break; #endif /* ENABLE_SPREAD_SHOT */ #ifdef ENABLE_MACHINE_GUN case MACHINEGUN: if(numtorps < maxtorps) { shotside = (shotside == -15) ? 15 : -15; new_torp(plx + shotside, WINHEIGHT - playerShip->height, 0, -TORPSPEED * 1.3); torpok = TORPDELAY - 2; } break; #endif /* ENABLE_MACHINE_GUN */ } } if(!but) torpok=0; if((mx/movespeed) > (plx/movespeed)) plx+=movespeed; else if((mx/movespeed) < (plx/movespeed)) plx-=movespeed; #ifdef ENABLE_SHIP_WRAP if(plx < 10) plx=WINWIDTH - 10; if(plx > WINWIDTH - 10) plx=10; #else if(plx < playerShip->width/2) plx=playerShip->width/2; if(plx> WINWIDTH - playerShip->width/2) plx=WINWIDTH - playerShip->width/2; #endif if(plflash > 0) plflash--; if(!(plflash % 2)) W_DrawImage(baseWin, plx-(playerShip->width/2), WINHEIGHT - playerShip->height, counter, playerShip, W_Red); if(plshield > 0) plshield--; if(plshield && ((plshield > SHIELDTIME/4) || plshield % 2)) { W_DrawImage(baseWin, plx-(shieldImage->width/2), WINHEIGHT - shieldImage->height - 3, 0, shieldImage, W_Cyan); } } else if (!pldead) { /* paused */ W_DrawImage(baseWin, plx-(playerShip->width/2), WINHEIGHT - playerShip->height, counter, playerShip, W_Red); } } int main(argc, argv) int argc; char **argv; { int ac; char *dpyname = 0; int mx, my, but; int start_fullscreen = 1; for(ac = 1; ac < argc; ac++) { if(*argv[ac] == '-') { int w, h; if(strcmp(argv[ac], "-scores") == 0) { print_scores(); exit(0); } if(strcmp(argv[ac], "-display") == 0 && (ac+1 < argc)) { dpyname = argv[ac+1]; ac++; } else if (strcmp(argv[ac], "-b") == 0) { useBuffered = !useBuffered; } else if (strcmp(argv[ac], "-keyboard") == 0) { mouseControl = 0; } else if (strcmp(argv[ac], "-mouse") == 0) { mouseControl = 1; #ifdef SOUND } else if (strcmp(argv[ac], "-nosound") == 0) { playSounds = 0; #endif /* '-level' option defined here */ } else if (strcmp(argv[ac], "-level") == 0 && (ac+1 < argc) && atoi(argv[ac+1]) >= 1) { int nlev; nlev = atoi(argv[ac+1]); if (nlev > 15 ) nlev = 15; startLevel = nlev; ac++; } else if (strcmp(argv[ac], "-nostars") == 0) { wantStars = 0; } else if (strcmp(argv[ac], "-nouseor") == 0) { useOR = 0; } else if (strcmp(argv[ac], "-noclipmask") == 0) { useClipMask = 0; } else if (strcmp(argv[ac], "-window") == 0) { start_fullscreen = 0; } else if ((strcmp(argv[ac], "-winsize") == 0) && (++ac < argc) && (sscanf(argv[ac], "%dx%d", &w, &h) == 2)) { WINWIDTH = w; WINHEIGHT = h; } else { print_usage(); exit(0); } } else { print_usage(); exit(0); } } W_Initialize(dpyname); backColor = W_Black; WINHEIGHT -= (W_Textheight+1); shellWin = W_MakeWindow("XGalaga", 0, 0, WINWIDTH, WINHEIGHT + W_Textheight+1, 0, "tiny", 0, W_White); baseWin = W_MakeWindow("", 0, W_Textheight+1, WINWIDTH, WINHEIGHT, shellWin, "tiny", 0, W_White); W_Buffer(shellWin, 0); W_MapWindow(shellWin); W_MapWindow(baseWin); if (start_fullscreen) { W_ToggleFullscreen(shellWin); W_BlankCursor(baseWin); fullscreen = 1; } /* W_AutoRepeatOff();*/ W_Flush(); W_SetImageDir(IMAGEDIR); playerShip = getImage(I_PLAYER1); playerTorp = getImage(I_MTORP); enemyTorp = getImage(I_ETORP); shieldImage = getImage(I_SHIELD); level=startLevel; /* change made here */ load_scores(); init_titles(); init_player(); init_stars(); init_explosions(); init_score(); init_prizes(); #ifdef SOUND init_sound(); /* starts the soundserver */ #endif init_aliens(level); init_framerate(); #ifdef __linux__ init_joystick(); #endif ships = 2; nextBonus = 20000; while(1) { counter++; /* For the benefit of unbuffered mode, the most important things are * erased/redrawn closest together so they spend the least time blanked. * player, aliens and etorps are most important for game play. * pause, title and name are important in their modes and aren't done * otherwise. * * The title, name, pause and score "extra ship" want to overlay * everything else drawn, so they come last. */ undo_stars(); undo_explosions(); undo_prizes(); undo_torps(); undo_etorps(); undo_aliens(); undo_player(); if(gameOver && getting_name) undo_name(); if(paused) undo_pause(); undo_score(); W_FlushClearAreaCache(baseWin); do_etorps(); do_player(mx, my, but); do_aliens(); do_torps(); do_prizes(); do_explosions(); do_stars(); do_score(); if(gameOver) { do_title(); if(getting_name) do_name(); } if(paused) do_pause(); W_DisplayBuffer(baseWin); /* This is an XSync style round trip to the server with the bonus of * getting the mouse position. * If the server can't draw at the UTIMER frame rate then this will be * the only delay in the loop. */ W_GetMouse(baseWin, &mx, &my, &but); #ifdef __linux__ do_joystick(&mx, &my, &but); #endif do_framerate(); } return (0); } xgalaga-2.1.1.0/images.c0000644000175000001440000057121710763613570014262 0ustar hermannusers/* images.c. Contains the image control data. [BDyess] */ /* automatically created by scripts/mkimgsrc */ #include #include #include "Wlib.h" #include "images.h" #include "struct.h" #include "proto.h" /* compiled in images in alphabetical order, XBM before XPM. [BDyess] */ /* XPM */ static char * al_xpm[] = { "20 20 6 1", " c #000000000000", ". c #FFFF8E8E5757", "X c #BFBF6A6A4141", "o c #FFFF84848E8E", "O c #BFBF63636A6A", "+ c #FFFFFFFFFFFF", " ", " ", " ", " . . . . ", " X...X X...X ", " .. .. ", " X.XooooX.X ", " X. oo .X ", " . oo . ", " OooOo++++oOooO ", " oOOOooooooOOOo ", " +oooo+ ", " OoO++++OoO ", " oO Oo ", " oO Oo ", " ", " ", " ", " ", " "}; /* XPM */ static char * alien1_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #900000", "b c #C00000", "c c #F0F000", "d c #F00000", "e c #A0A000", "f c #606000", /* pixels */ "````````````````````", "`````````fef````````", "```````fef`fef``````", "````````fcecf```````", "`````````fcf````````", "`````````fef````````", "`````````fef````````", "`````````fcf````````", "`````````fcf````````", "`````````ece````````", "```````e`ece`e``````", "``````fefcccfef`````", "`````f`ceacaec`f````", "`````ecfebebefce````", "````fef`bbfbb`fef```", "````fcf``ddd``fcf```", "````ef`````````fe```", "````f```````````f```", "````````````````````", "````````````````````", "````````````````````", "``````````f``f``````", "```````````efef`````", "```````````fc`fe````", "```````````fcecff```", "```````````fef``````", "```````````fef``````", "``````````fcf```````", "``````````fcf```````", "``````fe`ecef```````", "`````f`efece````````", "```fecceaccc`e``````", "```feffebcafef``````", "``ecf``bbebec```````", "``ff```dfbbefcf`````", "````````dd``fe``````", "````````````fef`````", "````````````fcf`````", "`````````````e``````", "`````````````f``````", "````````````````````", "````````````````````", "``````````````f`````", "``````````````eff```", "``````````````cf`f``", "`````````````ffeff``", "````````````ffcfcef`", "```````````ffeff````", "```f`fffe`efcff`````", "``ffec`efeecff``````", "`eecfffecccee```````", "`ff`f`bbacce````````", "``````bbeacfe```````", "``````dfbbeef```````", "```````dbbf`f```````", "``````````fcf```````", "`````````ffe````````", "``````````cff```````", "`````````fef````````", "`````````fe`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````f```", "````````````````fe``", "```ff`f`````````cff`", "`feceec`fe````ffe`e`", "```ffffce``fffeeccf`", "``````eefceeccffffe`", "``````bbacccff`````f", "`````dbeccee````````", "`````dfbbaf`````````", "``````dbeeee````````", "````````fc`f````````", "````````fcf`````````", "```````fee``````````", "``````fcff``````````", "``````fe````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```feff`````````````", "````fceef```````````", "`````ffc`f``````````", "```````fcee```````f`", "``````beef```````fe`", "`````dbbaceefffffcff", "`````dfecccccceece`e", "`````dbbaceefffffcff", "``````beef```````fe`", "```````fcee```````f`", "`````ffc`f``````````", "````fceef```````````", "```feff`````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````fe````````````", "``````fcff``````````", "```````fee``````````", "````````fcf`````````", "````````fc`f````````", "``````dbeeee````````", "`````dfbbaf`````````", "`````dbeccee````````", "``````bbacccff`````f", "``````eefceeccffffe`", "```ffffce``fffeeccf`", "`feceec`fe````ffe`e`", "```ff`f`````````cff`", "````````````````fe``", "````````````````f```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````fe`````````", "`````````fef````````", "``````````cff```````", "`````````ffe````````", "``````````fcf```````", "```````dbbf`f```````", "``````dfbbeef```````", "``````bbeacfe```````", "`ff`f`bbacce````````", "`eecfffecccee```````", "``ffec`efeecff``````", "```f`fffe`efcff`````", "```````````ffeff````", "````````````ffcfcef`", "`````````````ffeff``", "``````````````cf`f``", "``````````````eff```", "``````````````f`````", "````````````````````", "````````````````````", "`````````````f``````", "`````````````e``````", "````````````fcf`````", "````````````fef`````", "````````dd``fe``````", "``ff```dfbbefcf`````", "``ecf``bbebec```````", "```feffebcafef``````", "```fecceaccc`e``````", "`````f`efece````````", "``````fe`ecef```````", "``````````fcf```````", "``````````fcf```````", "```````````fef``````", "```````````fef``````", "```````````fcecff```", "```````````fc`fe````", "```````````efef`````", "``````````f``f``````", "````````````````````", "````````````````````", "````````````````````", "````f```````````f```", "````ef`````````fe```", "````fcf``ddd``fcf```", "````fef`bbfbb`fef```", "`````ecfebebefce````", "`````f`ceacaec`f````", "``````fefcccfef`````", "```````e`ece`e``````", "`````````ece````````", "`````````fcf````````", "`````````fcf````````", "`````````fef````````", "`````````fef````````", "`````````fcf````````", "````````fcecf```````", "```````fef`fef``````", "`````````fef````````", "````````````````````", "```````f````````````", "```````e````````````", "``````fcf```````````", "``````fef```````````", "```````ef``dd```````", "``````fcfebbfd```ff`", "````````cebebb``fce`", "```````fefacbeffef``", "```````e`cccaeccef``", "`````````ecefe`f````", "````````fece`ef`````", "````````fcf`````````", "````````fcf`````````", "```````fef``````````", "```````fef``````````", "````ffcecf``````````", "`````ef`cf``````````", "``````fefe``````````", "```````f``f`````````", "````````````````````", "``````````ef````````", "`````````fef````````", "````````ffc`````````", "`````````eff````````", "````````fcf`````````", "````````f`fbbd``````", "````````feebbfd`````", "````````efcaebb`````", "`````````eccabb`f`ff", "````````eecccefffcee", "```````ffceefe`ceff`", "``````ffcfe`efff`f``", "`````ffeff``````````", "``fecfcff```````````", "```ffeff````````````", "```f`fc`````````````", "````ffe`````````````", "``````f`````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````ef`````", "```````````ffcf`````", "```````````eef``````", "``````````fcf```````", "`````````f`cf```````", "`````````eeeebd`````", "``````````fabbfd````", "`````````eeccebd````", "`f`````ffcccabb`````", "``effffcceecfee`````", "``fcceefff``ecffff``", "`fe`eff````ef`ceecef", "``ffc`````````f`ff``", "```ef```````````````", "````f```````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````````ffef``", "````````````feecf```", "```````````f`cff````", "``f```````eecf``````", "``ef```````feeb`````", "`ffcfffffeecabbd````", "`e`eceeccccccefd````", "`ffcfffffeecabbd````", "``ef```````feeb`````", "``f```````eecf``````", "```````````f`cff````", "````````````feecf```", "``````````````ffef``", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````f```````````````", "```ef```````````````", "``ffc`````````f`ff``", "`fe`eff````ef`ceecef", "``fcceefff``ecffff``", "``effffcceecfee`````", "`f`````ffcccabb`````", "`````````eeccebd````", "``````````fabbfd````", "`````````eeeebd`````", "`````````f`cf```````", "``````````fcf```````", "```````````eef``````", "```````````ffcf`````", "`````````````ef`````", "````````````````````", "````````````````````", "````````````````````", "``````f`````````````", "````ffe`````````````", "```f`fc`````````````", "```ffeff````````````", "``fecfcff```````````", "`````ffeff``````````", "``````ffcfe`efff`f``", "```````ffceefe`ceff`", "````````eecccefffcee", "`````````eccabb`f`ff", "````````efcaebb`````", "````````feebbfd`````", "````````f`fbbd``````", "````````fcf`````````", "`````````eff````````", "````````ffc`````````", "`````````fef````````", "``````````ef````````", "````````````````````", "```````f``f`````````", "``````fefe``````````", "`````ef`cf``````````", "````ffcecf``````````", "```````fef``````````", "```````fef``````````", "````````fcf`````````", "````````fcf`````````", "````````fece`ef`````", "`````````ecefe`f````", "```````e`cccaeccef``", "```````fefacbeffef``", "````````cebebb``fce`", "``````fcfebbfd```ff`", "```````ef``dd```````", "``````fef```````````", "``````fcf```````````", "```````e````````````", "```````f````````````" }; /* XPM */ static char * alien10_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 10 1", /* colors */ "` c None", "a c #A8A800000000", "b c #00000000AFAF", "c c #00000000FFFF", "d c #010100000000", "e c #FFFFFFFFFFFF", "f c #797979797979", "g c #0000FFFFFFFF", "h c #FFFF00000000", "i c #BCBCBCBCBCBC", /* pixels */ "````````````````````", "````````````````````", "````````````````````", "`````````ee`````````", "````````feef````````", "`````i``ieei``i`````", "````i```ieei```i````", "```i````iddi````i```", "```ieeefiddifeeei```", "```eeeffddddffeee```", "```hhaaaieeiaaahh```", "```i````ieei````i```", "```i````feef````i```", "````i``bcggcb``i````", "`````i``bccb``i`````", "`````````bb`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````i````ee``````", "`````ii```ifee``````", "````i````ieeif``````", "````eee``ieei```````", "```hheeefiddi``i````", "```i`aaffdddi```i```", "```i```aiedddfe``i``", "```i```ieeiaffeei```", "```````feei`aaeee```", "````i`bcgef```hh````", "```````bcgcb```i````", "```````bbcb````i````", "````````````ii``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````iii`i`````````", "``````ee`````f``````", "`````hee````iee`````", "````i`heef`ieeee````", "```i``affiideef`````", "```i```aaddddii`````", "````i```iiddii``````", "`````b`feeedf```i```", "``````cgeeiifee`i```", "`````bcgef`afee`i```", "``````bccb``aaei````", "``````bb`````he`````", "`````````````ih`````", "``````````ii`i``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````i`````````", "```````hei`i`i``````", "``````iihee`````````", "`````i``aeee```f````", "````````afffiiiee```", "`````i```aidideeee``", "``````b``iedddeef```", "``````cfeeeddiii````", "``````bggeeidi``````", "`````bcccfiaff``````", "`````b`bb``afe``i```", "````````````aee`i```", "````````````heei````", "````````ii``hei`````", "```````````ii```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````iiheii``````", "```````i``hee`i`````", "``````i```aee``i````", "``````````afe```````", "```````b``aff```````", "``````bcfiidiiiif```", "`````bcgeeedddeeee``", "`````bcgeeedddeeee``", "``````bcfiidiiiif```", "```````b``aff```````", "``````````afe```````", "``````i```aee``i````", "```````i``hee`i`````", "````````iiheii``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````ii```````", "````````ii``hei`````", "````````````heei````", "````````````aee`i```", "`````b`bb``afe``i```", "`````bcccfiaff``````", "``````bggeeidi``````", "``````cfeeeddiii````", "``````b``iedddeef```", "`````i```aidideeee``", "````````afffiiiee```", "`````i``aeee```f````", "``````iihee`````````", "```````hei`i`i``````", "``````````i`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````ii`i``````", "`````````````ih`````", "``````bb`````he`````", "``````bccb``aaei````", "`````bcgef`afee`i```", "``````cgeeiifee`i```", "`````b`feeedf```i```", "````i```iiddii``````", "```i```aaddddii`````", "```i``affiideef`````", "````i`heef`ieeee````", "`````hee````iee`````", "``````ee`````f``````", "``````iii`i`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````ii``````", "```````bbcb````i````", "```````bcgcb```i````", "````i`bcgef```hh````", "```````feei`aaeee```", "```i```ieeiaffeei```", "```i```aiedddfe``i``", "```i`aaffdddi```i```", "```hheeefiddi``i````", "````eee``ieei```````", "````i````ieeif``````", "`````ii```ifee``````", "```````i````ee``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````bb`````````", "`````i``bccb``i`````", "````i``bcggcb``i````", "```i````feef````i```", "```i````ieei````i```", "```hhaaaieeiaaahh```", "```eeeffddddffeee```", "```ieeefiddifeeei```", "```i````iddi````i```", "````i```ieei```i````", "`````i``ieei``i`````", "````````feef````````", "`````````ee`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````i`i```bb```````", "````i```bcbc````````", "```hi````fgcb```````", "```ehaa``egcb``i````", "```ieefaieef```i````", "``i`eefieeei````````", "```i`efdddiaa```i```", "``````iidddffahhi```", "```i``iddiifeeee````", "``````ieei```eei````", "`````feeei````i`````", "``````eef```ii``````", "```````e````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ii````````````", "`````i``i```````````", "````h````b`b````````", "``ieeha```ccbb``````", "``ieeefa`fggcb``````", "``i``efaieeec```````", "`````fidieefb```````", "``i```iddei````i````", "`````iddddia```i````", "````ieedifffa```````", "```feeeii`eeahii````", "````eefi``eeeeh`````", "`````e``````i```````", "`````````iii````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````hiii`````````", "`````ieh````i```````", "````i`eea```````````", "````i`eea```b```````", "```i```efaifcbb`````", "```````ffieegcb`````", "`````iiideeeegc`````", "````ieedddiifcb`````", "````feeddda``b``````", "```eeiiiidfa```i````", "```eef```ffa```i````", "`````````eeeh```````", "```````i``eehii`````", "````````i`ie````````", "`````````i``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````iiehii```````", "``````i`eeh``i``````", "`````i``eea```i`````", "````````efa`````````", "````````ffa``b``````", "````fiiiidiifcb`````", "```eeeedddeeegcb````", "```eeeedddeeegcb````", "````fiiiidiifcb`````", "````````ffa``b``````", "````````efa`````````", "`````i``eea```i`````", "``````i`eeh``i``````", "```````iiehii```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````ii```````````", "``````i``eie````````", "`````````eeehii`````", "````````efah````````", "```efii`ffa```i`````", "```eeeeiida````i````", "```eeedddiifb```````", "```fiidddeeecb``````", "``````iideeegcb`````", "``````ffiifgcb``````", "```i``efa``cb```````", "````i`eea``b````````", "```i`eea````````````", "`````ieh```i````````", "```````hiii`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````iii````````", "````e``````ei```````", "````eefi```eeeh`````", "````eeei`feeahi`````", "```fieeiiffa``i`````", "`````iddddia```i````", "``i``iiddei`````````", "``````fddeef`b`i````", "``i`eefaieegc```````", "``i`eefa`iegcb``````", "```ieha``fccbb``````", "```eh````bb`````````", "`````i``````````````", "`````i`ii```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````eef``i````````", "``````eei````ii`````", "`````feeei````i`````", "`````iiedi`eeee`````", "```i```iddiffeeh````", "```i```idddfaah`i```", "``i`eefddeia````i```", "``ieeffieeei```i````", "``eeaaa`ieefb```````", "```hh````fggc``i````", "````i```bcccb```````", "````ii```bbb````````", "``````i`````````````", "````````````````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien11_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 11 1", /* colors */ "` c None", "a c #FFFFFFFF0000", "b c #A8A800000000", "c c #00000000AFAF", "d c #0000E5E50000", "e c #6E6E00000000", "f c #00000000FFFF", "g c #999995953E3E", "h c #000081810000", "i c #0000FFFFFFFF", "j c #FFFF00000000", /* pixels */ "````````````````````", "````````````````````", "````````````````````", "```````ic``ci```````", "```````ci``ic```````", "````````i``i````````", "````ag``i``i```a````", "````gag`bjjb``a`````", "`````gag`jj``a``````", "``````ge`jj`e```````", "``````cebjjbec``````", "`````cfcbjjbcfc`````", "````cfc``jj``cfc````", "````fc`hd``dh`cf````", "```````dh``hd```````", "```````d````d```````", "```````d````d```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````i`````````", "``````````cc````````", "``````ag``ii``ci````", "`````ga``i``iic`````", "``````gg`b``i```````", "```````ag`jjb```````", "``````cge`jj````a```", "````ccfebjjj``aa````", "```ffccbjjbee```````", "````c```jjbcc```````", "``````hd`j``fc``````", "`````ddh``dhcf``````", "`````d````hd`cc`````", "`````````d```f``````", "`````````d``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````a````i``````", "````````gg``cic`````", "```````gag``i```````", "````````ag`i````c```", "````cc`ge`bj``ici```", "```fcffce`jjjii`````", "``````ccbbjj`b``````", "`````h``jjj`````````", "`````dd`jjbbea`aa```", "```ddh``j`ce````````", "````````dh`fc```````", "```````hd`cc````````", "````````d`cfc```````", "```````d```f````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````gag```````", "```````````ag``ci```", "`````fc```ga```ic```", "`````cfccgegbii`````", "```````cfeb``j``````", "``````h`cbjjjj``ic``", "```dddd`jjjjjbiici``", "``````h``jjb````````", "````````d`bee```````", "```````hh`cc`aa`````", "``````ddd`cf````a```", "`````````cfc````````", "`````````fc`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````fc````ga`````", "```````cfc``gag`````", "````````cfcgag``````", "````dddh`ceeg```ci``", "``````hd`bb``biiic``", "````````jjjjjj``````", "````````jjjjjj``````", "``````hd`bb``biiic``", "````dddh`cee````ci``", "````````cfc`a```````", "```````cfc```a``````", "```````fc`````a`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````fc`````````", "`````````cfc````````", "``````ddd`cf````a```", "```````hh`cc`aa`````", "````````d`bee```````", "``````h``jjb````````", "```dddd`jjjjjbiici``", "``````h`cbjjjj``ic``", "```````cfeb``j``````", "`````cfccgegbii`````", "`````fc```ga```ic```", "```````````ag``ci```", "``````````gag```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````d```f````````", "````````d`cfc```````", "```````hd`cc````````", "````````dh`fc```````", "```ddh``j`ce````````", "`````dd`jjbbea`aa```", "`````h``jjj`````````", "``````ccbbjj`b``````", "```fcffce`jjjii`````", "````cc`ge`bj``ici```", "````````ag`i````c```", "```````gag``i```````", "````````gg``cic`````", "````````a````i``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````d``````````", "`````````d```f``````", "`````d````hd`cc`````", "`````ddh``dhcf``````", "``````hd`j``fc``````", "````c```jjbcc```````", "```ffccbjjbee```````", "````ccfebjjj``aa````", "``````cge`jj````a```", "```````ag`jjb```````", "``````gg`b``i```````", "`````ga``i``iic`````", "``````ag``ii``ci````", "``````````cc````````", "``````````i`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````d````d```````", "```````d````d```````", "```````dh``hd```````", "````fc`hd``dh`cf````", "````cfc``jj``cfc````", "`````cfcbjjbcfc`````", "``````cebjjbec``````", "``````ge`jj`e```````", "`````gag`jj``a``````", "````gag`bjjb``a`````", "````ag``i``i```a````", "````````i``i````````", "```````ci``ic```````", "```````ic``ci```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````d``````````", "`````````d``````````", "`````fc``d``````````", "`````cf`hdh``d``````", "``````cc````hd``````", "``````cfcj`dhd``````", "``````gebjj```cf````", "```g`gebjjjbccfc````", "```aaag`jjbecfc`````", "```gg`b`jj`e````````", "``````ijjb``a```````", "``````i``i``a```````", "````ci```i``````````", "````ic``ic```a``````", "````````ci``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````f```d````````", "``````cc```d````````", "``````cf`hdh````````", "```````fc`d`````````", "````g`gcc````h`d````", "``agaaeebjjjddd`````", "```ggg``bjj`h```````", "``````bjjjbc`cc`````", "`````ijjj`befcff````", "```ci``j``e`c`c`````", "``ii```ib`a`````````", "```c``ii````````````", "``````c```a`````````", "`````ci```a`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````f`````````", "`````````cfc````````", "`````g```cc``dd`````", "````aag`cfc`hd``````", "````g`gageb`dh``````", "```````gebjj````````", "`````ib``jjjj``dd```", "``ici``jjjbb`dh`````", "```ci``jjjec`hd`````", "`````iib``ecfc``````", "`````i``````cfcf````", "````cc```a````c`````", "````i````a``````````", "````````a```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````a`````cf``````", "```````a```cfc``````", "````````a`cfc```````", "```ic````eec`hddd```", "```ciiib``bb`dh`````", "```````jjjjjj```````", "```````jjjjjj```````", "```ciiib``bb`dh`````", "```ic```geec`hddd```", "```````gagcfc```````", "``````gag``cfc``````", "``````ag````cf``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````a````````````", "````````````````````", "````i```a```````````", "```cc```a````c``````", "````iii``ecfcff`````", "```````b``ec`cc`````", "``c```jjjbb`h```````", "``iiiijjjjjjdhdd````", "```c``b``jjj````d```", "``````gebb``````````", "````ggagec`dh```````", "````aag`cfchdd``````", "````g```cf```d``````", "`````````cc`````````", "``````````f`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````i```a`````````", "`````cc`````````````", "``````ii``a`````````", "``ic```i``a`````````", "``cii``b`e`cc```````", "`````ijjj`beffcf````", "`````b`jjjbcc`c`````", "```gg`g`jjj``h``````", "``aagaeebjj`ddd`````", "```g``gccbj``h`d````", "```````f``d`````````", "``````cc`hh`````````", "``````cfc`dd````````", "```````f```d````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````ci``````````", "````````ic``````````", "````ic``i````a``````", "````ci```i``a```````", "`````ii`jb`a````````", "````g``bjj``````````", "```aag``jj`ec```````", "```ggag`jjbecfcc````", "`````gebjjjb`cff````", "`````cecbjj`h`c`````", "``````cf````dd``````", "`````cfchd``hd``````", "`````fc`dh````d`````", "````````d```````````", "`````````d``````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien12_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #CFCFC9C95454", "b c #A8A800000000", "c c #6E6E00000000", "d c #010100000000", "e c #FFFFF9F96868", "f c #FFFF00000000", /* pixels */ "````````````````````", "````````bbbb````````", "```````bffffb```````", "``````bffffffb``````", "``````bffffffb``````", "``````bffddffb``````", "`````bfffddfffb`````", "````bfffddddfffb````", "```bffffffffffffb```", "``bffffffffffffffb``", "```bbbbbbbbbbbbbb```", "`````bbbbbbbbbb`````", "`````cccccccccc`````", "`````bbbbbbbbbb`````", "`````bffffffffb`````", "````bffffffffffb````", "````bffffffffffb````", "`````eeeeeeeeee`````", "```````aaaaaa```````", "````````````````````", "````````````````````", "``````````bbbb``````", "`````````bffffb`````", "`````````bfffffb````", "```````bbfffffff````", "````bbffffddfffb````", "```bfffffdddffbb````", "```bbfffffdddff`````", "`````bbffffffffb````", "`````bbbbbffffffb```", "````ccbbbbbbffffb```", "````bbcccbbbbbfff```", "``bfbfbbbcccbbbb`b``", "``bffffffbbbcc``````", "```effffffffbb``````", "```eefffffffb```````", "````aeeeffffb```````", "`````aaaeeefb```````", "````````aa`e````````", "````````````````````", "````````````````````", "`````````````bb`````", "``````b````bbffb````", "`````bffbbfbffffbb``", "`````bfffffffffff```", "``````bfffffddfffb``", "`````bbfffddddfff```", "````bcbbbfffdfffbb``", "````bbcbbbfffdffb```", "`bbffbccbbbffffb````", "``ffffbbcbbbffff````", "`eeffffbccbbfffb````", "``aeffffbbcbbbfb````", "``aefffffbcb`bfb````", "```aeeffffbc``b`````", "````aaefffb`````````", "`````aeeff``````````", "````````ebb`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````b```````````", "```````bfbb`b`bb````", "````````bfffffbffbb`", "````````bfffffffffb`", "``bb`bcbbfffdfffffb`", "```ffbbcbbbffdddfffb", "``efffbcbbbffdddfff`", "``efffbccbbffdffffb`", "``aefffbbcbbfffffbb`", "``aeffffbcbbffffb```", "``aeffffbcbbfffb````", "```aeffffbcbbffb````", "```aeefffbcbbff`````", "```a`effb```bfb`````", "``````ebb`````b`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````b````````", "``````````bfb```````", "````bb````bffb``````", "```effbbcbbfffb`````", "```efffbcbbffffbbb``", "``aefffbcbbfffffffb`", "``aefffbcbbffdfffffb", "``aefffbcbbffdddfffb", "``aefffbcbbffdddfffb", "``aefffbcbbffdfffffb", "``aefffbcbbfffffffb`", "```efffbcbbffffbbb``", "```effbbcbbfffb`````", "````bb````bffb``````", "``````````bfb```````", "```````````b````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ebb`````b`````", "```a`effb```bfb`````", "```aeefffbcbbff`````", "```aeffffbcbbffb````", "``aeffffbcbbfffb````", "``aeffffbcbbffffb```", "``aefffbbcbbfffffbb`", "``efffbccbbffdffffb`", "``efffbcbbbffdddfff`", "```ffbbcbbbffdddfffb", "``bb`bcbbfffdfffffb`", "````````bfffffffffb`", "````````bfffffbffbb`", "```````bfbb`b`bb````", "````````b```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````ebb`````````", "`````aeeff``````````", "````aaefffb`````````", "```aeeffffbc``b`````", "``aefffffbcb`bfb````", "``aeffffbbcbbbfb````", "`eeffffbccbbfffb````", "``ffffbbcbbbffff````", "`bbffbccbbbffffb````", "````bbcbbbfffdffb```", "````bcbbbfffdfffbb``", "`````bbfffddddfff```", "``````bfffffddfffb``", "`````bfffffffffff```", "`````bffbbfbffffbb``", "``````b````bbffb````", "`````````````bb`````", "````````````````````", "````````````````````", "````````aa`e````````", "`````aaaeeefb```````", "````aeeeffffb```````", "```eefffffffb```````", "```effffffffbb``````", "``bffffffbbbcc``````", "``bfbfbbbcccbbbb`b``", "````bbcccbbbbbfff```", "````ccbbbbbbffffb```", "`````bbbbbffffffb```", "`````bbffffffffb````", "```bbfffffdddff`````", "```bfffffdddffbb````", "````bbffffddfffb````", "```````bbfffffff````", "`````````bfffffb````", "`````````bffffb`````", "``````````bbbb``````", "````````````````````", "````````````````````", "```````aaaaaa```````", "`````eeeeeeeeee`````", "````bffffffffffb````", "````bffffffffffb````", "`````bffffffffb`````", "`````bbbbbbbbbb`````", "`````cccccccccc`````", "`````bbbbbbbbbb`````", "```bbbbbbbbbbbbbb```", "``bffffffffffffffb``", "```bffffffffffffb```", "````bfffddddfffb````", "`````bfffddfffb`````", "``````bffddffb``````", "``````bffffffb``````", "``````bffffffb``````", "```````bffffb```````", "````````bbbb````````", "````````````````````", "````````````````````", "````````````````````", "``````b`eeaaa```````", "``````bfffeeeaaa````", "```````ffffffee`````", "``````bbffffffee````", "``````cbbbffffffe```", "```b``bcccbfffffb```", "``bfbbbbbcbbbffbb```", "```bfffbbbcccbb`````", "```bfffbbbbbbcc`````", "````ffffffbbbbb`````", "```bffdffffffbbb````", "````fffdddffffff````", "```bbffddffffffbb```", "```bfffddfffbb``````", "````fffffffb````````", "````bfffffb`````````", "````bbbffbb`````````", "```````b````````````", "````````````````````", "`````````b`e````````", "`````````bfeaa``````", "`````````fffeea`````", "```````bbfffffea````", "```bb`bcbbffffeaa```", "``bffbbbccbffffee```", "```ffffbbcbbffffe```", "```bfffbbbccbffffe``", "```bffffbbbcbbfffb``", "```fffdffbbbccbb`b``", "``bbffdfffbbbbc`````", "``bffdddffffb```````", "`bfffddfdfffbb``````", "`bffffffffffffb`````", "``bffffffbfbbb``````", "```bfffbb```````````", "```b`b`b````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````bb``````", "``````bb````ffee````", "`````bfb``cbbffea```", "`````bffbbcbffffea``", "`````fffbbbcbfffea``", "````bffffbbcbfffea``", "````bffffbbcbffffea`", "``bbffdffbbbcbfffea`", "`bfffdddffbbcbfffe``", "`bfffdddffbbcbffffe`", "`bfffffdfffbbcbbbb``", "`bfffffffffbbcb`````", "``bfffbfffffb```````", "```bfbb`bfffb```````", "`````````bbf````````", "````````````b```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````b``````````", "````````bfb`````````", "```````bffb````bb```", "``````bfffbbcbbffe``", "```bbbffffbbcbfffe``", "``bfffffffbbcbfffea`", "`bfffffdffbbcbfffea`", "`bfffdddffbbcbfffea`", "`bfffdddffbbcbfffea`", "`bfffffdffbbcbfffea`", "``bfffffffbbcbfffea`", "```bbbffffbbcbfffe``", "``````bfffbbcbbffe``", "```````bffb````bb```", "````````bfb`````````", "`````````b``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````b````````", "````b``bbfbf````````", "```bfbbfffffb```````", "`bffffffffbb````````", "`bffffffffbbbc``b```", "`bfffdddffbbccbbfb``", "bfffdddffbbcbbfffe``", "`bffffdffbbcbffffe``", "``bfffdffbbcbffffea`", "``bbffffbbcbffffea``", "````bfffbbcbfffeea``", "`````fffbbcbfffeaa``", "````bffbbcbfffea````", "`````bfb``bbffe`````", "``````bb````bfe`````", "````````````b```````", "````````````````````", "````````````````````", "````````````````````", "```b``b`````````````", "```bfbfbb```````````", "`bbffffffbbfbb``````", "``ffffffffffffb`````", "`bfffddfffffbb``````", "`bfffdddfffbb```````", "``bbffddffbbbc``````", "```ffdfffbbbcbb`b```", "```bfffffbbccbfbfb``", "```ffffbbbcbbffffe``", "```bfffbbbcbfffffe``", "```bfbbbccbffffee```", "``bfb`bcbbffffeaa```", "```````cbffffeea````", "````````bfffeaa`````", "`````````bffea``````", "`````````b`e````````", "````````````````````", "```````b````````````", "`````bbfb```````````", "`````bffffb`````````", "````bfffffb`````````", "```bffffffbfb```````", "```bffdddffffbb`````", "```bfffdddfffffb````", "````bffddffffffb````", "````ffffffffbbb`````", "```bfffffbbbbbb`````", "``bffffbbbbbccc`````", "``ffbbbbbcccbbb`````", "``bbb`bbccbbbffbb```", "``````ccbbfffffffb``", "``````bbffffffffe```", "``````bffffffeee````", "`````bffffeeeaa`````", "```````bfeeaaa``````", "````````e`a`````````" }; /* XPM */ static char * alien13_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 5 1", /* colors */ "` c None", "a c #FFFF8E8E5757", "b c #BFBF6A6A4141", "c c #010100000000", "d c #FFFF00000000", /* pixels */ "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ab````ba``````", "`````baab``baab`````", "````baaca``acaab````", "````bacca``accab````", "```bbaaaa``aaaabb```", "```bbaaaabbaaaabb```", "```bbaaaabbaaaabb```", "```bbaaaaddaaaabb```", "```dbbaad``daabbd```", "````dbbd````dbbd````", "`````dd``````dd`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````bab``````````", "`````baaab``````````", "````bbaaca``bba`````", "```bbbacca``aaa`````", "```bbaaaaa``acab````", "```bbaaaab``accab```", "``dbaaaabbaaaaab````", "```dbaaadbaaaaabb```", "```dbbad`daaaabb````", "````d`d```daaabb````", "```````````dabbb````", "``````````dbbbd`````", "```````````d`d``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````bbbbaa````````", "`````bbaaaab````````", "````bbbacccb````````", "``dbbaaaaaa`````````", "```bbaaaaa```b`b````", "```dbaaaaa``aaaaa```", "```dbaaabbbaccab````", "````ddd`dbaaacaa````", "````````daaaaabb````", "````````daaaaab`````", "````````daaabbb`````", "`````````bbabbb`````", "`````````dbbdb``````", "`````````dd`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````bb`b`b```````", "`````dbbbbbaaaa`````", "`````bbbaaaccab`````", "````dbaaaaacab``````", "````dbaaaaaaa```````", "````dbaaaab`````````", "`````ddadbb``ab`````", "`````````dbaaacab```", "````````daaaacaaa```", "````````aaaaacab````", "````````daaaaaab````", "```````dbbaabbb`````", "```````dbbbbbb``````", "`````````ddbb```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````dbbbb````````", "``````dbbbbbbb``````", "`````dbbaaaaaab`````", "`````dbaaaaacaaa````", "``````daaaaaccab````", "```````daaaaaab`````", "````````dbb`````````", "````````dbb`````````", "```````daaaaaab`````", "``````daaaaaccab````", "`````dbaaaaacaaa````", "`````dbbaaaaaab`````", "``````dbbbbbbb``````", "```````dbbbb````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````ddbb```````", "```````dbbbbbb``````", "```````dbbaabbb`````", "````````daaaaaab````", "````````aaaaacab````", "````````daaaacaaa```", "`````````dbaaacab```", "`````ddadbb``ab`````", "````dbaaaab`````````", "````dbaaaaaaa```````", "````dbaaaaacab``````", "`````bbbaaaccab`````", "`````dbbbbbaaaa`````", "```````bb`b`b```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````dd`````````", "`````````dbbdb``````", "`````````bbabbb`````", "````````daaabbb`````", "````````daaaaab`````", "````````daaaaabb````", "````ddd`dbaaacaa````", "```dbaaabbbaccab````", "```dbaaaaa``aaaaa```", "```bbaaaaa```b`b````", "``dbbaaaaaa`````````", "````bbbacccb````````", "`````bbaaaab````````", "``````bbbbaa````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````d`d``````", "``````````dbbbd`````", "```````````dabbb````", "````d`d```daaabb````", "```dbbad`daaaabb````", "```dbaaadbaaaaabb```", "``dbaaaabbaaaaab````", "```bbaaaab``accab```", "```bbaaaaa``acab````", "```bbbacca``aaa`````", "````bbaaca``bba`````", "`````baaab``````````", "```````bab``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````dd``````dd`````", "````dbbd````dbbd````", "```dbbaad``daabbd```", "```bbaaaaddaaaabb```", "```bbaaaabbaaaabb```", "```bbaaaabbaaaabb```", "```bbaaaa``aaaabb```", "````bacca``accab````", "````baaca``acaab````", "`````baab``baab`````", "``````ab````ba``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ddd```````````", "````dbbbbd``````````", "````bbaaad``````````", "```bbbaaaa````dd````", "```bbaaaad`dadbb````", "````baaaabdaaabbd```", "```bbaaabbbaaaabd```", "````acca``aaaaabb```", "```bacaa``aaaabbb```", "````aab``aaccabb````", "````ab```bcaaab`````", "``````````aabb``````", "``````````ba````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````d`````````````", "``````bbdd``````````", "`````bbbbbd`````````", "````bbaaaad`````````", "```bbbaaaad`````````", "```baaaaaa``````````", "```bacaaabdddd``````", "```bacaaabbaaabdd```", "```aaca``baaaabbd```", "```abb```aaaaaab````", "````````acaaabbd````", "```````baccaabbb````", "````````aaabbbb`````", "```````babab````````", "````````a```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````d`````````", "```````bbbbdd```````", "``````bbbbabbd``````", "`````bbbaaaab```````", "`````aaaaaaaad``````", "````baacaaaad```````", "````aaccaabd````````", "````bbaaabbbd```````", "``````````aaad`d````", "``````````aaaadbd```", "``````baaaaaaaab````", "``````baccaaaabbd```", "``````aaacaabbbd````", "````````babbbbb`````", "`````````b`b````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````bbbbd``````", "```````bbbbbbbd`````", "``````baaaaaabbd````", "`````aaacaaaaabd````", "`````baccaaaaad`````", "``````baaaaaad``````", "``````````bbd```````", "``````````bbd```````", "``````baaaaaad``````", "`````baccaaaaad`````", "`````aaacaaaaabd````", "``````baaaaaabbd````", "```````bbbbbbbd`````", "`````````bbbbd``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````bbb`b````````", "``````aaaaabbbb`````", "`````baacaabbbd`````", "``````bccaaaaabd````", "```````aaaaaaabbd```", "`````````aaaaabd````", "`````b```bbdd`d`````", "````baaaabbd````````", "```aaccaaaa`````````", "````bacaaaad````````", "`````aaaaaaad```````", "````bbbaaaabd```````", "``````bbbbbbd```````", "```````bbbbd````````", "`````````d``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````a```````````", "```````babbb````````", "````````aaaabbb`````", "```````bcccaabb`````", "```````aaaaaabbd````", "```abb```aaaaabb````", "```aaaa``baaaabd````", "```bacca`bbaaabbd```", "```aacaaabd`dd`d````", "```bbaaaaad`````````", "````bbaaaad`````````", "```bbbaaaa``````````", "`````bbabbd`````````", "`````bdbbdd`````````", "````````d```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````baab```````", "`````````baaab``````", "```ab`b``accabb`````", "````baaa``acaabb````", "````aaca``aaaabbb```", "```bacca`baaaaabb```", "```baaaabbbaaaabd```", "``bbaaaaaddaaabd````", "```bbbaaaa``ddbb````", "````bbaaad````dd````", "````bbbad```````````", "````ddbb````````````", "``````dd````````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien14_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #FFFF8E8E5757", "b c #0000E5E50000", "c c #0000B0B00000", "d c #BFBF6A6A4141", "e c #010100000000", "f c #000081810000", /* pixels */ "````````````````````", "``````````f`````````", "`````````fbf````````", "````````fcecf```````", "```````fceeecf``````", "``````fcceeeccf`````", "`````fccccbccccf````", "````fcccccbcccccf```", "`````ffffcbcffff````", "`````````fbf````````", "````````fcbcf```````", "````````fcbcf```````", "```````fccbccf``````", "```````fccbccf``````", "``````fcccbcccf`````", "``````fcccbcccf`````", "```````fffffff``````", "````````aaaaa```````", "````````ddadd```````", "````````````````````", "````````````````````", "`````````````f``````", "````````````fb``````", "``````````ffcef`````", "```````ffccceecf````", "`````fcccceeeec`````", "``````fccccbcccf````", "```````fffcbcccf````", "``````````cbccccf```", "````````fcfbfffccf``", "```````fcbcf``ff````", "``````fccbcf````````", "`````ffccbcc````````", "````fccccbccf```````", "`````fccbbccf```````", "`````fffccccf```````", "`````aaaffff````````", "`````ddaaa``````````", "````````dd``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````ffcffcfff```", "```````fcccccecbf```", "````````ffccceeec```", "`````````fccbeecf```", "``````````cbbcecf```", "````````fffbccccc```", "````fffcccbffcccf```", "````fccccbcc`ffcf```", "```fcccbbcff``fcf```", "````fccbccc`````````", "``daffbccff`````````", "```daafccc``````````", "````adaffcf`````````", "`````da``f``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````f`f```````", "```````````cccff````", "``````````ffccccf```", "```````````fcccecff`", "``````````f`fcceeeb`", "````ffff`fcfcbbeecf`", "```fccccccbbbccecf``", "````fcccbbbcfccccf``", "``dafccbcccf`fccc```", "``dafbccccf``fccf```", "```aaffccff```fcf```", "```daafcc`````ff````", "```d```ff```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````f``````", "````````````fcf`````", "`````ff`````fccf````", "````fccff```fcccf```", "``dafccccff`fccccf``", "``dafccccccfccceecf`", "``aafbbbbbbbbbbeeebf", "``dafccccccfccceecf`", "``dafccccff`fccccf``", "````fccff```fcccf```", "`````ff`````fccf````", "````````````fcf`````", "`````````````f``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```d```ff```````````", "```daafcc`````ff````", "```aaffccff```fcf```", "``dafbccccf``fccf```", "``dafccbcccf`fccc```", "````fcccbbbcfccccf``", "```fccccccbbbccecf``", "````ffff`fcfcbbeecf`", "``````````f`fcceeeb`", "```````````fcccecff`", "``````````ffccccf```", "```````````cccff````", "``````````f`f```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````da``f``````````", "````adaffcf`````````", "```daafccc``````````", "``daffbccff`````````", "````fccbccc`````````", "```fcccbbcff``fcf```", "````fccccbcc`ffcf```", "````fffcccbffcccf```", "````````fffbccccc```", "``````````cbbcecf```", "`````````fccbeecf```", "````````ffccceeec```", "```````fcccccecbf```", "````````ffcffcfff```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````dd``````````", "`````ddaaa``````````", "`````aaaffff````````", "`````fffccccf```````", "`````fccbbccf```````", "````fccccbccf```````", "`````ffccbcc````````", "``````fccbcf````````", "```````fcbcf``ff````", "````````fcfbfffccf``", "``````````cbccccf```", "```````fffcbcccf````", "``````fccccbcccf````", "`````fcccceeeec`````", "```````ffccceecf````", "``````````ffcef`````", "````````````fb``````", "`````````````f``````", "````````````````````", "````````````````````", "````````ddadd```````", "````````aaaaa```````", "```````fffffff``````", "``````fcccbcccf`````", "``````fcccbcccf`````", "```````fccbccf``````", "```````fccbccf``````", "````````fcbcf```````", "````````fcbcf```````", "`````````fbf````````", "`````ffffcbcffff````", "````fcccccbcccccf```", "`````fccccbccccf````", "``````fcceeeccf`````", "```````fceeecf``````", "````````fcecf```````", "`````````fbf````````", "``````````f`````````", "````````````````````", "````````````````````", "````````````````````", "```````````dd```````", "`````````f`aaadd````", "````````fcfffaa`````", "````````fcccbfa`````", "````````fccccff`````", "````````fccbcccf````", "`````````cbccccf````", "````````fcbccf``````", "```f`f`fcbbcff``````", "````cff`fbcf````````", "```fcccfcbf`````````", "````ccccbccff```````", "````fcccbccccff`````", "````fceeeeccccf`````", "`````fceecccff``````", "``````fecff`````````", "``````fbf```````````", "````````````````````", "````````````````````", "````````````````````", "`````````````d``````", "```````````f`ad`````", "`````````ffcffaa````", "`````````fcccfadd```", "`````````fcccbfaa```", "````f````ccbbccf````", "```fcf``fccbcccf````", "```fcff`fcbccfccf```", "```cccccfbcfcf`f````", "```fcccbbfcf````````", "```fccbbcf``````````", "```ceeecccf`````````", "```fceeeccff````````", "```fbecccccc````````", "```ffcffcfff````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````f``````", "`````f``````fcffad``", "`````cf````ffccfad``", "````fccf``fccccfaa``", "````fccf`fccccbcfad`", "````cccf`cbbbbbcfad`", "```fcecccfccccccf```", "```fcebbbbffccccf```", "``fceecccf```fff````", "`fbeeecccf``````````", "```fcccccff`````````", "````f`ffccf`````````", "````````fc``````````", "`````````f``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````f````````````", "``````fcf```````````", "`````fccf`````ff````", "````fcccf```ffccf```", "```fccccf`ffccccfad`", "``fceecccfccccccfad`", "`fbeeebbbbbbbbbbfaa`", "``fceecccfccccccfad`", "```fccccf`ffccccfad`", "````fcccf```ffccf```", "`````fccf`````ff````", "``````fcf```````````", "```````f````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````ff```````````", "``````fccf``````````", "````ffcccf``````````", "``fcccccf```````````", "`fbeeeccf```````````", "``fceebccfffcf`ff```", "``feecbbbccccfcc````", "```cccccfbbbccccf```", "```fcccf`cccbbbcfad`", "```fccf`ffccccffad``", "````fcf```fcccfaaa``", "`````cf````fccfadd``", "````f``````fff``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```ff`ffcfff````````", "```beccccccf````````", "```fceeecccf````````", "```feeeccff`````````", "``fcccbcc```````````", "```fcccbbfcf````````", "```cccfcbbcfff``````", "```fccf`fcbccccff```", "```cff``fcbbcccc````", "```f`````fccbccff```", "````````fccccbfaa```", "`````````fccffadd```", "`````````fccfaaa````", "``````````ff`dd`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ff````````````", "``````fbcf``````````", "``````ceecff````````", "`````feeeccccff`````", "````fceebccccc``````", "```fccccbccfff``````", "````fccccbcf````````", "````cccfcbf`````````", "```ffff`fbcff```````", "```````fccbccf``````", "````````fcbccf``````", "````````fccbcccf````", "````````fccbcccf````", "````````cccbcfff````", "```````fccfffaa`````", "```````f`faaadd`````", "```````````dda``````", "````````````````````" }; /* XPM */ static char * alien15_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 5 1", /* colors */ "` c None", "a c #CFCFC9C95454", "b c #00000000FFFF", "c c #999995953E3E", "d c #FFFFF9F96868", /* pixels */ "````````````````````", "``````````c`````````", "`````````cac````````", "````````cadac```````", "```````cadcdac``````", "```````cac`cac``````", "```````cac`cac``````", "``````caddcddac`````", "`````cadddddddac````", "`````cadddddddac````", "````ccadddcdddacc```", "```caadddcbcdddaac``", "``caaaaacbbbcaaaaac`", "```ccccccbbbcccccc``", "``````````b`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````c``````", "````````````ca``````", "``````````ccadc`````", "`````````caadcac````", "````````cac`cda`````", "``````ccadc`cacc````", "````c`cadddcdac`````", "```cacaadddddda`````", "``caaadddddddddc````", "``ccaaddccddddac````", "````ccacbbcddaac````", "``````ccbbbcddcc````", "`````````bbcaaaac```", "`````````b``ccaaa```", "`````````````cccc```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````caccc```", "```````c`cccadaac```", "```ccaccadaacccda```", "``caaacadddd``dac```", "```ccadaddddcccac```", "`````cadddddddacc```", "`````caccdcddda`````", "``````cbbbcdddac````", "```````bbbdddac`````", "```````bbccddac`````", "`````````cadac``````", "``````````caaac`````", "```````````ccac`````", "````````````cac`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````c``````````````", "`````cacc```c``c````", "`````caacccaaccac```", "`````caaaadddaadacc`", "``````caddddddcccda`", "``````cadddddc``dac`", "``````ccbccdddccac``", "```````bbbbddddaac``", "```````bbbcdddacc```", "````````ccddddc`````", "`````````cadaaa`````", "`````````cadccc`````", "`````````caac```````", "``````````caa```````", "``````````cac```````", "```````````c````````", "````````````````````", "````````````````````", "````````````````````", "````````c```````````", "```````cac``````````", "```````caac`````````", "```````caaccc```````", "```````cadaaac``````", "```````caddddaccc```", "```````ccdddddaaac``", "```````bbcddddccdac`", "``````bbbbcddc``cdac", "```````bbcddddccdac`", "```````ccdddddaaac``", "```````caddddaccc```", "```````cadaaac``````", "```````caaccc```````", "```````caac`````````", "```````cac``````````", "````````c```````````", "````````````````````", "````````````````````", "```````````c````````", "``````````cac```````", "``````````caa```````", "`````````caac```````", "`````````cadccc`````", "`````````cadaaa`````", "````````ccddddc`````", "```````bbbcdddacc```", "```````bbbbddddaac``", "``````ccbccdddccac``", "``````cadddddc``dac`", "``````caddddddcccda`", "`````caaaadddaadacc`", "`````caacccaaccac```", "`````cacc```c``c````", "`````c``````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````cac`````", "```````````ccac`````", "``````````caaac`````", "`````````cadac``````", "```````bbccddac`````", "```````bbbdddac`````", "``````cbbbcdddac````", "`````caccdcddda`````", "`````cadddddddacc```", "```ccadaddddcccac```", "``caaacadddd``dac```", "```ccaccadaacccda```", "```````c`cccadaac```", "````````````caccc```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````cccc```", "`````````b``ccaaa```", "`````````bbcaaaac```", "``````ccbbbcddcc````", "````ccacbbcddaac````", "``ccaaddccddddac````", "``caaadddddddddc````", "```cacaadddddda`````", "````c`cadddcdac`````", "``````ccadc`cacc````", "````````cac`cda`````", "`````````caadcac````", "``````````ccadc`````", "````````````ca``````", "`````````````c``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````b`````````", "```ccccccbbbcccccc``", "``caaaaacbbbcaaaaac`", "```caadddcbcdddaac``", "````ccadddcdddacc```", "`````cadddddddac````", "`````cadddddddac````", "``````caddcddac`````", "```````cac`cac``````", "```````cac`cac``````", "```````cadcdac``````", "````````cadac```````", "`````````cac````````", "``````````c`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```cccc`````````````", "````aaaccc``````````", "````caaaacbb````````", "````ccaddbbbc```````", "`````caddcbbcccc````", "`````cdddcbcdaaacc``", "`````adddddddddaaac`", "````cadddddddaccac``", "`````cadcddddac`````", "`````cac`cdacac`````", "````cadc`cac````````", "`````cacdaac````````", "``````cdacc`````````", "``````cac```````````", "````````````````````", "````````````````````", "````````````````````", "``````c`````````````", "`````cac````````````", "`````cac````````````", "`````aaacc``````````", "`````ccdaac`````````", "````ccaadcbbb```````", "`````adddcbbb```````", "````cdddddbbcc``````", "````cadddccdcac`````", "````caddddddddac````", "```cac`cdddddaacc```", "```adc`cdddaacaaa```", "```cacdcaaacc`ccc```", "```cadaac`c`````````", "```ccaccc```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````cc`````````", "````````cac`````````", "```````caaac````````", "````````caac````````", "``````ccaddac```````", "``````caaddcc```````", "`````cadddcbb```````", "````caddddcbbbb`````", "```caccddddcbb``````", "```ca``cddddcc``````", "``cadccddddddac`````", "`cadcdaadddadacc````", "```caaccadaacaac````", "````c`c``ccccaac````", "`````````````cac````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````c```````", "```````````cac``````", "``````````caac``````", "````````cccaac``````", "```````caaadac``````", "````cccaddddac``````", "```caaadddddcc``````", "``cadccddddcbb``````", "`cadc``cddcbbbb`````", "``cadccddddcbb``````", "```caaadddddcc``````", "````cccaddddac``````", "```````caaadac``````", "````````cccaac``````", "``````````caac``````", "```````````cac``````", "````````````c```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````````c`````", "`````````c```ca`````", "````cccccaaccaac````", "``caaaaaddacaac`````", "`caddccddddddac`````", "``cac``dddddcac`````", "``cdcccdddcbcc``````", "```aaadddcbbb```````", "```cccddddcbbb``````", "`````addddcb````````", "`````caaddac````````", "``````ccadac````````", "```````caac`````````", "```````caac`````````", "````````cac`````````", "````````cc``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```cc`ccc```````````", "```adaaac``c````````", "```cacdcaacac`ccc```", "```cdc`cdddaacaac```", "``caac`ddddddaac````", "````cadcdddddaac````", "````cddddccdacc`````", "````caddddbbcc``````", "````cadddcbbb```````", "`````caaddbbb```````", "`````ccdacc`````````", "`````aaacc``````````", "`````caac```````````", "`````acc````````````", "`````c``````````````", "````````````````````", "````````````````````", "````````````````````", "``````cc````````````", "``````caac``````````", "``````addac`````````", "`````cdccacc````````", "````cac``caac```````", "````caaccdddac``````", "``````cddddddacc`c``", "`````caddddddacaaac`", "````cadddcdddddaac``", "````cadddcbccaacc```", "````cadddbbbccc`````", "````caadacbbb```````", "````caaacc`b````````", "```caccc````````````", "````c```````````````", "````````````````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien16_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #FFFFFFFF0000", "b c #A8A800000000", "c c #999995953E3E", "d c #FFFFFFFFFFFF", "e c #FFFF00000000", "f c #BCBCBCBCBCBC", /* pixels */ "````````````````````", "`````````bb`````````", "````````beeb````````", "```````beeeeb```````", "```````beeeeb```````", "````````beeb````````", "`````````bb`````````", "`````````ff`````````", "````````fddf````````", "```````fdffdf```````", "````ccfdf``fdfcc````", "```caaaf````faaac```", "``caaaac````caaaac``", "``caaaac````caaaac``", "```caac``````caac```", "````cc````````cc````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````bb``````", "``````````bbee``````", "``````````beeeb`````", "``````````beeeeb````", "``````````eebeb`````", "``````````bb````````", "````c````fff````````", "```cacf`fdddf```````", "``caaaadf`ffd```````", "`caaaaf```fdf```````", "``caaac````ffc``````", "``ccacc````caac`````", "```````````caaac````", "````````````aaaac```", "```````````caaac````", "```````````ccac`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````bbb````", "````````````beeeb```", "````````````beeeb```", "``cccac`````beeee```", "``aaaac`ff`fbeebb```", "``caaaafddddf`b`````", "```aaaaf`ffff```````", "``ccccc````d````````", "```````````ff```````", "``````````fd````````", "`````````ccafc``````", "`````````aaaac``````", "`````````caaac``````", "``````````aaaa``````", "`````````caccc``````", "``````````c`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````cc``````````````", "`````aacc``````bb```", "````caaac``````eebb`", "```caaaaf`f```beeeb`", "````caaaadfdffbeeee`", "`````cccf``fdfbeeeb`", "```````````fd``bbb``", "```````````fdf``````", "```````````df```````", "````````ccff````````", "`````````aaac```````", "````````caaac```````", "```````caaaa````````", "````````caaac```````", "`````````ccc````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````cc```````````", "``````caac``````````", "`````caaaac`````````", "`````caaaac`````````", "``````caaaf`````````", "```````ccfdf````bb``", "``````````fdf``beeb`", "```````````fdfbeeeeb", "```````````fdfbeeeeb", "``````````fdf``beeb`", "```````ccfdf````bb``", "``````caaaf`````````", "`````caaaac`````````", "`````caaaac`````````", "``````caac``````````", "```````cc```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````ccc````````", "````````caaac```````", "```````caaaa````````", "````````caaac```````", "`````````aaac```````", "````````ccff````````", "```````````df```````", "```````````fdf``````", "```````````fd``bbb``", "`````cccf``fdfbeeeb`", "````caaaadfdffbeeee`", "```caaaaf`f```beeeb`", "````caaac``````eebb`", "`````aacc``````bb```", "````cc``````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````c`````````", "`````````caccc``````", "``````````aaaa``````", "`````````caaac``````", "`````````aaaac``````", "`````````ccafc``````", "``````````fd````````", "```````````ff```````", "``ccccc````d````````", "```aaaaf`ffff```````", "``caaaafddddf`b`````", "``aaaac`ff`fbeebb```", "``cccac`````beeee```", "````````````beeeb```", "````````````beeeb```", "`````````````bbb````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````ccac`````", "```````````caaac````", "````````````aaaac```", "```````````caaac````", "``ccacc````caac`````", "``caaac````ffc``````", "`caaaaf```fdf```````", "``caaaadf`ffd```````", "```cacf`fdddf```````", "````c````fff````````", "``````````bb````````", "``````````eebeb`````", "``````````beeeeb````", "``````````beeeb`````", "``````````bbee``````", "````````````bb``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````cc````````cc````", "```caac``````caac```", "``caaaac````caaaac``", "``caaaac````caaaac``", "```caaaf````faaac```", "````ccfdf``fdfcc````", "```````fdffdf```````", "````````fddf````````", "`````````ff`````````", "`````````bb`````````", "````````beeb````````", "```````beeeeb```````", "```````beeeeb```````", "````````beeb````````", "`````````bb`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````c`````````````", "```c`cac````````````", "```caaaac```````````", "````aaaac```````````", "````caaac``````c````", "````ccfaf```c`cac```", "```````d````caaaac``", "``````ff````faaaac``", "```````dfffdfaaaac``", "```````fdddf`cc`c```", "```````ff`f`````````", "``````bbb```````````", "````beeeeb``````````", "````beeeeb``````````", "`````beeeb``````````", "`````bbeb```````````", "````````````````````", "````````````````````", "````````````````````", "`````cac`c``````````", "`````caaac``````````", "`````caaac``````````", "`````aaaac``````````", "`````ccaac``````````", "```````ff```````````", "``````fd````````````", "``````fdf```cac`c```", "```````df``fcaaaac``", "``````fdfdfdaaaac```", "```bbbbff`f`faaac```", "``beeee`````cccac```", "``beeeeb````````````", "``beeeb`````````````", "```bbeb`````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````c`````````", "`````````cacc```````", "````````caaac```````", "```````caaaaa```````", "````````caaac```````", "````````fafcc```````", "`````````d``````````", "````````ff``````````", "```````fd```````````", "``bbbebfdff`````````", "``beeebfdfdfcc`cc```", "`beeeb``fdffaaaac```", "`beeee`````caaaaa```", "```beb``````caaac```", "````b````````cac````", "``````````````c`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````cc``````", "```````````caac`````", "``````````caaaac````", "``````````caaaac````", "``````````faaac`````", "```bb````fdfcc``````", "``beeb``fdf`````````", "`beeeebfdf``````````", "`beeeebfdf``````````", "``beeb``fdf`````````", "```bb````fdfcc``````", "``````````faaac`````", "``````````caaaac````", "``````````caaaac````", "```````````caac`````", "````````````cc``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````````c`````", "````b````````cac````", "``beb`````ccaaac````", "`beeeb```ffaaaaac```", "`beeeeb`fddfcaaac```", "`beeebfdff``cac`````", "``beb`fdf```````````", "```b```fd```````````", "```````ff```````````", "````````dfc`````````", "````````faac````````", "```````caaac````````", "```````caaaac```````", "````````caaac```````", "````````cac`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```bb`b`````````````", "``beeeb`````````````", "``beeeeb````````````", "``beeee`````ccccc```", "``bebbb`ff`faaaa````", "``````ffddfdaaaac```", "``````fdf``faaaac```", "```````df```cccac```", "``````fdf```````````", "```````ff```````````", "`````ccac```````````", "`````aaaac``````````", "`````caaac``````````", "`````aaaac``````````", "`````cccac``````````", "````````````````````", "````````````````````", "````````````````````", "`````bbb````````````", "``````eeeb``````````", "`````beeeb``````````", "````beeeb```````````", "````beeeb```````````", "`````b`bf```````````", "````````fdf`````````", "```````fdfdffccacc``", "```````df`fdfaaaac``", "``````ff````caaaa```", "````cfdf````caaac```", "````caaac`````cac```", "````caaac``````c````", "```caaaa````````````", "```caaac````````````", "````ccc`````````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien17_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 6 1", /* colors */ "` c None", "a c #FFFF8E8E5757", "b c #BFBF63636A6A", "c c #BFBF6A6A4141", "d c #FFFFFFFFFFFF", "e c #FFFF84848E8E", /* pixels */ "````````````````````", "````````````````````", "````````````````````", "````a```a``a```a````", "````caaac``caaac````", "`````aa``````aa`````", "`````caceeeecac`````", "``````ca`ee`ac``````", "```````a`ee`a```````", "```beebeddddebeeb```", "```ebbbeeeeeebbbe```", "```````deeeed```````", "`````bebddddbeb`````", "`````eb``````be`````", "`````eb``````be`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````a````````````", "```````c````````````", "```````aaaaa````````", "```````ca``c``a`````", "```````ace```ca``a``", "````b``ca`eee`aaac``", "```ebee`a`ee`caa````", "`````bbbedee`acc````", "```````eeeddda``````", "````bedeeeeeeb``````", "````ebbddeedbbeeb```", "````eb```ddb``be````", "````````````eb``````", "````````````be``````", "```````````be```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````a````````", "`````````ca`````````", "``````````aa````````", "``````b``caaaca`````", "`````ee``cc`````````", "``````be`aaee```a```", "``````bbe``ee`ca````", "````eb`bedeeee``a```", "````ebedeedd``caaaca", "````b`bdeeedaacca```", "````````deeee```````", "````````dddebe``````", "``````````b`bbe`````", "`````````be``bb`````", "`````````beb``e`````", "``````````e`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````````ca````", "``````````````a`````", "```````eb```caa`````", "````````be``caaa````", "````````be``ac`ca```", "`````eb`bbea`e``````", "`````ebe`eed`ee`````", "`````b`bdeedeee`ca``", "```````ddeede`e`a```", "`````````deed`ac`a``", "`````````deeeacaaa``", "`````````bdbb``caca`", "`````````be`be``````", "````````beb`be``````", "````````e```eb``````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````eb````````", "``````````be````ca``", "``````eeb`be``caa```", "``````bbe`bb`caaa```", "````````bdeeaac`a```", "````````deed``e`ca``", "````````deedeee`````", "````````deedeee`````", "````````deed``e`ca``", "````````bdeeaac`a```", "``````bbe`bb`caaa```", "``````eeb`be``caa```", "``````````be````ca``", "``````````eb````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````e```eb``````", "````````beb`be``````", "`````````be`be``````", "`````````bdbb``caca`", "`````````deeeacaaa``", "`````````deed`ac`a``", "```````ddeede`e`a```", "`````b`bdeedeee`ca``", "`````ebe`eed`ee`````", "`````eb`bbea`e``````", "````````be``ac`ca```", "````````be``caaa````", "```````eb```caa`````", "``````````````a`````", "``````````````ca````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````e`````````", "`````````beb``e`````", "`````````be``bb`````", "``````````b`bbe`````", "````````dddebe``````", "````````deeee```````", "````b`bdeeedaacca```", "````ebedeedd``caaaca", "````eb`bedeeee``a```", "``````bbe``ee`ca````", "``````be`aaee```a```", "`````ee``cc`````````", "``````b``caaaca`````", "``````````aa````````", "`````````ca`````````", "```````````a````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````be```````", "````````````be``````", "````````````eb``````", "````eb```ddb``be````", "````ebbddeedbbeeb```", "````bedeeeeeeb``````", "```````eeeddda``````", "`````bbbedee`acc````", "```ebee`a`ee`caa````", "````b``ca`eee`aaac``", "```````ace```ca``a``", "```````ca``c``a`````", "```````aaaaa````````", "```````c````````````", "```````a````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````eb``````be`````", "`````eb``````be`````", "`````bebddddbeb`````", "```````deeeed```````", "```ebbbeeeeeebbbe```", "```beebeddddebeeb```", "```````a`ee`a```````", "``````ca`ee`ac``````", "`````caceeeecac`````", "`````aa``````aa`````", "````caaac``caaac````", "````a```a``a```a````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````eeb```````````", "``````bb````````````", "```e```ebd``````````", "```bbbb`dd````be````", "````eebeeeddbbe`````", "``````eeeeeedeb`````", "``````adddeeb```````", "```cca``eedebbbe````", "```aaceee``a`eeb````", "`caaa``eeeac````````", "`a``ac````cac```````", "`````a``ca`aa```````", "````````a`aac```````", "````````````a```````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````eeb``````````", "````e``bb```````````", "```bebb`eb``````````", "`````ebbdd``````````", "``````eeeedd````````", "`c`cca`deeed`bb`````", "`aaaca`edeedbeee````", "a`aa`eeeddee``b`````", "```a`eee`aebb```````", "```c```e`a`ebb``````", "```a``c`cc``ebe`````", "``````a`ac``````````", "`````a`aaa``````````", "````````a```````````", "````````c```````````", "````````a```````````", "````````````````````", "````````````````````", "````````````````````", "```````e````````````", "``````bb``bee```````", "```````eb`ebb```````", "```````eb`db````````", "`acacac`beed````````", "```aacaaeeed````````", "```a`e``deeed```````", "```a``eeedeed```````", "```ac`eeededb``b````", "``````e``deb`ebe````", "`````c`caabb`be`````", "````aaaac``eb```````", "``````aac``ee```````", "``````a````b````````", "`````ac`````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````be`````````", "```ac````eb`````````", "````aac``eb`bee`````", "````aaac`bb`ebb`````", "````a`caaeedb```````", "```ac`e``deed```````", "``````eeedeed```````", "``````eeedeed```````", "```ac`e``deed```````", "````a`caaeedb```````", "````aaac`bb`ebb`````", "````aac``eb`bee`````", "```ac````eb`````````", "`````````be`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````a``````````````", "`````c``````````````", "`````aac```b````````", "`````aaa``eee```````", "```aa`cc`bbb````````", "````c`eaaeb``b``````", "``````e``dedbeee````", "``a``eeedeed`bb`````", "```c`eeedeed````````", "```a`c``deed````````", "aaaaaaaeeed`````````", "`c`acc`bedb`````````", "```````eb`e`````````", "``````eb`bbb````````", "``````bb``ee````````", "```````e````````````", "````````````````````", "````````````````````", "````````````````````", "````````a```````````", "```````ac```````````", "```````aaa``````````", "`````aa`ac``````````", "``````c`cc``ebe`````", "```a```eaa`ebb``````", "``ac`ee``ebb````````", "a`aa`eeeedee`b``````", "caaac``edeedebe`````", "```ccaaddeedb`be````", "``````eeeed`````````", "`````ebbded`````````", "````ebb`bd``````````", "```be``eb```````````", "```````beb``````````", "````````e```````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```````````a````````", "````````a``ac```````", "````````caaa````````", "`````a````aac```````", "`a`aac``eecc````````", "`caa``eee`a```b`````", "```acac`ee`abeee````", "`````ca`eddebbb`````", "``````addeeed```````", "````ebeeeeeebeb`````", "``bebbededdd`be`````", "```eb```bd````be````", "``````be````````````", "``````eb````````````", "``````eb````````````", "````````````````````", "````````````````````", "````````````````````" }; /* XPM */ static char * alien2_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #909000", "b c #C0C000", "c c #F08000", "d c #F0F000", "e c #A05000", "f c #603000", /* pixels */ "````````````````````", "````````e``e````````", "````````e``e````````", "```````fc``cf```````", "```````ec``ce```````", "```````eceece```````", "`f`````feccef`````f`", "`ef`````effe`````fe`", "`cef````fccf````fec`", "`ef`````effe`````fe`", "`ec`````ecce````fce`", "`efee```feef```eefe`", "`fecceeee``eeeeccef`", "``feeccfeccefcceef``", "```eeeffcffcffeee```", "````eefef``fefee````", "`````eedbaabdee`````", "``````ffddddff``````", "````````````````````", "````````````````````", "````````````````````", "````````````e```````", "``````````fe``e`````", "```f``````ec``e`````", "```ef````ec```cf````", "``cef````fceece`````", "``ef`````eeccce`````", "`eec`````fffef``````", "`ffe`````ecce```````", "``ece```effef``````f", "`feecee`fcce````f`fe", "``eeccee`eef`````ec`", "```eeffec`e`````ffe`", "```efefcfceeeeeece``", "```eedf`fcffccccfe``", "````ffba`fefeeefef``", "`````dddabdfeee`````", "````````dfee`e``````", "``````````f`````````", "````````````````````", "````````````````````", "``````f`````````````", "`````cf````````e````", "````efe``````fe`````", "```ecf``````ec```e``", "``fff``````fc```ee``", "``feee`````ece`cc```", "```ece````ffcccce```", "``eeee```efcfeee````", "``eeece`fcfffef`````", "```efffeeecee```````", "``eeffcc`efe````````", "``fedfffcef`````````", "```fba`fcee`````ffff", "````daafcfce`ef`fce`", "`````dbbefecceecee``", "``````ddeeeeecfee```", "```````feeeeeffe````", "````````````````````", "````````````````````", "``````````f`````````", "```````ecef`````````", "`````feefe``````````", "`````efc`f``````````", "````fce`````````````", "````eece`````eefcee`", "```eeee``````fcc````", "```eecce```feee`````", "```efffe`eecfcce`ce`", "``feefeefecfcfeccf``", "``fdbfcc`ecffefee```", "```da`fc`fee````````", "```da`fcee``````````", "````dbfffe``````````", "````ddefcee`````````", "````ffefecce``ff````", "``````eeeecefcfeef``", "```````e`eeefeec````", "``````````ffe```````", "````````````````````", "````````````````````", "````````feeecef`````", "```````fefcfef``````", "``````eece``f```````", "`````eeece``````````", "````eeece```````````", "```feffce```````````", "```fdeffe`````feef``", "```dbfceefeefeecccee", "```da`fc`ecfcfce````", "```da`fc`ecfcfce````", "```dbfceefeefeecccee", "```fdeffe`````feef``", "```feffce```````````", "````eeece```````````", "`````eeece``````````", "``````eecef`f```````", "```````fefcfef``````", "````````feeecef`````", "````````````````````", "````````````````````", "``````````f`fe``````", "`````````eeefeec````", "``````eeeeececfeef``", "`````fefecce```ff```", "````dfdefce`````````", "````dbfffee`````````", "````da`cee``````````", "```da`ffc`fe````````", "```fbfcc`ecfefefe```", "``fedefeeecfcfeccef`", "```efffe`feecfce`ce`", "````eece```feece```e", "```eeece`````fcc````", "````eece``````eecee`", "`````fce````````f```", "`````efcf`f`````````", "`````feefe``````````", "````````ecf`````````", "``````````ef````````", "````````````````````", "````````````````````", "````````fe`ee`ff````", "```````feeeeeeefe```", "``````dbdffeecefce``", "`````daafffceee`ffc`", "````dba`fcfe`````eff", "```fdbfffce`````````", "```eeeccc`ef````````", "```eeffeeeece```````", "```eeeceffcfff``````", "```eece``eefcfef````", "```eec````effccce```", "```fcee````eece`cf``", "```ffef````fec```e``", "```eec``````ecc```e`", "````eeff`````ece````", "`````ecf```````ee```", "``````ef````````````", "```````f````````````", "````````````````````", "````````````````````", "``````````ff````````", "````````dddeeee`````", "`````fddaabefeeef```", "`````fdb``fffceecef`", "````eeefffcefcecefe`", "```eefffccceee`e`ce`", "````eecfe``f``````fc", "```eeceeefeee````fee", "``fecce``ecce``````f", "``feee```effcf``````", "``eff`````fcfe``````", "```ec`````efcefe````", "```eff````fecece````", "```cef````ece`cf````", "````e`````ec```c````", "````f``````fc``e````", "````````````e``e````", "`````````````e``````", "````````````````````", "````````````````````", "````````````````````", "```````ffddddff`````", "``````eedbaabdee````", "`````eefef``fefee```", "````eeeffcffcffeee``", "```feeccfeccefcceef`", "``fecceeee``eeeeccef", "``efee```feef```eefe", "``ecf````ecce`````ce", "``ef`````effe`````fe", "``cef````fccf````fec", "``ef`````effe`````fe", "``f`````feccef`````f", "````````eceece``````", "````````ec``ce``````", "````````fc``cf``````", "`````````e``e```````", "`````````e``e```````", "````````````````````", "````````````````````", "``````````f`````````", "```````e`eefd```````", "``````eeefdbaddd````", "```fefeeefef`abff```", "```efccccffcf`fdee``", "```eceeeeeecfcfefe``", "``eff`````e`ceffee``", "``ce`````fee`eeccee`", "`ef`f````eccf`eeceef", "`f``````feffe```ece`", "````````ecce`````eff", "```````fefff`````ce`", "``````ecccee`````fe`", "``````eceecf````fec`", "`````fc```ce````fe``", "``````e``ce``````f``", "``````e``ef`````````", "````````e```````````", "````````````````````", "````````````````````", "````````````````````", "`````effeeeeef``````", "````eefceeeeedd`````", "```eeceeccefebbd````", "``ecf`fe`ecfcfaad```", "`ffff`````eecf`abf``", "``````````fecfffdef`", "`````````efe`ccffee`", "````````eeceeefffe``", "``````fefffcf`eceee`", "`````eeefcfe```eeee`", "````eccccff````ece``", "````cc`ece`````eeef`", "```ee```cf``````fff`", "```e```ce``````fce``", "``````ef``````efe```", "`````e````````fc````", "``````````````f`````", "````````````````````", "````````````````````", "````````eff`````````", "`````ceefeee`e``````", "```feefcfeceeee`````", "`````ff``eccefeff```", "``````````eecfedd```", "```````````efffbd```", "```````````eecf`ad``", "`````````eef`cf`ad``", "````eefeffce`ccfbdf`", "```fccefcfcefeefeef`", "``ec`eccfcee`efffe``", "`e````eeef```eccee``", "`````ccf``````eeee``", "``eecfee`````ecee```", "``````````````ecf```", "```````````f`cfe````", "```````````efeef````", "``````````fece``````", "``````````f`````````", "````````````````````", "``````feceeef```````", "```````fefcfef``````", "````````f`fecee`````", "```````````eceee````", "````````````eceee```", "````````````ecffef``", "```feef`````effedf``", "`eeccceefeefeecfbd``", "`````ecfcfce`cf`ad``", "`````ecfcfce`cf`ad``", "`eeccceefeefeecfbd``", "```feef`````effedf``", "````````````ecffef``", "````````````eceee```", "```````````eceee````", "````````f``ecee`````", "```````fefcfef``````", "``````feceeef```````", "````````````````````", "`````````fe`````````", "``````````fce```````", "```````````efeef````", "``````````f`fcfe````", "````f````````ecf````", "``eecee``````ecee```", "`````ccf`````eceee``", "`e```eceef```ecee```", "``ec`ecfceef`efffe``", "``feccefcfceeefedef`", "````efefefce`ccfbf``", "`````````ef`cff`ad``", "```````````eec`ad```", "``````````eefffbd```", "``````````ecfedfd```", "````ff```eccefef````", "```feefceceeeee`````", "`````ceefeee````````", "```````ef`f`````````", "````````````````````", "`````````````f``````", "`````````````fe`````", "````ee```````fce````", "`````ece`````ffee```", "``e```cce``````cee``", "```e```cef````feff``", "```fc`ecee````eecf``", "````ecccffe````cee``", "`````fefcfee``ecee``", "```````fffcffeceee``", "````````eceeeeffee``", "`````````fe`ccceee``", "``````````ecfffbdf``", "`ffe`````efcf`abd```", "``cff`eeecfffaad````", "```ecfeceeffdbd`````", "````efeeeeeeef``````", "`````ff`ee`ef```````", "````````````````````", "````````````````````", "```````e````````````", "`````e``e```````````", "`````e``cf``````f```", "`````c```ce`````e```", "`````fc`ece````fec``", "`````ececef````ffe``", "`````efecfe`````ce``", "```````efcf`````ffe`", "```````fcffe```eeef`", "ff``````ecce``eccef`", "`eef````eeefeeecee``", "`cf``````f``efcee```", "`eec`e`eeecccfffee``", "``efececfecfffeee```", "``feceecfff``bdf````", "````feeefebaaddf````", "``````eeeeddd```````", "`````````ff`````````", "````````````````````" }; /* XPM */ static char * alien3_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 7 1", /* colors */ "` c None", "a c #900000", "b c #C00000", "c c #00D000", "d c #F00000", "e c #009000", "f c #005000", /* pixels */ "````````````````````", "```````f`````f``````", "`````fe```````ef````", "````ffe`fecef`eff```", "````fce`e```e`ecf```", "```ffcefeeceefecff``", "```fece`fecef`ecef``", "``ffece`fecef`eceff`", "``feece`fecef`eceef`", "``feeceffeceffeceef`", "``feecefecccefeceef`", "``feeccceeeeeccceef`", "``feeceeefffeeeceef`", "``feecef`````feceef`", "``ffeceefcccfeeceff`", "```feeccceeeccceef``", "```ffeeeeccceeeeff``", "````ff`dbaaabd`ff```", "``````a`bdddb`a`````", "````````````````````", "````````````````````", "```````ffe`f````````", "```````ffe``````````", "`````ffcce`fe```f```", "````ffecefe``cef`e``", "```fefece`eec`e`eff`", "```feece`ffecee`ecf`", "```feece`fecef`fecf`", "``feeceeffecef`ecff`", "``feeccfeeceef`ecef`", "`feeecececccffeceeff", "`ffeceeefeeeefeceef`", "``fecef``ffecceceef`", "`ffeccefc``eeeceef``", "``feeececcf`feceef``", "```f`deceeceeceeef``", "```a`baacceccceff```", "`````bddabeeeeeff```", "````````dbd`fff`````", "```````````a`f``````", "````````````````````", "``````````fffe``````", "``````f`fffcee``````", "`````fffeecee```````", "````ffeeecee`ee`````", "```ffeeecee`e``c````", "``ffeeecee`fee``e```", "`ffeeeceeffeece`e`ee", "``feecccffeeceee`eef", "`feeceecececeef`eecf", "`ffeeefeeeceef`eecff", "`feecef`feecffeecef`", "```eeccc`feefeeceef`", "`aadececc`ecceceef``", "```baccecffecceeeff`", "```ddaccceeeceeeff``", "````ddaeececeeeff```", "`````dbdeeeeeeff````", "```````a`efefff`````", "```````a`fff`f``````", "````````````````````", "``````````f`````````", "````````ffffffff````", "`````fffeeeefccfe```", "```ffeeeeeecceee`f``", "```ffeeeccceef``f```", "``feeecceee```eee```", "`ffecceecfffffe`c```", "``fecefecefeeecc`e``", "`a`ece`eeececcee`f`f", "``deecf`fecceefee```", "``bbcec`fecefff`feee", "``dacecc`feef``eecff", "```dacef`ecfeeecccff", "```daecefeececceef``", "```bbdeceeccceefff``", "``````eccceeeeeef```", "````afeeeeeeefff````", "``````ffffeff```````", "```````f`ff`````````", "````````````````````", "````````````````````", "``````ffffffff``````", "````fffeeeeeefff````", "```ffeeeeeeeeeefff``", "```feecccccccccccff`", "``a`eceeeceeeeeeeee`", "```decefecff```f```f", "``bbecf`eeeffffeef``", "``dacec`feceeeee`e``", "``dacec`fecccccc`c``", "``dacec`feceeeee`e``", "``bbecf`eeeffffeef``", "```decefecff```f```f", "``a`eceeeceeeeeeeee`", "```feecccccccccccff`", "```ffeeeeeeeeeefff``", "````fffeeeeeefff````", "``````ffffffff``````", "````````````````````", "````````````````````", "```````f`ff`````````", "``````ffffeff```````", "````afeeeeeeefff````", "``````eccceeeeeef```", "```bbdeceeccceefff``", "```daecefeececceef``", "```dacef`ecfeeecccff", "``dacecc`feef``eecff", "``bbcec`fecefff`feee", "``deecf`fecceefee```", "`a`ece`eeececcee`f`f", "``fecefecefeeecc`e``", "`ffecceecfffffe`c```", "``feeecceee```eee```", "```ffeeeccceef``f```", "```ffeeeeeecceee`f``", "`````fffeeeefccfe```", "````````ffffffff````", "``````````f`````````", "````````````````````", "```````a`fff`f``````", "```````a`efefff`````", "`````dbdeeeeeeff````", "````ddaeececeeeff```", "```ddaccceeeceeeff``", "```baccecffecceeeff`", "`aadececc`ecceceef``", "```eeccc`feefeeceef`", "`feecef`feecffeecef`", "`ffeeefeeeceef`eecff", "`feeceecececeef`eecf", "``feecccffeeceee`eef", "`ffeeeceeffeece`e`ee", "``ffeeecee`fee``e```", "```ffeeecee`e``c````", "````ffeeecee`ee`````", "`````fffeecee```````", "``````f`fffcee``````", "``````````fffe``````", "````````````````````", "```````````a`f``````", "````````dbd`fff`````", "`````bddabeeeeeff```", "```a`baacceccceff```", "```f`deceeceeceeef``", "``feeececcf`feceef``", "`ffeccefc``eeeceef``", "``fecef``ffecceceef`", "`ffeceeefeeeefeceef`", "`feeecececccffeceeff", "``feeccfeeceef`ecef`", "``feeceeffecef`ecff`", "```feece`fecef`fecf`", "```feece`ffecee`ecf`", "```fefece`eec`e`eff`", "````ffecefe``cef`e``", "`````ffcce`fe```f```", "```````ffe``````````", "```````ffe`f````````", "````````````````````", "````````````````````", "``````a`bdddb`a`````", "````ff`dbaaabd`ff```", "```ffeeeeccceeeeff``", "```feeccceeeccceef``", "``ffeceefcccfeeceff`", "``feecef`````feceef`", "``feeceeefffeeeceef`", "``feeccceeeeeccceef`", "``feecefecccefeceef`", "``feeceffeceffeceef`", "``feece`fecef`eceef`", "``ffece`fecef`eceff`", "```fece`fecef`ecef``", "```ffcefeeceefecff``", "````fce`e```e`ecf```", "````ffe`fecef`eff```", "`````fe```````ef````", "```````f`````f``````", "````````````````````", "```````f`a``````````", "``````fff`dbd```````", "````ffeeeeebaddb````", "````ffeccceccaab`a``", "```feeeceeceeced`f``", "```feecef`fcceceeef`", "```feeceee``cfecceff", "``feececceff``fecef`", "``feecefeeeefeeeceff", "`ffeeceffcccececeeef", "``fece`feeceefcceef`", "``ffce`feceffeeceef`", "``fcef`fecef`eceef``", "``fce`eeceff`eceef``", "``ffe`e`cee`ecefef``", "```e`fec``efeceff```", "````f```ef`eccff````", "```````````eff``````", "`````````f`eff``````", "````````````````````", "```````f`fff`a``````", "``````fffefe`a``````", "`````ffeeeeeedbd````", "````ffeeececeeadd```", "```ffeeeceeecccadd``", "``ffeeecceffceccab``", "```feececce`ccecedaa", "``feeceefeef`cccee``", "``feceeffceef`feceef", "`ffcee`feeceeefeeeff", "`fcee`feecececeeceef", "`fee`eeeceeffccceef`", "`ee`e`eceeffeeceeeff", "````e``eef`eeceeeff`", "`````c``e`eeceeeff``", "``````ee`eeceeeff```", "````````eeceefff````", "```````eecfff`f`````", "```````efff`````````", "````````````````````", "``````````ff`f``````", "````````ffeffff`````", "`````fffeeeeeeefa```", "````feeeeeeccce`````", "```fffeeccceecedbb``", "```feecceceefecead``", "`ffccceeefce`fecad``", "`ffcee``feef`ccecad`", "`eeef`fffecef`cecbb`", "````eefeeccef`fceed`", "`f`f`eecceceee`ece`a", "```e`cceeefecefecef`", "````c`efffffceecceff", "````eee```eeecceeef`", "````f``feeccceeeff``", "```f`eeecceeeeeeff``", "````efccfeeeefff````", "`````ffffffff```````", "``````````f`````````", "````````````````````", "````````````````````", "```````ffffffff`````", "`````fffeeeeeefff```", "```fffeeeeeeeeeeff``", "``ffccccccccccceef``", "``eeeeeeeeeceeece`a`", "`f```f```ffcefeced``", "```feeffffeee`fcebb`", "```e`eeeeecef`cecad`", "```c`ccccccef`cecad`", "```e`eeeeecef`cecad`", "```feeffffeee`fcebb`", "`f```f```ffcefeced``", "``eeeeeeeeeceeece`a`", "``ffccccccccccceef``", "```fffeeeeeeeeeeff``", "`````fffeeeeeefff```", "```````ffffffff`````", "````````````````````", "````````````````````", "``````````f`````````", "`````ffffffff```````", "````efccfeeeefff````", "```f`eeecceeeeeeff``", "````f``feeccceeeff``", "````eee```eeecceeef`", "````c`efffffceecceff", "```e`cceeefecefecef`", "`f`f`eecceceee`ece`a", "````eefeeccef`fceed`", "`eeef`fffecef`cecbb`", "`ffcee``feef`ccecad`", "`ffccceeefce`fecad``", "```feecceceefecead``", "```fffeeccceecedbb``", "````feeeeeeccce`````", "`````fffeeeeeeefa```", "````````ffeffff`````", "``````````ff`f``````", "````````````````````", "```````efff`````````", "```````eecfff`f`````", "````````eeceefff````", "``````ee`eeceeeff```", "`````c``e`eeceeeff``", "````e``eef`eeceeeff`", "`ee`e`eceeffeeceeeff", "`fee`eeeceeffccceef`", "`fcee`feecececeeceef", "`ffcee`feeceeefeeeff", "``feceeffceef`feceef", "``feeceefeef`cccee``", "```feececce`ccecedaa", "``ffeeecceffceccab``", "```ffeeeceeecccadd``", "````ffeeececeeadd```", "`````ffeeeeeedbd````", "``````fffefe`a``````", "```````f`fff`a``````", "````````````````````", "`````````f`eff``````", "```````````eff``````", "````f```ef`eccff````", "```e`fec``efeceff```", "``ffe`e`cee`ecefef``", "``fce`eeceff`eceef``", "``fcef`fecef`eceef``", "``ffce`feceffeeceef`", "``fece`feeceefcceef`", "`ffeeceffcccececeeef", "``feecefeeeefeeeceff", "``feececceff``fecef`", "```feeceee``cfecceff", "```feecef`fcceceeef`", "```feeeceeceeced`f``", "````ffeccceccaab`a``", "````ffeeeeebaddb````", "``````fff`dbd```````", "```````f`a``````````" }; /* XPM */ static char * alien4_xpm[] = { "20 320 11 1", " c None", ". c #909090909090", "X c #B0B0B0B0B0B0", "o c #C1C1C1C1C1C1", "O c #A1A1A1A1A1A1", "+ c #0000FFFF0000", "@ c #E1E16F6F6F6F", "# c #C1C15F5F5F5F", "$ c #A1A190905050", "% c #7F7F50503F3F", "& c #FFFF00000000", " ", " . ", " .X. ", " XoX ", " OXO ", " O ", " O ", " . O . ", " + @ + ", " + # + ", " +O@$OX$@$XO$@O+ ", " .OO##$%@%$##OO. ", " . OO%@$@%OO . ", " O#%#O ", " O#O ", " @o@ ", " OoO ", " X&X ", " . . ", " ", " ", " ", " . ", " .X. ", " XoO ", " . OXO ", " + O. ", " + O ", " +. .@ ", " .OO@$ # ", " . OO##X$@ ", " OO%@@$. . ", " O%#$@%O$ + ", " X$#%###@O+ ", " #%#OOO.O+. ", " .@o@ . ", " OoX ", " .X&O ", " O. ", " ", " ", " ", " ", " . ", " + .O. ", " + XoO ", " ..@ XX. ", " O#$ O ", " O$O @ ", " O##$$# ", " O%%@$ ", " O@@%$ ", " @#%@%#O ", " OOo#OO#$$ . ", " .XoO@ OO#@ + ", " O&XO O.+ ", " O. . ", " ", " ", " ", " ", " ", " . ", " .++ ", " .+O ", " O@ ", " .#$ OX.. ", " O#O .XoX ", " O#%. @OOOX. ", " O%@$@#. ", " @##$@$ ", " .OXo%$#@X ", " O&o@#X%%# ", " XO. OO#$ ", " . OO@ ", " OO. +. ", " O++ ", " .. ", " ", " ", " ", " ", " ", " ..+++. ", " OO ", " O@ ", " O#$ ", " O#O ", " O%$X ", " .XO@O#@%$ OX. ", " &oo#%$@@#@OOOXoX. ", " .XO@O#@%$ OX. ", " O%$X ", " O#O ", " O#$ ", " O@ ", " OO ", " ..+++. ", " ", " ", " ", " ", " .. ", " O++ ", " OO. +. ", " . OO@ ", " XO. OO#$ ", " O&o@#X%%# ", " .OXo%$#@X ", " @##$@$ ", " O%@$@#. ", " O#%. @OOOX. ", " O#O .XoX ", " .#$ OO.. ", " O@ ", " .+O ", " .++ ", " . ", " ", " ", " ", " ", " ", " O. . ", " O&XO O.+ ", " .XoO@ OO#@ + ", " OOo#OO#$$ . ", " @#%@%#O ", " O@@%$ ", " O%%@$ ", " O##$$# ", " O$O @ ", " O#$ O ", " ..@ XX. ", " + XoO ", " + .O. ", " . ", " ", " ", " ", " ", " O. ", " .X&O ", " OoX ", " .@o@ O ", " #%#OOO.O+. ", " X$#%###@O+ ", " O%#$@%O$ + ", " OO%@@$. . ", " . OO##X$@ ", " .OO@$ # ", " +. .@ ", " + O ", " + O. ", " . OXO ", " XoX ", " .X. ", " . ", " ", " ", " ", " . . ", " X&X ", " OoO ", " @o@ ", " O#O ", " O#%#O ", " . OO%@$@%OO . ", " .OO##$%@%$##OO. ", " +O@$OX$@$XO$@O+ ", " + # + ", " + @ + ", " . O . ", " O ", " O ", " OXO ", " XoX ", " .X. ", " . ", " ", " ", " .O ", " O&X. ", " XoO ", " . @o@. ", " .+O.OOO#%# ", " +O@###%#$X ", " + $O%@$#%O ", " . .$@@%OO ", " @$X##OO . ", " # $@OO. ", " @. .+ ", " O + ", " .O + ", " OXO . ", " OoX ", " .X. ", " . ", " ", " ", " ", " ", " ", " . .O ", " +.O OX&O ", " + @#OO @OoX. ", " . $$#OO#oOO ", " O#%@%#@ ", " $%@@O ", " $@%%O ", " #$$##O ", " @ O$O ", " O $#O ", " .XX @.. ", " OoX + ", " .O. + ", " . ", " ", " ", " ", " ", " ", " .. ", " ++O ", " .+ .OO ", " @OO . ", " $#OO .OX ", " #%%X#@o&O ", " X@#$%oXO. ", " $@$##@ ", " .#@$@%O ", " .XOOO@ .%#O ", " XoX. O#O ", " ..XO $#. ", " @O ", " O+O ", " ++. ", " . ", " ", " ", " ", " ", " .+++.. ", " OO ", " @O ", " $#O ", " O#O ", " X$%O ", " .XO $%@#O@OX. ", " .XoXOOO@#@@$%#oo& ", " .XO $%@#O@OX. ", " X$%O ", " O#O ", " $#O ", " @O ", " OO ", " .+++.. ", " ", " ", " ", " ", " ", " . ", " ++. ", " O+. ", " @O ", " ..OO $#. ", " XoX. O#O ", " .XOOO@ .%#O ", " .#@$@%O ", " $@$##@ ", " X@#$%oXO. ", " #%%X#@o&O ", " $#OO .OX ", " @OO . ", " .+ .OO ", " ++O ", " .. ", " ", " ", " ", " ", " ", " . ", " .O. + ", " OoX + ", " .XX @.. ", " O $#O ", " @ O$O ", " #$$##O ", " $@%%O ", " $%@@O ", " O#%@%#@ ", " . $$#OO#oOO ", " + @#OO @OoX. ", " +.O OX&O ", " . .O ", " ", " ", " ", " ", " ", " . ", " .X. ", " XoX ", " OXO . ", " .O + ", " O + ", " @. .+ ", " # $@OO. ", " @$X##OO . ", " . .$@@%OO ", " + $O%@$#%O ", " +O@###%#$X ", " .+O.OOO#%# ", " O @o@. ", " XoO ", " O&X. ", " .O ", " "}; /* XPM */ static char * alien5_xpm[] = { "20 320 11 1", " c None", ". c #C1C1C1C1C1C1", "X c #B0B0B0B0B0B0", "o c #0000FFFF0000", "O c #909090909090", "+ c #A1A1A1A1A1A1", "@ c #C1C15F5F5F5F", "# c #E1E16F6F6F6F", "$ c #7F7F50503F3F", "% c #A1A190905050", "& c #FFFF00000000", " ", " ", " ", " . . ", " . XX . ", " o O+..+O o ", " o@ OXX##XXO @o ", " o$#O+XX$$XX+O#$o ", " oX%@#X$%%$X#@%Xo ", " oX$%@$%##%$@%$Xo ", " . +$%@@%%@@%$+ . ", " X O$%%##%%$O X ", " O +X$@@$X+ O ", " O$@&&@$O ", " %$ $% ", " @ @ ", " ", " ", " ", " ", " ", " . ", " . ", " o ", " o@ O ", " o$ OO+X+O ", " oX#O+XX...O ", " oX$@#XXX##XO . ", " . +%@X$%$XXXO . ", " O +$%$%#%$X+O @o ", " O$%@%%#%X#@#$o ", " +X%#%@@@%$%Xo ", " O$X$@#%%%$$Xo ", " %@&&$XX$OO . ", " @$ &$+O X ", " $% + ", " @ ", " ", " ", " ", " O ", " . ", " o ", " o@ ", " o$# ", " .X%OOOOO ", " + +%@+XX+.X ", " $$@XXX#.. ", " O%@$$$$#+O ", " +%@@#%$XXO ", " OXX%%%#$XXO O", " %$$@#%@$X+O . ", " @%$&@@%@@@@O#@o ", " &$X%%$%%$o ", " $$X+O$+Xo ", " %%O . ", " @ + ", " ", " ", " ", " ", " .. ", " ooo ", " X.oX$@ ", " + X%# ", " O$$@OO ", " O$%#+XOO ", " $%@XXXX+O ", " +X%@%$X#.X ", " %$X%@#%$#.XO ", " @$&$#%%#%XX+ ", " &@#%%$XXO ", " &$%@$XX+O ", " $@XX%%@#O ", " @%$+$$%@# . ", " O O++$X$@o. ", " Xooo ", " .o ", " O ", " ", " ", " ", " OX.ooooo.. ", " XX$@ ", " +$%# ", " O$%@O ", " O+$%@#+O ", " @%$X%@$XXXO ", " $@$%@%$XX+ ", " &@#%#%$#.X ", " &@#%#%$#.X ", " $@$%@%$XX+ ", " @%$X%@$XXXO ", " O+$%@#+O ", " O$%@O ", " +$%# ", " XX$@ ", " OX.ooooo.. ", " ", " ", " ", " O ", " .o ", " Xooo ", " O O++$X$@o. ", " @%$+$$%@# . ", " $@XX%%@#O ", " &$%@$XX+O ", " &@#%%$XXO ", " @$&$#%%#%XX+ ", " %$X%@#%$#.XO ", " +X%@%$X#.+ ", " O$%@XXXX.O ", " O$%#+XOO ", " O$$@OO ", " + X%# ", " X.oX$@ ", " ooo ", " .. ", " ", " ", " ", " ", " @ + ", " %%O . ", " $$X+O$+Xo ", " &$X%%$%%$o ", " @%$&@@%@@@@O#@o ", " %$$@#%@$X+O . ", " OXX%%%#$XXO ", " +%@@#%$XXO ", " O%@$$$$#+O ", " $$@XXX#.. ", " + +%@+XX+.X ", " .X%OOOOO ", " o$# ", " o@ ", " o ", " . ", " O ", " ", " ", " ", " @ ", " $% + ", " @$ &$+ X ", " %@&&$XX$OO . ", " O$X$@#%%%$$ o ", " +X%#%@@@%$%Xo ", " O$%@%%#%X#@#$o ", " O +$%$%#%$X+O @o ", " . +%@X$%$XXXO . ", " oX$@#XXX##XO . ", " oX#O+XX..+O ", " o$ OO+XXO ", " o@ O ", " o ", " . ", " . ", " ", " ", " ", " ", " ", " @ @ ", " %$ $% ", " O$@&&@$O ", " O +X$@@$X+ O ", " X O$%%##%%$O X ", " . +$%@@%%@@%$+ . ", " oX$%@$%##%$@%$Xo ", " oX%@#X$%%$X#@%Xo ", " o$#O+XX$$XX+O#$o ", " o@ OXX##XXO @o ", " o O+..+O o ", " . XX . ", " . . ", " ", " ", " ", " ", " ", " ", " @ ", " + %$ ", " X O+$& $@ ", " . OO$XX$&&@% ", " oX$$%%%#@$X$O ", " oX%$%@@@%#%X+ ", " o$#@#X%#%%@%$O ", " o@ O+X$%#%$%$+ O ", " . OXXX$%$X@%+ . ", " . OX##XXX#@$Xo ", " O...XX+O#Xo ", " O+X+OO $o ", " O @o ", " o ", " . ", " . ", " ", " ", " ", " ", " + @ ", " . O%% ", " oX+$O+X$$ ", " o$%%$%%X$& ", " o@#O@@@@%@@& ", " . O+X$@%#@$$%# ", "O OXX$#%%%XXO ", " OXX$%#@@%+ ", " O+#$$$$@%O ", " ..#XXX@$$ ", " X.+XX+@%+ + ", " OOOOO%X. ", " #$o ", " @o ", " o ", " . ", " O ", " ", " O ", " o. ", " oooX ", " .o@$X$++O O ", " . #@%$$+$%@ ", " O#@%%XX@$ ", " O+XX$@%$& ", " OXX$%%#@& ", " +XX%#%%#$&$@ ", " OX.#$%#@%X$% ", " X.#X$%@%X+ ", " O+XXXX@%$ ", " OOX+#%$O ", " OO@$$O ", " #% + ", " @$Xo.X ", " ooo ", " .. ", " ", " ", " ", " ..ooooo.XO ", " @$XX ", " #%$+ ", " O@%$O ", " O+#@%$+O ", " OXXX$@%X$%@ ", " +XX$%@%$@$ ", " X.#$%#%#@& ", " X.#$%#%#@& ", " +XX$%@%$@$ ", " OXXX$@%X$%@ ", " O+#@%$+O ", " O@%$O ", " #%$+ ", " @$XX ", " ..ooooo.XO ", " ", " ", " ", " .. ", " ooo ", " @$Xo.X ", " #%X + ", " OO@$$O ", " OOX+#%$O ", " O.XXXX@%$O ", " +.#X$%@%X+ ", " OX.#$%#@%X$% ", " +XX%#%%#$&$@ ", " OXX$%%#@& ", " O+XX$@%$& ", " O#@%%XX@$ ", " . #@%$$+$%@ ", " .o@$X$++O O ", " oooX ", " o. ", " O ", " ", " O ", " . ", " o ", " @o ", " #$o ", " OOOOO%X. ", " X.+XX+@%+ + ", " ..#XXX@$$ ", " O+#$$$$@%O ", " OXX$%#@@%+ ", "O OXX$#%%%XXO ", " . O+X$@%#@$$% ", " o@#O@@@@%@@&$%@ ", " o$%%$%%X$& ", " oX+$O+X$$ ", " . O%% ", " + @ ", " ", " ", " ", " ", " . ", " . ", " o ", " O @o ", " OXX+OO $o ", " O+..XX+O#Xo ", " . OX##XXX#@$Xo ", " . OXXX$%$X@%+ . ", " o@ O+X$%#%$%$+ ", " o$#@#X%#%%@%$O O ", " oX%$%@@@%#%X+ ", " o $$%%%#@$X$O ", " . OO$XX$&&@% ", " X +$& $@ ", " + %$ ", " @ ", " ", " ", " "}; /* XPM */ static char * alien6_xpm[] = { "20 320 12 1", " c None", ". c #C1C1C1C1C1C1", "X c #909090909090", "o c #A1A1A1A1A1A1", "O c #B0B0B0B0B0B0", "+ c #E1E16F6F6F6F", "@ c #7F7F50503F3F", "# c #606000000000", "$ c #0000FFFF0000", "% c #A1A190905050", "& c #C1C15F5F5F5F", "* c #FFFF00000000", " ", " ", " . XooX . ", " X XOOOOX X ", " X XOO++OOX X ", " X +@#.@@.#@+ X ", " $ +%%#%%#%%+ $ ", " $oO+&%++%&+Oo$ ", " $oOO+&&&&+OOo$ ", " $oX &@@& Xo$ ", " X %% X ", " X X o&&o X X ", " Xo+..+oX ", " $oO..Oo$ ", " $ ** $ ", " $ $ ", " X X ", " X X ", " ", " ", " ", " . ", " o ", " o XOooX ", " $ +XOO&OX ", " $ +%#.+++OX ", " $oO+%#@@.OX . ", " $oOO+&%&&##@& o ", " X X +&&+&%%%+ o ", " X &&&&&+O $ ", " X &@o++OOo$ ", " Xoo%% Xoo$ ", " $oo+.&o o$ ", " $ O..+ooX X ", " $ **OoX X ", " X $ ", " $ ", " $ ", " X ", " ", " . ", " X ", " X ", " $ + ", " $o+&@OXXo ", " $oO+%#oO+oo ", " X XO+&%#&&+X ", " o&%&@&OX ", " &+&&#oO ", " X @&+%%#@ .", " $ooo%%@&&&%&+ X ", " $ o+.&% o+++ X ", " X ...o OOo$ ", " X **.+o Xo$ ", " * ooX $ ", " $ X ", " $ ", " X ", " X ", " ", " ", " o. ", " $o ", " $$ ", " X$oo +& ", " X ooOO%@XX ", " XO+%#OOXX ", " X +&%#.+Oo ", " $Xo +&&&@+&o ", " $$ ooo o&+&@+OO ", " X O+&%@&&%#.OX ", " *..%&&&&%#X ", " *.+o +++%+ ", " Ooo OO+ o. ", " oXX XOo $o ", " $$ o$$ ", " X$ X$ ", " X ", " ", " ", " ", " ", " ", " XX$$$$XXX. ", " ooo ", " XOO++ ", " XX$$$XX O+%@o ", " oo +&%#OX ", " O+o &&%#.OOX ", " *..&%@&+%@+Oo ", " *..&%@&+%@+Oo ", " O+o &&%#.OOX ", " oo +&%#OX ", " XX$$$XX O+%@X ", " XOO++ ", " ooo ", " XX$$$XXX.. ", " ", " ", " ", " ", " ", " X ", " X$ X$ ", " $$ o$$ ", " oXX XOo $o ", " Ooo OO+ o. ", " *.+o +++%+ ", " *..%&&&&%#X ", " X O+&%@&&%#.OX ", " $$ ooo o&+&@+OO ", " $Xo +&&&@+&o ", " X +&%#.+Oo ", " XO+%#OOXX ", " X ooOO%@XX ", " X$oo +& ", " $$ ", " $o ", " o. ", " ", " ", " X ", " X ", " $ ", " $ X ", " * ooX $ ", " X **.+o Xo$ ", " X ...o OOo$ ", " $ o+.&% o+++ X ", " $ooo%%@&&&%&+ X ", " X @&+%%#@ .", " &+&&#oO ", " o&%&@&OX ", " X XO+&%#&&+X ", " $oO+%#oO+oo ", " $o+&@OXXo ", " $ + ", " X ", " X ", " . ", " ", " X ", " $ ", " $ ", " X $ ", " $ **OoX X ", " $ O..+ooX X ", " $oo+.&o o$ ", " Xoo%% Xoo$ ", " X &@o++OOo$ ", " X &&&&&+O $ ", " X X +&&+&%%%+ o ", " $oOO+&%&&##@& o ", " $oO+%#@@.OX . ", " $ +%#.+++OX ", " $ +XOO&OX ", " o XOooX ", " o ", " . ", " ", " ", " ", " X X ", " X X ", " $ $ ", " $ ** $ ", " $oO..Oo$ ", " Xo+..+oX ", " X X o&&o X X ", " X %% X ", " $oX &@@& Xo$ ", " $oOO+&&&&+OOo$ ", " $oO+&%++%&+Oo$ ", " X +%%#%%#%%+ $ ", " X +@#.@@.#@+ X ", " X XOO++OOo X ", " . XOOOOX X ", " . XooX . ", " ", " ", " ", " X ", " $ ", " $ ", " $ X ", " X XoO** $ ", " X Xoo+..O $ ", " $o o&.+oo$ ", " $ooX %%ooX ", " $oOO++o@& X ", " $ O+&&&&& X ", " o +%%%&+&&+ X X ", " o &@##&&%&+OOo$ ", " . XO.@@#%+Oo$ ", " XO+++.#%+ $ ", " XO&OOX+ $ ", " XooOX o ", " o ", " . ", " ", " ", " X ", " X ", " $ ", " X $ ", " $ Xoo * ", " $oX o+.** X ", " $oOO o... X ", " X +++o %&.+o $ ", " X +&%&&&@%%ooo$ ", ". @#%%+&@ X ", " Oo#&&+& ", " XO&@&%&o ", " X+&&#%&+OX X ", " oo+Oo#%+Oo$ ", " oXXO@&+o$ ", " + $ ", " X ", " X ", " . ", " ", " ", " X ", " $X $X ", " $$o $$ ", " o$ oOX XXo ", " .o +OO ooO ", " +%+++ o+.* ", " X#%&&&&%..* ", " XO.#%&&@%&+O X ", " OO+@&+&o ooo $$ ", " o&+@&&&+ oX$ ", " oO+.#%&+ X ", " XXOO#%+OX ", " XX@%OOoo X ", " &+ oo$X ", " $$ ", " o$ ", " .o ", " ", " ", " ", " ", " ..XXX$$$XX ", " ooo ", " ++OOX ", " X@%+O XX$$$XX ", " XO#%&+ oo ", " XOO.#%&& o+O ", " oO+@%+&@%&..* ", " oO+@%+&@%&..* ", " XOO.#%&& o+O ", " XO#%&+ oo ", " o@%+O XX$$$XX ", " ++OOX ", " ooo ", " .XXX$$$$XX ", " ", " ", " ", " ", " .o ", " o$ ", " $$ ", " &+ oo$X ", " XX@%OOoo X ", " XXOO#%+OX ", " oO+.#%&+ X ", " o&+@&&&+ oX$ ", " OO+@&+&o ooo $$ ", " XO.#%&&@%&+O X ", " X#%&&&&%..* ", " +%+++ o+.* ", " .o +OO ooO ", " o$ oOX XXo ", " $$o $$ ", " $X $X ", " X ", " ", " ", " . ", " X ", " X ", " + $ ", " oXXO@&+o$ ", " oo+Oo#%+Oo$ ", " X+&&#%&+OX X ", " XO&@&%&o ", " Oo#&&+& ", ". @#%%+&@ X ", " X +&%&&&@%%ooo$ ", " X +++o %&.+o $ ", " $oOO o... X ", " $oX o+.** X ", " $ Xoo * ", " X $ ", " $ ", " X ", " X ", " ", " ", " . ", " o ", " XooOX o ", " XO&OOX+ $ ", " XO+++.#%+ $ ", " . XO.@@#%+Oo$ ", " o &@##&&%&+OOo$ ", " o +%%%&+&&+ X X ", " $ O+&&&&& X ", " $oOO++o@& X ", " $ooX %%ooX ", " $o o&.+oo$ ", " X Xoo+..O $ ", " X XoO** $ ", " $ X ", " $ ", " $ ", " X ", " "}; /* XPM */ static char * alien7_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 6 1", /* colors */ "` c None", "a c #F0F0F0", "b c #00F000", "c c #00A000", "d c #006000", "e c #A05020", /* pixels */ "````````````````````", "````````aaaaa```````", "````````````````````", "````````cbbbc```````", "````````dcccd```````", "```bbbbbbbbbbbbbbb``", "``bbbbbbbbbbbbbbbbb`", "``bbbbbbbbbbbbbbbbb`", "```bbbbbbbbbbbbbbb``", "``````e`d```d`e`````", "```````ecb`bce``````", "````````cbbbc```````", "````````ccbcc```````", "````````ccccc```````", "`````dddddbcccdd````", "`````ccdddbccccc````", "`````cccddbccccc````", "``````ddcdbccdd`````", "````````````````````", "````````````````````", "````````````````````", "````````````aa``````", "`````````````aaa````", "````bbbb```cb```````", "````bbbbbbdccbbc````", "````bbbbbbbbbcd`````", "`````bbbbbbbbbb`````", "```````bbbbbbbbbbb``", "```````e`dbbbbbbbbb`", "```````ec```bbbbbbbb", "````````cb`bd`bbbbbb", "```````ccbbbcee``b``", "````dd`ccbcc````````", "```ccddddccc````````", "```cccddbccc````````", "````ddddbcccd```````", "`````cdbbccccd``````", "````````cccccc``````", "``````````dd````````", "````````````````````", "````````````````````", "```````b````````````", "``````bbbb`````a````", "```````bbbb`````a```", "```````bbbbb`db``a``", "````````bbbbbccb``a`", "````````ebbbbbccb```", "````````e`bbbbbcd```", "````````ed`bbbbb````", "````d```cb``bbbbb```", "```cdd`cbb```bbbbb``", "``cccddccbbbd`bbbbb`", "``dccdddccbceeebbbb`", "```ddddbccc`````bbbb", "````ddbccc````````b`", "`````bccccd`````````", "``````ccccdd````````", "```````dccc`````````", "````````dc``````````", "````````````````````", "````````````````````", "``````````bb````````", "``````````bbb```````", "`````````bbbbb``````", "``````````bbbb``````", "``````````bbbb``c`a`", "`````````ebbbbbdb`a`", "```cd````e`bbbbcb`a`", "```ccd```cdbbbbbcb`a", "``dcddcccbb`bbbbcc``", "``dcdddccb``bbbbd```", "```cdddcbbb`dbbbb```", "```dbbbccccc`bbbb```", "````bccccc`eebbbbb``", "````cccc``````bbbb``", "````cdccd`````bbbb``", "`````dccd``````bbb``", "``````cc````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````bb`````", "````````````bbbb````", "````````````bbbb````", "````ccd`````bbbb````", "```dccd````ebbbb````", "```dcdd```e`bbbb````", "```cdddccccdbbbbdc`a", "```ddddccbb`bbbbcb`a", "```bbbbcbb``bbbbcb`a", "```ccccccbb`bbbbcb`a", "```ccccccccdbbbbdc`a", "```dccc```e`bbbb````", "```dccd````ebbbb````", "````ccd`````bbbb````", "````````````bbbb````", "````````````bbbb````", "`````````````bb`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````cc````````````", "`````dccd``````bbb``", "````cdcdd`````bbbb``", "````dddd``````bbbb``", "````bdddcc`eebbbbb``", "```cbbbdcccc`bbbb```", "```cccccbbb`dbbbb```", "``dccccccb``bbbbd```", "``dccccccbb`bbbbcc``", "```ccd```cdbbbbbcb`a", "```cd````e`bbbbcb`a`", "`````````ebbbbbdb`a`", "``````````bbbb``c`a`", "``````````bbbb``````", "`````````bbbbb``````", "``````````bbb```````", "``````````bb````````", "````````````````````", "````````````````````", "````````dc``````````", "```````dccc`````````", "``````ddccdd````````", "`````bddddd`````````", "````ccbddd````````b`", "```dcccbdcc`````bbbb", "``dcccccccbceeebbbb`", "``cccccccbbbd`bbbbb`", "```cdd`cbb```bbbbb``", "````d```cb``bbbbb```", "````````ed`bbbbb````", "````````e`bbbbbcd```", "````````ebbbbbccb```", "````````bbbbbccb``a`", "```````bbbbb`db``a``", "```````bbbb`````a```", "``````bbbb`````a````", "```````b````````````", "````````````````````", "````````````````````", "``````````dd````````", "````````dccccc``````", "`````ccbbdddcd``````", "````ddccbdddd```````", "```cccccbddc````````", "```ccccccccc````````", "````dd`ccbcc````````", "```````ccbbbcee``b``", "````````cb`bd`bbbbbb", "```````ec```bbbbbbbb", "```````e`dbbbbbbbbb`", "```````bbbbbbbbbbb``", "`````bbbbbbbbbb`````", "````bbbbbbbbbcd`````", "````bbbbbbdccbbc````", "````bbbb```cb```````", "`````````````aaa````", "````````````aa``````", "````````````````````", "````````````````````", "````````````````````", "``````ddccbdcdd`````", "`````cccccbddccc````", "`````cccccbdddcc````", "`````ddcccbddddd````", "````````ccccc```````", "````````ccbcc```````", "````````cbbbc```````", "```````ecb`bce``````", "``````e`d```d`e`````", "```bbbbbbbbbbbbbbb``", "``bbbbbbbbbbbbbbbbb`", "``bbbbbbbbbbbbbbbbb`", "```bbbbbbbbbbbbbbb``", "````````dcccd```````", "````````cbbbc```````", "````````````````````", "````````aaaaa```````", "````````````````````", "````````````````````", "`````````dd`````````", "```````cccccc```````", "```````dccccbbdc````", "````````dcccbdddd```", "`````````cccbddccc``", "`````````cccddddcc``", "`````````ccbcc`dd```", "```b``eecbbbcc``````", "`bbbbbb`db`bc```````", "`bbbbbbbb```ce``````", "``bbbbbbbbbd`e``````", "```bbbbbbbbbbb``````", "``````bbbbbbbbbb````", "``````dcbbbbbbbbb```", "`````cbbccdbbbbbb```", "````````bc```bbbb```", "`````aaa````````````", "```````aa```````````", "````````````````````", "````````````````````", "```````````cd```````", "``````````cccd``````", "`````````ddcccc`````", "``````````dccccb````", "``b````````cccbdd```", "`bbbb`````cccbdddd``", "``bbbbeeecbccdddccd`", "``bbbbb`dbbbccddccc`", "```bbbbb```bbc`ddc``", "````bbbbb``bc```d```", "`````bbbbb`de```````", "````dcbbbbb`e```````", "````bccbbbbbe```````", "``a``bccbbbbb```````", "```a``bd`bbbbb``````", "````a`````bbbb``````", "`````a`````bbbb`````", "`````````````b``````", "````````````````````", "````````````````````", "````````````````````", "`````````````cc`````", "```bbb``````dccd````", "```bbbb`````dccdc```", "```bbbb``````cccc```", "```bbbbbee`cccccb```", "````bbbb`cccccbbbd``", "````bbbbd`bbbcdddc``", "````dbbbb``bccdddcd`", "```ccbbbb`bbcccddcd`", "`a`bcbbbbbdc```dcc``", "`aa`bcbbbb`e````dc``", "``a`bdbbbbbe````````", "``a`c``bbbb`````````", "```````bbbb`````````", "```````bbbbb````````", "````````bbb`````````", "`````````bb`````````", "````````````````````", "````````````````````", "``````bb````````````", "`````bbbb```````````", "`````bbbb```````````", "`````bbbb`````dcc```", "`````bbbbe````dccd``", "`````bbbb`e```cccd``", "`a`cdbbbbdcccccccc``", "`a`bcbbbb`bbcccccc``", "`a`bcbbbb``bbcbbbb``", "`a`bcbbbb`bbccdddd``", "`a`cdbbbbdccccdddc``", "`````bbbb`e```ddcd``", "`````bbbbe````dccd``", "`````bbbb`````dcc```", "`````bbbb```````````", "`````bbbb```````````", "``````bb````````````", "````````````````````", "````````````````````", "`````````bb`````````", "````````bbb`````````", "```````bbbbb````````", "```````bbbb`````````", "``a`c``bbbb`````````", "``a`bdbbbbbe````````", "`aa`bcbbbb`e````dc``", "`a`bcbbbbbdc```dcc``", "```ccbbbb`bbccccccd`", "````dbbbb``bccccccd`", "````bbbbd`bbbccccc``", "````bbbb`ccccdbbbc``", "```bbbbbee`ccdddb```", "```bbbb``````dddd```", "```bbbb`````ddcdc```", "```bbb``````dccd````", "`````````````cc`````", "````````````````````", "````````````````````", "````````````````````", "`````````````b``````", "`````a`````bbbb`````", "````a`````bbbb``````", "```a``bd`bbbbb``````", "``a``bccbbbbb```````", "````bccbbbbbe```````", "````dcbbbbb`e```````", "`````bbbbb`de```````", "````bbbbb``bc```d```", "```bbbbb```bbc`ddc``", "``bbbbb`dbbbccccccc`", "``bbbbeeecbcccccccd`", "`bbbb`````ccdbcccd``", "``b````````dddbcc```", "``````````dddddb````", "`````````ddccdd`````", "``````````cccd``````", "```````````cd```````", "````````````````````", "````````````````````", "```````aa```````````", "`````aaa````````````", "````````bc```bbbb```", "`````cbbccdbbbbbb```", "``````dcbbbbbbbbb```", "``````bbbbbbbbbb````", "```bbbbbbbbbbb``````", "``bbbbbbbbbd`e``````", "`bbbbbbbb```ce``````", "`bbbbbb`db`bc```````", "```b``eecbbbcc``````", "`````````ccbcc`dd```", "`````````ccccccccc``", "`````````cddbccccc``", "````````ddddbccdd```", "```````dcdddbbcc````", "```````cccccd```````", "`````````dd`````````", "````````````````````" }; /* XPM */ static char * alien8_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 8 1", /* colors */ "` c None", "a c #606000", "b c #900000", "c c #F0F000", "d c #C00000", "e c #A0A000", "f c #0000F0", "g c #F00000", /* pixels */ "````````````````````", "````````````````````", "````````````````````", "````d````bab````d```", "```dgd``bdedb``dgd``", "```dgdbbdgcgdbbdgd``", "```becedggcggdeceb``", "`````eced```dece````", "``````ecee`eece`````", "```````ececece``````", "````````eccce```````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "`````````fef````````", "````````fffff```````", "`````````fff````````", "````````````````````", "````````````````````", "```````d````````````", "``````dg````````````", "`````dgdd```b```````", "`````becbbbdeab`````", "```````eeddgcdb`````", "```````cedggcgd``dd`", "```````ece``ggdbbdgd", "````````ece``deecgd`", "````````eeceeecceeb`", "`````````ccccee`````", "````````eecee```````", "````````ece`````````", "````````ece`````````", "```````ece``````````", "```````fce``````````", "`````fffef``````````", "``````ffff``````````", "````````f```````````", "````````````````````", "````````````````````", "`````````dgd````````", "````````bggd````````", "````````eed`````````", "`````````ceb`bb`````", "`````````cedddda````", "`````````eegggedb```", "`````````ee`gcgdb```", "`````````cee`ggd````", "`````````cece`gdb`dd", "````````eeceeeeeedgg", "```````eececceeccegd", "``````eecee``````eb`", "`````fecee``````````", "````ffeee```````````", "```fffff````````````", "````fff`````````````", "`````f``````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````d``````", "```````````bdgd`````", "```````````egdd`````", "```````````ecb``````", "```````````ceb``````", "``````````eceddbb```", "``````````eedggda```", "`````````ece`gcceb``", "`````````ece``ggd```", "```````eeccce`gdb```", "```ffeeccececeddb```", "``ffecceee`eeceebd``", "```fffe``````ececdgd", "```ff```````````egd`", "````f```````````bd``", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````````````bdd```", "``````````````eggd``", "`````````````ecdd```", "````````````eceb````", "```````````ecedb````", "```f``````ecedgdb```", "``fffeeeeecee`ggdb``", "``ffeccccccc``ccea``", "``fffeeeeecee`ggdb``", "```f``````ecedgdb```", "```````````ecedb````", "````````````eceb````", "`````````````ecdd```", "``````````````eggd``", "``````````````bdd```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````f```````````bd``", "```ff```````````egd`", "```fffe``````ececdgd", "``ffecceee`eeceebd``", "```ffeeccececeddb```", "```````eeccce`gdb```", "`````````ece``ggd```", "`````````ece`gcceb``", "``````````eedggda```", "``````````eceddbb```", "```````````ceb``````", "```````````ecb``````", "```````````egdd`````", "```````````bdgd`````", "`````````````d``````", "````````````````````", "````````````````````", "````````````````````", "`````f``````````````", "````fff`````````````", "```fffff````````````", "````ffeee```````````", "`````fecee``````````", "``````eecee``````eb`", "```````eececceeccegd", "````````eeceeeeeedgg", "`````````cece`gdb`dd", "`````````cee`ggd````", "`````````ee`gcgdb```", "`````````eegggedb```", "`````````cedddda````", "`````````ceb`bb`````", "````````eed`````````", "````````bggd````````", "`````````dgd````````", "````````````````````", "````````````````````", "````````f```````````", "``````ffff``````````", "`````fffef``````````", "```````fce``````````", "```````ece``````````", "````````ece`````````", "````````ece`````````", "````````eecee```````", "`````````ccccee`````", "````````eeceeecceeb`", "````````ece``deecgd`", "```````ece``ggdbbdgd", "```````cedggcgd``dd`", "```````eeddgcdb`````", "`````becbbbdeab`````", "`````dgdd```b```````", "``````dg````````````", "```````d````````````", "````````````````````", "````````````````````", "`````````fff````````", "````````fffff```````", "`````````fef````````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "`````````ece````````", "````````eccce```````", "```````ececece``````", "``````ecee`eece`````", "`````eced```dece````", "```becedggcggdeceb``", "```dgdbbdgcgdbbdgd``", "```dgd``bdedb``dgd``", "````d````bab````d```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````f```````", "```````````ffff`````", "```````````fefff````", "```````````ecf``````", "```````````ece``````", "``````````ece```````", "``````````ece```````", "````````eecee```````", "``````eecccc````````", "``beecceeecee```````", "``dgceed``ece```````", "`dgdbbdgg``ece``````", "``dd``dgcggdec``````", "``````bdcgddee``````", "``````baedbbbceb````", "````````b```ddgd````", "`````````````gd`````", "`````````````d``````", "````````````````````", "````````````````````", "````````````````````", "```````````````f````", "``````````````fff```", "`````````````fffff``", "````````````eeeff```", "```````````eecef````", "``be``````eecee`````", "`dgecceeccecee``````", "`ggdeeeeeecee```````", "`dd`bdg`ecec````````", "`````dgg`eec````````", "````bdgcg`ee````````", "````bdegggee````````", "`````addddec````````", "``````bb`bec````````", "``````````dee```````", "`````````dggb```````", "`````````dgd````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "```db```````````f```", "``dge```````````ff``", "`dgdcece``````efff``", "```dbeecee`eeecceff`", "````bddecececceeff``", "````bdg`ecccee``````", "````dgg``ece````````", "```beccg`ece````````", "````adggdee`````````", "````bbddece`````````", "```````bec``````````", "```````bce``````````", "``````ddge``````````", "``````dgdb``````````", "```````d````````````", "````````````````````", "````````````````````", "````````````````````", "````ddb`````````````", "```dgge`````````````", "````ddce````````````", "`````bece```````````", "`````bdece``````````", "````bdgdece``````f``", "```bdgg`eeceeeeefff`", "```aecc``ccccccceff`", "```bdgg`eeceeeeefff`", "````bdgdece``````f``", "`````bdece``````````", "`````bece```````````", "````ddce````````````", "```dgge`````````````", "````ddb`````````````", "````````````````````", "````````````````````", "````````````````````", "```````d````````````", "``````dgdb``````````", "``````ddge``````````", "```````bce``````````", "```````bec``````````", "````bbddece`````````", "````adggdee`````````", "```beccg`ece````````", "````dgg``ece````````", "````bdg`ecccee``````", "````bddecececceeff``", "```dbeecee`eeecceff`", "`dgdcece``````efff``", "``dge```````````ff``", "```db```````````f```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````dgd````````", "`````````dggb```````", "``````````dee```````", "``````bb`bec````````", "`````addddec````````", "````bdegggee````````", "````bdgcg`ee````````", "`````dgg`eec````````", "`dd`bdg`ecec````````", "`ggdeeeeeecee```````", "`dgecceeccecee``````", "``be``````eecee`````", "```````````eecef````", "````````````eeeff```", "`````````````fffff``", "``````````````fff```", "```````````````f````", "````````````````````", "````````````````````", "````````````````````", "`````````````d``````", "`````````````gd`````", "````````b```ddgd````", "``````baedbbbceb````", "``````bdcgddee``````", "``dd``dgcggdec``````", "`dgdbbdgg``ece``````", "``dgceed``ece```````", "``beecceeecee```````", "``````eecccc````````", "````````eecee```````", "``````````ece```````", "``````````ece```````", "```````````ece``````", "```````````ecf``````", "```````````fefff````", "```````````ffff`````", "````````````f```````", "````````````````````" }; /* XPM */ static char * alien9_xpm[] = { /* width height ncolors chars_per_pixel */ "20 320 8 1", /* colors */ "` c None", "a c #CFCFC9C95454", "b c #FFFFFFFF0000", "c c #00000000AFAF", "d c #00000000FFFF", "e c #999995953E3E", "f c #010100000000", "g c #FFFF00000000", /* pixels */ "````````````````````", "```````bggggb```````", "```````beggeb```````", "```````ebeebe```````", "`````cdcebbecdc`````", "````cdddeffedddc````", "````ddddabbadddd````", "````cdddbffbdddc````", "`````cddabbaddc`````", "`````cddeffeddc`````", "``````dddbbddd``````", "``````dddffddd``````", "`````cdddbbdddc`````", "`````cdddffdddc`````", "````cddddaaddddc````", "````dddddffddddd````", "````cddddeeddddc````", "`````cdc````cdc`````", "````````````````````", "````````````````````", "``````````b`````````", "``````````bggg``````", "``````````eegggb````", "``````cdcdcbeeeb````", "``````ddddeebbbe````", "`````cdddaffeec`````", "``````cddbbbadddc```", "``````cddaffbdddc```", "``````dddebbadddd```", "``````dddbffedddc```", "````cdddfbddddc`````", "```ccdddbfddd`c`````", "``ddddddfbddd```````", "``cdddddafdddc``````", "```cdddffadddc``````", "```dcdeeddddd```````", "````````dddddc``````", "`````````cddc```````", "```````````c````````", "````````````````````", "``````````````b`````", "``````````c``bg`````", "````````dcdd`eeg````", "````````cdddcebggg``", "```````cddddebegeb``", "```````cdddabfbebb``", "```````ddabfbfece```", "````ccdddebbfaedd```", "```cddddddffabdddc``", "`cddddddfbbedddddc``", "``dddddfbfddddcdd```", "`cddddafbddddc`c````", "```cddfaddddd```````", "````eefdddd`````````", "``````ddddcc````````", "```````dddd`````````", "``````cdddc`````````", "````````ccd`````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````````````cc`````", "``````````cdddd``b``", "```````````ddddcebg`", "`````````ccddddebeg`", "``cdccc`ddddbaebegg`", "```ddddddddeafbfbegg", "``cdddddddbfbfbfebeb", "``ddddddbfbfbbaeceb`", "```cdddffbfdeadddd``", "````efaadddddddddc``", "````efddddddddddd```", "`````ddddddd`cccdc``", "`````cdddcc`````````", "`````dddd```````````", "``````ccdc``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````cdc``````cdc````", "```cdddcc``ccdddc```", "```dddddddddddddd```", "```cddddddddddddcebb", "````dddddddeabaeebeg", "````efafbfbfbfbfbegg", "````efafbfbfbfbfbegg", "````dddddddeabaeebeg", "```cddddddddddddcebb", "```dddddddddddddd```", "```cdddcc``ccdddc```", "````cdc``````cdc````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````ccdc``````````", "`````dddd```````````", "`````cdddcc`````````", "`````ddddddd`cccdc``", "````efddddddddddd```", "````efaadddddddddc``", "```cdddffbfdeadddd``", "``ddddddbfbfbbaeceb`", "``cdddddddbfbfbfebeb", "```ddddddddeafbfbegg", "``cdccc`ddddbaebegg`", "`````````ccddddebeg`", "```````````ddddcebg`", "``````````cdddd``b``", "`````````````cc`````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````ccd`````````", "``````cdddc`````````", "```````dddd`````````", "``````ddddcc````````", "````eefdddd`````````", "```cddfaddddd```````", "`cddddafbddddc`c````", "``dddddfbfddddcdd```", "`cddddddfbbedddddc``", "```cddddddffabdddc``", "````ccdddebbfaedd```", "```````ddabfbfece```", "```````cdddabfbebb``", "```````cddddebegeb``", "````````cdddcebggg``", "````````dcdd`eeg````", "``````````c``bg`````", "``````````````b`````", "````````````````````", "```````````c````````", "`````````cddc```````", "````````dddddc``````", "```dcdeeddddd```````", "```cdddffadddc``````", "``cdddddafdddc``````", "``ddddddfbddd```````", "```ccdddbfddd`c`````", "````cdddfbddddc`````", "``````dddbffedddc```", "``````dddebbadddd```", "``````cddaffbdddc```", "``````cddbbbadddc```", "`````cdddaffeec`````", "``````ddddeebbbe````", "``````cdcdcbeeeb````", "``````````eegggb````", "``````````bggg``````", "``````````b`````````", "````````````````````", "````````````````````", "`````cdc````cdc`````", "````cddddeeddddc````", "````dddddffddddd````", "````cddddaaddddc````", "`````cdddffdddc`````", "`````cdddbbdddc`````", "``````dddffddd``````", "``````dddbbddd``````", "`````cddeffeddc`````", "`````cddabbaddc`````", "````cdddbffbdddc````", "````ddddabbadddd````", "````cdddeffedddc````", "`````cdcebbecdc`````", "```````ebeebe```````", "```````beggeb```````", "```````bggggb```````", "````````````````````", "````````````````````", "````````````````````", "``````c`cd``````````", "``````ddddc`````````", "``````cddddee```````", "``````cddddffdcd````", "``````cddddaddddc```", "```````dddfaddddc```", "``````dddbfdddddd```", "`````cdddfbdddc`c```", "```c`cddbbfdddc`````", "```ddddeffdddd``````", "```dddbabbedd```````", "``cdddaffbaddc``````", "``cdddebbadddc``````", "````cebffedddc``````", "````ebebecdddd``````", "```bbegebedc`c``````", "````ggggeb``````````", "```````gb```````````", "````````````````````", "`````````c`c````````", "`````````ddd````````", "````````cdddc```````", "```````cddddde``````", "```````cddddde``````", "```````ddddaffd`c```", "````ccddddffadddd```", "``dcdddddfbbdddddc``", "``cdddaedbfddddddc``", "`cddddbbfbddddcdcd``", "``dddafbfeddd`c`````", "```cebbfadddd```````", "`beebffabddc````````", "bgebebeeddc`````````", "``gggecddddc````````", "```gebedddd`````````", "```gbb``cc``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````dc``````", "```````````cddcd````", "``````````ccdddc````", "`````c````dddddd````", "```cddccddddddde````", "```dddddddddddfe````", "```cddddddfbfafdd```", "```ddabaebbfbfaddc``", "bbecefbfbfdddddddd``", "`gebefbfbfddddddddc`", "`ggebeabaedddddddc``", "`ggebeddddd``cc`c```", "``gebcddddcc````````", "``bbe`dddd``````````", "``````ccdc``````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "`````cdc``````cdc```", "````cdddcc``ccdddc``", "````dddddddddddddd``", "`bbecddddddddddddc``", "`gebeeabaeddddddd```", "`ggebfbfbfbfbfafe```", "`ggebfbfbfbfbfafe```", "`gebeeabaeddddddd```", "`bbecddddddddddddc``", "````dddddddddddddd``", "````cdddcc``ccdddc``", "`````cdc``````cdc```", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "````````````````````", "``````cd````````````", "`````cddc```````````", "``bbeddddcc`````````", "`gebcddddd``````````", "`ggeeeaddddd`c`cd```", "`ggebfbbaeddddcddc``", "gebbfbfbfddddddddc``", "`beeeafbfbfbdddddd``", "```cddbaebfbfafddc``", "`cdddddddddfafed````", "``cddddddddddde`````", "````ddccddddddd`````", "````c````cddddc`````", "``````````cdddd`````", "```````````cddc`````", "````````````c```````", "````````````````````", "````````````````````", "````````````````````", "```gb``c`c``````````", "```gebedddd`````````", "`gggebcdddc`````````", "`begebeedddc````````", "`bebbffadddc````````", "``ceebbbaddd````````", "``dddaffbedddc``````", "`cdddbabfbddddccd```", "``cddddefbfddddddc``", "``ddcddddfbfdddddc``", "```c`cddddbfaddddd``", "```````ddddaffd`c```", "```````dddddee``````", "```````ccdddd```````", "````````ddddc```````", "````````cdddd```````", "`````````c`c````````", "````````````````````", "```````gb```````````", "`````ggeb```````````", "````bgggbe`c````````", "````beeeecddc```````", "````ebbbeddddd``````", "```dceffbadddc``````", "``cddeabfbddc```````", "``cddddbfbaddc``````", "```ddddabfedd```````", "```ccddefbdddd``````", "````cdddbffdddc`````", "`````ddddbbdddcc````", "```````dddffddddd```", "``````cdddaadddddc``", "``````cdddffddddc```", "`````cdddddee`cd````", "`````ddddd``````````", "```````cddc`````````", "````````c```````````" }; /* XPM */ static char * etorp_xpm[] = { "5 40 6 1 XPMEXT", " c None", ". c #959555550000", "X c #FFFFC8C80000", "o c #FFFFD4D4B5B5", "O c #FFFF00000000", "+ c #C8C864640000", " . ", " .X..", ".XoX.", "..X. ", " . ", " . ", "X.X. ", ".OoO.", " .X+X", " . ", ". X", "X..O ", " Oo..", "...X.", ". .", "X. ", " X...", " OoX ", "...O ", " ..", " .. ", " .O. ", ".OoO.", " .O. ", " .. ", " .. ", "..OX ", " .o. ", " O.O.", "X.. ", ". ..", " .X. ", " .o. ", " O.X ", "X. .", ".. .", " XO..", " .o. ", "...O ", ". .X" "XPMEXT num_views", "8", "XPMENDEXT"}; /* XPM */ static char * explosion_xpm[] = { "66 326 21 1 XPMEXT", " c None", ". c #606000000000", "X c #FFFF00000000", "o c #E0E0E0E0E0E0", "O c #909090909090", "+ c #E1E190900000", "@ c #FFFFFFFF0000", "# c #FFFFC8C80000", "$ c #FFFFFFFFFFFF", "% c #FFFFFFFF3F3F", "& c #FFFFFFFFC1C1", "* c #FFFFFFFF7F7F", "= c #B0B000000000", "- c #D0D0D0D0D0D0", "; c #B0B070700000", ": c #B0B0B0B0B0B0", "? c #C1C1C1C1C1C1", "> c #A1A1A1A1A1A1", ", c #909000000000", "< c #7F7F50503F3F", "1 c #FFFFDFDF9090", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . . ", " X ", " . . ", " . o ", " .oo ", " oo o oo ", " ooO ++oo +OO ", " oO@+@@###+@ $ ", " +O@@@@@%%@## oo ", " #@@@&&&&oO%#ooo ", " #@@%&&$$$$OOOo@o ", " +#@%&O$$$$$oOOOo@& ", " +# %&$&&$$$$OOO%@& ", " oo+O*&&$$$$$$$oOo@# ", " o *&&&$$$$&$$Oo@# ", " @%**&OO$$$$&&&%@+# ", " ##%*&O&&$$$$&%@@ ", " oo@%#*$$&&$$$@%% @ ", " o@***&O&$&@*O . ", " oO##@*&&&&$&OO ... ", " .. oOO@**&&*&oOooo X. ", " .X. oo%**##*OOooo . . ", " . @ #+o o ", " @ ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . . = ", " X. ", " . . ", " . ", " ", " ", " ", " ", " ", " = ", " ", " ", " ", " ", " ", " -- ", " X --- ;;OO ", " X-:-:;+++ :;++O-: : ", " :;:O;++; + ;+; :-- ", " ;:- +++++##oo ++O:-: ", " ;::O#+#####@++#+;O:- ", " ;+;++##OO@@@#####O O-- ", " ;+++@#+%OO%%%%@#@## ;; ", " = ;+#+##@&OO&&**%%@+#+++ = ", " ;#+##%&&O*&&&&&@%##@++ ", " ###@OO&&&%%&&&&&%##@++; ", " :?##@@&&&*&&*&&%&OoO#@++; ", " -:;O#@%&&&*&@&@&*%OOO@##+; ", " ;+#@@&&%%@#@#&&&OOo@# +; . ", " ++#@O&&%%@@+@@@*&&%@#;+; ...X. ", " +#@%&&&*@@##@@*&&% #++; . . ", " -O++@%&O%&@%*****&&%@#++ =. ", " O ++#%O&&%%@***&&&@%@#;+ ", " ;+;#%@&&&&*%&&&&&%@@#;+;.. ", " ++#@%@&&&&&&&&&%%+@+++ .X. ", " +##@@%%%&&&&@@%+++; :: . ", " OOOO###@oOO@@%%++#; O-- ", " --:OO####Oo%%%;#+; :- ", " -::O###@ #####++ O:- ", " --:O+++##@@@++; ", " --O + +;; ", " O ", " = ", " ", " .. ", " .. ", " .X. ", " . = .. ", " .. ", " .X. ", " . ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " OOO ", " ?>O.. O ", " O>>? . ", " . ... = ", " =. ", " . O: ", " O: ", " O --O ", " O .: : ", " =, ...:O: .. O ", " . . >:O..... . .. . ", " . <:O .<.< . .. . ", " . <<<;;;;;;;;;<<... . . ", " . < #;;+##++####;<...O. ", " =.. ;#######1111++##;<.. . ", " ;;####1@@@@@@@#1#++;;< . ", " . <;;###11@******&*@111+# <. ", " . <;###@1****@*@@@***@@#1#+ c #1C1C1C1C0000", ", c #383838380000", "< c #555555550000", "1 c #717100000000", "2 c #AAAA00000000", "3 c #8D8D00000000", "4 c #00008D8D0000", "5 c #0000AAAA0000", "6 c #000000007171", "7 c #00000000AAAA", "8 c #0000C6C6C6C6", "9 c #0000E2E2E2E2", "0 c #0000FFFFFFFF", "q c #717171710000", "w c #AAAAAAAA0000", "e c #FFFF00000000", "r c #E2E200000000", "t c #C6C600000000", "y c #0000E2E20000", "u c #0000FFFF0000", "i c #00000000FFFF", "p c #FFFFFFFF0000", "a c #00000000C6C6", "s c #00000000E2E2", "d c #C6C6C6C60000", "f c #E2E2E2E20000", "g c #0000C6C60000", "h c #000071710000", "j c #8D8D8D8D0000", "k c #000000008D8D", " ", " ", " ", " .XoooooooX. ", " O+@@@@@@@@@@@@@@@@@@@@@@+O #$%%%%%$# &*===============*& &*================*& .Xo-;:::::::;-oX. >,<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,> ", " +1222222222222222222222231@+O #%4555554%# *67777777777777776* *677777777777777776* .X-;:89000000098:;-X. ,qwwwwwwwwwwwwwwwwwwwwwwwwwwwwwq, ", " @2eeeeeeeeeeeeeeeeeeeeeert231+O $4yuuuuuy4$ =7iiiiiiiiiiiiiii7= =7iiiiiiiiiiiiiiii7= .o;8900098:::8900098;o. ,qdpppppppdq> >qdpw< ", " @2eeeeeee2@ O1teeeeeer3+ $4yy55guuuuuu5% =7iiiiiii7= =7iiiiiii7= X;9000000:o o:0:o ,,> ", " @2eeeeeee2@ @2eeeeeee2@ %5ugh##hguuuuuu5% =7iiiiiii7= =7iiiiiii7= o:000000009:o. .XX. ,,> ", " @2eeeeeee2@ @2eeeeeee2@ %5u5% %5uuuuuugh# =7iiiiiii7= =7iiiiiii7= o:0000000009:o. qdw< ", " @2eeeeeee2@ O1teeeeeer3+ $4ygh# #hguuuuuu5% =7iiiiiii7= =7iiiiiii7= .-8000000000098;-oX. qdpw< ", " @2eeeeeee2@ O1teeeeeer3+ #hgu5% %5uuuuuuy4$ =7iiiiiii7= =7iiiiiii7= .o:9000000000000098;-X. qdpw< ", " @2eeeeeeert2222222231@@+O #hguyg55555555gyuuuuuuy4$ =7iiiiiii7= =7iiiiiii7= .X-;89000000000009;X qdw< ", " @2eeeeeee2@ %5uyg555555555gyuuuuuuugh# =7iiiiiii7= =7iiiiiii7= .X-:90000000009;X ,,> ", " @2eeeeeee2@ $4yu5% #hguuuuuuu5% =7iiiiiii7= =7iiiiiii7= .o;:-X .o:900000000:o >> ", " @2eeeeeee2@ %5uy4$ %5uuuuuuugh# =7iiiiiii7= =7iiiiiii7= .-80:o .o:90000000:o <<, ", " @2eeeeeee2@ #hgugh# $4yuuuuuuy4$ =7iiiiiii7= =7iiiiiii7= o:08-. .-80000000:o qdw< ", " @2eeeeeee2@ %5uy4$ %5uuuuuuugh# *ksiiiiiia6& &6aiiiiiia6& o:008-. o:0000009;X qdpw< ", " @2eeeeeee2@ $4yu5% $4yuuuuuuu5% =7iiiiiii7= =7iiiiiisk* o:0008-. o:000009;X >qdppw< ", " @2eeeeeeet1O #%5yuy4$ %5uuuuuuuy4$ &=7siiiiis7=& &=7siiiiisk* o:00009:o. .o:900009;X >,qwfppw< ", " O1teeeeeeer21@@@+O #$%h5yuuy4%$%$# #$%%4guuuuuuuug4%%$# &=7siiiiis76*& &*67siiiiis7=& X;900009:-X. .X-:900009:o. >,<,<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,> ", " &*========*& .XoooooooX. ", " ", " ", " ", " ", " "}; /* XPM */ static char * player1_xpm[] = { "20 80 12 1", " c None", ". c #939307070000", "X c #BBBB37370707", "o c #00000101A2A2", "O c #D7D7D7D7E7E7", "+ c #838383838383", "@ c #474747474747", "# c #AFAFB3B3D3D3", "$ c #83838F8FBBBB", "% c #01010000FFFF", "& c #000000006161", "* c #0000FFFFFFFF", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " @$@ @O@ @$@ ", " o%o + o%o ", " &o& &o& ", " & & ", " ", " ", " ", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " @$@ @O@ @$@ ", " o%o + o%o ", " o%o o%o ", " o%o o%o ", " &o& &o& ", " ", " ", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " &$& @O@ &$& ", " &o*o& + &o*o& ", " o%*%o o%*%o ", " o%*%o o%*%o ", " o%%%o o%%%o ", " &o%o& &o%o& ", " &o& &o& ", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " @$@ @O@ @$@ ", " o%o + o%o ", " o%o o%o ", " o%o o%o ", " &o& &o& ", " ", " " }; /* XPM */ static char * player2_xpm[] = { "20 20 12 1", " c #000000000000", ". c #939307070000", "X c #BBBB37370707", "o c #00000101A2A2", "O c #D7D7D7D7E7E7", "+ c #838383838383", "@ c #474747474747", "# c #AFAFB3B3D3D3", "$ c #83838F8FBBBB", "% c #01010000FFFF", "& c #00000000FFFF", "* c #000000006161", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " @$@ @O@ @$@ ", " o%o + o%o ", " o&o o&o ", " o%o o%o ", " *o* *o* ", " ", " "}; /* XPM */ static char * player3_xpm[] = { "20 20 12 1", " c #000000000000", ". c #939307070000", "X c #BBBB37370707", "o c #00000101A2A2", "O c #D7D7D7D7E7E7", "+ c #838383838383", "@ c #474747474747", "# c #AFAFB3B3D3D3", "$ c #000000006161", "% c #83838F8FBBBB", "& c #0000FFFFFFFF", "* c #01010000FFFF", " .X. ", " .XXX. ", " XXoXX ", " .X.X.X. ", " .O. ", " + +O+ + ", " @O@ +O+ @O@ ", " +O+ +O+ +O+ ", " +O++ +O+ ++O+ ", " +O+###O###+O+ ", " +O#+++O+++#O+ ", " +O++@+O+@++O+ ", " +O+ +O+ +O+ ", " $%$ @O@ $%$ ", " $o&o$ + $o&o$ ", " o*&*o o*&*o ", " o*&*o o*&*o ", " o***o o***o ", " $o*o$ $o*o$ ", " $o$ $o$ "}; /* XPM */ static char * pr_blank_xpm[] = { "15 10 3 1", " c #000000000000", ". c #00000000AFAF", "X c #00000000FFFF", " ..XXXXXXX.. ", " ..XXXXXXXXXX. ", "...XXXXXXXXXXX.", "..XXXXXXXXXXXXX", "...XXXXXXXXXXXX", "...XXXXXXXXXXXX", "....XXXXXXXXXXX", ".....XXXXXXXXX.", " .....XXXXXXX. ", " ........... "}; /* XPM */ static char * pr_brain_xpm[] = { "15 10 5 1", " c None", ". c #9F9F37370202", "X c #FFFF59590404", "o c #BCBCBCBCBCBC", "O c #A8A800000000", " ...XXXXXX.. ", " ..X XX. ", "... o o o XX.", ".. o o o o o XX", ".. o o o o o X", "... o o o o XX", ".... oo XXX", ".... o XXXXXXXO", " ... o XXXXXXO ", " ... ....... "}; /* XPM */ static char * pr_doub_xpm[] = { "15 10 5 1", " c None", ". c #000081810000", "X c #0000B0B00000", "o c #0000E5E50000", "O c #BCBCBCBCBCBC", " .XoooooooX. ", " XXo ooooo ooX ", "XXo O ooo O ooX", "XX OOO o OOO oo", "XX OOO o OOO oo", "XX OOO o OOO oo", "XXX O ooo O ooo", "XX OOO o OOO oX", " XX XXo oX ", " .XXXXXXXXX. "}; /* XPM */ static char * pr_extrabullet_xpm[] = { "15 10 4 1", " c None", ". c #00000000AFAF", "X c #00000000FFFF", "o c #FFFFFFFFFFFF", " ..XX XXX.. ", " ..XX oo XXXX. ", "...XX oo XXXXX.", "..XXX oo XXXXXX", "...XXX XXXXXXX", "...XXX XXXXXXX", "....X oo XXXXXX", "..... oo XXXXX.", " .... oo XXXX. ", " .... ..... "}; /* XPM */ static char * pr_lemon_xpm[] = { "15 10 6 1", " c None", ". c #909000008282", "X c #D4D40000BFBF", "o c #FFFFFFFF0000", "O c #999995953E3E", "+ c #FFFFFFFFFFFF", " ...X XX.. ", " ..XX ooo XXX. ", "...X Ooo+o XXX.", "..X Ooooo+o XXX", ".. OOooooooo XX", ".. OOOoooooo XX", "... OOOoooo XXX", ".... OOOoO XXX.", " .... OOO XXX. ", " .... .... "}; #ifndef ORIGINAL_XGALAGA /* XPM */ static char * pr_machine_xpm[] = { "15 10 5 1", " c None", ". c #868600000000", "X c #aaaa00000000", "o c #FFFF00000000", "= c #ffffffffffff", " .XoooooooX. ", " XXo oooooooX ", "XXX == oooooooX", "XXo == oooooooo", "XXX == oo oooo", "XXXo oo == ooo", "XXXooooo == ooo", "XXXXXooo == ooX", " XXXXXooo ooX ", " .XXXXXXXXX. "}; #endif /* XPM */ static char * pr_shield_xpm[] = { "15 10 5 1", " c None", ". c #000081810000", "X c #0000B0B00000", "o c #0000E5E50000", "O c #0000FFFFFFFF", " .Xooo ooo.. ", " .Xooo O oooo. ", ".XXo OOO ooo.", "XXo O OOO O ooo", "XXX O OOO O ooo", "XXX O OOO O ooo", "XXX OOOOOOO ooo", ".XX O OOO O oo.", " .X O O O o. ", " .X XX XX X. "}; /* XPM */ static char * pr_sing_xpm[] = { "15 10 5 1", " c None", ". c #868600000000", "X c #CCCC00000000", "o c #FFFF00000000", "O c #BCBCBCBCBCBC", " .XoooooooX. ", " XXoooo oooooX ", "XXXooo O oooooX", "XXooo OOO ooooo", "XXXoo OOO ooooo", "XXXoo OOO ooooo", "XXXXoo O oooooo", "XXXXX OOO ooooX", " XXXXX ooooX ", " .XXXXXXXXX. "}; /* XPM */ static char * pr_speed_xpm[] = { "15 10 4 1", " c None", ". c #999995953E3E", "X c #FFFFFFFF0000", "o c #FFFF00000000", " ..XX X.. ", " ..XX oooo XX. ", "...X o XXXX.", "..XX o XXXXXX", "...XX ooo XXXXX", "....XX o XXXX", "..... o XXXX", ".... oooo XXXX.", " .... XXXX. ", " ........... "}; #ifndef ORIGINAL_XGALAGA /* XPM */ static char * pr_spread_xpm[] = { "15 10 4 1", " c None", ". c #00009f", "X c #0000ff", "o c #ffffff", " ..XXXXXXX.. ", " ..XXXXXXXXXX. ", "...XXXXXXXXXXX.", "..ooXXXXXXXooXX", ".. oXXXXXo XX", "...X oXXXo XXXX", "....X oXo XXXXX", ".....X o XXXXX.", " .....X XXXXX. ", " ........... "}; #endif /* XPM */ static char * pr_trip_xpm[] = { "15 10 4 1", " c None", ". c #00000000AFAF", "X c #00000000FFFF", "o c #FFFFFFFFFFFF", " ..XXX XXX.. ", " ..XXX o XXXX. ", ". XXX o XXX .", ". o XX o XX o X", ".. o X o X o XX", "... o o o XXX", ".... o o o XXXX", "..... ooo XXXX.", " ..... XXXX. ", " ........... "}; /* XPM */ static char * s1000_xpm[] = { "20 8 3 1", "` c None", "a c #909000", "b c #f0e000", "``a```aa```aa```aa``", "`aba`abba`abba`abba`", "abbaabaababaababaaba", "`abaabaababaababaaba", "`abaabaababaababaaba", "`abaabaababaababaaba", "`aba`abba`abba`abba`", "``a```aa```aa```aa``" }; /* XPM */ static char * s2000_xpm[] = { "21 8 3 1", "` c None", "a c #600000", "b c #e00000", "``aa```aa```aa```aa``", "`abba`abba`abba`abba`", "abaababaababaababaaba", "`a`ababaababaababaaba", "``abaabaababaababaaba", "`abaaabaababaababaaba", "abbbbaabba`abba`abba`", "`aaaa``aa```aa```aa``" }; /* XPM */ static char * s4000_xpm[] = { "21 8 3 1", "` c None", "a c #00f000", "b c #006000", "```b```bb```bb```bb``", "``bab`baab`baab`baab`", "`baabbabbababbababbab", "bababbabbababbababbab", "baaaababbababbababbab", "`bbabbabbababbababbab", "``bab`baab`baab`baab`", "```b```bb```bb```bb``" }; /* XPM */ static char * s500_xpm[] = { "16 8 3 1", "` c None", "a c #800080", "b c #c000e0", "`aaaa``aa```aa``", "abbbbaabba`abba`", "abaaaabaababaaba", "abbbaabaababaaba", "`aaababaababaaba", "abaababaababaaba", "`abba`abba`abba`", "``aa```aa```aa``" }; /* XPM */ static char * shield_xpm[] = { "20 20 4 1", " c None", ". c #00000000AFAF", "X c #00000000FFFF", "o c #0F0FA0A0FFFF", " ... ", " .XXX. ", " .XoooX. ", " .Xo oX. ", " .Xo oX. ", " .Xo oX. ", " .Xo oX. ", " .XoXoo ooXoX. ", " .Xo oXo oXo oX. ", ".Xo oo oo oX. ", ".Xo oo oo oX. ", ".Xo o o oX. ", ".Xo oX. ", ".Xo oX. ", ".Xo oX. ", ".Xo oo oo oX. ", " .Xo oXo oXo oX. ", " .XoX.Xo oX.XoX. ", " .X. .XoX. .X. ", " . .X. . "}; /* XPM */ static char * title_xpm[] = { /* width height ncolors chars_per_pixel */ "126 37 7 1", /* colors */ "` c None", "a c #606000", "b c #909000", "c c #C0B000", "d c #F0E000", "e c #404040", "f c #303030", /* pixels */ "`````````````````faf`````````````````````````````````````````````````faf``````````````````````````````````````````````````````", "````fabf````````fccbf`````````fabbbf````````````````````````````````fccbf`````````````````````````````````````````````````````", "```fccdbf``````acddda```````fbccdddbbf`````````````````````````````acddda`````````````````````````````````````````````````````", "``abcddda`````aabddda``````fccdbaaccdbf```````````````````````````acdddda`````````````````````````````````````````````````````", "`accdddbf````aaacddbf`````acdbaaababddbf`````````````````````````abcdbcda`````````````````````````````````````````````````````", "`cccddda`````fabcdda`````acddaffbaaabddbf```````````````````````accdbbcda`````````````````````````````````````````````````````", "`ccabdda`````abcddbf````abcdbf``fbaaabdda```````````````````````cbcdabcbf`````````````````````````````````````````````````````", "`caacddcf````bbcdbf````abcdbf````fbaacddcf``````````````````````bbcdaaca``````````````````````````````````````````````````````", "`fbcabdda```abcdda`````acdbf``````fbccddda`````````````````````accddabca``````````````````````````````````````````````````````", "``caacddcf``bbcdbf````abcda````````ccabdbf`````````````````````cccdbacbf``````````````````````````````````````````````````````", "``fbcabdda`abcdbf````accdda````````caaaae``````````````````````cccdaaca``````````````````````````````fabbf````````````````````", "```caacddcfacdda`````cbcdbf````````fbaaf```````````````````````cccdccbf`````````````````````````````fccdda````````````````````", "```fbcabddbcddbf`````bbcda``````````ff```````````````fabbf`````cbcddda````````````````fabbf````````acdddbf```````````fabbf````", "````caaabddddbf`````accdda`````````````````````````fbccdbf`````bbcddbf``````````````fbccdbf```````acdddbf``````````fbccdbf````", "````fbaaabddbf``````cccdda```````````````````````fbccbaae`````accddda`````````````fbccbaae```````abcdbae`````````fbccbaae`````", "`````fbaacdda```````cbcdda``````````````````````fccbaaafaf````cccddbf````````````fccbaaafaf`````abcdbaf`````````fccbaaafaf````", "``````facdddcf``````bbcdda````````````````````fbcdbafffcca````cccdda```````````fbcdbafffcca`````bbcbf`````````fbcdbafffcca````", "``````acdbcdda`````accddda```````````fabf````fccdbf``acdda````cbcddcf`````````fccdbf``acdda````abcda`````````fccdbf``acdda````", "`````abcbbabdcf````cccddda``````````fbcda```acddbf``acddda````acdddda````````acddbf``acddda````acdbf````````acddbf``acddda````", "````abcdaaaabcbf```ccabddcf````````aacdda``acddbf``abcddbf```acbcddda```````acddbf``abcddbf```acdda```````fbcddbf``abcddbf````", "````acdbebaacdda```caacddda````````acddda`abcdbf``abcbcda```acbbcddda`````fbcddbf``abcbcda```aaacdcf`````fccddbf``abcbcda```ff", "```abcbf`fbcabdcf``fbccdddcf``````acdddbfacabda``fbcbbcda``acbbcabddcf```fcbacda``fbcbbcda``acaacdda````acbacda``fbcbbcda``fba", "``abcbf```caaabcbf``ccabdddbf````acdddda`caacdcbbccdabcdcbbcbfcaacdddbbbbcbaacdcbbccdabcdcbbcbaccddcf``acbaacdcbbccdabcdcbbcbf", "``acbf````fbaaabcbf`caaabdddbbbbbcbcddda`fabcdddddbaacabcddbf`fbcabddddddbfabcdddddbaacabcddbfccabddbbbcbfabcdddddbaacabcddbf`", "`abca``````fbaaaaba`fbaaaacdddddbabcddda`acabddddbafcaaaaaae```caaabdddbaeacabddddbafcaaaaaae`caaabddddbfacabddddbafcaaaaaae``", "acaaf```````fbaaaa```fbaabaaaaaaaaccddda`caaaaaaae``fbaaaaf````fbaaaaaaaf`caaaaaaae``fbaaaaf``fbaaabddda`caaaaaaae``fbaaaaf```", "caaf`````````ffbe`````ffbaaaaaaf`cccddbf`fbaaaaaf````ffff```````fbaaaaf```fbaaaaaf````ffff`````fbaacdddcffbaaaaaf````ffff`````", "ff`````````````f````````ffffff```cccdda```fffff``````````````````ffff``````fffff````````````````facbaaccbffffff```````````````", "`````````````````````````````````cccdda`````````````````````````````````````````````````````````acbaabcdda````````````````````", "`````````````````````````````````cccdda````````````````````````````````````````````````````````acbffbcabda````````````````````", "`````````````````````````````````cccdda```````````````````````````````````````````````````````abbf``caacda````````````````````", "`````````````````````````````````cccdda``````````````````````````````````````````````````````accbf``fabcda````````````````````", "`````````````````````````````````cccdda``````````````````````````````````````````````````````cbabbbbbccdbf````````````````````", "`````````````````````````````````cccdbf``````````````````````````````````````````````````````caaabcdddbae`````````````````````", "`````````````````````````````````ccaae```````````````````````````````````````````````````````fbaaaaaaaaf``````````````````````", "`````````````````````````````````caaf`````````````````````````````````````````````````````````fbaaaaaf````````````````````````", "`````````````````````````````````ff````````````````````````````````````````````````````````````fffff``````````````````````````" }; /* keep sorted (for bsearch) [BDyess] */ static W_Image imagearray[] = { /* {width,height,frames,xpm,filename,loaded,alternate,bad,compiled_in,xbmdata,xpmdata,pixmap,clipmask} */ {0, 0, 0, 0, "/al", 0, I_DEFAULT, 0, 1, NULL, (char**)al_xpm, 0, 0}, {0, 0, 0, 0, "/alien1", 0, I_DEFAULT, 0, 1, NULL, (char**)alien1_xpm, 0, 0}, {0, 0, 0, 0, "/alien10", 0, I_DEFAULT, 0, 1, NULL, (char**)alien10_xpm, 0, 0}, {0, 0, 0, 0, "/alien11", 0, I_DEFAULT, 0, 1, NULL, (char**)alien11_xpm, 0, 0}, {0, 0, 0, 0, "/alien12", 0, I_DEFAULT, 0, 1, NULL, (char**)alien12_xpm, 0, 0}, {0, 0, 0, 0, "/alien13", 0, I_DEFAULT, 0, 1, NULL, (char**)alien13_xpm, 0, 0}, {0, 0, 0, 0, "/alien14", 0, I_DEFAULT, 0, 1, NULL, (char**)alien14_xpm, 0, 0}, {0, 0, 0, 0, "/alien15", 0, I_DEFAULT, 0, 1, NULL, (char**)alien15_xpm, 0, 0}, {0, 0, 0, 0, "/alien16", 0, I_DEFAULT, 0, 1, NULL, (char**)alien16_xpm, 0, 0}, {0, 0, 0, 0, "/alien17", 0, I_DEFAULT, 0, 1, NULL, (char**)alien17_xpm, 0, 0}, {0, 0, 0, 0, "/alien2", 0, I_DEFAULT, 0, 1, NULL, (char**)alien2_xpm, 0, 0}, {0, 0, 0, 0, "/alien3", 0, I_DEFAULT, 0, 1, NULL, (char**)alien3_xpm, 0, 0}, {0, 0, 0, 0, "/alien4", 0, I_DEFAULT, 0, 1, NULL, (char**)alien4_xpm, 0, 0}, {0, 0, 0, 0, "/alien5", 0, I_DEFAULT, 0, 1, NULL, (char**)alien5_xpm, 0, 0}, {0, 0, 0, 0, "/alien6", 0, I_DEFAULT, 0, 1, NULL, (char**)alien6_xpm, 0, 0}, {0, 0, 0, 0, "/alien7", 0, I_DEFAULT, 0, 1, NULL, (char**)alien7_xpm, 0, 0}, {0, 0, 0, 0, "/alien8", 0, I_DEFAULT, 0, 1, NULL, (char**)alien8_xpm, 0, 0}, {0, 0, 0, 0, "/alien9", 0, I_DEFAULT, 0, 1, NULL, (char**)alien9_xpm, 0, 0}, {0, 0, 0, 0, "/etorp", 0, I_DEFAULT, 0, 1, NULL, (char**)etorp_xpm, 0, 0}, {0, 0, 0, 0, "/explosion", 0, I_DEFAULT, 0, 1, NULL, (char**)explosion_xpm, 0, 0}, {0, 0, 0, 0, "/extra", 0, I_DEFAULT, 0, 1, NULL, (char**)extra_xpm, 0, 0}, {0, 0, 0, 0, "/miniship", 0, I_DEFAULT, 0, 1, NULL, (char**)miniship_xpm, 0, 0}, {0, 0, 0, 0, "/mtorp", 0, I_DEFAULT, 0, 1, NULL, (char**)mtorp_xpm, 0, 0}, {0, 0, 0, 0, "/pause", 0, I_DEFAULT, 0, 1, NULL, (char**)pause_xpm, 0, 0}, {0, 0, 0, 0, "/player1", 0, I_DEFAULT, 0, 1, NULL, (char**)player1_xpm, 0, 0}, /* {width,height,frames,xpm,filename,loaded,alternate,bad,compiled_in,xbmdata,xpmdata,pixmap,clipmask} */ {0, 0, 0, 0, "/player2", 0, I_DEFAULT, 0, 1, NULL, (char**)player2_xpm, 0, 0}, {0, 0, 0, 0, "/player3", 0, I_DEFAULT, 0, 1, NULL, (char**)player3_xpm, 0, 0}, {0, 0, 0, 0, "/pr_blank", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_blank_xpm, 0, 0}, {0, 0, 0, 0, "/pr_brain", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_brain_xpm, 0, 0}, {0, 0, 0, 0, "/pr_doub", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_doub_xpm, 0, 0}, {0, 0, 0, 0, "/pr_extrabullet", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_extrabullet_xpm, 0, 0}, {0, 0, 0, 0, "/pr_lemon", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_lemon_xpm, 0, 0}, #ifndef ORIGINAL_XGALAGA {0, 0, 0, 0, "/pr_machine", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_machine_xpm, 0, 0}, #endif {0, 0, 0, 0, "/pr_shield", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_shield_xpm, 0, 0}, {0, 0, 0, 0, "/pr_sing", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_sing_xpm, 0, 0}, {0, 0, 0, 0, "/pr_speed", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_speed_xpm, 0, 0}, #ifndef ORIGINAL_XGALAGA {0, 0, 0, 0, "/pr_spread", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_spread_xpm, 0, 0}, #endif {0, 0, 0, 0, "/pr_trip", 0, I_DEFAULT, 0, 1, NULL, (char**)pr_trip_xpm, 0, 0}, {0, 0, 0, 0, "/s1000", 0, I_DEFAULT, 0, 1, NULL, (char**)s1000_xpm, 0, 0}, {0, 0, 0, 0, "/s2000", 0, I_DEFAULT, 0, 1, NULL, (char**)s2000_xpm, 0, 0}, {0, 0, 0, 0, "/s4000", 0, I_DEFAULT, 0, 1, NULL, (char**)s4000_xpm, 0, 0}, {0, 0, 0, 0, "/s500", 0, I_DEFAULT, 0, 1, NULL, (char**)s500_xpm, 0, 0}, {0, 0, 0, 0, "/shield", 0, I_DEFAULT, 0, 1, NULL, (char**)shield_xpm, 0, 0}, {0, 0, 0, 0, "/title", 0, I_DEFAULT, 0, 1, NULL, (char**)title_xpm, 0, 0}, }; W_Image * getImage(offset) int offset; { W_Image * image = &imagearray[offset]; if(!image->loaded) { W_LoadImage(image); } return image; } #ifndef __STDC__ #define const #endif /*__STDC__*/ int cmpfilenames(left,right) const void *left, *right; { return strcmp((char*)left,((W_Image*)right)->filename); } void loadImageByFilename(filename) char *filename; { W_Image *image; image = bsearch(filename, imagearray, sizeof(imagearray) / sizeof(W_Image), sizeof(W_Image), cmpfilenames); if(image && !image->loaded) W_LoadImage(image); } void loadAllImages() { int i; for(i=I_DEFAULT; i #include "Wlib.h" #include "images.h" #include "defs.h" #include "data.h" #include "struct.h" int buttonDown = 0; W_Window shellWin, baseWin; W_Image *playerShip, *playerTorp, *enemyTorp, *shieldImage; int score; int paused; int ships; int level, metaLevel; int startLevel=1; /* default starting level defined here */ int nextBonus; int gameOver=1; int getting_name = 0; int counter; int mouseControl = 0; int wantStars = 1; /* Modified slightly to better fit on 800x600 in fullscreen mode */ int winwidth = 468; /* was 400 */ int winheight = 596; /* was 511 */ int alien_shape[ALIENSHAPES] = { I_ALIEN1, I_ALIEN2, I_ALIEN3, I_ALIEN4, I_ALIEN5, I_ALIEN6, I_ALIEN7, I_ALIEN8, I_ALIEN9, I_ALIEN10, I_ALIEN11, I_ALIEN12, I_ALIEN13, I_ALIEN14, I_ALIEN15, I_ALIEN16, I_ALIEN17, }; int weapon = 0; int maxtorps = 4, numtorps = 0; int plx = 200; int pldead = 0; int movespeed = MINSPEED; #ifdef SOUND char *unixSoundPath=SOUNDDIR; #ifndef NAS_SOUND char *unixSoundDev=SOUNDDEV; #endif int playSounds=1; #endif int plshield = 0; int shieldsleft = 0; int shieldon = 0; int title_page=0, pagetimer=300; int gotlemon = 0; struct alien aliens[MAXALIENS]; xgalaga-2.1.1.0/paths.c0000644000175000001440000013240010763613570014117 0ustar hermannusers/* $Id: paths.c,v 1.2 1998/04/30 05:11:57 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include "struct.h" #include "defs.h" #include "paths.h" #include "data.h" #include "proto.h" #define MAXPATH 50 int paths[NUMPATHS][MAXPATH][2] = { { /* PEELLEFT = 0*/ 0, 3, 15,3, 14,3, 13,3, 12,3, 11,3, 10,3, 9,3, 8,3, -1,-1, }, { /* PEELRIGHT = 1 */ 0,3, 1,3, 2,3, 3,3, 4,3, 5,3, 6,3, 7,3, 8,3, -1,-1, }, { /* LOOP = 2 */ 8,2, 9,2, 10,2, 11,2, 12,2, 13,2, 14,2, 15,2, 0,2, 1,2, 2,2, 3,2, 4,2, 5,2, 6,2, 7,2, 8,2, -1,-1, }, { /* SWOOP1 = 3 */ 8,20, 9,3, 10,3, 11,3, 12,3, -1,-1, }, { /* SWOOP2 = 4 */ 8,20, 7,3, 6,3, 5,3, 4,3, -1,-1, }, { /* ZIGZAG = 5 */ 7,15, 8,2, 9,15, 8,2, 7,15, 8,2, 9,15, 8,2, -1,-1, }, { /* LOOP2 = 6 */ 8,2, 7,2, 6,2, 5,2, 4,2, 3,2, 2,2, 1,2, 0,2, 15,2, 14,2, 13,2, 12,2, 11,2, 10,2, 9,2, 8,2, -1,-1, }, { /* SPIN = 7 */ 8,1, 7,1, 6,1, 5,1, 4,1, 3,1, 2,1, 1,1, 0,1, 15,1, 14,1, 13,1, 12,1, 11,1, 10,1, 9,1, 8,1, -1,-1, }, { /* LEFTDIAG */ 8,2, 9,2, 10,30, 9,2, 8,1, -1,-1, }, { /* RIGHTDIAG */ 8,2, 7,2, 6,30, 7,2, 8,1, -1,-1, }, { /* ENTER1 */ 8,65, 9,5, 10,5, 11,5, 12,5, 13,5, 14,20, -1,-1, }, { /* ENTER2 */ 8,65, 7,5, 6,5, 5,5, 4,5, 3,5, 2,20, -1,-1, }, /* ENTER3 */ {-1,-1}, /* ENTER4 */ { 10,45, 11,5, 12,20, 13,5, 14,10, -1,-1, }, /* ENTER5 */ { 6,45, 5,5, 4,20, 3,5, 2,10, -1,-1, }, /* ENTER6 */ { 8,80, 6,10, 4,40, 0,20, 14,30, -1,-1}, /* ENTER7 */ { 8,80, 10,10, 12,40, 0,20, 2,30, -1,-1}, /* ENTER8 */ { 0,50, 2,50, 3,5, 4,5, 5,5, 6,5, 7,5, 8,5, 9,5, 10,5, 11,5, 12,30, 13,5, 14,5, 15,5, 0,5, -1,-1}, /* ENTER9 */ { 0,50, 14,50, 13,5, 12,5, 11,5, 10,5, 9,5, 8,5, 7,5, 6,5, 5,5, 4,30, 3,5, 2,5, 1,5, 0,5, -1,-1}, /* ENTER10 */ { 4,80, 10,30, 0,70, -1,-1 }, /* ENTER11 */ { 12,80, 6,30, 0,70, -1,-1 }, /* ENTER12 */ { 14,80, -1, -1}, /* ENTER13 */ { 2,80, -1,-1}, /* ENTER14 */ { 4,8, 3,6, 2,8, 1,10, 2,8, 3,6, 4,4, 5,6, 6,8, 7,10, 6,8, 5,6, 4,4, 3,6, 2,8, 1,10, 0,20, -1,-1}, /* 15 */ { 12,60, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,3, 15,3, 14,3, 13,3, 12,3, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,3, 15,3, 14,3, 13,3, 12,3, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,20, -1,-1}, /* 16 */ { 4,60, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,3, 1,3, 2,3, 3,3, 4,3, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,3, 1,3, 2,3, 3,3, 4,3, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,20, -1, -1}, /* 17 */ { 7,15, 8,3, 9,15, 8,3, 7,15, 8,3, 9,15, 8,3, 7,15, 8,3, 9,15, 8,3, -1,-1, }, /* 18 */ { 12,60, 4,30, 12,30, 4,30, 12,30, 8,20, -1,-1 }, /* 19 */ { 10,80, -1,-1, }, /* 20 */ { 6,80, -1,-1, }, }; /* These aren't used anymore! (see filepath.c) Maybe we should nuke them? */ #if 0 /* enter_paths are for new ships. consists of starting co-ordinates, number of frames to wait at the start (presumably offscreen) and a path to follow. path -1 means this ship is not used on this level at end of path, ship flies into convoy position on it's own from wherever it winds up */ /* Not that anyone else is likely to touch this mess, but if you do, I highly recommend doing it in emacs M-x picture-mode. */ /* Well, (says gc918206@gbar.dtu.dk (Martin Eskildsen)) I touched... ;-) * The problem with the previous implementation was that it relied on the manifest * constants WINWIDTH and WINHEIGHT being 400 and 500, respectively (they are in file * defs.h) which caused some of the aliens to start on-screen instead of off-screen * if you tried to enlarge the window by changing the constants (it's somewhat small * on my 14 inch monitor otherwise). * I therefore made a couple of scaling macros, below, and applied them to all X- and * Y coordinates (it took only one, admittedly, big and ugly emacs macro to do this :-). */ #define SX(n) ((WINWIDTH*(n))/400) #define SY(n) ((WINHEIGHT*(n))/500) struct enter_path ep[NUMLEVELS][MAXALIENS] = { { { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(200), SY(-30), 435, P_ENTER1 }, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(200), SY(-30), 430, P_ENTER2 }, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(-1), SY(-1), -1, -1}, { 0, SX(-1), SY(-1), -1, -1}, { 1, SX(-1), SY(-1), -1, -1}, { 1, SX(-1), SY(-1), -1, -1}, { 1, SX(200), SY(-30),425, P_ENTER1 }, { 1, SX(200), SY(-30),420, P_ENTER2 }, { 1, SX(200), SY(-30),415, P_ENTER1 }, { 1, SX(200), SY(-30),410, P_ENTER2 }, { 1, SX(200), SY(-30),405, P_ENTER1 }, { 1, SX(200), SY(-30),400, P_ENTER2 }, { 1, SX(-1), SY(-1), -1, -1}, { 1, SX(-1), SY(-1), -1, -1}, { 2, SX(200), SY(-30),345, P_ENTER1 }, { 2, SX(200), SY(-30),340,P_ENTER2 }, { 2, SX(200), SY(-30),335, P_ENTER1 }, { 2, SX(200), SY(-30),330, P_ENTER2 }, { 2, SX(200), SY(-30),325, P_ENTER1 }, { 2, SX(200), SY(-30),320, P_ENTER2 }, { 2, SX(200), SY(-30),315, P_ENTER1 }, { 2, SX(200), SY(-30),310, P_ENTER2 }, { 2, SX(200), SY(-30),305, P_ENTER1 }, { 2, SX(200), SY(-30),300, P_ENTER2 }, { 3, SX(200), SY(-30),245, P_ENTER1 }, { 3, SX(200), SY(-30),240, P_ENTER2 }, { 3, SX(200), SY(-30),235, P_ENTER1 }, { 3, SX(200), SY(-30),230, P_ENTER2 }, { 3, SX(200), SY(-30),225, P_ENTER1 }, { 3, SX(200), SY(-30),220, P_ENTER2 }, { 3, SX(200), SY(-30),215, P_ENTER1 }, { 3, SX(200), SY(-30),210, P_ENTER2 }, { 3, SX(200), SY(-30),205, P_ENTER1 }, { 3, SX(200), SY(-30),200, P_ENTER2 }, { 4, SX(200), SY(-30),145, P_ENTER1 }, { 4, SX(200), SY(-30),140, P_ENTER2 }, { 4, SX(200), SY(-30),135, P_ENTER1 }, { 4, SX(200), SY(-30),130, P_ENTER2 }, { 4, SX(200), SY(-30),125, P_ENTER1 }, { 4, SX(200), SY(-30),120, P_ENTER2 }, { 4, SX(200), SY(-30),115, P_ENTER1 }, { 4, SX(200), SY(-30),110, P_ENTER2 }, { 4, SX(200), SY(-30),105, P_ENTER1 }, { 4, SX(200), SY(-30),100, P_ENTER2 }, { 5, SX(200), SY(-30), 50, P_ENTER1 }, { 5, SX(200), SY(-30), 45, P_ENTER2 }, { 5, SX(200), SY(-30), 40, P_ENTER1 }, { 5, SX(200), SY(-30), 35, P_ENTER2 }, { 5, SX(200), SY(-30), 30, P_ENTER1 }, { 5, SX(200), SY(-30), 25, P_ENTER2 }, { 5, SX(200), SY(-30), 20, P_ENTER1 }, { 5, SX(200), SY(-30), 15, P_ENTER2 }, { 5, SX(200), SY(-30), 10, P_ENTER1 }, { 5, SX(200), SY(-30), 5, P_ENTER2 }, }, { { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(200), SY( -30), 435, P_ENTER1 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(200), SY( -30), 430, P_ENTER2 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(200), SY( -30), 425, P_ENTER1 }, { 1, SX(200), SY( -30), 420, P_ENTER2 }, { 1, SX(200), SY( -30), 415, P_ENTER1 }, { 1, SX(200), SY( -30), 410, P_ENTER2 }, { 1, SX(200), SY( -30), 405, P_ENTER1 }, { 1, SX(200), SY( -30), 400, P_ENTER2 }, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(410), SY( 125), 345, P_ENTER4 }, { 2, SX(410), SY( 125), 340, P_ENTER4 }, { 2, SX(410), SY( 125), 335, P_ENTER4 }, { 2, SX(410), SY( 125), 330, P_ENTER4 }, { 2, SX(410), SY( 125), 325, P_ENTER4 }, { 2, SX(410), SY( 125), 320, P_ENTER4 }, { 2, SX(410), SY( 125), 315, P_ENTER4 }, { 2, SX(410), SY( 125), 310, P_ENTER4 }, { 2, SX(410), SY( 125), 305, P_ENTER4 }, { 2, SX(410), SY( 125), 300, P_ENTER4 }, { 3, SX(-30), SY( 125), 245, P_ENTER5 }, { 3, SX(-30), SY( 125), 240, P_ENTER5 }, { 3, SX(-30), SY( 125), 235, P_ENTER5 }, { 3, SX(-30), SY( 125), 230, P_ENTER5 }, { 3, SX(-30), SY( 125), 225, P_ENTER5 }, { 3, SX(-30), SY( 125), 220, P_ENTER5 }, { 3, SX(-30), SY( 125), 215, P_ENTER5 }, { 3, SX(-30), SY( 125), 210, P_ENTER5 }, { 3, SX(-30), SY( 125), 205, P_ENTER5 }, { 3, SX(-30), SY( 125), 200, P_ENTER5 }, { 4, SX(410), SY( 125), 145, P_ENTER4 }, { 4, SX(410), SY( 125), 140, P_ENTER4 }, { 4, SX(410), SY( 125), 135, P_ENTER4 }, { 4, SX(410), SY( 125), 130, P_ENTER4 }, { 4, SX(410), SY( 125), 125, P_ENTER4 }, { 4, SX(410), SY( 125), 120, P_ENTER4 }, { 4, SX(410), SY( 125), 115, P_ENTER4 }, { 4, SX(410), SY( 125), 110, P_ENTER4 }, { 4, SX(410), SY( 125), 105, P_ENTER4 }, { 4, SX(410), SY( 125), 100, P_ENTER4 }, { 6, SX(-30), SY( 125), 50, P_ENTER5 }, { 6, SX(-30), SY( 125), 45, P_ENTER5 }, { 6, SX(-30), SY( 125), 40, P_ENTER5 }, { 6, SX(-30), SY( 125), 35, P_ENTER5 }, { 6, SX(-30), SY( 125), 30, P_ENTER5 }, { 6, SX(-30), SY( 125), 25, P_ENTER5 }, { 6, SX(-30), SY( 125), 20, P_ENTER5 }, { 6, SX(-30), SY( 125), 15, P_ENTER5 }, { 6, SX(-30), SY( 125), 10, P_ENTER5 }, { 6, SX(-30), SY( 125), 5, P_ENTER5 }, }, { /* level 3*/ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 125), 405, P_ENTER5 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 125), 400, P_ENTER5 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 125), 435, P_ENTER5 }, { 1, SX(-30), SY( 125), 430, P_ENTER5 }, { 1, SX(-30), SY( 125), 425, P_ENTER5 }, { 1, SX(-30), SY( 125), 420, P_ENTER5 }, { 1, SX(-30), SY( 125), 415, P_ENTER5 }, { 1, SX(-30), SY( 125), 410, P_ENTER5 }, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(100), SY( -30), 345, P_ENTER6 }, { 2, SX(300), SY( -30), 340, P_ENTER7 }, { 2, SX(100), SY( -30), 335, P_ENTER6 }, { 2, SX(300), SY( -30), 330, P_ENTER7 }, { 2, SX(100), SY( -30), 325, P_ENTER6 }, { 2, SX(300), SY( -30), 320, P_ENTER7 }, { 2, SX(100), SY( -30), 315, P_ENTER6 }, { 2, SX(300), SY( -30), 310, P_ENTER7 }, { 2, SX(100), SY( -30), 305, P_ENTER6 }, { 2, SX(300), SY( -30), 300, P_ENTER7 }, /*--*/ { 6, SX(100), SY( -30), 245, P_ENTER6 }, { 6, SX(300), SY( -30), 240, P_ENTER7 }, { 6, SX(100), SY( -30), 235, P_ENTER6 }, { 6, SX(300), SY( -30), 230, P_ENTER7 }, { 6, SX(100), SY( -30), 225, P_ENTER6 }, { 6, SX(300), SY( -30), 220, P_ENTER7 }, { 6, SX(100), SY( -30), 215, P_ENTER6 }, { 6, SX(300), SY( -30), 210, P_ENTER7 }, { 6, SX(100), SY( -30), 205, P_ENTER6 }, { 6, SX(300), SY( -30), 200, P_ENTER7 }, /*--*/ { 7, SX(100), SY( -30), 145, P_ENTER6 }, { 7, SX(300), SY( -30), 140, P_ENTER7 }, { 7, SX(100), SY( -30), 135, P_ENTER6 }, { 7, SX(300), SY( -30), 130, P_ENTER7 }, { 7, SX(100), SY( -30), 125, P_ENTER6 }, { 7, SX(300), SY( -30), 120, P_ENTER7 }, { 7, SX(100), SY( -30), 115, P_ENTER6 }, { 7, SX(300), SY( -30), 110, P_ENTER7 }, { 7, SX(100), SY( -30), 105, P_ENTER6 }, { 7, SX(300), SY( -30), 100, P_ENTER7 }, /*--*/ { 7, SX(100), SY( -30), 45, P_ENTER6 }, { 7, SX(300), SY( -30), 40, P_ENTER7 }, { 7, SX(100), SY( -30), 35, P_ENTER6 }, { 7, SX(300), SY( -30), 30, P_ENTER7 }, { 7, SX(100), SY( -30), 25, P_ENTER6 }, { 7, SX(300), SY( -30), 20, P_ENTER7 }, { 7, SX(100), SY( -30), 15, P_ENTER6 }, { 7, SX(300), SY( -30), 10, P_ENTER7 }, { 7, SX(100), SY( -30), 5, P_ENTER6 }, { 7, SX(300), SY( -30), 0, P_ENTER7 }, }, { /*level 4*/ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(100), SY( 530), 405, P_ENTER8 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(100), SY( 530), 400, P_ENTER8 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(100), SY( 530), 435, P_ENTER8 }, { 1, SX(100), SY( 530), 430, P_ENTER8 }, { 1, SX(100), SY( 530), 425, P_ENTER8 }, { 1, SX(100), SY( 530), 420, P_ENTER8 }, { 1, SX(100), SY( 530), 415, P_ENTER8 }, { 1, SX(100), SY( 530), 410, P_ENTER8 }, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(430), SY( 530), 345, P_ENTER12}, { 2, SX(430), SY( 530), 340, P_ENTER12}, { 2, SX(430), SY( 530), 335, P_ENTER12}, { 2, SX(430), SY( 530), 330, P_ENTER12}, { 2, SX(430), SY( 530), 325, P_ENTER12}, { 2, SX(430), SY( 530), 320, P_ENTER12}, { 2, SX(430), SY( 530), 315, P_ENTER12}, { 2, SX(430), SY( 530), 310, P_ENTER12}, { 2, SX(430), SY( 530), 305, P_ENTER12}, { 2, SX(430), SY( 530), 300, P_ENTER12}, /*--*/ { 3, SX(-30), SY( 530), 245, P_ENTER13}, { 3, SX(-30), SY( 530), 240, P_ENTER13}, { 3, SX(-30), SY( 530), 235, P_ENTER13}, { 3, SX(-30), SY( 530), 230, P_ENTER13}, { 3, SX(-30), SY( 530), 225, P_ENTER13}, { 3, SX(-30), SY( 530), 220, P_ENTER13}, { 3, SX(-30), SY( 530), 215, P_ENTER13}, { 3, SX(-30), SY( 530), 210, P_ENTER13}, { 3, SX(-30), SY( 530), 205, P_ENTER13}, { 3, SX(-30), SY( 530), 200, P_ENTER13}, /*--*/ { 7, SX(-30), SY( 250), 145, P_ENTER16}, { 7, SX(-30), SY( 250), 140, P_ENTER16}, { 7, SX(-30), SY( 250), 135, P_ENTER16}, { 7, SX(-30), SY( 250), 130, P_ENTER16}, { 7, SX(-30), SY( 250), 125, P_ENTER16}, { 7, SX(-30), SY( 250), 120, P_ENTER16}, { 7, SX(-30), SY( 250), 115, P_ENTER16}, { 7, SX(-30), SY( 250), 110, P_ENTER16}, { 7, SX(-30), SY( 250), 105, P_ENTER16}, { 7, SX(-30), SY( 250), 100, P_ENTER16}, /*--*/ { 7, SX(430), SY( 250), 45, P_ENTER15}, { 7, SX(430), SY( 250), 40, P_ENTER15}, { 7, SX(430), SY( 250), 35, P_ENTER15}, { 7, SX(430), SY( 250), 30, P_ENTER15}, { 7, SX(430), SY( 250), 25, P_ENTER15}, { 7, SX(430), SY( 250), 20, P_ENTER15}, { 7, SX(430), SY( 250), 15, P_ENTER15}, { 7, SX(430), SY( 250), 10, P_ENTER15}, { 7, SX(430), SY( 250), 5, P_ENTER15}, { 7, SX(430), SY( 250), 0, P_ENTER15}, }, { /*level 5*/ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(100), SY( 530), 405, P_ENTER8 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(100), SY( 530), 400, P_ENTER8 }, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(100), SY( 530), 435, P_ENTER8 }, { 1, SX(100), SY( 530), 430, P_ENTER8 }, { 1, SX(100), SY( 530), 425, P_ENTER8 }, { 1, SX(100), SY( 530), 420, P_ENTER8 }, { 1, SX(100), SY( 530), 415, P_ENTER8 }, { 1, SX(100), SY( 530), 410, P_ENTER8 }, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(430), SY( 530), 345, P_ENTER12}, { 2, SX(430), SY( 530), 340, P_ENTER12}, { 2, SX(430), SY( 530), 335, P_ENTER12}, { 2, SX(430), SY( 530), 330, P_ENTER12}, { 2, SX(430), SY( 530), 325, P_ENTER12}, { 2, SX(430), SY( 530), 320, P_ENTER12}, { 2, SX(430), SY( 530), 315, P_ENTER12}, { 2, SX(430), SY( 530), 310, P_ENTER12}, { 2, SX(430), SY( 530), 305, P_ENTER12}, { 2, SX(430), SY( 530), 300, P_ENTER12}, /*--*/ { 3, SX(-30), SY( 530), 245, P_ENTER13}, { 3, SX(-30), SY( 530), 240, P_ENTER13}, { 3, SX(-30), SY( 530), 235, P_ENTER13}, { 3, SX(-30), SY( 530), 230, P_ENTER13}, { 3, SX(-30), SY( 530), 225, P_ENTER13}, { 3, SX(-30), SY( 530), 220, P_ENTER13}, { 3, SX(-30), SY( 530), 215, P_ENTER13}, { 3, SX(-30), SY( 530), 210, P_ENTER13}, { 3, SX(-30), SY( 530), 205, P_ENTER13}, { 3, SX(-30), SY( 530), 200, P_ENTER13}, /*--*/ { 7, SX(100), SY( 530), 140, P_ENTER8 }, { 7, SX(300), SY( 530), 140, P_ENTER9 }, { 7, SX(100), SY( 530), 130, P_ENTER8 }, { 7, SX(300), SY( 530), 130, P_ENTER9 }, { 7, SX(100), SY( 530), 120, P_ENTER8 }, { 7, SX(300), SY( 530), 120, P_ENTER9 }, { 7, SX(100), SY( 530), 110, P_ENTER8 }, { 7, SX(300), SY( 530), 110, P_ENTER9 }, { 7, SX(100), SY( 530), 100, P_ENTER8 }, { 7, SX(300), SY( 530), 100, P_ENTER9 }, /*--*/ { 7, SX(200), SY( -30), 45, P_ENTER1 }, { 7, SX(200), SY( -30), 40, P_ENTER2 }, { 7, SX(200), SY( -30), 35, P_ENTER1 }, { 7, SX(200), SY( -30), 30, P_ENTER2 }, { 7, SX(200), SY( -30), 25, P_ENTER1 }, { 7, SX(200), SY( -30), 20, P_ENTER2 }, { 7, SX(200), SY( -30), 15, P_ENTER1 }, { 7, SX(200), SY( -30), 10, P_ENTER2 }, { 7, SX(200), SY( -30), 5, P_ENTER1 }, { 7, SX(200), SY( -30), 0, P_ENTER2 }, }, { /*level 6*/ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 350), 405, P_ENTER14}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 350), 400, P_ENTER14}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 350), 435, P_ENTER14}, { 1, SX(-30), SY( 350), 430, P_ENTER14}, { 1, SX(-30), SY( 350), 425, P_ENTER14}, { 1, SX(-30), SY( 350), 420, P_ENTER14}, { 1, SX(-30), SY( 350), 415, P_ENTER14}, { 1, SX(-30), SY( 350), 410, P_ENTER14}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(430), SY( 530), 345, P_ENTER12}, { 2, SX(430), SY( 530), 340, P_ENTER12}, { 2, SX(430), SY( 530), 335, P_ENTER12}, { 2, SX(430), SY( 530), 330, P_ENTER12}, { 2, SX(430), SY( 530), 325, P_ENTER12}, { 2, SX(430), SY( 530), 320, P_ENTER12}, { 2, SX(430), SY( 530), 315, P_ENTER12}, { 2, SX(430), SY( 530), 310, P_ENTER12}, { 2, SX(430), SY( 530), 305, P_ENTER12}, { 2, SX(430), SY( 530), 300, P_ENTER12}, /*--*/ { 6, SX(-30), SY( 530), 245, P_ENTER13}, { 6, SX(-30), SY( 530), 240, P_ENTER13}, { 6, SX(-30), SY( 530), 235, P_ENTER13}, { 6, SX(-30), SY( 530), 230, P_ENTER13}, { 6, SX(-30), SY( 530), 225, P_ENTER13}, { 6, SX(-30), SY( 530), 220, P_ENTER13}, { 6, SX(-30), SY( 530), 215, P_ENTER13}, { 6, SX(-30), SY( 530), 210, P_ENTER13}, { 6, SX(-30), SY( 530), 205, P_ENTER13}, { 6, SX(-30), SY( 530), 200, P_ENTER13}, /*--*/ { 7, SX(100), SY( 530), 145, P_ENTER8 }, { 7, SX(100), SY( 530), 140, P_ENTER8 }, { 7, SX(100), SY( 530), 135, P_ENTER8 }, { 7, SX(100), SY( 530), 130, P_ENTER8 }, { 7, SX(100), SY( 530), 125, P_ENTER8 }, { 7, SX(100), SY( 530), 120, P_ENTER8 }, { 7, SX(100), SY( 530), 115, P_ENTER8 }, { 7, SX(100), SY( 530), 110, P_ENTER8 }, { 7, SX(100), SY( 530), 105, P_ENTER8 }, { 7, SX(100), SY( 530), 100, P_ENTER8 }, /*--*/ { 7, SX(-30), SY( 250), 45, P_ENTER14}, { 7, SX(-30), SY( 250), 40, P_ENTER14}, { 7, SX(-30), SY( 250), 35, P_ENTER14}, { 7, SX(-30), SY( 250), 30, P_ENTER14}, { 7, SX(-30), SY( 250), 25, P_ENTER14}, { 7, SX(-30), SY( 250), 20, P_ENTER14}, { 7, SX(-30), SY( 250), 15, P_ENTER14}, { 7, SX(-30), SY( 250), 10, P_ENTER14}, { 7, SX(-30), SY( 250), 5, P_ENTER14}, { 7, SX(-30), SY( 250), 0, P_ENTER14}, }, { /* level 7 */ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 406, P_ENTER10}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(430), SY( 250), 400, P_ENTER11}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 250), 435, P_ENTER10}, { 1, SX(430), SY( 250), 430, P_ENTER11}, { 1, SX(-30), SY( 250), 425, P_ENTER10}, { 1, SX(430), SY( 250), 420, P_ENTER11}, { 1, SX(-30), SY( 250), 415, P_ENTER10}, { 1, SX(430), SY( 250), 410, P_ENTER11}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 2, SX(100), SY( 530), 340, P_ENTER8 }, { 2, SX(300), SY( 530), 340, P_ENTER9 }, { 2, SX(100), SY( 530), 330, P_ENTER8 }, { 2, SX(300), SY( 530), 330, P_ENTER9 }, { 2, SX(100), SY( 530), 320, P_ENTER8 }, { 2, SX(300), SY( 530), 320, P_ENTER9 }, { 2, SX(100), SY( 530), 310, P_ENTER8 }, { 2, SX(300), SY( 530), 310, P_ENTER9 }, { 2, SX(100), SY( 530), 300, P_ENTER8 }, { 2, SX(300), SY( 530), 300, P_ENTER9 }, /*--*/ { 3, SX(100), SY( 530), 240, P_ENTER8 }, { 3, SX(300), SY( 530), 240, P_ENTER9 }, { 3, SX(100), SY( 530), 230, P_ENTER8 }, { 3, SX(300), SY( 530), 230, P_ENTER9 }, { 3, SX(100), SY( 530), 220, P_ENTER8 }, { 3, SX(300), SY( 530), 220, P_ENTER9 }, { 3, SX(100), SY( 530), 210, P_ENTER8 }, { 3, SX(300), SY( 530), 210, P_ENTER9 }, { 3, SX(100), SY( 530), 200, P_ENTER8 }, { 3, SX(300), SY( 530), 200, P_ENTER9 }, /*--*/ { 6, SX(100), SY( 530), 140, P_ENTER8 }, { 6, SX(300), SY( 530), 140, P_ENTER9 }, { 6, SX(100), SY( 530), 130, P_ENTER8 }, { 6, SX(300), SY( 530), 130, P_ENTER9 }, { 6, SX(100), SY( 530), 120, P_ENTER8 }, { 6, SX(300), SY( 530), 120, P_ENTER9 }, { 6, SX(100), SY( 530), 110, P_ENTER8 }, { 6, SX(300), SY( 530), 110, P_ENTER9 }, { 6, SX(100), SY( 530), 100, P_ENTER8 }, { 6, SX(300), SY( 530), 100, P_ENTER9 }, /*--*/ { 6, SX(100), SY( 530), 40, P_ENTER8 }, { 6, SX(300), SY( 530), 40, P_ENTER9 }, { 6, SX(100), SY( 530), 30, P_ENTER8 }, { 6, SX(300), SY( 530), 30, P_ENTER9 }, { 6, SX(100), SY( 530), 20, P_ENTER8 }, { 6, SX(300), SY( 530), 20, P_ENTER9 }, { 6, SX(100), SY( 530), 10, P_ENTER8 }, { 6, SX(300), SY( 530), 10, P_ENTER9 }, { 6, SX(100), SY( 530), 0, P_ENTER8 }, { 6, SX(300), SY( 530), 0, P_ENTER9 }, }, { /* level 8 */ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 405, P_ENTER16}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 400, P_ENTER16}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 250), 435, P_ENTER16}, { 1, SX(-30), SY( 250), 430, P_ENTER16}, { 1, SX(-30), SY( 250), 425, P_ENTER16}, { 1, SX(-30), SY( 250), 420, P_ENTER16}, { 1, SX(-30), SY( 250), 415, P_ENTER16}, { 1, SX(-30), SY( 250), 410, P_ENTER16}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 6, SX(-30), SY( 530), 340, P_ENTER13}, { 6, SX(430), SY( 530), 340, P_ENTER12}, { 6, SX(-30), SY( 530), 330, P_ENTER13}, { 6, SX(430), SY( 530), 330, P_ENTER12}, { 6, SX(-30), SY( 530), 320, P_ENTER13}, { 6, SX(430), SY( 530), 320, P_ENTER12}, { 6, SX(-30), SY( 530), 310, P_ENTER13}, { 6, SX(430), SY( 530), 310, P_ENTER12}, { 6, SX(-30), SY( 530), 300, P_ENTER13}, { 6, SX(430), SY( 530), 300, P_ENTER12}, /*--*/ { 7, SX(200), SY( -30), 245, P_ENTER2 }, { 7, SX(200), SY( -30), 240, P_ENTER2 }, { 7, SX(200), SY( -30), 235, P_ENTER2 }, { 7, SX(200), SY( -30), 230, P_ENTER2 }, { 7, SX(200), SY( -30), 225, P_ENTER2 }, { 7, SX(200), SY( -30), 220, P_ENTER2 }, { 7, SX(200), SY( -30), 215, P_ENTER2 }, { 7, SX(200), SY( -30), 210, P_ENTER2 }, { 7, SX(200), SY( -30), 205, P_ENTER2 }, { 7, SX(200), SY( -30), 200, P_ENTER2 }, /*--*/ { 8, SX(200), SY( -30), 95, P_ENTER17}, { 8, SX(200), SY( -30), 90, P_ENTER17}, { 8, SX(200), SY( -30), 85, P_ENTER17}, { 8, SX(200), SY( -30), 80, P_ENTER17}, { 8, SX(200), SY( -30), 75, P_ENTER17}, { 8, SX(200), SY( -30), 70, P_ENTER17}, { 8, SX(200), SY( -30), 65, P_ENTER17}, { 8, SX(200), SY( -30), 60, P_ENTER17}, { 8, SX(200), SY( -30), 55, P_ENTER17}, { 8, SX(200), SY( -30), 50, P_ENTER17}, /*--*/ { 8, SX(200), SY( -30), 45, P_ENTER17}, { 8, SX(200), SY( -30), 40, P_ENTER17}, { 8, SX(200), SY( -30), 35, P_ENTER17}, { 8, SX(200), SY( -30), 30, P_ENTER17}, { 8, SX(200), SY( -30), 25, P_ENTER17}, { 8, SX(200), SY( -30), 20, P_ENTER17}, { 8, SX(200), SY( -30), 15, P_ENTER17}, { 8, SX(200), SY( -30), 10, P_ENTER17}, { 8, SX(200), SY( -30), 5, P_ENTER17}, { 8, SX(200), SY( -30), 0, P_ENTER17}, }, { /* level 9 */ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 405, P_ENTER16}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 400, P_ENTER16}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 250), 435, P_ENTER16}, { 1, SX(-30), SY( 250), 430, P_ENTER16}, { 1, SX(-30), SY( 250), 425, P_ENTER16}, { 1, SX(-30), SY( 250), 420, P_ENTER16}, { 1, SX(-30), SY( 250), 415, P_ENTER16}, { 1, SX(-30), SY( 250), 410, P_ENTER16}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 6, SX(100), SY( 530), 340, P_ENTER8 }, { 6, SX(300), SY( 530), 340, P_ENTER9 }, { 6, SX(100), SY( 530), 330, P_ENTER8 }, { 6, SX(300), SY( 530), 330, P_ENTER9 }, { 6, SX(100), SY( 530), 320, P_ENTER8 }, { 6, SX(300), SY( 530), 320, P_ENTER9 }, { 6, SX(100), SY( 530), 310, P_ENTER8 }, { 6, SX(300), SY( 530), 310, P_ENTER9 }, { 6, SX(100), SY( 530), 300, P_ENTER8 }, { 6, SX(300), SY( 530), 300, P_ENTER9 }, /*--*/ { 7, SX(200), SY( -30), 245, P_ENTER1 }, { 7, SX(200), SY( -30), 240, P_ENTER1 }, { 7, SX(200), SY( -30), 235, P_ENTER1 }, { 7, SX(200), SY( -30), 230, P_ENTER1 }, { 7, SX(200), SY( -30), 225, P_ENTER1 }, { 7, SX(200), SY( -30), 220, P_ENTER1 }, { 7, SX(200), SY( -30), 215, P_ENTER1 }, { 7, SX(200), SY( -30), 210, P_ENTER1 }, { 7, SX(200), SY( -30), 205, P_ENTER1 }, { 7, SX(200), SY( -30), 200, P_ENTER1 }, /*--*/ { 8, SX(430), SY( 530), 145, P_ENTER12}, { 8, SX(430), SY( 530), 140, P_ENTER12}, { 8, SX(430), SY( 530), 135, P_ENTER12}, { 8, SX(430), SY( 530), 130, P_ENTER12}, { 8, SX(430), SY( 530), 125, P_ENTER12}, { 8, SX(430), SY( 530), 120, P_ENTER12}, { 8, SX(430), SY( 530), 115, P_ENTER12}, { 8, SX(430), SY( 530), 110, P_ENTER12}, { 8, SX(430), SY( 530), 105, P_ENTER12}, { 8, SX(430), SY( 530), 100, P_ENTER12}, /*--*/ { 9, SX(360), SY( -30), 0, P_ENTER17},/* muahaha! */ { 9, SX(320), SY( -30), 0, P_ENTER17}, { 9, SX(280), SY( -30), 0, P_ENTER17}, { 9, SX(240), SY( -30), 0, P_ENTER17}, { 9, SX(200), SY( -30), 0, P_ENTER17}, { 9, SX(160), SY( -30), 0, P_ENTER17}, { 9, SX(120), SY( -30), 0, P_ENTER17}, { 9, SX( 80), SY( -30), 0, P_ENTER17}, { 9, SX( 40), SY( -30), 0, P_ENTER17}, { 9, SX( 0), SY( -30), 0, P_ENTER17}, }, { /* level 10 */ { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(-30), SY( 250), 405, P_ENTER10}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX(430), SY( 250), 400, P_ENTER11}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 0, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX(-30), SY( 250), 435, P_ENTER10}, { 1, SX(430), SY( 250), 430, P_ENTER11}, { 1, SX(-30), SY( 250), 425, P_ENTER10}, { 1, SX(430), SY( 250), 420, P_ENTER11}, { 1, SX(-30), SY( 250), 415, P_ENTER10}, { 1, SX(430), SY( 250), 410, P_ENTER11}, { 1, SX( -1), SY( -1), -1, -1}, { 1, SX( -1), SY( -1), -1, -1}, { 7, SX(200), SY( -30), 345, P_ENTER2 }, { 7, SX(200), SY( -30), 340, P_ENTER1 }, { 7, SX(200), SY( -30), 335, P_ENTER2 }, { 7, SX(200), SY( -30), 330, P_ENTER1 }, { 7, SX(200), SY( -30), 325, P_ENTER2 }, { 7, SX(200), SY( -30), 320, P_ENTER1 }, { 7, SX(200), SY( -30), 315, P_ENTER2 }, { 7, SX(200), SY( -30), 310, P_ENTER1 }, { 7, SX(200), SY( -30), 305, P_ENTER2 }, { 7, SX(200), SY( -30), 300, P_ENTER1 }, /*--*/ { 8, SX(430), SY( 250), 245, P_ENTER15}, { 8, SX(-30), SY( 250), 240, P_ENTER16}, { 8, SX(430), SY( 250), 235, P_ENTER15}, { 8, SX(-30), SY( 250), 230, P_ENTER16}, { 8, SX(430), SY( 250), 225, P_ENTER15}, { 8, SX(-30), SY( 250), 220, P_ENTER16}, { 8, SX(430), SY( 250), 215, P_ENTER15}, { 8, SX(-30), SY( 250), 210, P_ENTER16}, { 8, SX(430), SY( 250), 205, P_ENTER15}, { 8, SX(-30), SY( 250), 200, P_ENTER16}, /*--*/ { 9, SX(100), SY( 530), 145, P_ENTER8 }, { 9, SX(300), SY( 530), 140, P_ENTER9 }, { 9, SX(100), SY( 530), 135, P_ENTER8 }, { 9, SX(300), SY( 530), 130, P_ENTER9 }, { 9, SX(100), SY( 530), 125, P_ENTER8 }, { 9, SX(300), SY( 530), 120, P_ENTER9 }, { 9, SX(100), SY( 530), 115, P_ENTER8 }, { 9, SX(300), SY( 530), 110, P_ENTER9 }, { 9, SX(100), SY( 530), 105, P_ENTER8 }, { 9, SX(300), SY( 530), 100, P_ENTER9 }, /*--*/ {10, SX(430), SY( 250), 45, P_ENTER18}, {10, SX(430), SY( 250), 40, P_ENTER18}, {10, SX(430), SY( 250), 35, P_ENTER18}, {10, SX(430), SY( 250), 30, P_ENTER18}, {10, SX(430), SY( 250), 25, P_ENTER18}, {10, SX(430), SY( 250), 20, P_ENTER18}, {10, SX(430), SY( 250), 15, P_ENTER18}, {10, SX(430), SY( 250), 10, P_ENTER18}, {10, SX(430), SY( 250), 5, P_ENTER18}, {10, SX(430), SY( 250), 0, P_ENTER18}, }, { /* level 11 */ {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(-30), SY( 250), 405, P_ENTER10}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(430), SY( 250), 400, P_ENTER11}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX(-30), SY( 250), 435, P_ENTER10}, {12, SX(430), SY( 250), 430, P_ENTER11}, {12, SX(-30), SY( 250), 425, P_ENTER10}, {12, SX(430), SY( 250), 420, P_ENTER11}, {12, SX(-30), SY( 250), 415, P_ENTER10}, {12, SX(430), SY( 250), 410, P_ENTER11}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {13, SX(200), SY( -30), 345, P_ENTER2 }, {13, SX(200), SY( -30), 340, P_ENTER1 }, {13, SX(200), SY( -30), 335, P_ENTER2 }, {13, SX(200), SY( -30), 330, P_ENTER1 }, {13, SX(200), SY( -30), 325, P_ENTER2 }, {13, SX(200), SY( -30), 320, P_ENTER1 }, {13, SX(200), SY( -30), 315, P_ENTER2 }, {13, SX(200), SY( -30), 310, P_ENTER1 }, {13, SX(200), SY( -30), 305, P_ENTER2 }, {13, SX(200), SY( -30), 300, P_ENTER1 }, /*--*/ {14, SX(430), SY( 530), 245, P_ENTER12}, {14, SX(-30), SY( 530), 240, P_ENTER13}, {14, SX(430), SY( 530), 235, P_ENTER12}, {14, SX(-30), SY( 530), 230, P_ENTER13}, {14, SX(430), SY( 530), 225, P_ENTER12}, {14, SX(-30), SY( 530), 220, P_ENTER13}, {14, SX(430), SY( 530), 215, P_ENTER12}, {14, SX(-30), SY( 530), 210, P_ENTER13}, {14, SX(430), SY( 530), 205, P_ENTER12}, {14, SX(-30), SY( 530), 200, P_ENTER13}, /*--*/ {15, SX(-30), SY( 530), 145, P_ENTER13}, {15, SX(-30), SY( 530), 140, P_ENTER13}, {15, SX(-30), SY( 530), 135, P_ENTER13}, {15, SX(-30), SY( 530), 130, P_ENTER13}, {15, SX(-30), SY( 530), 125, P_ENTER13}, {15, SX(-30), SY( 530), 120, P_ENTER13}, {15, SX(-30), SY( 530), 115, P_ENTER13}, {15, SX(-30), SY( 530), 110, P_ENTER13}, {15, SX(-30), SY( 530), 105, P_ENTER13}, {15, SX(-30), SY( 530), 100, P_ENTER13}, /*--*/ {16, SX(430), SY( 530), 45, P_ENTER12}, {16, SX(430), SY( 530), 40, P_ENTER12}, {16, SX(430), SY( 530), 35, P_ENTER12}, {16, SX(430), SY( 530), 30, P_ENTER12}, {16, SX(430), SY( 530), 25, P_ENTER12}, {16, SX(430), SY( 530), 20, P_ENTER12}, {16, SX(430), SY( 530), 15, P_ENTER12}, {16, SX(430), SY( 530), 10, P_ENTER12}, {16, SX(430), SY( 530), 5, P_ENTER12}, {16, SX(430), SY( 530), 0, P_ENTER12}, }, { /* level 12 */ {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(-30), SY( 250), 405, P_ENTER10}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(430), SY( 250), 400, P_ENTER11}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX(-30), SY( 250), 435, P_ENTER10}, {12, SX(430), SY( 250), 430, P_ENTER11}, {12, SX(-30), SY( 250), 425, P_ENTER10}, {12, SX(430), SY( 250), 420, P_ENTER11}, {12, SX(-30), SY( 250), 415, P_ENTER10}, {12, SX(430), SY( 250), 410, P_ENTER11}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {13, SX(200), SY( -30), 345, P_ENTER2 }, {13, SX(200), SY( -30), 340, P_ENTER1 }, {13, SX(200), SY( -30), 335, P_ENTER2 }, {13, SX(200), SY( -30), 330, P_ENTER1 }, {13, SX(200), SY( -30), 325, P_ENTER2 }, {13, SX(200), SY( -30), 320, P_ENTER1 }, {13, SX(200), SY( -30), 315, P_ENTER2 }, {13, SX(200), SY( -30), 310, P_ENTER1 }, {13, SX(200), SY( -30), 305, P_ENTER2 }, {13, SX(200), SY( -30), 300, P_ENTER1 }, /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15}, {14, SX(-30), SY( 250), 240, P_ENTER16}, {14, SX(430), SY( 250), 235, P_ENTER15}, {14, SX(-30), SY( 250), 230, P_ENTER16}, {14, SX(430), SY( 250), 225, P_ENTER15}, {14, SX(-30), SY( 250), 220, P_ENTER16}, {14, SX(430), SY( 250), 215, P_ENTER15}, {14, SX(-30), SY( 250), 210, P_ENTER16}, {14, SX(430), SY( 250), 205, P_ENTER15}, {14, SX(-30), SY( 250), 200, P_ENTER16}, /*--*/ {15, SX(360), SY( -30), 100, P_ENTER17}, {15, SX(320), SY( -30), 100, P_ENTER17}, {15, SX(280), SY( -30), 100, P_ENTER17}, {15, SX(240), SY( -30), 100, P_ENTER17}, {15, SX(200), SY( -30), 100, P_ENTER17}, {15, SX(160), SY( -30), 100, P_ENTER17}, {15, SX(120), SY( -30), 100, P_ENTER17}, {15, SX( 80), SY( -30), 100, P_ENTER17}, {15, SX( 40), SY( -30), 100, P_ENTER17}, {15, SX( 0), SY( -30), 100, P_ENTER17}, /*--*/ {16, SX(360), SY( -30), 0, P_ENTER17}, {16, SX(320), SY( -30), 0, P_ENTER17}, {16, SX(280), SY( -30), 0, P_ENTER17}, {16, SX(240), SY( -30), 0, P_ENTER17}, {16, SX(200), SY( -30), 0, P_ENTER17}, {16, SX(160), SY( -30), 0, P_ENTER17}, {16, SX(120), SY( -30), 0, P_ENTER17}, {16, SX( 80), SY( -30), 0, P_ENTER17}, {16, SX( 40), SY( -30), 0, P_ENTER17}, {16, SX( 0), SY( -30), 0, P_ENTER17}, }, { /* level 13 */ {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(-30), SY( 250), 405, P_ENTER10}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(430), SY( 250), 400, P_ENTER11}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX(-30), SY( 250), 435, P_ENTER10}, {12, SX(430), SY( 250), 430, P_ENTER11}, {12, SX(-30), SY( 250), 425, P_ENTER10}, {12, SX(430), SY( 250), 420, P_ENTER11}, {12, SX(-30), SY( 250), 415, P_ENTER10}, {12, SX(430), SY( 250), 410, P_ENTER11}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {13, SX(200), SY( -30), 345, P_ENTER2 }, {13, SX(200), SY( -30), 340, P_ENTER1 }, {13, SX(200), SY( -30), 335, P_ENTER2 }, {13, SX(200), SY( -30), 330, P_ENTER1 }, {13, SX(200), SY( -30), 325, P_ENTER2 }, {13, SX(200), SY( -30), 320, P_ENTER1 }, {13, SX(200), SY( -30), 315, P_ENTER2 }, {13, SX(200), SY( -30), 310, P_ENTER1 }, {13, SX(200), SY( -30), 305, P_ENTER2 }, {13, SX(200), SY( -30), 300, P_ENTER1 }, /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15}, {14, SX(-30), SY( 250), 240, P_ENTER16}, {14, SX(430), SY( 250), 235, P_ENTER15}, {14, SX(-30), SY( 250), 230, P_ENTER16}, {14, SX(430), SY( 250), 225, P_ENTER15}, {14, SX(-30), SY( 250), 220, P_ENTER16}, {14, SX(430), SY( 250), 215, P_ENTER15}, {14, SX(-30), SY( 250), 210, P_ENTER16}, {14, SX(430), SY( 250), 205, P_ENTER15}, {14, SX(-30), SY( 250), 200, P_ENTER16}, /*--*/ {15, SX(100), SY( 530), 145, P_ENTER8 }, {15, SX(300), SY( 530), 140, P_ENTER9 }, {15, SX(100), SY( 530), 135, P_ENTER8 }, {15, SX(300), SY( 530), 130, P_ENTER9 }, {15, SX(100), SY( 530), 125, P_ENTER8 }, {15, SX(300), SY( 530), 120, P_ENTER9 }, {15, SX(100), SY( 530), 115, P_ENTER8 }, {15, SX(300), SY( 530), 110, P_ENTER9 }, {15, SX(100), SY( 530), 105, P_ENTER8 }, {15, SX(300), SY( 530), 100, P_ENTER9 }, /*--*/ {16, SX(100), SY( 530), 40, P_ENTER8 }, {16, SX(300), SY( 530), 40, P_ENTER9 }, {16, SX(100), SY( 530), 30, P_ENTER8 }, {16, SX(300), SY( 530), 30, P_ENTER9 }, {16, SX(100), SY( 530), 20, P_ENTER8 }, {16, SX(300), SY( 530), 20, P_ENTER9 }, {16, SX(100), SY( 530), 10, P_ENTER8 }, {16, SX(300), SY( 530), 10, P_ENTER9 }, {16, SX(100), SY( 530), 0, P_ENTER8 }, {16, SX(300), SY( 530), 0, P_ENTER9 }, }, { /* level 14 */ {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(-30), SY( 250), 405, P_ENTER10}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(430), SY( 250), 400, P_ENTER11}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX(-30), SY( 250), 435, P_ENTER10}, {12, SX(430), SY( 250), 430, P_ENTER11}, {12, SX(-30), SY( 250), 425, P_ENTER10}, {12, SX(430), SY( 250), 420, P_ENTER11}, {12, SX(-30), SY( 250), 415, P_ENTER10}, {12, SX(430), SY( 250), 410, P_ENTER11}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {13, SX(430), SY( 250), 345, P_ENTER18}, {13, SX(430), SY( 250), 340, P_ENTER18}, {13, SX(430), SY( 250), 335, P_ENTER18}, {13, SX(430), SY( 250), 330, P_ENTER18}, {13, SX(430), SY( 250), 325, P_ENTER18}, {13, SX(430), SY( 250), 320, P_ENTER18}, {13, SX(430), SY( 250), 315, P_ENTER18}, {13, SX(430), SY( 250), 310, P_ENTER18}, {13, SX(430), SY( 250), 305, P_ENTER18}, {13, SX(430), SY( 250), 300, P_ENTER18}, /*--*/ {14, SX(430), SY( 250), 245, P_ENTER18}, {14, SX(430), SY( 250), 240, P_ENTER18}, {14, SX(430), SY( 250), 235, P_ENTER18}, {14, SX(430), SY( 250), 230, P_ENTER18}, {14, SX(430), SY( 250), 225, P_ENTER18}, {14, SX(430), SY( 250), 220, P_ENTER18}, {14, SX(430), SY( 250), 215, P_ENTER18}, {14, SX(430), SY( 250), 210, P_ENTER18}, {14, SX(430), SY( 250), 205, P_ENTER18}, {14, SX(430), SY( 250), 200, P_ENTER18}, /*--*/ {15, SX(-30), SY( -30), 145, P_ENTER20}, {15, SX(-30), SY( -30), 140, P_ENTER20}, {15, SX(-30), SY( -30), 135, P_ENTER20}, {15, SX(-30), SY( -30), 130, P_ENTER20}, {15, SX(-30), SY( -30), 125, P_ENTER20}, {15, SX(-30), SY( -30), 120, P_ENTER20}, {15, SX(-30), SY( -30), 115, P_ENTER20}, {15, SX(-30), SY( -30), 110, P_ENTER20}, {15, SX(-30), SY( -30), 105, P_ENTER20}, {15, SX(-30), SY( -30), 100, P_ENTER20}, /*--*/ {16, SX(430), SY( -30), 45, P_ENTER19}, {16, SX(430), SY( -30), 40, P_ENTER19}, {16, SX(430), SY( -30), 35, P_ENTER19}, {16, SX(430), SY( -30), 30, P_ENTER19}, {16, SX(430), SY( -30), 25, P_ENTER19}, {16, SX(430), SY( -30), 20, P_ENTER19}, {16, SX(430), SY( -30), 15, P_ENTER19}, {16, SX(430), SY( -30), 10, P_ENTER19}, {16, SX(430), SY( -30), 5, P_ENTER19}, {16, SX(430), SY( -30), 0, P_ENTER19}, }, { /* level 15 */ {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(-30), SY( 250), 405, P_ENTER10}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX(430), SY( 250), 400, P_ENTER11}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {11, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {12, SX(-30), SY( 250), 435, P_ENTER10}, {12, SX(430), SY( 250), 430, P_ENTER11}, {12, SX(-30), SY( 250), 425, P_ENTER10}, {12, SX(430), SY( 250), 420, P_ENTER11}, {12, SX(-30), SY( 250), 415, P_ENTER10}, {12, SX(430), SY( 250), 410, P_ENTER11}, {12, SX( -1), SY( -1), -1, -1}, {12, SX( -1), SY( -1), -1, -1}, {13, SX(200), SY( -30), 345, P_ENTER2 }, {13, SX(200), SY( -30), 340, P_ENTER1 }, {13, SX(200), SY( -30), 335, P_ENTER2 }, {13, SX(200), SY( -30), 330, P_ENTER1 }, {13, SX(200), SY( -30), 325, P_ENTER2 }, {13, SX(200), SY( -30), 320, P_ENTER1 }, {13, SX(200), SY( -30), 315, P_ENTER2 }, {13, SX(200), SY( -30), 310, P_ENTER1 }, {13, SX(200), SY( -30), 305, P_ENTER2 }, {13, SX(200), SY( -30), 300, P_ENTER1 }, /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15}, {14, SX(-30), SY( 250), 240, P_ENTER16}, {14, SX(430), SY( 250), 235, P_ENTER15}, {14, SX(-30), SY( 250), 230, P_ENTER16}, {14, SX(430), SY( 250), 225, P_ENTER15}, {14, SX(-30), SY( 250), 220, P_ENTER16}, {14, SX(430), SY( 250), 215, P_ENTER15}, {14, SX(-30), SY( 250), 210, P_ENTER16}, {14, SX(430), SY( 250), 205, P_ENTER15}, {14, SX(-30), SY( 250), 200, P_ENTER16}, /*--*/ {15, SX(100), SY( 530), 145, P_ENTER8 }, {15, SX(300), SY( 530), 140, P_ENTER9 }, {15, SX(100), SY( 530), 135, P_ENTER8 }, {15, SX(300), SY( 530), 130, P_ENTER9 }, {15, SX(100), SY( 530), 125, P_ENTER8 }, {15, SX(300), SY( 530), 120, P_ENTER9 }, {15, SX(100), SY( 530), 115, P_ENTER8 }, {15, SX(300), SY( 530), 110, P_ENTER9 }, {15, SX(100), SY( 530), 105, P_ENTER8 }, {15, SX(300), SY( 530), 100, P_ENTER9 }, /*--*/ {16, SX(100), SY( 530), 40, P_ENTER8 }, {16, SX(300), SY( 530), 40, P_ENTER9 }, {16, SX(100), SY( 530), 30, P_ENTER8 }, {16, SX(300), SY( 530), 30, P_ENTER9 }, {16, SX(100), SY( 530), 20, P_ENTER8 }, {16, SX(300), SY( 530), 20, P_ENTER9 }, {16, SX(100), SY( 530), 10, P_ENTER8 }, {16, SX(300), SY( 530), 10, P_ENTER9 }, {16, SX(100), SY( 530), 0, P_ENTER8 }, {16, SX(300), SY( 530), 0, P_ENTER9 }, }, }; #endif /* This isn't used anymore! Maybe we should nuke it */ void path_dir(int path, int pos, int *dir, int *steer) { *dir = paths[path][pos][0]; *steer = paths[path][pos][1]; } void enter_path_dir(int path, int pos, int *dir, int *steer) { *dir = get_dir(path,pos); *steer = get_duration(path, pos); } void start_path(int path, struct alien *al) { int i; for(i=0;(i= 0);i++) { if(paths[path][i][0] == al->dir) break; if(paths[path][i][0] < 0) { al->steer = TURNSPEED; al->path = -1; return; } } if(i >= MAXPATH) { al->steer = TURNSPEED; al->path = -1; return; } al->path = path; al->path_pos = i; al->steer = paths[path][i][1]; } void new_alien(int level, int anum, struct alien *al) { if(get_shape(anum) >= 0) { al->alive = 1; al->dying = 0; al->entering = 1; get_xy(anum, &al->x, &al->y); al->enterdelay = get_delay(anum); al->enterdelay /= 1 + ((metaLevel -1) * .5); al->path = get_path(anum); al->path_pos = 0; al->dir = get_dir(al->path, 0); al->steer = get_duration(al->path, 0); if(metaLevel > 1) al->steer /= 1 + ((metaLevel - 1) * .5); /*al->steer -= (metaLevel - 1) * (al->steer / 3);*/ al->escorting = -1; al->shape = getImage(alien_shape[get_shape(anum)]); } else { al->alive = 0; } /* al->alive = 1; al->dying = 0; al->x = ep[l][anum].x; al->y = ep[l][anum].y; al->entering = 1; al->enterdelay = ep[l][anum].delay; al->path = ep[l][i].path; al->path_pos = 0; al->dir = paths[ep[l][anum].path][0][0]; al->steer = 2*(paths[ep[l][anum].path][0][1]/3); al->escorting = -1; al->shape = getImage(alien_shape[ep[l][i].shape]); */ } xgalaga-2.1.1.0/pathfile.c0000644000175000001440000001746410763613570014610 0ustar hermannusers/* $Id: pathfile.c,v 1.3 1998/04/30 05:11:56 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include #include #ifdef HAVE_STRINGS_H # include #endif #include #include #include #include "struct.h" #include "paths.h" #include "pathfile.h" #include "data.h" #include "defs.h" #define MAXFILENAME 1024 #define MAXPATHLEN 50 #define MAXLINE 1024 typedef enum { PF_PATHDEF, PF_PATHS, PF_SHAPES, PF_DELAYS } PathfileToken; struct path_entry { int dir, duration; }; struct path_info { int startx, starty, len; }; struct path_entry epaths[NUMPATHS][MAXPATHLEN]; struct path_info pathinfo[NUMPATHS]; int al_shapes[MAXALIENS]; int al_delays[MAXALIENS]; int al_paths[MAXALIENS]; int get_line(FILE* file, char* buf) { int done = 0; char nextline[MAXLINE]; buf[0] = 0; while(!done) { if(!fgets(nextline, MAXLINE, file)) return 0; /* remove newline */ nextline[strlen(nextline) - 1] = 0; if(strlen(nextline) + strlen(buf) >= MAXLINE) { fprintf(stderr, "get_line: Line too long\n"); return -1; } strcpy(buf + strlen(buf), nextline); if(nextline[strlen(nextline) -1] != '\\') done = 1; else { buf[strlen(buf) -1] = ' '; } } return 1; } PathfileToken get_token(char* line, int* elem, char** data) { PathfileToken pt; char *datastart; *elem = -1; if(strncmp(line, "paths:", 6) == 0) { pt = PF_PATHS; } else if (strncmp(line, "path.", 5) == 0) { if(line[5] >= '0' && line[5] <= '9') *elem = line[5] - '0'; else if(line[5] >= 'a' && line[5] <= 'z') *elem = line[5] - 'a' + 10; else if(line[5] >= 'A' && line[5] <= 'Z') *elem = line[5] - 'A' + 36; else { fprintf(stderr, "%c is not a valid path identifier\n", line[5]); return -1; } pt = PF_PATHDEF; } else if (strncmp(line, "delays:", 7) == 0) { pt = PF_DELAYS; } else if (strncmp(line, "shapes:", 7) == 0) { pt = PF_SHAPES; } else { return -1; } datastart = strchr(line, ':'); if(!datastart) return -1; datastart++; while(isspace(*datastart)) datastart++; if(!(*datastart)) return -1; *data = datastart; return pt; } #define iscompass(c) (((c) == 'n') || ((c) == 'e') || ((c) == 's') || ((c) == 'w')) #define CHKDIR(x) \ curdir++; if(strcmp(x, dir) == 0) { gotdir = curdir; } static void parse_path(int pnum, char* pstr) { char *fnd; char dir[40]; int dp; int curdir = -1, gotdir; int duration; int curentry; int sx, sy; char *comma; curentry = 0; comma = strchr(pstr, ','); sx = atoi(pstr); sy = atoi(comma+1); fnd = strchr(pstr, ':'); while(!iscompass(*fnd) && *fnd) fnd++; if(!(*fnd)) fprintf(stderr, "No path info for path %d\n", pnum); while(*fnd) { dp = 0; while(iscompass(*fnd) && dp < 3) { dir[dp] = *fnd; fnd++; dp++; } if(!isdigit(*fnd)) { fprintf(stderr, "Error parsing path: %s\n", pstr); return; } dir[dp] = 0; curdir = -1; gotdir = -1; CHKDIR("n"); CHKDIR("nne"); CHKDIR("ne"); CHKDIR("ene"); CHKDIR("e"); CHKDIR("ese"); CHKDIR("se"); CHKDIR("sse"); CHKDIR("s"); CHKDIR("ssw"); CHKDIR("sw"); CHKDIR("wsw"); CHKDIR("w"); CHKDIR("wnw"); CHKDIR("nw"); CHKDIR("nnw"); if(gotdir < 0) { fprintf(stderr, "direction %s in path %d is not valid\n", dir, pnum); } duration = atoi(fnd); epaths[pnum][curentry].dir = gotdir; epaths[pnum][curentry].duration = duration; curentry++; while(isdigit(*fnd) || isspace(*fnd)) fnd++; } epaths[pnum][curentry].dir = -1; epaths[pnum][curentry].duration = -1; pathinfo[pnum].len = curentry; pathinfo[pnum].startx = sx; pathinfo[pnum].starty = sy; } static int parse_shapes(char* data) { char* chk; int i; for(i = 0, chk = data; i < MAXALIENS; i++) { while(isspace(*chk)) chk++; if(!(*chk)) return 0; if(*chk >= '0' && *chk <= '9') al_shapes[i] = *chk - '0'; else if(*chk >= 'a' && *chk <= 'z') al_shapes[i] = *chk - 'a' + 10; else if(*chk >= 'A' && *chk <= 'Z') al_shapes[i] = *chk - 'A' + 10 + 26; else if(*chk == '-') al_shapes[i] = -1; else { fprintf(stderr, "'%c' is not a valid shape character\n", *chk); al_shapes[i] = 0; } chk++; } return 1; } static int parse_paths(char* data) { char* chk; int i; for(i = 0, chk = data; i < MAXALIENS; i++) { while(isspace(*chk)) chk++; if(!(*chk)) return 0; if(*chk >= '0' && *chk <= '9') al_paths[i] = *chk - '0'; else if(*chk >= 'a' && *chk <= 'z') al_paths[i] = *chk - 'a' + 10; else if(*chk >= 'A' && *chk <= 'Z') al_paths[i] = *chk - 'A' + 10 + 26; else if(*chk == '-') al_paths[i] = -1; else { fprintf(stderr, "'%c' is not a valid shape character\n", *chk); al_paths[i] = 0; } chk++; } return 1; } static int parse_delays(char* data) { char* chk; int i; for(i = 0, chk = data; i < MAXALIENS; i++) { while(isspace(*chk)) chk++; if(!(*chk)) return 0; al_delays[i] = atoi(chk); while(!isspace(*chk) && *chk) chk++; } return 1; } int read_level(int lev) { char filename[MAXFILENAME]; char readline[MAXLINE]; char *data; int gotPaths = 0, gotShapes = 0, gotDelays = 0; int rlen; int elem; FILE* lf; PathfileToken tok; static int maxLevel = 1; static char *real_level_path = 0; struct stat statbuf; if(!real_level_path) { sprintf(filename, "%s", LEVELDIR); if(stat(filename, &statbuf) != 0 || !(statbuf.st_mode & S_IFDIR)) { sprintf(filename, "./levels"); if(stat(filename, &statbuf) != 0 || !(statbuf.st_mode & S_IFDIR)) { fprintf(stderr, "Can't find level directory %s OR ./levels\n", XGALAGADIR); return -1; } } real_level_path = malloc(strlen(filename) + 1); strcpy(real_level_path, filename); } sprintf(filename, "%s/level%d.xgl", real_level_path, lev); lf = fopen(filename, "r"); if(!lf) { /* Dont use recursion, to avoid stack overflow if start level is * very high (or the game is played for a _very_ long time. :-) * -- JEH */ for (lev = lev - maxLevel; lev > 0 && ! lf ;lev = lev - maxLevel) { metaLevel++; /* real_level_path is already set, so.. */ sprintf(filename, "%s/level%d.xgl", real_level_path, lev); lf = fopen(filename, "r"); } //fprintf(stderr, "Can't open level file %s\n", filename); //return read_level(lev - maxLevel); } if(lev > maxLevel) maxLevel = lev; while(!feof(lf)) { if((rlen = get_line(lf, readline)) <= 0) { if(gotShapes && gotPaths && gotDelays) { return 1; } fprintf(stderr, "Error reading level file %s:\n", filename); if(!gotShapes) fprintf(stderr, " Missing shapes\n"); if(!gotPaths) fprintf(stderr, " Missing paths\n"); if(!gotDelays) fprintf(stderr, " Missing delays\n"); fclose(lf); return 0; } switch((tok = get_token(readline, &elem, &data))) { case PF_PATHDEF: parse_path(elem, data); break; case PF_SHAPES: gotShapes = parse_shapes(data); break; case PF_PATHS: gotPaths = parse_paths(data); break; case PF_DELAYS: gotDelays = parse_delays(data); break; default: break; } } fclose(lf); if(gotShapes && gotPaths && gotDelays) { return 1; } return 0; } int get_path(int anum) { return al_paths[anum]; } void get_xy(int anum, int* x, int* y) { *x = (WINWIDTH * pathinfo[al_paths[anum]].startx) / 400; *y = (WINHEIGHT * pathinfo[al_paths[anum]].starty) / 500; } int get_delay(int anum) { return al_delays[anum]; } int get_dir(int pnum, int pos) { return epaths[pnum][pos].dir; } int get_duration(int pnum, int pos) { return epaths[pnum][pos].duration; } int get_shape(int anum) { return al_shapes[anum]; } xgalaga-2.1.1.0/title.c0000644000175000001440000002000610763613570014117 0ustar hermannusers/* $Id: title.c,v 1.4 1998/05/11 06:52:59 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include #include #ifdef HAVE_FCNTL_H # include #endif #include "math.h" #include "Wlib.h" #include "defs.h" #include "images.h" #include "struct.h" #include "data.h" #include "proto.h" /* for scrolling credits */ const LINESIZE= 70; const VISIBLELINES=7; const SPEEDFACTOR=5; char *gchLBuf; int giCreditLines=0, giActCreditLine=0; W_Image *pauseImage, *titleImage; int pausex, pausey, pauseyspeed=1; void undo_pause() { W_CacheClearArea(baseWin, pausex-(pauseImage->width/2), pausey-(pauseImage->height/2), pauseImage->width, pauseImage->height); } void do_pause() { if((pausey < pauseImage->height/2) || ((pausey+(pauseImage->height/2)) >= WINHEIGHT)) pauseyspeed = -pauseyspeed; pausey+=pauseyspeed; W_DrawImage(baseWin, pausex-(pauseImage->width/2), pausey-(pauseImage->height/2), 0, pauseImage, W_White); } void center_text(char *text, int y, W_Color color) { /* W_MaskText(baseWin, WINWIDTH/2 - ((strlen(text)*W_Textwidth)/2)-1, y+1, W_Black, text, strlen(text), W_RegularFont); */ W_MaskText(baseWin, WINWIDTH/2 - ((strlen(text)*W_Textwidth)/2), y, color, text, strlen(text), W_RegularFont); } #if 0 /* ships vary from level to level now */ static void show_points() { int i, ty; int a_images[6] = { I_ALIEN1, I_ALIEN2, I_ALIEN3, I_ALIEN4, I_ALIEN5, I_ALIEN6 }; char buf[40]; for (i=0;i<6;i++) { W_DrawImage(baseWin, WINWIDTH/2 - 30, 220+i*21, 0, getImage(a_images[5-i]), W_Red); if(i < 5) sprintf(buf, "- %d", (i+1)*100); else sprintf(buf, "- ???"); W_MaskText(baseWin, WINWIDTH/2, 225+i*21, W_Yellow, buf, strlen(buf), W_RegularFont); } ty = 220+i*21; center_text("Ships in convoy are worth 50 points", ty, W_Green); ty += W_Textheight; center_text("Bonus ships at 20,000, 50,000, then every 50,000.", ty, W_Green); } #endif static void show_help() { int top = 270; center_text(" Keyboard controls ", top, W_Red); center_text(" left/right arrow move ", top+10, W_Yellow); center_text(" space bar fire ", top+20, W_Yellow); center_text(" p pause ", top+30, W_Cyan); center_text(" q end game ", top+40, W_Cyan); center_text(" Q quick quit ", top+50, W_Cyan); center_text(" k keyboard control", top+60, W_Cyan); center_text(" m mouse control ", top+70, W_Cyan); #ifndef ORIGINAL_XGALAGA center_text(" x toggle shields ", top+80, W_Cyan); #endif #ifdef SOUND center_text(" s toggle sound ", top+90, W_Cyan); #endif center_text("Bonus ships at 20,000, 50,000, then every 50,000.", top+120, W_Green); center_text("XGalaga Home page: http://rumsey.org/xgal.html", top+150, W_Cyan); } int read_credits() { int hsf; int i,j,l,lines; int nSize; char *chFBuf, chLBuf[LINESIZE+1]; j = 0; lines = 0; chFBuf = (char *) malloc (8000+1); if (chFBuf == 0) return (-1); gchLBuf = (char *) malloc (LINESIZE+1); if (gchLBuf == 0) return (-2); hsf = open (CREDITSFILE, O_RDONLY); if ( hsf > 0 ) { l = read (hsf, chFBuf, 8000); chFBuf[l] = 0x00; if ( l > 0 ) { for (i=0; iLINESIZE) { // line too long -> cut without grace chLBuf[j] = 0x00; j = 0; strncpy (gchLBuf+(lines*(LINESIZE+1)), chLBuf, LINESIZE); lines++; nSize = (lines+1) * (LINESIZE+1); gchLBuf = (char *) realloc (gchLBuf, nSize); // get space for next line } break; } // end switch } // end for } } else { // printf (chLBuf, sizeof(chLBuf)-1, "Sorry! Could not read CREDITSFILE"); } close(hsf); free (chFBuf); giCreditLines = lines-1; } void undo_credits() { int hsf; int i,j,l,lines; int top = 460; char chLBuf[LINESIZE+1]; if ( gchLBuf > 0 ) { j = 0; lines = 0; for ( i=giActCreditLine; i VISIBLELINES ) break; } // end for } else { snprintf (chLBuf, sizeof(chLBuf)-1, "Sorry no CREDITS data"); center_text (chLBuf, top+10, W_Black); } } void show_credits() { int hsf; int i,j,l,lines; int top = 460; char chLBuf[LINESIZE+1]; if ( gchLBuf > 0 ) { j = 0; lines = 0; for ( i=giActCreditLine; i VISIBLELINES ) break; } // end for W_ClearArea(baseWin, 0, top, WINWIDTH, W_Textheight); W_ClearArea(baseWin, 0, top+(VISIBLELINES+1)*W_Textheight, WINWIDTH, W_Textheight); } else { snprintf (chLBuf, sizeof(chLBuf)-1, "Sorry no CREDITS data"); center_text (chLBuf, top+10, W_Green); } } void do_title() { int ty; char vbuf[10]; W_DrawImage (baseWin, WINWIDTH/2 - titleImage->width/2, 50, 0, titleImage, W_Red); sprintf (vbuf, "v%s", VERSION); center_text (vbuf, 40+titleImage->height, W_Yellow); ty = 60 + titleImage->height; if (getting_name) title_page = 0; switch (title_page) { case 0: center_text("Copyright (c) 1995-1998 Joe Rumsey", ty, W_Green); ty+= W_Textheight; center_text("Maintenance 2008 by Hermann Riedel", ty, W_Green); ty+= 2*W_Textheight; #ifndef ORIGINAL_XGALAGA center_text("XGalaga: Hyperspace 0.9", ty, W_Green); ty+= W_Textheight; #endif show_help(); // show_credits(); break; case 1: default: show_scores(); // show_credits(); break; } #ifdef __linux__ if (js_device) center_text("Press k for keyboard or joystick control, m for mouse", WINHEIGHT - 2*W_Textheight, W_Yellow); else /* no joystick, so use message below */ #endif center_text("Press k for keyboard control, m for mouse", WINHEIGHT - 2*W_Textheight, W_Yellow); center_text("Or q to quit", WINHEIGHT - W_Textheight, W_Yellow); undo_credits(); // erase with painting black pagetimer--; // if (!(pagetimer % 50)) if (!(pagetimer % (W_Textheight*SPEEDFACTOR))) { //printf("%d %d %25s\n", pagetimer, (pagetimer % (W_Textheight*SPEEDFACTOR)), gchLBuf+giActCreditLine*(LINESIZE+1)); giActCreditLine++; if (giActCreditLine > giCreditLines) giActCreditLine = 0; } if (!pagetimer) { W_ClearWindow(baseWin); title_page++; if (title_page > 1) title_page = 0; pagetimer = 299; } show_credits(); // write text } void init_titles() { titleImage = getImage(I_TITLE); pauseImage = getImage(I_PAUSE); pausex = WINWIDTH/2; pausey = WINHEIGHT/2; pauseyspeed = 3; read_credits(); } xgalaga-2.1.1.0/explosions.c0000644000175000001440000000615710763613570015214 0ustar hermannusers/* $Id: explosions.c,v 1.2 1998/04/30 05:11:54 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include #include "Wlib.h" #include "images.h" #include "struct.h" #include "data.h" #include "proto.h" #include "sound.h" static struct explosion *first_exp=0; static struct score_bubble *first_bub=0; W_Image *expImage, *bubbleImages[4]; static void undo_bubbles() { struct score_bubble *bub=first_bub, *nextbub; while(bub) { W_CacheClearArea(baseWin, bub->x-(bub->shape->width/2), bub->y-(bub->shape->height/2), bub->shape->width, bub->shape->height); nextbub = bub->next; if(bub->count <= 0) { if(bub->prev) bub->prev->next = bub->next; if(bub->next) bub->next->prev = bub->prev; if(first_bub == bub) first_bub = 0; free(bub); } bub=nextbub; } } static void do_bubbles() { struct score_bubble *bub=first_bub; while(bub) { if(!paused) { bub->count--; bub->y--; } W_DrawImage(baseWin, bub->x-(bub->shape->width/2), bub->y-(bub->shape->height/2), 0, bub->shape, W_Red); bub=bub->next; } } void undo_explosions() { struct explosion *exp=first_exp, *nextexp; while(exp) { W_CacheClearArea(baseWin, exp->x-(exp->shape->width/2), exp->y-(exp->shape->height/2), exp->shape->width, exp->shape->height); nextexp = exp->next; if(exp->frame >= exp->shape->frames) { if(exp->prev) exp->prev->next = exp->next; if(exp->next) exp->next->prev = exp->prev; if(first_exp == exp) first_exp = 0; free(exp); } exp=nextexp; } undo_bubbles(); } void do_explosions() { struct explosion *exp=first_exp; while(exp) { W_DrawImage(baseWin, exp->x-(exp->shape->width/2), exp->y-(exp->shape->height/2), exp->frame, exp->shape, W_Red); if(!paused) exp->frame++; exp=exp->next; } do_bubbles(); } void new_explosion(int x, int y, int type) { struct explosion *exp; exp = malloc(sizeof(struct explosion)); exp->next = first_exp; exp->prev = 0; if(exp->next) exp->next->prev = exp; first_exp = exp; exp->x = x; exp->y = y; exp->frame = 0; exp->shape = getImage(I_EXPLOSION); #ifdef SOUND switch(type) { case 1: play_sound(SND_EXPLOSION); break; case 2: play_sound(SND_EXP_SB); break; case 0: default: play_sound(SND_TORPHIT); break; } #endif } void score_flagship(int x, int y, int ne) { struct score_bubble *bub; bub = malloc(sizeof(struct score_bubble)); bub->next = first_bub; bub->prev = 0; if(bub->next) bub->next->prev = bub; first_bub = bub; bub->x = x; bub->y = y; bub->count=25; bub->shape = bubbleImages[ne]; switch(ne) { case 0: score+=500; break; case 1: score+=1000; break; case 2: score+=2000; break; case 3: score+=4000; break; } } void init_explosions() { expImage = getImage(I_EXPLOSION); bubbleImages[0] = getImage(I_S500); bubbleImages[1] = getImage(I_S1000); bubbleImages[2] = getImage(I_S2000); bubbleImages[3] = getImage(I_S4000); } xgalaga-2.1.1.0/score.c0000644000175000001440000000506010763613570014114 0ustar hermannusers/* $Id: score.c,v 1.2 1998/04/30 05:11:58 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include #include #include "struct.h" #include "Wlib.h" #include "images.h" #include "data.h" #include "defs.h" #include "proto.h" char scorestr[40] = "Score: 0000000", shipstr[4] =""; W_Image *miniship, *extraImage; int drawExtra = 0, extrax, extray; void undo_score() { if(drawExtra) W_ClearArea(baseWin, extrax-(extraImage->width/2), extray-(extraImage->height/2), extraImage->width, extraImage->height); } void do_score() { static int lastscore, lastlevel, lastships; #ifdef SOUND static int lastsounds; #endif if (lastscore != score) { if ((score > 0) && (score >= nextBonus)) { ships++; extrax = 0 - extraImage->width/2; extray = WINHEIGHT/2; drawExtra = 1; if (nextBonus < BONUSSHIPSCORE) nextBonus = BONUSSHIPSCORE; else nextBonus += BONUSSHIPSCORE; } } #ifdef SOUND if (lastscore != score || lastlevel != level || lastships != ships || lastsounds != playSounds) #else if (lastscore != score || lastlevel != level || lastships != ships) #endif { W_ClearArea(shellWin, 0, 0, WINWIDTH, W_Textheight + 1); draw_score(); lastscore=score; lastlevel=level; lastships=ships; #ifdef SOUND lastsounds=playSounds; #endif } if (drawExtra) { extrax += 10; W_DrawImage(baseWin, extrax-(extraImage->width/2), extray-(extraImage->height/2), 0, extraImage, W_White); if((extrax-(int)extraImage->width/2) > WINWIDTH) drawExtra = 0; } } void draw_score() { int basex; int i; #ifdef SOUND sprintf(scorestr, "Score: %07d Level: %02d %c", score, level, playSounds ? ' ':'Q'); #else sprintf(scorestr, "Sore: %07d Level: %02d", score, level); #endif basex = WINWIDTH/2 - ((strlen(scorestr)/2)*W_Textwidth); W_MaskText(shellWin, basex, 1, W_Grey, scorestr, strlen(scorestr), W_RegularFont); W_MaskText(shellWin, basex+1, 0, W_Yellow, scorestr, strlen(scorestr), W_RegularFont); for(i=0;i<((ships < 6) ? ships : 6);i++) { W_DrawImage(shellWin, i*(miniship->width+2), 0, 0, miniship, W_White); } if(ships>6) { sprintf(shipstr, "%d", ships); basex = 6*(miniship->width+2) + 2; W_MaskText(shellWin, basex, 1, W_Grey, shipstr, strlen(shipstr), W_RegularFont); W_MaskText(shellWin, basex+1, 0, W_Yellow, shipstr, strlen(shipstr), W_RegularFont); } } void init_score() { miniship = getImage(I_MINISHIP); extraImage = getImage(I_EXTRA); } xgalaga-2.1.1.0/highscore.c0000644000175000001440000003202010763613570014750 0ustar hermannusers/* $Id: highscore.c,v 1.2 1998/04/30 05:11:55 mrogre Exp $ */ /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */ #include "copyright.h" #include #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #ifdef HAVE_FCNTL_H # include #endif #include #include #include #ifdef _AIX #include #else /* This is for ntohl, htonl. This file is correct for hpux and linux for sure, probably others as well. */ #include #endif #include "Wlib.h" #include "defs.h" #include "struct.h" #include "proto.h" #include "data.h" /* Global score file is insecure and rather useless today. */ #define NO_GLOBAL_SCORES 1 #ifdef NO_GLOBAL_SCORES #define NUM_GLOBAL_SCORES 0 #else #define NUM_GLOBAL_SCORES 20 #endif #define NUM_MY_SCORES 10 static char new_name[20]; static int nnpos=0; static int thisplace = -1, my_thisplace = -1; static struct high_score { #ifdef NOSCOREHOGS long uid; #endif char name[20]; long score; long level; } #ifndef NO_GLOBAL_SCORES global_scores[NUM_GLOBAL_SCORES], #endif my_scores[NUM_MY_SCORES]; void undo_name() { W_ClearArea(baseWin, WINWIDTH/2-(20*W_Textwidth), 250, (40*W_Textwidth), W_Textheight*2); } void do_name() { char buf[21]; static int init = 0; if(!init) { strcpy(new_name, getUsersFullName()); nnpos = strlen(new_name); init = 1; } center_text("Great score! Enter your name:", 250, W_Red); sprintf(buf, "%s_", new_name); center_text(buf, 250 + W_Textheight, W_Cyan); } char *getUsersFullName() { struct passwd *pass; char *comma; char *cp1, *cp2; static char fullname[80]; /* Get user information from password file */ if (!(pass = getpwuid(getuid()))) return("Anonymous?"); /* Unknown user oops. */ /* find a comma indicating further info after name */ comma = strchr(pass->pw_gecos, ','); /* NULL out the comma */ if (comma) *comma = '\0'; /* Use the nickname if not null otherwise password file name */ cp1 = pass->pw_gecos; cp2 = fullname; /* Search through the gecos field looking for an '&' which on very * old UNIX systems is supposed to be the users user name with the * first letter uppercased. */ while(*cp1) { /* Look for the '&' symbol */ if(*cp1 != '&') *cp2++ = *cp1++; else { /* A ha. Now copy the users name to be in place of '&' */ strcpy(cp2, pass->pw_name); /* Convert the first letter to uppercase. */ if(islower(*cp2)) *cp2 = toupper(*cp2); /* Continue with the remaining string */ while(*cp2) cp2++; cp1++; } } /* shorten to 20 chars */ fullname[19] = 0; /* Return their name without any trailing stuff */ return(fullname); } static void save_scores() { int i; int hsf; long x; char my_file_name [256], *home; #ifndef NO_GLOBAL_SCORES hsf = open(SCOREFILE, O_WRONLY | O_TRUNC | O_CREAT, 0666); if(hsf < 0) { printf("Couldn't write scores file %s\n", SCOREFILE); return; } for(i=0;i global_scores[i].score) { /* /lib 27jul95 uniq-global-highscore: */ /* find old position of high-score: */ for(k=i;ki;j--) { global_scores[j].uid = global_scores[j-1].uid; strcpy(global_scores[j].name, global_scores[j-1].name); global_scores[j].score = global_scores[j-1].score; global_scores[j].level = global_scores[j-1].level; } global_scores[i].uid = getuid(); strcpy(global_scores[i].name, name); global_scores[i].score = score; global_scores[i].level = level; thisplace = i; break; } /* high-score stuff by /lib (uid is found, score is too low): */ else if(global_scores[i].uid == getuid()) { break; } } #else /* NOSCOREHOGS */ for(i=0;i global_scores[i].score) { for(j=NUM_GLOBAL_SCORES-1;j>i;j--) { strcpy(global_scores[j].name, global_scores[j-1].name); global_scores[j].score = global_scores[j-1].score; global_scores[j].level = global_scores[j-1].level; } strcpy(global_scores[i].name, name); global_scores[i].score = score; global_scores[i].level = level; thisplace = i; break; } } #endif /* NOSCOREHOGS */ #endif /* NO_GLOBAL_SCORES */ for(i=0;i my_scores[i].score) { for(j=NUM_MY_SCORES-1;j>i;j--) { strcpy(my_scores[j].name, my_scores[j-1].name); my_scores[j].score = my_scores[j-1].score; my_scores[j].level = my_scores[j-1].level; } strcpy(my_scores[i].name, name); my_scores[i].score = score; my_scores[i].level = level; my_thisplace = i; break; } } save_scores(); } int score_key(W_Event *ev) { if(getting_name) { switch(ev->key) { case 13: case 10: case 269: getting_name = 0; add_score(new_name, score); title_page = 1; pagetimer = 300; W_ClearWindow(baseWin); break; case 8: case 127: case 264: if(nnpos > 0) { nnpos--; new_name[nnpos] = 0; } break; case 'u'+128: nnpos = 0; new_name[nnpos] = 0; break; default: if(nnpos < 19) { new_name[nnpos++] = ev->key; new_name[nnpos] = 0; } break; } return 1; } return 0; } int check_score(int score) { int i; load_scores(); /* in case someone else has gotten a high score */ #ifndef NO_GLOBAL_SCORES for(i=0;i global_scores[i].score) { return 1; } #ifdef NOSCOREHOGS if(global_scores[i].uid == getuid()) { break; } #endif } #endif /* NO_GLOBAL_SCORES */ for(i=0;i my_scores[i].score) return 1; } my_thisplace = -1; thisplace = -1; return 0; } void show_scores() { int i; char buf[60]; W_Color color; W_SetRGB16(W_DarkGrey, random()%65535,random()%65535,random()%65535); color = W_DarkGrey; #ifndef NO_GLOBAL_SCORES center_text("Global high scores", 90, W_Yellow); sprintf(buf, "Rank Name Score Level"); center_text(buf, 100, W_Yellow); W_MakeLine(baseWin, WINWIDTH/2-((strlen(buf)*W_Textwidth)/2), 111, WINWIDTH/2 + ((strlen(buf)*W_Textwidth)/2), 111, W_Red); for(i=0;i0) printf("Error reading high scores file '%s'\n", SCOREFILE); for(i=0;i0) printf("Error reading high scores file '%s'\n", my_file_name); for(i=0;i #include #include "Wlib.h" #include "images.h" #include "struct.h" #include "data.h" #include "defs.h" #include "proto.h" #include "sound.h" #define PR_SING 0 #define PR_DOUB 1 #define PR_TRIP 2 #define PR_SPEED 3 #define PR_SHIELD 4 #define PR_SMART 5 #define PR_LEMON 6 #define PR_EXTRABULLET 7 #ifdef ENABLE_SPREAD_SHOT #define PR_SPREAD 8 #endif #ifdef ENABLE_MACHINE_GUN # ifdef ENABLE_SPREAD_SHOT # define PR_MACHINE 9 # define NUMPRIZES 10 # else # define PR_MACHINE 8 # define NUMPRIZES 9 # endif /* ENABLE_SPREAD_SHOT */ #else # ifdef ENABLE_SPREAD_SHOT # define PR_SPREAD 8 # define NUMPRIZES 9 # else # define NUMPRIZES 8 # endif /* ENABLE_SPREAD_SHOT */ #endif /* ENABLE_MACHINE_GUN */ #define PRIZESPEED 3 W_Image *prizeImages[NUMPRIZES]; struct prize { struct prize *next, *prev; int x, y, type, dying; } *first_prize; /* 8-) */ void init_prizes() { prizeImages[0] = getImage(I_PR_SING); prizeImages[1] = getImage(I_PR_DOUB); prizeImages[2] = getImage(I_PR_TRIP); prizeImages[3] = getImage(I_PR_SPEED); prizeImages[4] = getImage(I_PR_SHIELD); prizeImages[5] = getImage(I_PR_BRAIN); prizeImages[6] = getImage(I_PR_LEMON); prizeImages[7] = getImage(I_PR_EXTRABULLET); #ifdef ENABLE_SPREAD_SHOT prizeImages[8] = getImage(I_PR_SPREAD); #endif #ifdef ENABLE_MACHINE_GUN prizeImages[NUMPRIZES - 1] = getImage(I_PR_MACHINE); #endif } void new_prize(int x, int y) { struct prize *p; p = malloc(sizeof(struct prize)); p->next = first_prize; p->prev = 0; if(first_prize) first_prize->prev = p; first_prize = p; p->x = x; p->y = y; p->type = random()%NUMPRIZES; p->dying = 0; } void undo_prizes() { struct prize *p = first_prize, *nextp; while(p) { nextp = p->next; W_CacheClearArea(baseWin, p->x-prizeImages[p->type]->width/2, p->y-prizeImages[p->type]->width/2, prizeImages[p->type]->width+1, prizeImages[p->type]->height); if(p->dying) { if(p->next) p->next->prev = p->prev; if(p->prev) p->prev->next = p->next; if(p == first_prize) first_prize = p->next; free(p); } p = nextp; } } void do_prizes() { struct prize *p = first_prize; int i,k, ne; #ifdef SOUND int oldPlaySounds; #endif while(p) { if(!paused) p->y+=PRIZESPEED; W_DrawImage(baseWin, p->x-prizeImages[p->type]->width/2, p->y-prizeImages[p->type]->width/2, 0, prizeImages[p->type], W_Green); if(p->y > (WINHEIGHT-20) && (ABS(p->x - plx) < 15) #ifdef NO_PRIZE_WHILE_DEAD && !pldead #endif ) { p->dying = 1; #ifdef SOUND play_sound(SND_DDLOO); #endif switch(p->type) { case PR_SING: if(weapon == SINGLESHOT) maxtorps++; else weapon = SINGLESHOT; break; case PR_DOUB: if(weapon == DOUBLESHOT) maxtorps++; else { weapon = DOUBLESHOT; if(maxtorps < 4) maxtorps = 4; } break; case PR_TRIP: if(weapon == TRIPLESHOT) maxtorps++; else { weapon = TRIPLESHOT; if(maxtorps < 6) maxtorps=6; } break; case PR_SPEED: if(movespeed < MAXSPEED) movespeed++; break; #ifdef ENABLE_SPREAD_SHOT case PR_SPREAD: if (weapon == SPREADSHOT) maxtorps++; else { weapon = SPREADSHOT; if (maxtorps < 5) maxtorps = 5; } break; #endif /* ENABLE_SPREAD_SHOT */ #ifdef ENABLE_MACHINE_GUN case PR_MACHINE: if (weapon == MACHINEGUN) maxtorps++; else { weapon = MACHINEGUN; if (maxtorps < 3) maxtorps = 3; } break; #endif /* ENABLE_MACHINE_GUN */ case PR_SHIELD: #ifdef ACTIVATED_SHIELD if (shieldon) plshield += SHIELDTIME; else shieldsleft += SHIELDTIME; if (shieldsleft + plshield > MAXSHIELDS) { if (shieldon) { shieldsleft = 0; plshield = MAXSHIELDS; } else { shieldsleft = MAXSHIELDS; plshield = 0; } } #else plshield = SHIELDTIME; #ifdef SOUND play_sound(SND_SHIELD); #endif /* SOUND */ #endif /* ACTIVATED_SHIELD */ break; case PR_SMART: #ifdef SOUND play_sound(SND_SMART); oldPlaySounds = playSounds; playSounds = 0; #endif for(i=0;i= 10) { if(aliens[i].dir < 0) score += 50; else { score += (6-(i/10))*100; if(!(random()%(gotlemon ? 3 : PRIZECHANCE))) new_prize(aliens[i].x, aliens[i].y); } new_explosion(aliens[i].x, aliens[i].y, 0); } else { if(aliens[i].dir < 0) score += 200; else { ne=0; /* count how many escorts */ for(k = i+9;k < i+12; k++) { if(aliens[k].escorting == i) ne++; } score_flagship(aliens[i].x, aliens[i].y, ne); } new_explosion(aliens[i].x, aliens[i].y, 1); } } } #ifdef SOUND playSounds = oldPlaySounds; #endif break; case PR_LEMON: gotlemon = 1; maxtorps = MINTORPS; weapon = 0; movespeed = MINSPEED; break; case PR_EXTRABULLET: if(maxtorps < MAXTORPS) maxtorps++; break; } if(maxtorps > MAXTORPS) maxtorps = MAXTORPS; } else if(p->y > WINHEIGHT) { p->dying = 1; } p=p->next; } } xgalaga-2.1.1.0/sound.c0000644000175000001440000000445510763613570014140 0ustar hermannusers/* * sound.c - Platform Independant Sound Support - Apr. 1995 * * Copyright 1994-1995 Sujal M. Patel (smpatel@wam.umd.edu) * Conditions in "copyright.h" */ #include #ifdef SOUND #include #ifdef STDC_HEADERS # include #endif #ifdef HAVE_UNISTD_H # include #endif #ifdef HAVE_SYS_TIME_H # include #endif #ifdef HAVE_FCNTL_H # include #endif #include #include #include #include "struct.h" #include "data.h" static int soundfd; static char audioOK = 1; static char sound_flags[20]; /* Sound Flag for sound 1-19 */ void init_sound () { int i, child,fd[2]; char *argv[4]; char filename[512]; signal(SIGPIPE, SIG_IGN); signal(SIGCHLD, SIG_IGN); /* Do not initialize sound if it is not going to be used -- JEH */ if (! playSounds) return; if(unixSoundPath[0] == '?') { audioOK = 0; return; }; /* Create a pipe, set the write end to close when we exec the sound server, and set both (is the write end necessary?) ends to non-blocking */ if (pipe(fd)) { audioOK = 0; return; } soundfd=fd[1]; if( !(child=fork()) ) { close(fd[1]); dup2(fd[0],STDIN_FILENO); close(fd[0]); sprintf (filename, SOUNDSERVER); argv[0] = filename; argv[1] = unixSoundPath; argv[2] = unixSoundDev; argv[3] = NULL; execvp(filename, argv); fprintf (stderr, "Couldn't Execute Sound Server %s!\n", filename); exit (0); }; close(fd[0]); sleep(1); if (kill(child, 0)) { audioOK = 0; close(soundfd); }; for (i = 0; i < 19; i++) sound_flags[i] = 0; } void play_sound (k) int k; { char c; c = k; if ((playSounds) && (audioOK)) if(write (soundfd, &c, sizeof (c)) != sizeof (c)) audioOK = 0; } void maybe_play_sound (k) int k; { char c; if (sound_flags[k] & 1) return; sound_flags[k] |= 1; c = (unsigned char)(k); if ((playSounds) && (audioOK)) if(write (soundfd, &c, sizeof (c)) != sizeof (c)) audioOK = 0; } void sound_completed (k) int k; { sound_flags[k] &= ~1; } void kill_sound () { char c; c = -1; if ((playSounds) && (audioOK)) if(write (soundfd, &c, sizeof (c)) != sizeof (c)) audioOK = 0; } #endif /* SOUND */ xgalaga-2.1.1.0/nas_sound.c0000644000175000001440000001066510763613570015001 0ustar hermannusers/* NCD Audio format - original code by Dave Lemke */ /* Modified by paul kendall for X Galaga. */ /* * Include file dependencies: */ /* $Id: nas_sound.c,v 1.1.1.1 1998/04/12 06:03:21 mrogre Exp $ */ #include #ifdef NAS_SOUND #include #ifdef STDC_HEADERS # include #endif #ifdef HAVE_UNISTD_H # include #endif #ifdef HAVE_SYS_TIME_H # include #endif #ifdef HAVE_FCNTL_H # include #endif #include #include #include "data.h" #include