diff --git a/devcpp/Makefile.win b/devcpp/Makefile.win index 06455b2..da61e2f 100644 --- a/devcpp/Makefile.win +++ b/devcpp/Makefile.win @@ -4,9 +4,9 @@ CPP = g++.exe CC = gcc.exe WINDRES = windres.exe -OBJ = ../main.o ../interface/curses.o ../net/sockets.o ../game.o ../player.o ../wall.o ../console.o ../context.o ../helper.o ../map.o ../npc.o ../tile.o ../tiles/curses_tiles.o -LINKOBJ = ../main.o ../interface/curses.o ../net/sockets.o ../game.o ../player.o ../wall.o ../console.o ../context.o ../helper.o ../map.o ../npc.o ../tile.o ../tiles/curses_tiles.o -LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -static-libstdc++ -static-libgcc ../../PDCurses/pdcurses.lib -g3 +OBJ = ../main.o ../interface/curses.o ../net/sockets.o ../game.o ../player.o ../wall.o ../console.o ../context.o ../helper.o ../map.o ../npc.o ../tile.o ../tiles/curses_tiles.o ../message.o +LINKOBJ = ../main.o ../interface/curses.o ../net/sockets.o ../game.o ../player.o ../wall.o ../console.o ../context.o ../helper.o ../map.o ../npc.o ../tile.o ../tiles/curses_tiles.o ../message.o +LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -static-libstdc++ -static-libgcc ../../PDCurses/pdcurses.lib ../../../Windows/System32/ws2_32.dll -g3 INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"../../PDCurses" CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"../../PDCurses" BIN = timesynk-pdcurses.exe @@ -63,3 +63,6 @@ $(BIN): $(OBJ) ../tiles/curses_tiles.o: ../tiles/curses_tiles.c $(CC) -c ../tiles/curses_tiles.c -o ../tiles/curses_tiles.o $(CFLAGS) + +../message.o: ../message.c + $(CC) -c ../message.c -o ../message.o $(CFLAGS) diff --git a/devcpp/timesynk-pdcurses.dev b/devcpp/timesynk-pdcurses.dev index b7b3623..bd2749c 100644 --- a/devcpp/timesynk-pdcurses.dev +++ b/devcpp/timesynk-pdcurses.dev @@ -11,7 +11,7 @@ ResourceIncludes= MakeIncludes= Compiler= CppCompiler= -Linker=../../PDCurses/pdcurses.lib_@@_ +Linker=../../PDCurses/pdcurses.lib_@@_../../../Windows/System32/ws2_32.dll_@@_ IsCpp=0 Icon= ExeOutput= @@ -29,7 +29,7 @@ IncludeVersionInfo=0 SupportXPThemes=0 CompilerSet=0 CompilerSettings=0000000000000000001000000 -UnitCount=28 +UnitCount=30 [VersionInfo] Major=1 @@ -330,3 +330,23 @@ Priority=1000 OverrideBuildCmd=0 BuildCmd= +[Unit29] +FileName=..\message.c +CompileCpp=0 +Folder=timesynk-pdcurses +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit30] +FileName=..\message.h +CompileCpp=0 +Folder=timesynk-pdcurses +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/devcpp/timesynk-pdcurses.layout b/devcpp/timesynk-pdcurses.layout index dd21574..6b867b6 100644 --- a/devcpp/timesynk-pdcurses.layout +++ b/devcpp/timesynk-pdcurses.layout @@ -1,12 +1,12 @@ [Editor_0] CursorCol=1 -CursorRow=1 +CursorRow=10 TopLine=1 LeftChar=1 -Open=0 +Open=1 Top=0 [Editors] -Order= +Order=-1 Focused=-1 [Editor_1] Open=0 @@ -30,17 +30,17 @@ CursorRow=1 TopLine=1 LeftChar=1 [Editor_4] -Open=0 +Open=1 Top=0 -CursorCol=1 -CursorRow=61 -TopLine=46 +CursorCol=24 +CursorRow=31 +TopLine=1 LeftChar=1 [Editor_5] -Open=0 -Top=0 -CursorCol=1 -CursorRow=1 +Open=1 +Top=1 +CursorCol=115 +CursorRow=22 TopLine=1 LeftChar=1 [Editor_6] @@ -141,3 +141,9 @@ Top=0 [Editor_27] Open=0 Top=0 +[Editor_28] +Open=0 +Top=0 +[Editor_29] +Open=0 +Top=0 diff --git a/devcpp/timesynk-sdl.dev b/devcpp/timesynk-sdl.dev index 31f3cc5..5dc1c66 100644 --- a/devcpp/timesynk-sdl.dev +++ b/devcpp/timesynk-sdl.dev @@ -29,7 +29,7 @@ IncludeVersionInfo=0 SupportXPThemes=0 CompilerSet=0 CompilerSettings=0000000000000000001000000 -UnitCount=28 +UnitCount=30 [VersionInfo] Major=1 @@ -330,3 +330,23 @@ Priority=1000 OverrideBuildCmd=0 BuildCmd= +[Unit29] +FileName=..\message.c +CompileCpp=0 +Folder=timesynk-sdl +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit30] +FileName=..\message.h +CompileCpp=0 +Folder=timesynk-sdl +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/devcpp/timesynk-sdl.layout b/devcpp/timesynk-sdl.layout index 2630790..692c275 100644 --- a/devcpp/timesynk-sdl.layout +++ b/devcpp/timesynk-sdl.layout @@ -3,10 +3,10 @@ CursorCol=7 CursorRow=13 TopLine=1 LeftChar=1 -Open=1 +Open=0 Top=0 [Editors] -Order=-1 +Order= Focused=-1 [Editor_1] Open=0 @@ -30,14 +30,14 @@ CursorRow=1 TopLine=1 LeftChar=1 [Editor_4] -Open=1 +Open=0 Top=0 -CursorCol=24 -CursorRow=48 -TopLine=16 +CursorCol=22 +CursorRow=97 +TopLine=58 LeftChar=1 [Editor_5] -Open=1 +Open=0 Top=0 CursorCol=1 CursorRow=26 @@ -93,22 +93,22 @@ Top=0 Open=0 Top=0 [Editor_17] -Open=1 +Open=0 Top=0 CursorCol=30 CursorRow=58 TopLine=35 LeftChar=1 [Editor_18] -Open=1 +Open=0 Top=0 CursorCol=21 CursorRow=33 TopLine=1 LeftChar=1 [Editor_19] -Open=1 -Top=1 +Open=0 +Top=0 CursorCol=28 CursorRow=32 TopLine=13 @@ -117,14 +117,14 @@ LeftChar=1 Open=0 Top=0 [Editor_21] -Open=1 +Open=0 Top=0 CursorCol=32 CursorRow=31 TopLine=4 LeftChar=1 [Editor_22] -Open=1 +Open=0 Top=0 CursorCol=1 CursorRow=11 @@ -149,3 +149,9 @@ LeftChar=1 [Editor_27] Open=0 Top=0 +[Editor_28] +Open=0 +Top=0 +[Editor_29] +Open=0 +Top=0 diff --git a/interface/curses.c b/interface/curses.c index ff96a0a..bedf83b 100644 --- a/interface/curses.c +++ b/interface/curses.c @@ -28,10 +28,15 @@ void tickSignal() { void interfaceSetInterval(const char *input_string) { if (input_string) { int tickrate = atoi(input_string); + #if _WIN32 | _WIN64 + KillTimer(NULL, win_timer); + win_timer = SetTimer(NULL, 1, tickrate, (TIMERPROC) tickSignal); + #else getitimer(ITIMER_REAL, &interval); interval.it_interval.tv_sec = tickrate / 1000; interval.it_interval.tv_usec = (tickrate*1000) % 1000000; setitimer(ITIMER_REAL, &interval, NULL); + #endif } } @@ -66,6 +71,10 @@ int interfaceInit() { FD_SET(interface_fd, &master_fds); max_fd = interface_fd; + #if _WIN32 | _WIN64 + win_timer = SetTimer(NULL, 1, 500, tickSignal); + consoleLog("augh"); + #else /* basically instead of using linux-only timer fds, we use SIGALRM for updating the game world instead. I don't know if I agree with it. */ if (signal(SIGALRM, (void (*)(int)) tickSignal) == SIG_ERR) { consoleLog("Unable to catch SIGALARM for gameLoop, game is broken."); @@ -76,6 +85,7 @@ int interfaceInit() { if (setitimer(ITIMER_REAL, &interval, NULL) == -1) { consoleLog("error calling setitmer(), game is broken"); } + #endif /* add our commands */ consoleAddCommand("tickrate", interfaceSetInterval); diff --git a/interface/curses.h b/interface/curses.h index 8ceb6d6..a1400f8 100644 --- a/interface/curses.h +++ b/interface/curses.h @@ -1,7 +1,11 @@ #ifndef NCURSES_H #define NCURSES_H +#if _WIN32 | _WIN64 +#include +#else #include // fd_set, etc. +#endif WINDOW * screen; int cols; @@ -15,9 +19,13 @@ fd_set master_fds; fd_set read_fds; int max_fd; - +// TODO: gameLoop timer does not work on win32. Code is there, but needs a fake window for handling message events // called on SIGALRM, calls gameLoop(); void tickSignal(); +#if _WIN32 | _WIN64 +HWND win_timer; +#else // our so-called timer for ticking the world. aka a sigalrm struct itimerval interval; #endif +#endif diff --git a/tiles.o b/tiles.o deleted file mode 100644 index e92b43c..0000000 Binary files a/tiles.o and /dev/null differ