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
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, .prevYpos=1, .prevXpos=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].prevYpos=allEntities[0].curYpos;
|
|
allEntities[0].prevXpos=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();
|
|
}
|
|
|