Add Item struct and addItem to events.c and gameLoop.c

main
Jerry Aldrich 11 years ago
parent 676bf86e38
commit d0ed16db04
  1. 2
      collisionDetection.c
  2. 8
      drawWindows.c
  3. 16
      events.c
  4. 2
      events.h
  5. 9
      gameLoop.c
  6. 2
      getPos.c
  7. 1
      initializeWorld.c
  8. 1
      weaponsSystem.c
  9. 6
      world.h
  10. 4
      zombies.c

@ -1,7 +1,7 @@
#include <world.h> #include <world.h>
struct Entity * collisionDetect(int objYpos, int objXpos){ struct Entity * collisionDetect(int objYpos, int objXpos){
int i; int i;
for(i=1; i<MAX_ALIVE; i++){ for(i=1; i<MAX_ENTITIES; i++){
if(allEntities[i].isAlive){ if(allEntities[i].isAlive){
if(objYpos==allEntities[i].curYpos && objXpos==allEntities[i].curXpos){ if(objYpos==allEntities[i].curYpos && objXpos==allEntities[i].curXpos){
return &allEntities[i]; return &allEntities[i];

@ -27,7 +27,13 @@ void drawGameOverWin(){
void drawViewport(){ void drawViewport(){
box(viewportWin,0,0); box(viewportWin,0,0);
int i; int i;
for(i=0; i<MAX_ALIVE; i++){ for(i=0; i<MAX_ITEMS; i++){
if(allItems[i].isAlive){
mvwprintw(viewportWin, 10,10, "%i",i);
mvwaddch(viewportWin, allItems[i].curYpos, allItems[i].curXpos, allItems[i].symbol);
}
}
for(i=0; i<MAX_ENTITIES; i++){
if(allEntities[i].isAlive){ if(allEntities[i].isAlive){
mvwaddch(viewportWin, allEntities[i].curYpos, allEntities[i].curXpos, ' '); mvwaddch(viewportWin, allEntities[i].curYpos, allEntities[i].curXpos, ' ');
mvwaddch(viewportWin, allEntities[i].nextYpos, allEntities[i].nextXpos, allEntities[i].symbol); mvwaddch(viewportWin, allEntities[i].nextYpos, allEntities[i].nextXpos, allEntities[i].symbol);

@ -1,5 +1,15 @@
#include <events.h> #include <events.h>
#include <structs.h>
void addItem(){ #include <world.h>
void addItem(char *name, int yPos, int xPos){
if(!strcmp(name,"Pistol Magazine")){
struct Item pistolMag = {.name="Pistol Magazine", .symbol='=', .isAlive=1, .curXpos=xPos, .curYpos=yPos};
int i;
for (i=0;i<MAX_ITEMS;i++){
if(!allItems[i].isAlive){
allItems[i]=pistolMag;
break;
}
}
}
} }

@ -1,6 +1,6 @@
#ifndef _EVENTS #ifndef _EVENTS
#define _EVENTS #define _EVENTS
void addItem(); void addItem(char *name, int yPos, int xPos);
#endif #endif

@ -2,7 +2,7 @@
#include <screen.h> #include <screen.h>
#include <collisionDetection.h> #include <collisionDetection.h>
#include <events.h> #include <events.h>
#include <getPos.h>
void gameLoop(){ void gameLoop(){
int lastPressed; int lastPressed;
while(1) { while(1) {
@ -10,9 +10,7 @@ void gameLoop(){
drawViewport(); drawViewport();
moveProjectiles(); moveProjectiles();
moveZombies(); moveZombies();
addItem();
doupdate(); doupdate();
int ch; int ch;
ch = getch(); ch = getch();
switch(ch){ switch(ch){
@ -61,6 +59,11 @@ void gameLoop(){
addZombie(); addZombie();
break; break;
} }
case '=':{
getOpenPos();
addItem("Pistol Magazine",openPos.y,openPos.x);
break;
}
case KEY_UP:{ case KEY_UP:{
if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){
fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "up"); fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "up");

@ -9,7 +9,7 @@ int getOpenPos(){
openPos.x=(rand()%(viewportWinCols-2)+1); openPos.x=(rand()%(viewportWinCols-2)+1);
if(mvwinch(viewportWin,openPos.y,openPos.x)==' '){ if(mvwinch(viewportWin,openPos.y,openPos.x)==' '){
int i; int i;
for(i=1;i<MAX_ALIVE;i++){ for(i=1;i<MAX_ENTITIES;i++){
if(allEntities[i].isAlive && allEntities[i].curYpos==openPos.y && allEntities[i].curXpos==openPos.x){ if(allEntities[i].isAlive && allEntities[i].curYpos==openPos.y && allEntities[i].curXpos==openPos.x){
chooseAnother=1; chooseAnother=1;
} }

@ -7,7 +7,6 @@
void initializeWorld() { void initializeWorld() {
struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1}; struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1};
struct Weapon pistol = {.name="Pistol", .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"}; struct Weapon pistol = {.name="Pistol", .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"};
struct Item pistolMag = {.name="Pistol Magazine", .symbol='=', .isAlive=0 };
srand(time(NULL)); srand(time(NULL));
initscr(); initscr();

@ -1,4 +1,3 @@
#include <weaponsSystem.h>
#include <screen.h> #include <screen.h>
#include <world.h> #include <world.h>
#include <collisionDetection.h> #include <collisionDetection.h>

@ -1,12 +1,14 @@
#ifndef _INITIALIZE_WORLD #ifndef _INITIALIZE_WORLD
#define _INITIALIZE_WORLD #define _INITIALIZE_WORLD
#define MAX_ALIVE 10000 #define MAX_ENTITIES 10000
#define MAX_ITEMS 100
#include <structs.h> #include <structs.h>
#include <screen.h> #include <screen.h>
struct Entity allEntities[MAX_ALIVE]; struct Entity allEntities[MAX_ENTITIES];
struct Item allItems[MAX_ITEMS];
#define MAX_PROJECTILES 2 #define MAX_PROJECTILES 2
struct Projectile projectiles[MAX_PROJECTILES]; struct Projectile projectiles[MAX_PROJECTILES];

@ -23,7 +23,7 @@ void addZombie(){
} }
if (attempts<10){ if (attempts<10){
int i; int i;
for(i=0;i<MAX_ALIVE-1;i++){ for(i=0;i<MAX_ENTITIES-1;i++){
if(!allEntities[i].isAlive){ if(!allEntities[i].isAlive){
struct Entity zombie; struct Entity zombie;
zombie.curYpos=openPos.y; zombie.curYpos=openPos.y;
@ -46,7 +46,7 @@ void addZombie(){
void moveZombies(){ void moveZombies(){
int i; int i;
for(i=1;i<MAX_ALIVE;i++){ for(i=1;i<MAX_ENTITIES;i++){
if(allEntities[i].isAlive){ if(allEntities[i].isAlive){
int moveCheck = rand()%20; int moveCheck = rand()%20;
if(moveCheck==1){ if(moveCheck==1){

Loading…
Cancel
Save