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:
parent
fbaa1982cd
commit
e002060843
41
Makefile
41
Makefile
@ -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)
|
||||||
|
|
||||||
|
9
common.h
9
common.h
@ -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;
|
||||||
|
19
config.h
19
config.h
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user