--- ninvaders-0.1.1.orig/aliens.c +++ ninvaders-0.1.1/aliens.c @@ -21,18 +21,30 @@ * */ - + #include "aliens.h" #include "player.h" #include "nInvaders.h" +Aliens aliens; + +int lowest_ship[ALIENS_MAX_NUMBER_X]; +int alienshotx[ALIENS_MAX_MISSILES]; +int alienshoty[ALIENS_MAX_MISSILES]; +int alienshotnum; +int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X]; + +int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1]; + +int shipnum; + /** * initialize aliens attributes */ void aliensReset() { int i,j; - + // three different types of aliens [5], [10] int level[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X]={ {1,1,1,1,1,1,1,1,1,1}, @@ -43,7 +55,7 @@ }; aliensClear(aliens.posX, aliens.posY, aliens.right, aliens.bottom); // clear old position of aliens - + // reset alien position aliens.posX = 0; aliens.posY = 0; @@ -51,14 +63,14 @@ aliens.bottom = 0; aliens.left = 0; aliens.speed = 1; - - // copy level-array to enemy-array + + // copy level-array to enemy-array for (i=0;ialiens.left) {aliens.left=-k;} if (aliens.right==-1 || k>aliens.right) {aliens.right=k;} if (aliens.bottom==-1 || c>aliens.bottom) {aliens.bottom=c;} - } + } } } else { c++; @@ -185,7 +197,7 @@ aliens.bottom=aliens.bottom*2; // every 2nd row is an empty row aliens.left=aliens.left*3; // alien sprite is 3 chars wide aliens.right=aliens.right*3; // alien sprite is 3 chars wide - + // display remaining aliens with animation aliensRefresh(level, &alienBlock[0][0]); @@ -203,39 +215,39 @@ int shootThreshold; static int alienshot_counter = 0; - + // calculate threshold when next missile should be fired - // it is done here to save calculation time in for-instruction + // it is done here to save calculation time in for-instruction shootThreshold = (skill_level * 8) * (shipnum + 2); alienshot_counter = alienshot_counter + 10 ; - + // loop all possible missiles for (i = 0; i < ALIENS_MAX_MISSILES; i++) { - + // if the current missile is flying we should do movements if (alienshotx[i] != 0) { - + aliensMissileClear(alienshotx[i],alienshoty[i]); // clear old position - - // if missile hit the bunkers + + // if missile hit the bunkers if (bunkersHitCheck(alienshotx[i], alienshoty[i]) == 1) { alienshotx[i] = 0; // value of zero reloads missile } - + alienshoty[i]++; // move missile downwards - + // check if player was hit by an alien missile if (playerHitCheck(alienshotx[i], alienshoty[i]) == 1) { alienshotx[i] = 0; // value of zero reloads missile fPlayerWasHit = 1; } - - + + } else { // missile not launched yet - + // start new missile if counter says so if (alienshot_counter > shootThreshold && shipnum > 0) {// only shot if there's an alien left - alienshot_counter = 0; // reset counter + alienshot_counter = 0; // reset counter tmp = random() % ALIENS_MAX_NUMBER_X; // randomly select one of the ... while (lowest_ship[tmp] == -1) { // ...aliens at the bottom of ... tmp = random() % ALIENS_MAX_NUMBER_X; // ...a column to launch missile @@ -243,18 +255,18 @@ alienshoty[i]=aliens.posY+lowest_ship[tmp]; // set y position of missile alienshotx[i]=aliens.posX+tmp*3; // set x position of missile } - } // if - + } // if + // display missiles if still running or just launched; could have been modified in the above code if (alienshotx[i] != 0) { - // if missile is out of battlefield + // if missile is out of battlefield if (alienshoty[i] == SCREENHEIGHT - 1) { - alienshotx[i] = 0; // reload missile + alienshotx[i] = 0; // reload missile } else { aliensMissileDisplay(alienshotx[i], alienshoty[i]); // display Missile at new position } - } - + } + } // for @@ -270,7 +282,7 @@ { int alienType = 0; int shipx, shipy; - // if missile is within alien-rectangle + // if missile is within alien-rectangle if (shotx >= aliens.posX && shotx <= aliens.posX + ALIENS_MAX_NUMBER_X * 3 - 1 && shoty >= aliens.posY && shoty <= aliens.posY + (ALIENS_MAX_NUMBER_Y - 1) * 2) { // calculate the ship that was hit @@ -296,7 +308,7 @@ if (shotx >= BUNKERX && shotx < BUNKERX + BUNKERWIDTH && shoty >= BUNKERY && shoty < BUNKERY + BUNKERHEIGHT) { // calculate the element of the bunker that was hit - adjy = shoty - BUNKERY; + adjy = shoty - BUNKERY; adjx = shotx - BUNKERX; // if there is still an element if(bunker[adjy][adjx] == 1){ --- ninvaders-0.1.1.orig/aliens.h +++ ninvaders-0.1.1/aliens.h @@ -20,15 +20,15 @@ * mailto: ninvaders-devel@lists.sourceforge.net * */ - - + + #include "view.h" #ifndef ALIENS #define ALIENS typedef struct Aliens Aliens; - + struct Aliens { int posX; // horizontal position of aliens int posY; // vertical position of aliens @@ -37,34 +37,34 @@ int bottom; int speed; // 0: no movement; 1: one per turn; etc. }; - -Aliens aliens; - -int shipnum; + +extern Aliens aliens; + +extern int shipnum; #define ALIENS_MAX_NUMBER_X 10 -#define ALIENS_MAX_NUMBER_Y 5 -#define ALIENS_MAX_MISSILES 10 +#define ALIENS_MAX_NUMBER_Y 5 +#define ALIENS_MAX_MISSILES 10 // todo: move to structure -int lowest_ship[ALIENS_MAX_NUMBER_X]; -int alienshotx[ALIENS_MAX_MISSILES]; -int alienshoty[ALIENS_MAX_MISSILES]; -int alienshotnum; -int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X]; +extern int lowest_ship[ALIENS_MAX_NUMBER_X]; +extern int alienshotx[ALIENS_MAX_MISSILES]; +extern int alienshoty[ALIENS_MAX_MISSILES]; +extern int alienshotnum; +extern int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X]; -int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1]; +extern int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1]; void aliensReset(); -void bunkersReset(); +void bunkersReset(); int aliensMove(); int aliensMissileMove(); void render(); int aliensHitCheck(int shotx, int shoty); int bunkersHitCheck(int shotx, int shoty); - + // methods that handle graphic display, from view.c extern void aliensDisplay(int x, int y, int wid, int hgt); extern void aliensClear(int x, int y, int wid, int hgt); @@ -74,5 +74,5 @@ extern void bunkersClearElement(int x, int y); extern void bunkersClear(); extern void bunkersRefresh(); - + #endif --- ninvaders-0.1.1.orig/debian/changelog +++ ninvaders-0.1.1/debian/changelog @@ -0,0 +1,81 @@ +ninvaders (0.1.1-4) unstable; urgency=low + + * Fix build problems for gcc-10. Closes: #957609. + + -- Matt Palmer Thu, 23 Jul 2020 17:35:50 +1000 + +ninvaders (0.1.1-3) unstable; urgency=low + + * Fix overflow in lowest_ship array. Closes: #597036 + Thanks to Matt Chapman for the bug report and patch. + * Time for a packaging overhaul: + - Bump to dh compat level 7. + - Bump standards-version to 3.9.1; no specific changes required. + - Add the now-necessary misc:Depends. + - Strip DH_COMPAT from debian/rules; move it to debian/compat. + - Move menu entry to Games/Action, and quote all values. + - Use dh_prep instead of dh_clean -k. + - Don't ignore make clean errors in the clean target. + - Enhance the copyright file. + + -- Matthew Palmer Tue, 05 Oct 2010 13:21:26 +1100 + +ninvaders (0.1.1-2) unstable; urgency=low + + * Convert everything in the package to refer to the binary and related + materials (manpage) in the lowercase form (ninvaders). Closes: #300508. + + -- Matthew Palmer Thu, 29 Sep 2005 20:26:34 +1000 + +ninvaders (0.1.1-1) unstable; urgency=low + + * New upstream release. + * Standards version bumped to 3.6.0. + * Build-depends on debhelper 4. + + -- Matthew Palmer Sun, 13 Jul 2003 22:57:37 +1000 + +ninvaders (0.0.8-6) unstable; urgency=low + + * Converted great honking multi-line strings into something which GCC 3.3 + can (hopefully) handle. Whoever thought that new feature was an + improvement should be hanged. Closes: #195161. + * Changed strings.h to string.h, because strings.h is not what was wanted. + + -- Matthew Palmer Sun, 1 Jun 2003 17:48:04 +1000 + +ninvaders (0.0.8-5) unstable; urgency=low + + * Bumped standards-version to 3.5.7. + + -- Matthew Palmer Sun, 22 Sep 2002 16:57:47 +1000 + +ninvaders (0.0.8-4) unstable; urgency=low + + * Developed patch to make the bunkers disappear one line at a time. Due + to the code, it will not be easily possible to make the bunkers + disappear as the aliens reach them, so this will have to do. + (Closes: #154330) + + -- Matthew Palmer Sun, 22 Sep 2002 16:33:45 +1000 + +ninvaders (0.0.8-3) unstable; urgency=low + + * Patched to replace the whole text of the GPL (!) with a function to + print the GPL based on the text in /usr/share/common-licenses/GPL. + Thanks to Pete de Zwart for the patch. + + -- Matthew Palmer Tue, 30 Jul 2002 17:00:19 +1000 + +ninvaders (0.0.8-2) unstable; urgency=low + + * Changed description in line with bug #154330. + + -- Matthew Palmer Fri, 26 Jul 2002 18:53:58 +1000 + +ninvaders (0.0.8-1) unstable; urgency=low + + * Initial Release. (Closes: #153703) + + -- Matthew Palmer Sun, 21 Jul 2002 09:59:21 +1000 + --- ninvaders-0.1.1.orig/debian/compat +++ ninvaders-0.1.1/debian/compat @@ -0,0 +1 @@ +7 --- ninvaders-0.1.1.orig/debian/control +++ ninvaders-0.1.1/debian/control @@ -0,0 +1,13 @@ +Source: ninvaders +Section: games +Priority: optional +Maintainer: Matthew Palmer +Build-Depends: debhelper (>= 7), libncurses5-dev +Standards-Version: 3.9.1 + +Package: ninvaders +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: A space invaders-like game using ncurses + A Space Invaders type game with text-only graphics. Ever wanted to play + space invaders when you can't find a GUI? Now you can. --- ninvaders-0.1.1.orig/debian/copyright +++ ninvaders-0.1.1/debian/copyright @@ -0,0 +1,30 @@ +Upstream: http://ninvaders.sourceforge.net/ + +Upstream Authors: Thomas Dettbarn , with +contributions by others (see nInvaders -help for full details). + +Copyright: + +From nInvaders.c: + + * Copyright (C) 2002-2003 Dettus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * homepage: http://ninvaders.sourceforge.net + * mailto: ninvaders-devel@lists.sourceforge.net + +Released under the terms of the GPL. See /usr/share/common-licenses/GPL, or +nInvaders -gpl. --- ninvaders-0.1.1.orig/debian/dirs +++ ninvaders-0.1.1/debian/dirs @@ -0,0 +1 @@ +usr/games --- ninvaders-0.1.1.orig/debian/docs +++ ninvaders-0.1.1/debian/docs @@ -0,0 +1 @@ +README --- ninvaders-0.1.1.orig/debian/links +++ ninvaders-0.1.1/debian/links @@ -0,0 +1 @@ +usr/games/ninvaders usr/games/nInvaders --- ninvaders-0.1.1.orig/debian/menu +++ ninvaders-0.1.1/debian/menu @@ -0,0 +1,2 @@ +?package(ninvaders):needs="text" section="Games/Action"\ + title="nInvaders" command="/usr/games/nInvaders" --- ninvaders-0.1.1.orig/debian/ninvaders.1 +++ ninvaders-0.1.1/debian/ninvaders.1 @@ -0,0 +1,42 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH NINVADERS 6 "July 21, 2002" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +ninvaders \- ncurses version of space invaders +.SH SYNOPSIS +.B ninvaders +.SH DESCRIPTION +In short, this is a space invaders game written for the ncurses terminal +control library. It uses ASCII art to draw everything, and you can play it +just about anywhere. Space Invaders over dialup! +.PP +To play the game, simply run the program. You will be placed in the game +arena with a large block of aliens. To move your gun pod (at the bottom of +the screen) use the left and right arrow keys. To shoot, press space. You +can move faster if you hold the arrow keys down. +.PP +The object of the game is to shoot all the aliens (the multi-coloured moving +things) before they reach the ground. Since these aliens aren't friendly +(which is why you're trying to stop them) they will shoot back. Dodge the +descending bullets or hang about under the large stationary blocks for +cover. +.SH AUTHOR +This manual page was written by Matthew Palmer , +for the Debian GNU/Linux system (but may be used by others). +.PP +The ninvaders program was written by Thomas Dettbarn + and is released under the GPL. --- ninvaders-0.1.1.orig/debian/rules +++ ninvaders-0.1.1/debian/rules @@ -0,0 +1,71 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + touch configure-stamp + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + $(MAKE) + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + # Add here commands to install the package into debian/ninvaders. + cp nInvaders $(CURDIR)/debian/ninvaders/usr/games/ninvaders + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do here. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdirs + dh_installdocs + dh_installmenu + dh_installman debian/ninvaders.1 + dh_link + dh_installchangelogs + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure --- ninvaders-0.1.1.orig/globals.c +++ ninvaders-0.1.1/globals.c @@ -24,6 +24,8 @@ #include #include +#include + #include "globals.h" @@ -116,415 +118,40 @@ */ void showGpl() { - fprintf(stderr, "\n"); - fprintf(stderr, " GNU GENERAL PUBLIC LICENSE\n"); - fprintf(stderr, " Version 2, June 1991\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n"); - fprintf(stderr, " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"); - fprintf(stderr, " Everyone is permitted to copy and distribute verbatim copies\n"); - fprintf(stderr, " of this license document, but changing it is not allowed.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Preamble\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " The licenses for most software are designed to take away your\n"); - fprintf(stderr, "freedom to share and change it. By contrast, the GNU General Public\n"); - fprintf(stderr, "License is intended to guarantee your freedom to share and change free \n"); - fprintf(stderr, "software--to make sure the software is free for all its users. This\n"); - fprintf(stderr, "General Public License applies to most of the Free Software\n"); - fprintf(stderr, "Foundation's software and to any other program whose authors commit to\n"); - fprintf(stderr, "using it. (Some other Free Software Foundation software is covered by\n"); - fprintf(stderr, "the GNU Library General Public License instead.) You can apply it to\n"); - fprintf(stderr, "your programs, too.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " When we speak of free software, we are referring to freedom, not\n"); - fprintf(stderr, "price. Our General Public Licenses are designed to make sure that you\n"); - fprintf(stderr, "have the freedom to distribute copies of free software (and charge for\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "this service if you wish), that you receive source code or can get it\n"); - fprintf(stderr, "if you want it, that you can change the software or use pieces of it\n"); - fprintf(stderr, "in new free programs; and that you know you can do these things.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " To protect your rights, we need to make restrictions that forbid\n"); - fprintf(stderr, "anyone to deny you these rights or to ask you to surrender the rights.\n"); - fprintf(stderr, "These restrictions translate to certain responsibilities for you if you\n"); - fprintf(stderr, "distribute copies of the software, or if you modify it.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " For example, if you distribute copies of such a program, whether\n"); - fprintf(stderr, "gratis or for a fee, you must give the recipients all the rights that\n"); - fprintf(stderr, "you have. You must make sure that they, too, receive or can get the\n"); - fprintf(stderr, "source code. And you must show them these terms so they know their\n"); - fprintf(stderr, "rights.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " We protect your rights with two steps: (1) copyright the software, and\n"); - fprintf(stderr, "(2) offer you this license which gives you legal permission to copy,\n"); - fprintf(stderr, "distribute and/or modify the software.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Also, for each author's protection and ours, we want to make certain\n"); - fprintf(stderr, "that everyone understands that there is no warranty for this free\n"); - fprintf(stderr, "software. If the software is modified by someone else and passed on, we\n"); - fprintf(stderr, "want its recipients to know that what they have is not the original, so\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "that any problems introduced by others will not reflect on the original\n"); - fprintf(stderr, "authors' reputations.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Finally, any free program is threatened constantly by software\n"); - fprintf(stderr, "patents. We wish to avoid the danger that redistributors of a free\n"); - fprintf(stderr, "program will individually obtain patent licenses, in effect making the\n"); - fprintf(stderr, "program proprietary. To prevent this, we have made it clear that any\n"); - fprintf(stderr, "patent must be licensed for everyone's free use or not licensed at all.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " The precise terms and conditions for copying, distribution and\n"); - fprintf(stderr, "modification follow.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " GNU GENERAL PUBLIC LICENSE\n"); - fprintf(stderr, " TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 0. This License applies to any program or other work which contains\n"); - fprintf(stderr, "a notice placed by the copyright holder saying it may be distributed\n"); - fprintf(stderr, "under the terms of this General Public License. The 'Program', below,\n"); - fprintf(stderr, "refers to any such program or work, and a 'work based on the Program'\n"); - fprintf(stderr, "means either the Program or any derivative work under copyright law:\n"); - fprintf(stderr, "that is to say, a work containing the Program or a portion of it,\n"); - fprintf(stderr, "either verbatim or with modifications and/or translated into another\n"); - fprintf(stderr, "language. (Hereinafter, translation is included without limitation in\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "the term 'modification'.) Each licensee is addressed as 'you'.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Activities other than copying, distribution and modification are not\n"); - fprintf(stderr, "covered by this License; they are outside its scope. The act of\n"); - fprintf(stderr, "running the Program is not restricted, and the output from the Program\n"); - fprintf(stderr, "is covered only if its contents constitute a work based on the\n"); - fprintf(stderr, "Program (independent of having been made by running the Program).\n"); - fprintf(stderr, "Whether that is true depends on what the Program does.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 1. You may copy and distribute verbatim copies of the Program's\n"); - fprintf(stderr, "source code as you receive it, in any medium, provided that you\n"); - fprintf(stderr, "conspicuously and appropriately publish on each copy an appropriate\n"); - fprintf(stderr, "copyright notice and disclaimer of warranty; keep intact all the\n"); - fprintf(stderr, "notices that refer to this License and to the absence of any warranty;\n"); - fprintf(stderr, "and give any other recipients of the Program a copy of this License\n"); - fprintf(stderr, "along with the Program.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "You may charge a fee for the physical act of transferring a copy, and\n"); - fprintf(stderr, "you may at your option offer warranty protection in exchange for a fee.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 2. You may modify your copy or copies of the Program or any portion\n"); - fprintf(stderr, "of it, thus forming a work based on the Program, and copy and\n"); - fprintf(stderr, "distribute such modifications or work under the terms of Section 1\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "above, provided that you also meet all of these conditions:\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " a) You must cause the modified files to carry prominent notices\n"); - fprintf(stderr, " stating that you changed the files and the date of any change.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " b) You must cause any work that you distribute or publish, that in\n"); - fprintf(stderr, " whole or in part contains or is derived from the Program or any\n"); - fprintf(stderr, " part thereof, to be licensed as a whole at no charge to all third\n"); - fprintf(stderr, " parties under the terms of this License.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " c) If the modified program normally reads commands interactively\n"); - fprintf(stderr, " when run, you must cause it, when started running for such\n"); - fprintf(stderr, " interactive use in the most ordinary way, to print or display an\n"); - fprintf(stderr, " announcement including an appropriate copyright notice and a\n"); - fprintf(stderr, " notice that there is no warranty (or else, saying that you provide\n"); - fprintf(stderr, " a warranty) and that users may redistribute the program under\n"); - fprintf(stderr, " these conditions, and telling the user how to view a copy of this\n"); - fprintf(stderr, " License. (Exception: if the Program itself is interactive but\n"); - fprintf(stderr, " does not normally print such an announcement, your work based on\n"); - fprintf(stderr, " the Program is not required to print an announcement.)\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "These requirements apply to the modified work as a whole. If\n"); - fprintf(stderr, "identifiable sections of that work are not derived from the Program,\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "and can be reasonably considered independent and separate works in\n"); - fprintf(stderr, "themselves, then this License, and its terms, do not apply to those\n"); - fprintf(stderr, "sections when you distribute them as separate works. But when you\n"); - fprintf(stderr, "distribute the same sections as part of a whole which is a work based\n"); - fprintf(stderr, "on the Program, the distribution of the whole must be on the terms of\n"); - fprintf(stderr, "this License, whose permissions for other licensees extend to the\n"); - fprintf(stderr, "entire whole, and thus to each and every part regardless of who wrote it.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Thus, it is not the intent of this section to claim rights or contest\n"); - fprintf(stderr, "your rights to work written entirely by you; rather, the intent is to\n"); - fprintf(stderr, "exercise the right to control the distribution of derivative or\n"); - fprintf(stderr, "collective works based on the Program.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "In addition, mere aggregation of another work not based on the Program\n"); - fprintf(stderr, "with the Program (or with a work based on the Program) on a volume of\n"); - fprintf(stderr, "a storage or distribution medium does not bring the other work under\n"); - fprintf(stderr, "the scope of this License.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 3. You may copy and distribute the Program (or a work based on it,\n"); - fprintf(stderr, "under Section 2) in object code or executable form under the terms of\n"); - fprintf(stderr, "Sections 1 and 2 above provided that you also do one of the following:\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " a) Accompany it with the complete corresponding machine-readable\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, " source code, which must be distributed under the terms of Sections\n"); - fprintf(stderr, " 1 and 2 above on a medium customarily used for software interchange; or,\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " b) Accompany it with a written offer, valid for at least three\n"); - fprintf(stderr, " years, to give any third party, for a charge no more than your\n"); - fprintf(stderr, " cost of physically performing source distribution, a complete\n"); - fprintf(stderr, " machine-readable copy of the corresponding source code, to be\n"); - fprintf(stderr, " distributed under the terms of Sections 1 and 2 above on a medium\n"); - fprintf(stderr, " customarily used for software interchange; or,\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " c) Accompany it with the information you received as to the offer\n"); - fprintf(stderr, " to distribute corresponding source code. (This alternative is\n"); - fprintf(stderr, " allowed only for noncommercial distribution and only if you\n"); - fprintf(stderr, " received the program in object code or executable form with such\n"); - fprintf(stderr, " an offer, in accord with Subsection b above.)\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "The source code for a work means the preferred form of the work for\n"); - fprintf(stderr, "making modifications to it. For an executable work, complete source\n"); - fprintf(stderr, "code means all the source code for all modules it contains, plus any\n"); - fprintf(stderr, "associated interface definition files, plus the scripts used to\n"); - fprintf(stderr, "control compilation and installation of the executable. However, as a\n"); - fprintf(stderr, "special exception, the source code distributed need not include\n"); - fprintf(stderr, "anything that is normally distributed (in either source or binary\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "form) with the major components (compiler, kernel, and so on) of the\n"); - fprintf(stderr, "operating system on which the executable runs, unless that component\n"); - fprintf(stderr, "itself accompanies the executable.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "If distribution of executable or object code is made by offering\n"); - fprintf(stderr, "access to copy from a designated place, then offering equivalent\n"); - fprintf(stderr, "access to copy the source code from the same place counts as\n"); - fprintf(stderr, "distribution of the source code, even though third parties are not\n"); - fprintf(stderr, "compelled to copy the source along with the object code.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 4. You may not copy, modify, sublicense, or distribute the Program\n"); - fprintf(stderr, "except as expressly provided under this License. Any attempt\n"); - fprintf(stderr, "otherwise to copy, modify, sublicense or distribute the Program is\n"); - fprintf(stderr, "void, and will automatically terminate your rights under this License.\n"); - fprintf(stderr, "However, parties who have received copies, or rights, from you under\n"); - fprintf(stderr, "this License will not have their licenses terminated so long as such\n"); - fprintf(stderr, "parties remain in full compliance.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 5. You are not required to accept this License, since you have not\n"); - fprintf(stderr, "signed it. However, nothing else grants you permission to modify or\n"); - fprintf(stderr, "distribute the Program or its derivative works. These actions are\n"); - fprintf(stderr, "prohibited by law if you do not accept this License. Therefore, by\n"); - fprintf(stderr, "modifying or distributing the Program (or any work based on the\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "Program), you indicate your acceptance of this License to do so, and\n"); - fprintf(stderr, "all its terms and conditions for copying, distributing or modifying\n"); - fprintf(stderr, "the Program or works based on it.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 6. Each time you redistribute the Program (or any work based on the\n"); - fprintf(stderr, "Program), the recipient automatically receives a license from the\n"); - fprintf(stderr, "original licensor to copy, distribute or modify the Program subject to\n"); - fprintf(stderr, "these terms and conditions. You may not impose any further\n"); - fprintf(stderr, "restrictions on the recipients' exercise of the rights granted herein.\n"); - fprintf(stderr, "You are not responsible for enforcing compliance by third parties to\n"); - fprintf(stderr, "this License.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 7. If, as a consequence of a court judgment or allegation of patent\n"); - fprintf(stderr, "infringement or for any other reason (not limited to patent issues),\n"); - fprintf(stderr, "conditions are imposed on you (whether by court order, agreement or\n"); - fprintf(stderr, "otherwise) that contradict the conditions of this License, they do not\n"); - fprintf(stderr, "excuse you from the conditions of this License. If you cannot\n"); - fprintf(stderr, "distribute so as to satisfy simultaneously your obligations under this\n"); - fprintf(stderr, "License and any other pertinent obligations, then as a consequence you\n"); - fprintf(stderr, "may not distribute the Program at all. For example, if a patent\n"); - fprintf(stderr, "license would not permit royalty-free redistribution of the Program by\n"); - fprintf(stderr, "all those who receive copies directly or indirectly through you, then\n"); - fprintf(stderr, "the only way you could satisfy both it and this License would be to\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "refrain entirely from distribution of the Program.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "If any portion of this section is held invalid or unenforceable under\n"); - fprintf(stderr, "any particular circumstance, the balance of the section is intended to\n"); - fprintf(stderr, "apply and the section as a whole is intended to apply in other\n"); - fprintf(stderr, "circumstances.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "It is not the purpose of this section to induce you to infringe any\n"); - fprintf(stderr, "patents or other property right claims or to contest validity of any\n"); - fprintf(stderr, "such claims; this section has the sole purpose of protecting the\n"); - fprintf(stderr, "integrity of the free software distribution system, which is\n"); - fprintf(stderr, "implemented by public license practices. Many people have made\n"); - fprintf(stderr, "generous contributions to the wide range of software distributed\n"); - fprintf(stderr, "through that system in reliance on consistent application of that\n"); - fprintf(stderr, "system; it is up to the author/donor to decide if he or she is willing\n"); - fprintf(stderr, "to distribute software through any other system and a licensee cannot\n"); - fprintf(stderr, "impose that choice.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "This section is intended to make thoroughly clear what is believed to\n"); - fprintf(stderr, "be a consequence of the rest of this License.\n"); - fprintf(stderr, " 8. If the distribution and/or use of the Program is restricted in\n"); - fprintf(stderr, "certain countries either by patents or by copyrighted interfaces, the\n"); - fprintf(stderr, "original copyright holder who places the Program under this License\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "may add an explicit geographical distribution limitation excluding\n"); - fprintf(stderr, "those countries, so that distribution is permitted only in or among\n"); - fprintf(stderr, "countries not thus excluded. In such case, this License incorporates\n"); - fprintf(stderr, "the limitation as if written in the body of this License.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 9. The Free Software Foundation may publish revised and/or new versions\n"); - fprintf(stderr, "of the General Public License from time to time. Such new versions will\n"); - fprintf(stderr, "be similar in spirit to the present version, but may differ in detail to\n"); - fprintf(stderr, "address new problems or concerns.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Each version is given a distinguishing version number. If the Program\n"); - fprintf(stderr, "specifies a version number of this License which applies to it and 'any\n"); - fprintf(stderr, "later version', you have the option of following the terms and conditions\n"); - fprintf(stderr, "either of that version or of any later version published by the Free\n"); - fprintf(stderr, "Software Foundation. If the Program does not specify a version number of\n"); - fprintf(stderr, "this License, you may choose any version ever published by the Free Software\n"); - fprintf(stderr, "Foundation.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 10. If you wish to incorporate parts of the Program into other free\n"); - fprintf(stderr, "programs whose distribution conditions are different, write to the author\n"); - fprintf(stderr, "to ask for permission. For software which is copyrighted by the Free\n"); - fprintf(stderr, "Software Foundation, write to the Free Software Foundation; we sometimes\n"); - fprintf(stderr, "make exceptions for this. Our decision will be guided by the two goals\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "of preserving the free status of all derivatives of our free software and\n"); - fprintf(stderr, "of promoting the sharing and reuse of software generally.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " NO WARRANTY\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n"); - fprintf(stderr, "FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n"); - fprintf(stderr, "OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n"); - fprintf(stderr, "PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n"); - fprintf(stderr, "OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n"); - fprintf(stderr, "MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n"); - fprintf(stderr, "TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n"); - fprintf(stderr, "PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n"); - fprintf(stderr, "REPAIR OR CORRECTION.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n"); - fprintf(stderr, "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n"); - fprintf(stderr, "REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n"); - fprintf(stderr, "INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n"); - fprintf(stderr, "OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n"); - fprintf(stderr, "TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n"); - fprintf(stderr, "YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n"); - fprintf(stderr, "PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "POSSIBILITY OF SUCH DAMAGES.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " END OF TERMS AND CONDITIONS\n"); - fprintf(stderr, " How to Apply These Terms to Your New Programs\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " If you develop a new program, and you want it to be of the greatest\n"); - fprintf(stderr, "possible use to the public, the best way to achieve this is to make it\n"); - fprintf(stderr, "free software which everyone can redistribute and change under these terms.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " To do so, attach the following notices to the program. It is safest\n"); - fprintf(stderr, "to attach them to the start of each source file to most effectively\n"); - fprintf(stderr, "convey the exclusion of warranty; and each file should have at least\n"); - fprintf(stderr, "the 'copyright' line and a pointer to where the full notice is found.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " \n"); - fprintf(stderr, " Copyright (C) \n"); - fprintf(stderr, "\n"); - fprintf(stderr, " This program is free software; you can redistribute it and/or modify\n"); - fprintf(stderr, " it under the terms of the GNU General Public License as published by\n"); - fprintf(stderr, " the Free Software Foundation; either version 2 of the License, or\n"); - fprintf(stderr, " (at your option) any later version.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " This program is distributed in the hope that it will be useful,\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, " but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); - fprintf(stderr, " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); - fprintf(stderr, " GNU General Public License for more details.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " You should have received a copy of the GNU General Public License\n"); - fprintf(stderr, " along with this program; if not, write to the Free Software\n"); - fprintf(stderr, " Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Also add information on how to contact you by electronic and paper mail.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "If the program is interactive, make it output a short notice like this\n"); - fprintf(stderr, "when it starts in an interactive mode:\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Gnomovision version 69, Copyright (C) year name of author\n"); - fprintf(stderr, " Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n"); - fprintf(stderr, " This is free software, and you are welcome to redistribute it\n"); - fprintf(stderr, " under certain conditions; type `show c' for details.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "The hypothetical commands `show w' and `show c' should show the appropriate\n"); - fprintf(stderr, "parts of the General Public License. Of course, the commands you use may\n"); - fprintf(stderr, "be called something other than `show w' and `show c'; they could even be\n"); - fprintf(stderr, "mouse-clicks or menu items--whatever suits your program.\n"); - fprintf(stderr, "\n"); - - waitForReturn(); - - fprintf(stderr, "\n"); - fprintf(stderr, "You should also get your employer (if you work as a programmer) or your\n"); - fprintf(stderr, "school, if any, to sign a 'copyright disclaimer' for the program, if\n"); - fprintf(stderr, "necessary. Here is a sample; alter the names:\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n"); - fprintf(stderr, " `Gnomovision' (which makes passes at compilers) written by James Hacker.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " , 1 April 1989\n"); - fprintf(stderr, " Ty Coon, President of Vice\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "This General Public License does not permit incorporating your program into\n"); - fprintf(stderr, "proprietary programs. If your program is a subroutine library, you may\n"); - fprintf(stderr, "consider it more useful to permit linking proprietary applications with the\n"); - fprintf(stderr, "library. If this is what you want to do, use the GNU Library General\n"); - fprintf(stderr, "Public License instead of this License.\n"); - fprintf(stderr, "\n"); - + /* Fix fuxored GPL display */ + + FILE *GPL; + + char gpl_file[] = "/usr/share/common-licenses/GPL"; + char *buff = NULL; + char *check = NULL; + + int lines = 23; + int buff_size = 4096; + int count = 0; + + if (!(GPL = fopen(gpl_file, "r"))) { + perror("gpl():\t"); + return; + } + + if (!(buff = calloc(buff_size, sizeof(char)))) { + perror("gpl():\t"); + fclose(GPL); + return; + } + + do { + while (count < lines && (check = fgets(buff, buff_size, GPL))) { + fputs(buff, stderr); + count++; + } + + /* Pause */ waitForReturn(); + count = 0; + } while (check); + fclose(GPL); + free(buff); } --- ninvaders-0.1.1.orig/ind.html +++ ninvaders-0.1.1/ind.html @@ -0,0 +1,111 @@ + + + + + + + + Welcome to Your New Home Page! + + + +
+ +

