summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp51
1 files changed, 44 insertions, 7 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 1c9b37a7..c84d8b3c 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -67,6 +67,23 @@ StatsWindow *stats = NULL;
*/
char walk_status = 0;
+
+// SDL callbacks
+/*
+Uint32 refresh_time(Uint32 interval, void *param)
+{
+ tick_time++;
+ if (tick_time == MAX_TIME) tick_time = 0;
+}
+
+Uint32 second(Uint32 interval, void *param)
+{
+ action_time = true;
+ fps = frame;
+ frame = 0;
+}
+*/
+
void refresh_time(void) {
tick_time++;
if (tick_time == MAX_TIME) tick_time = 0;
@@ -79,7 +96,7 @@ END_OF_FUNCTION(refresh_frame);
*/
void second(void) {
action_time = true;
- fps = (fps + frame) / 2;
+ fps = frame;
frame = 0;
}
END_OF_FUNCTION(second);
@@ -104,13 +121,27 @@ void game() {
do_init();
GraphicEngine *graphicEngine = new GraphicEngine();
+ //SDL_Event event;
+ //SDL_EnableUNICODE(1);
+
while (state != EXIT) {
+
+ // Handle SDL events
+ //while (SDL_PollEvent(&event)) {
+ // switch (event.type) {
+ // case SDL_QUIT:
+ // state = EXIT;
+ // break;
+ // }
+ //}
+
do_input();
graphicEngine->refresh();
do_parse();
flush();
}
+
delete graphicEngine;
close_session();
}
@@ -129,6 +160,12 @@ void do_init() {
// Initialize timers
tick_time = 0;
+
+ // The SDL way
+ //SDL_AddTimer(10, refresh_time, NULL);
+ //SDL_AddTimer(1000, second, NULL);
+
+ // The Allegro way
LOCK_VARIABLE(tick_time);
install_int_ex(refresh_time, MSEC_TO_TIMER(1));
install_int_ex(second, BPS_TO_TIMER(1));
@@ -329,12 +366,12 @@ int get_packet_length(short id) {
* Parse data received from map server into input buffer
*/
void do_parse() {
- unsigned short id;
- char *temp;
- char direction;
- NODE *node = NULL;
- PATH_NODE *pn;
- int len;
+ unsigned short id;
+ char *temp;
+ char direction;
+ NODE *node = NULL;
+ PATH_NODE *pn;
+ int len;
// We need at least 2 bytes to identify a packet
if(in_size>=2) {