Move some functions
- Remove platform.c, instead use inlines - Some small functions in screen.c are now inline too - Make functions in sleep.c and input.c not specified in header staticfix-mingw
parent
be37715af7
commit
4b208ab1c4
|
@ -10,7 +10,6 @@ add_executable(csnake
|
||||||
src/screen.c
|
src/screen.c
|
||||||
src/input.c
|
src/input.c
|
||||||
src/player.c
|
src/player.c
|
||||||
src/platform.c
|
|
||||||
src/sleep.c
|
src/sleep.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -4,7 +4,7 @@ INCLUDE = -Iinclude
|
||||||
RM = rm -f
|
RM = rm -f
|
||||||
SRCDIR = src
|
SRCDIR = src
|
||||||
OBJDIR = obj
|
OBJDIR = obj
|
||||||
SRC = main.c screen.c input.c player.c platform.c sleep.c
|
SRC = main.c screen.c input.c player.c sleep.c
|
||||||
OBJ = $(addprefix $(OBJDIR)/,$(SRC:.c=.o))
|
OBJ = $(addprefix $(OBJDIR)/,$(SRC:.c=.o))
|
||||||
|
|
||||||
DEFLDFLAGS = $(shell if echo "" | cc -E -dM -xc - | grep __FreeBSD__ > /dev/null 2>&1; then echo "-lpthread"; fi)
|
DEFLDFLAGS = $(shell if echo "" | cc -E -dM -xc - | grep __FreeBSD__ > /dev/null 2>&1; then echo "-lpthread"; fi)
|
||||||
|
|
|
@ -1,11 +1,37 @@
|
||||||
#ifndef __PLATFORM_H__
|
#ifndef __PLATFORM_H__
|
||||||
#define __PLATFORM_H__
|
#define __PLATFORM_H__
|
||||||
|
|
||||||
void resetCoordinates(void);
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
void threadCreate(void (*function)(void *), void *args);
|
#include <Windows.h>
|
||||||
|
#include <process.h>
|
||||||
#else
|
#else
|
||||||
void threadCreate(void *(*function)(void *), void *args);
|
#include <stdio.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static inline void resetCoordinates(void)
|
||||||
|
{
|
||||||
|
HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
|
SetConsoleCursorPosition(output, (COORD){0});
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void resetCoordinates(void)
|
||||||
|
{
|
||||||
|
printf("\e[1;1H\e[2J");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static inline void threadCreate(void (*function)(void *), void *args)
|
||||||
|
{
|
||||||
|
_beginthread(function, 0, args);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void threadCreate(void *(*function)(void *), void *args)
|
||||||
|
{
|
||||||
|
pthread_create(&(pthread_t){0}, 0, function, args);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __PLATFORM_H__ */
|
#endif /* __PLATFORM_H__ */
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef __SCREEN_H__
|
#ifndef __SCREEN_H__
|
||||||
#define __SCREEN_H__
|
#define __SCREEN_H__
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
typedef char Point;
|
typedef char Point;
|
||||||
typedef struct screen_t
|
typedef struct screen_t
|
||||||
{
|
{
|
||||||
|
@ -12,8 +14,17 @@ typedef struct screen_t
|
||||||
Screen *screenCreate(int width, int height, Point fill_value);
|
Screen *screenCreate(int width, int height, Point fill_value);
|
||||||
void screenFree(Screen *screen);
|
void screenFree(Screen *screen);
|
||||||
|
|
||||||
Point *screenGetPoint(Screen *screen, int x, int y);
|
|
||||||
void screenShow(Screen *screen);
|
void screenShow(Screen *screen);
|
||||||
void screenSet(Screen *screen, char fill_value);
|
|
||||||
|
static inline Point *screenGetPoint(Screen *screen, int x, int y)
|
||||||
|
{
|
||||||
|
return screen->screen + x + (y * screen->width);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void screenSet(Screen *screen, Point fill_value)
|
||||||
|
{
|
||||||
|
memset(screen->screen, fill_value, screen->width * screen->height * sizeof(char));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* __SCREEN_H__ */
|
#endif /* __SCREEN_H__ */
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define getch _getch
|
#define getch _getch
|
||||||
#else
|
#else
|
||||||
int getch(void)
|
static int getch(void)
|
||||||
{
|
{
|
||||||
char buf = 0;
|
char buf = 0;
|
||||||
struct termios old = { 0 };
|
struct termios old = { 0 };
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
#ifdef _WIN32
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <process.h>
|
|
||||||
#else
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
void resetCoordinates(void)
|
|
||||||
{
|
|
||||||
HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
SetConsoleCursorPosition(output, (COORD){0});
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void resetCoordinates(void)
|
|
||||||
{
|
|
||||||
printf("\e[1;1H\e[2J");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
void threadCreate(void (*function)(void *), void *args)
|
|
||||||
{
|
|
||||||
_beginthread(function, 0, args);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void threadCreate(void *(*function)(void *), void *args)
|
|
||||||
{
|
|
||||||
pthread_create(&(pthread_t){0}, 0, function, args);
|
|
||||||
}
|
|
||||||
#endif
|
|
10
src/screen.c
10
src/screen.c
|
@ -21,11 +21,6 @@ void screenFree(Screen *screen)
|
||||||
free(screen);
|
free(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
Point *screenGetPoint(Screen *screen, int x, int y)
|
|
||||||
{
|
|
||||||
return screen->screen + x + (y * screen->width);
|
|
||||||
}
|
|
||||||
|
|
||||||
void screenShow(Screen *screen)
|
void screenShow(Screen *screen)
|
||||||
{
|
{
|
||||||
int x, y, i;
|
int x, y, i;
|
||||||
|
@ -43,8 +38,3 @@ void screenShow(Screen *screen)
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void screenSet(Screen *screen, Point fill_value)
|
|
||||||
{
|
|
||||||
memset(screen->screen, fill_value, screen->width * screen->height * sizeof(char));
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
long long int getMS()
|
static long long int getMS()
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
timespec_get(&ts, TIME_UTC);
|
timespec_get(&ts, TIME_UTC);
|
||||||
|
|
Loading…
Reference in New Issue