Welcome to Your New Home in Cyberspace!

+ +
+
+ + + +

This is a placeholder page installed by the Debian +release of the Apache Web server package, +because no home page was installed on this host. You may want to replace +this as soon as possible with your own web pages, of course.... + +

+This computer has installed the Debian GNU/Linux operating system but has +nothing to do with the Debian GNU/Linux project. If you want to +report something about this host's behavior or domain, please contact the +ISPs involved directly, not the Debian Project. +

See the Network Abuse Clearinghouse +for how to do this. +

+ +

Unless you changed its configuration, your new server is configured as follows: +

    +
  • +Configuration files can be found in /etc/apache.
  • + +
  • +The DocumentRoot, which is the directory under which all your +HTML files should exist, is set to /var/www.
  • + +
  • +CGI scripts are looked for in /usr/lib/cgi-bin, which is where +Debian packages will place their scripts.
  • + +
  • +Log files are placed in /var/log/apache, and will be rotated +daily. The frequency of rotation can be easily changed by editing +/etc/apache/cron.conf.
  • + +
  • +The default directory index is index.html, meaning that requests +for a directory /foo/bar/ will give the contents of the file /var/www/foo/bar/index.html +if it exists (assuming that /var/www is your DocumentRoot).
  • + +
  • +User directories are enabled, and user documents will be looked for in +the public_html directory of the users' homes. These dirs +should be under /home, and users will not be able to symlink to files +they don't own.
  • + +
