@@ -39,6 +39,8 @@ using namespace lol; | |||||
#include "neercs.h" | #include "neercs.h" | ||||
#include "video/render.h" | #include "video/render.h" | ||||
#define USE_OLD_NEERCS 0 | |||||
extern "C" | extern "C" | ||||
{ | { | ||||
#include "old/neercs.h" | #include "old/neercs.h" | ||||
@@ -51,17 +53,29 @@ Neercs::Neercs(int argc, char **argv) | |||||
m_time(0.f) | m_time(0.f) | ||||
{ | { | ||||
Ticker::Ref(m_render); | Ticker::Ref(m_render); | ||||
#if USE_OLD_NEERCS | |||||
m_buf = NULL; | |||||
m_screen_list = init_neercs(argc, argv); | |||||
if (!m_screen_list) | |||||
exit(-1); | |||||
m_screen_list->last_key_time = get_us(); | |||||
#endif | |||||
} | } | ||||
int Neercs::hex_color(float r, float g, float b) | int Neercs::hex_color(float r, float g, float b) | ||||
{ | { | ||||
return ((int)(r * 15.99f) << 8) | ((int)(g * 15.99f) << 4) | (int)(b * 15.99f); | |||||
return ((int)(r * 15.99f) << 8) | ((int)(g * 15.99f) << 4) | (int)(b * 15.99f); | |||||
} | } | ||||
void Neercs::TickGame(float seconds) | void Neercs::TickGame(float seconds) | ||||
{ | { | ||||
WorldEntity::TickGame(seconds); | WorldEntity::TickGame(seconds); | ||||
#if USE_OLD_NEERCS | |||||
mainloop_tick(&m_buf, m_screen_list); | |||||
#endif | |||||
m_time += seconds; | m_time += seconds; | ||||
/* draw something */ | /* draw something */ | ||||
@@ -128,6 +142,11 @@ void Neercs::TickDraw(float seconds) | |||||
Neercs::~Neercs() | Neercs::~Neercs() | ||||
{ | { | ||||
#if USE_OLD_NEERCS | |||||
free(m_buf); | |||||
free_screen_list(m_screen_list); | |||||
#endif | |||||
Ticker::Unref(m_render); | Ticker::Unref(m_render); | ||||
} | } | ||||
@@ -11,6 +11,11 @@ | |||||
#include "video/render.h" | #include "video/render.h" | ||||
extern "C" | |||||
{ | |||||
#include "old/neercs.h" | |||||
} | |||||
class Neercs : public WorldEntity | class Neercs : public WorldEntity | ||||
{ | { | ||||
public: | public: | ||||
@@ -30,6 +35,10 @@ private: | |||||
caca_canvas_t *m_caca; | caca_canvas_t *m_caca; | ||||
Render *m_render; | Render *m_render; | ||||
float m_time; | float m_time; | ||||
/* Old neercs stuff */ | |||||
char *m_buf; | |||||
struct screen_list *m_screen_list; | |||||
}; | }; | ||||
#endif // __NEERCS_H__ | #endif // __NEERCS_H__ | ||||
@@ -238,7 +238,8 @@ static char *select_socket(struct screen_list *screen_list) | |||||
debug("Connection refused on %s", sockets[i]); | debug("Connection refused on %s", sockets[i]); | ||||
break; | break; | ||||
case ECONNREFUSED: | case ECONNREFUSED: | ||||
fprintf(stderr, "%s is dead\n", sockets[i]); | |||||
fprintf(stderr, "%s is dead, removing\n", sockets[i]); | |||||
unlink(sockets[i]); | |||||
break; | break; | ||||
default: | default: | ||||
fprintf(stderr, "Unknown error on %s:%s\n", sockets[i], | fprintf(stderr, "Unknown error on %s:%s\n", sockets[i], | ||||
@@ -159,17 +159,6 @@ int send_delay(struct screen_list *screen_list) | |||||
* - "TITLE": set window or display title | * - "TITLE": set window or display title | ||||
* - wait for an input event with a 10ms timeout | * - wait for an input event with a 10ms timeout | ||||
*/ | */ | ||||
void mainloop(struct screen_list *screen_list) | |||||
{ | |||||
char *buf = NULL; | |||||
screen_list->last_key_time = get_us(); | |||||
while (mainloop_tick(&buf, screen_list)) | |||||
; | |||||
free(buf); | |||||
} | |||||
int mainloop_tick(char **pbuf, struct screen_list *screen_list) | int mainloop_tick(char **pbuf, struct screen_list *screen_list) | ||||
{ | { | ||||
caca_event_t ev; | caca_event_t ev; | ||||
@@ -189,7 +178,7 @@ int mainloop_tick(char **pbuf, struct screen_list *screen_list) | |||||
read(screen_list->comm.socket[SOCK_CLIENT], *pbuf, | read(screen_list->comm.socket[SOCK_CLIENT], *pbuf, | ||||
NEERCS_RECV_BUFSIZE - 1)) > 0) | NEERCS_RECV_BUFSIZE - 1)) > 0) | ||||
{ | { | ||||
*pbuf[n] = 0; | |||||
(*pbuf)[n] = 0; | |||||
debug("Received from server: '%s' (%d bytes)", *pbuf, n); | debug("Received from server: '%s' (%d bytes)", *pbuf, n); | ||||
if (!strncmp("DETACH", *pbuf, 6)) | if (!strncmp("DETACH", *pbuf, 6)) | ||||
{ | { | ||||
@@ -81,17 +81,6 @@ void usage(int argc, char **argv) | |||||
printf("\t--help\t\t-h \t\t\tthis help\n"); | printf("\t--help\t\t-h \t\t\tthis help\n"); | ||||
} | } | ||||
#if 0 | |||||
int main(int argc, char **argv) | |||||
{ | |||||
struct screen_list *screen_list = init_neercs(argc, argv); | |||||
if (!screen_list) | |||||
return -1; | |||||
mainloop(screen_list); | |||||
} | |||||
#endif | |||||
struct screen_list *init_neercs(int argc, char **argv) | struct screen_list *init_neercs(int argc, char **argv) | ||||
{ | { | ||||
struct screen_list *screen_list = NULL; | struct screen_list *screen_list = NULL; | ||||