mirror of
https://git.squeakyrat.moe/petratc/
synced 2026-11-04 18:35:43 +01:00
started a new game finally... also i fixed the compiler complaints and idk what else i did... if you're interested you can look at the diff
This commit is contained in:
1 parent
290ea5659f
commit
9c0c7b942e
4 files changed
+92
-7
No files matched your search
@@ -4,5 +4,6 @@
|
||||
void gameguess(void);
|
||||
void gamecatch(void);
|
||||
void gamemaze(void);
|
||||
void gameclicker(void);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,61 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <ncurses.h>
|
||||
#include "../rat.h"
|
||||
|
||||
#define width getmaxx(stdscr)
|
||||
#define height getmaxy(stdscr)
|
||||
|
||||
int running;
|
||||
int row = 1;
|
||||
|
||||
static void stop() {
|
||||
clear();
|
||||
refresh();
|
||||
endwin();
|
||||
running = 0;
|
||||
}
|
||||
|
||||
void gameclicker(){
|
||||
|
||||
srand(time(NULL));
|
||||
static int initialized = 0;
|
||||
if(!initialized){ initscr();}else{refresh();}
|
||||
++initialized;
|
||||
|
||||
noecho();
|
||||
cbreak();
|
||||
nodelay(stdscr, TRUE);
|
||||
keypad(stdscr, TRUE);
|
||||
curs_set(0);
|
||||
|
||||
int winh = height * 0.96;
|
||||
int winw = width * 0.96;
|
||||
int boxy = (height - winh) / 2;
|
||||
int boxx = (width - winw) / 2;
|
||||
WINDOW *win = newwin(winh, winw, boxy, boxx);
|
||||
|
||||
box(win, 0, 0); //box?
|
||||
|
||||
//should i wrap all this into a macro in rat.h to not have to write all of this every time i make a new game?
|
||||
|
||||
running = 1;
|
||||
|
||||
mvwprintw(win, row ++, 2, "hi");
|
||||
while(running){
|
||||
if(!running){stop();}
|
||||
int ch = getch();
|
||||
switch (ch) {
|
||||
case 'q': case 'Q': stop(); break;
|
||||
}
|
||||
|
||||
|
||||
wrefresh(win);
|
||||
usleep(16667); //60 fps according to google ai overview lmao
|
||||
}
|
||||
|
||||
stop();
|
||||
printf("yeah");
|
||||
}
|
||||
+16
-4
@@ -248,13 +248,25 @@ void gamemaze(){
|
||||
case 'q': case 'Q': stop(); break;
|
||||
case 'r': case 'R': properrestart(&curs, &W, &H); break;
|
||||
case 'a': case 'A': case KEY_LEFT:
|
||||
if (!iswall(curs.posy, curs.posx - 1)) curs.posx -= 1; break;
|
||||
if(!iswall(curs.posy, curs.posx - 1)){
|
||||
curs.posx -= 1;
|
||||
}
|
||||
break;
|
||||
case 'd': case 'D': case KEY_RIGHT:
|
||||
if (!iswall(curs.posy, curs.posx + 1))curs.posx += 1; break;
|
||||
if (!iswall(curs.posy, curs.posx + 1)){
|
||||
curs.posx += 1;
|
||||
}
|
||||
break;
|
||||
case 'w': case 'W': case KEY_UP:
|
||||
if (!iswall(curs.posy - 1, curs.posx))curs.posy -= 1; break;
|
||||
if (!iswall(curs.posy - 1, curs.posx)){
|
||||
curs.posy -= 1;
|
||||
}
|
||||
break;
|
||||
case 's': case 'S': case KEY_DOWN:
|
||||
if (!iswall(curs.posy + 1, curs.posx))curs.posy += 1; break;
|
||||
if (!iswall(curs.posy + 1, curs.posx)){
|
||||
curs.posy += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
eatcheese(&curs);
|
||||
|
||||
@@ -69,8 +69,12 @@ void load(void) {
|
||||
rat.age = time(NULL);
|
||||
return;
|
||||
}
|
||||
fscanf(f, "%f\n%f\n%f\n%f\n%f\n%d\n",
|
||||
&rat.hunger, &rat.love, &rat.fun, &rat.clean, &rat.health, &rat.age);
|
||||
if(fscanf(f, "%f\n%f\n%f\n%f\n%f\n%d\n",
|
||||
&rat.hunger, &rat.love, &rat.fun, &rat.clean, &rat.health, &rat.age) != 6){
|
||||
fprintf(stderr, "error: failed to initialize save data.\n");
|
||||
}
|
||||
//this should shut the compiler up
|
||||
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
@@ -91,6 +95,7 @@ void setstat(){
|
||||
|
||||
|
||||
rat.age = timenow; //thinking about this makes my cortisol spike so i'll just ignore it even more
|
||||
//nah nvm this will only give us problems in 2038
|
||||
}
|
||||
|
||||
|
||||
@@ -126,6 +131,7 @@ void printrat(WINDOW *win){
|
||||
mvwprintw(win, row++, 2, "1: play a game! (fun up)");
|
||||
mvwprintw(win, row++, 2, "2: go to the maze (hunger up)");
|
||||
mvwprintw(win, row++, 2, "4: take a shower! (clean up)");
|
||||
mvwprintw(win, row++, 2, "5: clicker the cheese! (all up)");
|
||||
mvwprintw(win, row++, 2, "9: print me! (refreshes stats)");
|
||||
mvwprintw(win, row++, 2, "0: exit...");
|
||||
|
||||
@@ -146,7 +152,7 @@ int truing = 1;
|
||||
keypad(stdscr, TRUE);
|
||||
curs_set(0);
|
||||
|
||||
WINDOW *win = newwin(20, 40, 1, 1);
|
||||
WINDOW *win = newwin(25, 45, 1, 1);
|
||||
printrat(win);
|
||||
|
||||
while(truing){
|
||||
@@ -171,6 +177,11 @@ int truing = 1;
|
||||
printf("your rat feels cleaner!\n\n");
|
||||
refresh();
|
||||
break;
|
||||
case '5':
|
||||
endwin();
|
||||
gameclicker();
|
||||
refresh();
|
||||
break;
|
||||
case '9': break;
|
||||
case '0': truing = 0; break;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user