Refreshed the code to compile without warning.
authorFrancois Fleuret <francois@fleuret.org>
Fri, 26 Aug 2016 06:15:37 +0000 (08:15 +0200)
committerFrancois Fleuret <francois@fleuret.org>
Fri, 26 Aug 2016 06:15:37 +0000 (08:15 +0200)
Makefile
hit_shape.cc
manipulator.cc
misc.h
move_square.cc
simple_window.cc
simple_window.h
xfig_tracer.h

index 1331d46..3a41714 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ else
  CXXFLAGS = -fPIC -Wall -g -O3
 endif
 
-LDFLAGS = -L/usr/X11R6/lib/
+LDFLAGS = -L/usr/X11R6/lib/ -lz -ldl
 
 TASK_SRC = dummy.cc move_square.cc hit_shape.cc
 TASK_OBJ = $(TASK_SRC:.cc=.task)
@@ -44,7 +44,7 @@ main:         main.o misc.o \
        manipulator.o \
        approximer.o \
        intelligence.o
-       $(CXX) -lX11 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+       $(CXX) $(CXXFLAGS) $(LDFLAGS) -lX11 -o $@ $^
 
 %.task: %.cc misc.o universe.o polygon.o xfig_tracer.o map.o task.o manipulator.o
        $(CXX) $(CXXFLAGS) -shared -Wl,-soname,$@ -o $@ $^
index 189cadc..1663064 100644 (file)
@@ -8,7 +8,7 @@
 
 class MoveSquare : public Task {
 
-  int _square_size;
+  scalar_t _square_size;
   int _nb_shapes;
   Polygon **_shapes;
   bool *_targets;
index ca6a144..d42dfb7 100644 (file)
@@ -117,7 +117,7 @@ void Manipulator::update(scalar_t dt, Universe *universe) {
     scalar_t f = sqrt(sq(_force_x) + sq(_force_y));
 
     if(f >= force_break) {
-      _current_polygon = false;
+      _current_polygon = 0;
       _force_x = 0;
       _force_y = 0;
     } else {
diff --git a/misc.h b/misc.h
index add2acd..f3a21f0 100644 (file)
--- a/misc.h
+++ b/misc.h
@@ -14,7 +14,8 @@
 #define ASSERT(x, s)
 #endif
 
-typedef float scalar_t;
+// typedef float scalar_t;
+typedef double scalar_t;
 
 inline scalar_t sq(scalar_t x) { return x*x; }
 
index 5aed572..cf32bfb 100644 (file)
@@ -29,8 +29,8 @@ public:
     else if(degree == 1) _square_size = 150;
     else if(degree == 2) _square_size = 100;
     else _square_size = 50;
-    scalar_t x[] = { -_square_size/2, _square_size/2, _square_size/2, -_square_size/2 };
-    scalar_t y[] = { -_square_size/2, -_square_size/2, _square_size/2, _square_size/2 };
+    scalar_t x[] = { -_square_size/2.0, _square_size/2.0, _square_size/2.0, -_square_size/2.0 };
+    scalar_t y[] = { -_square_size/2.0, -_square_size/2.0, _square_size/2.0, _square_size/2.0 };
     _target = new Polygon(0.5, 1.0, 1.0, 0.0, x, y, 4);
     _target->set_position(_square_size/2, _square_size/2 + (world_height - _square_size) * drand48(), 0);
     _target->set_speed(0, 0, 0);
index f0905df..7fee9c2 100644 (file)
@@ -186,17 +186,24 @@ SimpleEvent SimpleWindow::event() {
       break;
 
     case KeyPress:
+      KeySym mykey;
+      mykey = XkbKeycodeToKeysym(_display,
+                                 event.xkey.keycode, 0,
+                                 event.xkey.state & ShiftMask ? 1 : 0);
+
       se.type = SimpleEvent::KEY_PRESS;
-      strncpy(se.key,
-              XKeysymToString(XKeycodeToKeysym(_display, event.xkey.keycode, 0)),
-              (sizeof(se.key)/sizeof(char) - 1));
+      strncpy(se.key, XKeysymToString(mykey), (sizeof(se.key)/sizeof(char) - 1));
+
       break;
 
     case KeyRelease:
+      KeySym mykey;
+      mykey = XkbKeycodeToKeysym(_display,
+                                 event.xkey.keycode, 0,
+                                 event.xkey.state & ShiftMask ? 1 : 0);
+
       se.type = SimpleEvent::KEY_RELEASE;
-      strncpy(se.key,
-              XKeysymToString(XKeycodeToKeysym(_display, event.xkey.keycode, 0)),
-              (sizeof(se.key)/sizeof(char) - 1));
+      strncpy(se.key, XKeysymToString(mykey), (sizeof(se.key)/sizeof(char) - 1));
       break;
 
     default:
index 37218eb..81c3116 100644 (file)
@@ -12,6 +12,7 @@ using namespace std;
 
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
+#include <X11/XKBlib.h>
 
 class SimpleEvent {
 public:
index 77a24c0..1a2ef65 100644 (file)
@@ -24,7 +24,7 @@ class XFigTracer {
   static const int max_nb_user_colors = 100;
   int _palette_red[max_nb_user_colors];
   int _palette_green[max_nb_user_colors];
-  int _palette_blue[max_nb_user_colors],;
+  int _palette_blue[max_nb_user_colors];
   int user_color(int red, int green, int blue);
 public:
   XFigTracer(const char *name);