1
0
mirror of https://github.com/abakh/nbsdgames.git synced 2024-12-04 14:46:22 -05:00

attempt to improve score handling

This commit is contained in:
Your Name 2021-04-30 03:35:16 +04:30
parent fbaa1982cd
commit e002060843
4 changed files with 35 additions and 35 deletions

View File

@ -1,32 +1,29 @@
# -*- Makefile -*- # -*- Makefile -*-
CFLAGS+= -O3 -Wno-unused-result
LDFLAGS+= -lncurses -lm
#-O3 --std=c99 -lcurses -DNO_MOUSE for NetBSD curses #-O3 --std=c99 -lcurses -DNO_MOUSE for NetBSD curses
#adding --std=c99 makes warnings in GNU, and the blame is upon glibc feature test macros. my code is correct. #adding --std=c99 makes warnings in GNU, and the blame is upon glibc feature test macros. my code is correct.
GAMES_DIR?=/usr/games GAMES_DIR?=/usr/games
SCORES_DIR?=/var/games SCORES_DIR?=/var/games
all: jewels sudoku mines reversi checkers battleship rabbithole sos pipes fifteen memoblocks fisher muncher miketron redsquare darrt snakeduel CFLAGS+= -O3 -Wno-unused-result -D SCORES_DIR=\"$(SCORES_DIR)\"
LDFLAGS+= -lncurses -lm
ALL= jewels sudoku mines reversi checkers battleship rabbithole sos pipes fifteen memoblocks fisher muncher miketron redsquare darrt snakeduel
SCORE_FILES= pipes_scores jewels_scores miketron_scores muncher_scores fisher_scores darrt_scores
all: $(ALL)
scorefiles: scorefiles:
touch $(SCORES_DIR)/pipes_scores for sf in $(SCORE_FILES); do touch $(SCORES_DIR)/$$sf ; chown :games $(SCORES_DIR)/$$sf ; done;
touch $(SCORES_DIR)/jewels_scores for game in $(ALL); do chown :games $(GAMES_DIR)/$$game; chmod +s $(GAMES_DIR)/$$game ; done;
touch $(SCORES_DIR)/miketron_scores
touch $(SCORES_DIR)/muncher_scores
touch $(SCORES_DIR)/fisher_scores
touch $(SCORES_DIR)/darrt_scores
chown :games $(SCORES_DIR)/pipes_scores
chown :games $(SCORES_DIR)/jewels_scores
chown :games $(SCORES_DIR)/miketron_scores
chown :games $(SCORES_DIR)/muncher_scores
chown :games $(SCORES_DIR)/fisher_scores
chown :games $(SCORES_DIR)/darrt_scores
jewels: jewels.c config.h common.h jewels: jewels.c config.h common.h
$(CC) jewels.c $(LDFLAGS) $(CFLAGS) -o ./jewels $(CC) jewels.c $(LDFLAGS) $(CFLAGS) -o ./jewels
sudoku: sudoku.c config.h sudoku: sudoku.c config.h
$(CC) sudoku.c $(LDFLAGS) $(CFLAGS) -lm -o ./sudoku $(CC) sudoku.c $(LDFLAGS) $(CFLAGS) -o ./sudoku
mines: mines.c config.h mines: mines.c config.h
$(CC) mines.c $(LDFLAGS) $(CFLAGS) -o ./mines $(CC) mines.c $(LDFLAGS) $(CFLAGS) -o ./mines
reversi: reversi.c config.h reversi: reversi.c config.h
@ -39,7 +36,7 @@ rabbithole: rabbithole.c config.h
$(CC) rabbithole.c $(LDFLAGS) $(CFLAGS) -o ./rabbithole $(CC) rabbithole.c $(LDFLAGS) $(CFLAGS) -o ./rabbithole
sos: sos.c config.h sos: sos.c config.h
$(CC) sos.c $(LDFLAGS) $(CFLAGS) -o ./sos $(CC) sos.c $(LDFLAGS) $(CFLAGS) -o ./sos
pipes: pipes.c config.h pipes: pipes.c config.h common.h
$(CC) pipes.c $(LDFLAGS) $(CFLAGS) -o ./pipes $(CC) pipes.c $(LDFLAGS) $(CFLAGS) -o ./pipes
fifteen: fifteen.c config.h fifteen: fifteen.c config.h
$(CC) fifteen.c $(LDFLAGS) $(CFLAGS) -o ./fifteen $(CC) fifteen.c $(LDFLAGS) $(CFLAGS) -o ./fifteen
@ -54,14 +51,14 @@ miketron: miketron.c config.h common.h
redsquare: redsquare.c config.h redsquare: redsquare.c config.h
$(CC) redsquare.c $(LDFLAGS) $(CFLAGS) -o ./redsquare $(CC) redsquare.c $(LDFLAGS) $(CFLAGS) -o ./redsquare
darrt: darrt.c config.h common.h darrt: darrt.c config.h common.h
$(CC) darrt.c $(LDFLAGS) $(CFLAGS) -lm -o ./darrt $(CC) darrt.c $(LDFLAGS) $(CFLAGS) -o ./darrt
snakeduel: snakeduel.c config.h snakeduel: snakeduel.c config.h
$(CC) snakeduel.c $(LDFLAGS) $(CFLAGS) -o ./snakeduel $(CC) snakeduel.c $(LDFLAGS) $(CFLAGS) -o ./snakeduel
clean: clean:
rm ./jewels ./sudoku ./checkers ./mines ./reversi ./battleship ./rabbithole ./sos ./pipes ./fifteen ./memoblocks ./fisher ./muncher ./miketron ./redsquare ./darrt ./snakeduel rm $(ALL)
uninstall: uninstall:
rm $(GAMES_DIR)/jewels $(GAMES_DIR)/sudoku $(GAMES_DIR)/checkers $(GAMES_DIR)/mines $(GAMES_DIR)/reversi $(GAMES_DIR)/battleship $(GAMES_DIR)/rabbithole $(GAMES_DIR)/sos $(GAMES_DIR)/pipes $(GAMES_DIR)/fifteen $(GAMES_DIR)/memoblocks $(GAMES_DIR)/fisher $(GAMES_DIR)/muncher $(GAMES_DIR)/miketron $(GAMES_DIR)/redsquare $(GAMES_DIR)/darrt $(GAMES_DIR)/snakeduel for game in $(ALL); do rm $(GAMES_DIR)/$$game; done;
install: jewels sudoku mines reversi checkers battleship rabbithole sos pipes fifteen memoblocks fisher muncher miketron redsquare darrt snakeduel install: $(ALL)
cp jewels sudoku mines reversi checkers battleship rabbithole sos pipes fifteen memoblocks fisher muncher miketron redsquare darrt snakeduel $(GAMES_DIR) cp $(ALL) $(GAMES_DIR)

