#include #include #include #include #include #include #include #include #include void initializeWorld() { srand(time(NULL)); initscr(); curs_set(0); cbreak(); nodelay(stdscr, TRUE); keypad(stdscr, TRUE); noecho(); zombieModifier=0; itemModifier=0; struct Entity player = {.type="player", .symbol='@', .isAlive=1}; struct Weapon fists = {.type="Fists", .isAlive=1, .projectileRange=1, .maxCapacity=0, .curCapacity=0, .symbols="-\\|/-\\|/", .projectileSpeed=.03}; struct Weapon pistol = {.type="Pistol", .isAlive=0, .projectileRange=10, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/", .projectileSpeed=.03}; struct Weapon shotgun = {.type="Shotgun", .isAlive=0, .projectileRange=1, .maxCapacity=5, .curCapacity=5, .symbols="-\\|/-\\|/", .projectileSpeed=.05}; passableChars="#"; unpassableChars="+"; viewportWinRows = 19; viewportWinCols = 80; infoWinRows = 5; infoWinCols = 80; getmaxyx(stdscr,stdscrRows,stdscrCols); if (stdscrRows < viewportWinRows+infoWinRows || stdscrCols < viewportWinCols){ endwin(); printf("ERROR: Terminal too small\n"); printf("Minimum size is: %dx%d\n",viewportWinRows+infoWinRows,viewportWinCols); printf("Terminal size is: %dx%d\n",stdscrRows,stdscrCols); exit(0); } drawGameStartWin(); viewportWin=newwin(viewportWinRows,viewportWinCols,0,0); infoWin=newwin(infoWinRows,infoWinCols,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[0]=fists; allEntities[0].weapons[1]=pistol; allEntities[0].weapons[2]=shotgun; allEntities[0].curWeapon=0; updateInfoWin(); updateViewportWin(); int i; for(i=0;i