+All standard Apache modules are available with this release and can be +chosen with the apacheconfig script. Installing a new module on +your system is just a matter of compiling it (with the apache-dev package) +and adding a line to your httpd.conf configuration file. + +

More documentation on Apache can be found on: +

+ +

You can also consult the list of World +Wide Web Frequently Asked Questions for information. + +

If you find a bug in this Apache package, or in Apache itself, +please file a bug report on it. Instructions on doing this, and the +list of known bugs of this +package, can be found in the Debian Bug Tracking System. + +

Thanks for using this package, and congratulations for your choice of +a Debian system! + +
+

+Debian +Apache

+ +
+ +

+


+Johnie Ingram, +Treasure Island, California    13 October 2001. + + + --- ninvaders-0.1.1.orig/nInvaders.c +++ ninvaders-0.1.1/nInvaders.c @@ -32,9 +32,13 @@ #define FPS 50 +// todo: let's try to not having to declare these "public" int lives; long score; int status; // status handled in timer +int weite; +int level; +int skill_level; #define GAME_LOOP 1 #define GAME_NEXTLEVEL 2 @@ -61,11 +65,11 @@ /** - * evaluate command line parameters + * evaluate command line parameters */ static void evaluateCommandLine(int argc, char **argv) { - + // -l : set skill level if (argc == 3 && strcmp(argv[1], "-l") == 0) { if (argv[2][0] >= '0' && argv[2][0] <= '9') { @@ -93,12 +97,12 @@ { endwin(); showGplShort(); - + fprintf(stderr,"\n"); fprintf(stderr,"\n"); fprintf(stderr,"=========================================================================\n"); fprintf(stderr,"\n"); - + fprintf(stderr,"Final score: %7.7ld, Final level: %2.2d\nFinal rating... ",score,level); if (lives>0) fprintf(stderr,"Quitter\n\n"); @@ -116,7 +120,7 @@ fprintf(stderr,"Earth Defender\n\n"); else if(score>19999) fprintf(stderr,"Supreme Protector\n\n"); - + showVersion(); exit(0); } @@ -146,7 +150,7 @@ status = GAME_LOOP; } break; - + case GAME_HIGHSCORE: if (ch == ' ') { @@ -173,7 +177,7 @@ } playerMoveRight(); // move player lastmove = 'l'; // remember last move for turbo mode - } else if (ch == 'h' || ch == KEY_LEFT) { // move player left + } else if (ch == 'h' || ch == KEY_LEFT) { // move player left if (lastmove == 'h') { playerTurboOn(); // enable Turbo } else { @@ -198,60 +202,60 @@ } } // switch - + } - - + + /** * timer - * this method is executed every 1 / FPS seconds + * this method is executed every 1 / FPS seconds */ void handleTimer() { - static int aliens_move_counter = 0; + static int aliens_move_counter = 0; static int aliens_shot_counter = 0; static int player_shot_counter = 0; static int ufo_move_counter = 0; static int title_animation_counter = 0; static int game_over_counter = 0; - + switch (status) { - + case GAME_NEXTLEVEL: // go to next level - + level++; // increase level initLevel(); // initialize level - - aliens_move_counter = 0; + + aliens_move_counter = 0; aliens_shot_counter = 0; player_shot_counter = 0; ufo_move_counter = 0; - + weite = (shipnum+(skill_level*10)-(level*5)+5)/10; - + if (weite < 0) { weite = 0; } - + // change status and start game! status = GAME_LOOP; case GAME_LOOP: // do game handling - - // move aliens + + // move aliens if (aliens_move_counter == 0 && aliensMove() == 1) { // aliens reached player lives = 0; status = GAME_OVER; } - - // move player missile + + // move player missile if (player_shot_counter == 0 && playerMoveMissile() == 1) { // no aliens left status = GAME_NEXTLEVEL; } - + // move aliens' missiles if (aliens_shot_counter == 0 && aliensMissileMove() == 1) { // player was hit @@ -262,24 +266,24 @@ status = GAME_OVER; // ... exit game } } - + // move ufo if (ufo_move_counter == 0 && ufoShowUfo() == 1) { ufoMoveLeft(); // move it one position to the left } - - + + if (aliens_shot_counter++ >= 5) {aliens_shot_counter=0;} // speed of alien shot if (player_shot_counter++ >= 1) {player_shot_counter=0;} // speed of player shot if (aliens_move_counter++ >= weite) {aliens_move_counter=0;} // speed of aliend if (ufo_move_counter++ >= 3) {ufo_move_counter=0;} // speed of ufo - + refreshScreen(); break; - + case GAME_PAUSED: // game is paused break; - + case GAME_OVER: // game over if (game_over_counter == 100) { battleFieldClear(); @@ -290,11 +294,11 @@ game_over_counter++; } break; - + case GAME_EXIT: // exit game finish(0); break; - + case GAME_HIGHSCORE: // display highscore if (title_animation_counter == 0) { titleScreenDisplay(); @@ -302,7 +306,7 @@ if (title_animation_counter++ >= 6) {title_animation_counter = 0;} // speed of animation break; - + } } @@ -319,7 +323,7 @@ myTimer.it_interval.tv_sec = 0; myTimer.it_interval.tv_usec = 1000000 / FPS; setitimer(ITIMER_REAL, &myTimer, NULL); - + myAction.sa_handler = &handleTimer; myAction.sa_flags = SA_RESTART; sigaction(SIGALRM, &myAction, NULL); @@ -336,9 +340,9 @@ evaluateCommandLine(argc, argv); // evaluate command line parameters graphicEngineInit(); // initialize graphic engine - + // set up timer/ game handling - setUpTimer(); + setUpTimer(); status = GAME_HIGHSCORE; // read keyboard input @@ -346,7 +350,7 @@ // do movements and key-checking readInput(); } while (0 == 0); - + return 0; } @@ -354,14 +358,14 @@ void doScoring(int alienType) { int points[4] = {500, 200, 150, 100}; // 0: ufo, 1:red, 2:green, 3:blue - + score += points[alienType]; // every alien type does different scoring points - + // every 6000 pts player gets a new live if (score % 6000 == 0){ lives++; } - + drawscore(); // display score } --- ninvaders-0.1.1.orig/nInvaders.h +++ ninvaders-0.1.1/nInvaders.h @@ -20,7 +20,7 @@ * mailto: ninvaders-devel@lists.sourceforge.net * */ - + #include #include @@ -34,22 +34,21 @@ #define UFO_ALIEN_TYPE 0 #define RED_ALIEN_TYPE 1 #define GREEN_ALIEN_TYPE 2 -#define BLUE_ALIEN_TYPE 3 +#define BLUE_ALIEN_TYPE 3 + +extern int weite; +extern int level; +extern int skill_level; int main(int argv, char **argc); // hey! it has to start somewhere! extern void render(void); - + void game_over(int a); void drawscore(); - + void doScoring(int alienType); -// todo: let's try to not having to declare these "public" -int weite; -int level; -int skill_level; - // included from globals.h extern void doSleep(); extern void showUsage(); --- ninvaders-0.1.1.orig/ufo.c +++ ninvaders-0.1.1/ufo.c @@ -20,7 +20,7 @@ * mailto: ninvaders-devel@lists.sourceforge.net * */ - + #include "ufo.h" #include "aliens.h" @@ -28,6 +28,8 @@ static int fShowUfo = 0; +Ufo ufo; + /** * initialize ufo attributes */ @@ -57,7 +59,7 @@ */ void ufoMoveLeft() { - // check if space between ufo and screen border is big enough + // check if space between ufo and screen border is big enough if (ufo.posX > 1) { // desired movement is possible ufoMove(ufo.posX - 1); @@ -87,7 +89,7 @@ int ufoHitCheck(int shotX, int shotY) { int fUfoWasHit = 0; - + // if shot reached vertikal position of ufo if (shotY == UFOPOSY) { // if shot hits ufo @@ -96,6 +98,6 @@ fUfoWasHit = 1; } } - + return fUfoWasHit; } --- ninvaders-0.1.1.orig/ufo.h +++ ninvaders-0.1.1/ufo.h @@ -20,7 +20,7 @@ * mailto: ninvaders-devel@lists.sourceforge.net * */ - + #include "view.h" @@ -28,19 +28,19 @@ #define UFO typedef struct Ufo Ufo; - + struct Ufo { int posX; // horizontal position of aliens int posY; // vertical position of aliens }; - -Ufo ufo; + +extern Ufo ufo; void ufoReset(); int ufoShowUfo(); void ufoMoveLeft(); int ufoHitCheck(int shotX, int shotY); - + // methods that handle graphic display, from view.c extern void ufoDisplay(int x, int y); extern void ufoRefresh();