mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r1152) -Add: [Network] Added signal handling (GeniusDex)
This commit is contained in:
parent
80a9fa962d
commit
88b94c3c67
20
dedicated.c
20
dedicated.c
@ -17,6 +17,7 @@
|
|||||||
# include <sys/time.h> /* gettimeofday */
|
# include <sys/time.h> /* gettimeofday */
|
||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
|
# include <signal.h>
|
||||||
# define STDIN 0 /* file descriptor for standard input */
|
# define STDIN 0 /* file descriptor for standard input */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -24,6 +25,15 @@
|
|||||||
|
|
||||||
static void *_dedicated_video_mem;
|
static void *_dedicated_video_mem;
|
||||||
|
|
||||||
|
#ifdef UNIX
|
||||||
|
/* Signal handlers */
|
||||||
|
void DedicatedSignalHandler(int sig)
|
||||||
|
{
|
||||||
|
_exit_game = true;
|
||||||
|
signal(sig, DedicatedSignalHandler);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char *DedicatedVideoStart(char **parm) {
|
static const char *DedicatedVideoStart(char **parm) {
|
||||||
_screen.width = _screen.pitch = _cur_resolution[0];
|
_screen.width = _screen.pitch = _cur_resolution[0];
|
||||||
_screen.height = _cur_resolution[1];
|
_screen.height = _cur_resolution[1];
|
||||||
@ -90,6 +100,12 @@ static int DedicatedVideoMainLoop() {
|
|||||||
next_tick = (tim.tv_usec / 1000) + 30 + (tim.tv_sec * 1000);
|
next_tick = (tim.tv_usec / 1000) + 30 + (tim.tv_sec * 1000);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Siganl handlers */
|
||||||
|
#ifdef UNIX
|
||||||
|
signal(SIGTERM, DedicatedSignalHandler);
|
||||||
|
signal(SIGINT, DedicatedSignalHandler);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Load the dedicated server stuff
|
// Load the dedicated server stuff
|
||||||
_is_network_server = true;
|
_is_network_server = true;
|
||||||
_network_dedicated = true;
|
_network_dedicated = true;
|
||||||
@ -107,6 +123,8 @@ static int DedicatedVideoMainLoop() {
|
|||||||
while (true) {
|
while (true) {
|
||||||
InteractiveRandom(); // randomness
|
InteractiveRandom(); // randomness
|
||||||
|
|
||||||
|
if (_exit_game) return ML_QUIT;
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
if (InputWaiting()) {
|
if (InputWaiting()) {
|
||||||
fgets(input_line, 200, stdin);
|
fgets(input_line, 200, stdin);
|
||||||
@ -128,8 +146,6 @@ static int DedicatedVideoMainLoop() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_exit_game) return ML_QUIT;
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
cur_ticks = GetTickCount();
|
cur_ticks = GetTickCount();
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user