One of my first programming projects. I tried to learn C and use curses...it is quite embarrassing looking back at it now :D
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

70 lines
1.7 KiB

#include <structs.h>
#include <stdlib.h>
#include <string.h>
#include <ncurses.h>
#include <world.h>
#include <getPos.h>
void initializeWorld() {
srand(time(NULL));
initscr();
curs_set(0);
cbreak();
nodelay(stdscr, TRUE);
keypad(stdscr, TRUE);
noecho();
struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1};
struct Weapon pistol = {.type="Pistol", .isAlive=1, .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"};
passableChars="#";
unpassableChars="+\\|";
viewportWinRows = 21;
viewportWinCols = 87;
scoreWinRows = 7;
scoreWinCols = 87;
getmaxyx(stdscr,stdscrRows,stdscrCols);
if (stdscrRows < viewportWinRows+scoreWinRows || stdscrCols < viewportWinCols){
endwin();
printf("ERROR: Terminal too small\n");
printf("Minimum size is: %dx%d\n",viewportWinRows+scoreWinRows,viewportWinCols);
printf("Terminal size is: %dx%d\n",stdscrRows,stdscrCols);
exit(0);
}
viewportWin=newwin(viewportWinRows,viewportWinCols,0,0);
scoreWin=newwin(scoreWinRows,scoreWinCols,viewportWinRows,0);
allEntities[0]=player;
allEntities[0].curYpos=viewportWinRows/2;
allEntities[0].curXpos=viewportWinCols/2;
allEntities[0].nextYpos=allEntities[0].curYpos;
allEntities[0].nextXpos=allEntities[0].curXpos;
allEntities[0].weapons[1]=pistol;
allEntities[0].curWeapon=1;
drawScore();
drawViewport();
int i;
for(i=0;i<INITIAL_SPAWN_NUM;i++){
struct OpenPos openPos = getOpenPos();
addZombie(openPos.y,openPos.x);
}
}
void restartGame(){
int i;
for(i=0;i<MAX_ENTITIES;i++){
allEntities[i].isAlive=0;
}
for(i=0;i<MAX_ITEMS;i++){
allItems[i].isAlive=0;
}
zombieModifier=0;
itemModifier=0;
endwin();
main();
}