View File

@ -11,11 +11,16 @@ You should have received a copy of the CC0 Public Domain Dedication along with t
#include <stdlib.h> #include <stdlib.h>
#include <limits.h> #include <limits.h>
#include <stdbool.h> #include <stdbool.h>
#include <unistd.h>
#include "config.h" #include "config.h"
#define FOPEN_FAIL -10 #define FOPEN_FAIL -10
typedef signed char byte; typedef signed char byte;
FILE* score_file; FILE* score_file;
byte score_write(const char* path, long wscore, byte save_to_num){// only saves the top 10, returns the place in the chart byte score_write(const char* path, long wscore, byte save_to_num){// only saves the top 10, returns the place in the chart
#ifdef __unix__
setgid(getgid());
setuid(getuid());
#endif
score_file=fopen(path,"r"); score_file=fopen(path,"r");
if(!score_file){ if(!score_file){
score_file=fopen(path,"w"); score_file=fopen(path,"w");
@ -43,7 +48,9 @@ byte score_write(const char* path, long wscore, byte save_to_num){// only saves
scanned_score=0; scanned_score=0;
} }
score_file = fopen(path,"w+") ;//will get rid of the previous text score_file = fopen(path,"w+") ;//will get rid of the previous text
if(!score_file){
return FOPEN_FAIL;
}
byte scores_count=location;//if 5 scores were scanned, it is 5. the number of scores it reached byte scores_count=location;//if 5 scores were scanned, it is 5. the number of scores it reached
byte ret = -1; byte ret = -1;
bool wrote_it=0; bool wrote_it=0;

View File

@ -1,18 +1,13 @@
//for easier access //for easier access
//the default scorefiles //the default scorefiles
#ifdef Plan9 #ifndef SCORES_DIR
#define SCORES_DIR "/sys/lib/games/" #ifdef Plan9
#else #define SCORES_DIR "/sys/lib/games/"
#define SCORES_DIR "/var/games/" #else
/* #define PP_SCORES "/usr/games/pp_scores" #define SCORES_DIR "/var/games/"
#define JW_SCORES "/usr/games/jw_scores" #endif
#define FSH_SCORES "/usr/games/fsh_scores" #endif //SCORES_DIR
#define MNCH_SCORES "/usr/games/mnch_scores"
#define MT_SCORES "/usr/games/mt_scores"
#define DRT_SCORES "/usr/games/drt_scores"*/
#endif
#ifdef Plan9 #ifdef Plan9
#define NO_VLA #define NO_VLA
//Many ancient compilers don't have VLA support, including the Plan9 compiler //Many ancient compilers don't have VLA support, including the Plan9 compiler

View File

@ -117,6 +117,7 @@ void show_scores(byte playerrank){
printw(") %s : %ld",pname,pscore); printw(") %s : %ld",pname,pscore);
++rank; ++rank;
} }
fclose(score_file);
refresh(); refresh();
} }
//move in direction //move in direction