home · contact · privacy
init_window() now initializes Win.data and Win.draw, too
authorChristian Heller <c.heller@plomlompom.de>
Thu, 23 May 2013 09:03:32 +0000 (11:03 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 23 May 2013 09:03:32 +0000 (11:03 +0200)
roguelike.c
windows.c
windows.h

index 89b64624036ebd5f16ae0256d46f27a90482e5d0..f530d453abd5b4799ba4efa0c943b7e63c55fe3f 100644 (file)
@@ -471,18 +471,10 @@ int main () {
   raw();
   struct WinMeta win_meta = init_win_meta(screen);
 
-  struct Win win_keys = init_window(&win_meta, "Keys");
-  win_keys.draw = draw_keys_window;
-  win_keys.data = &world;
-  struct Win win_map = init_window(&win_meta, "Map");
-  win_map.draw = draw_map;
-  win_map.data = &world;
-  struct Win win_info = init_window(&win_meta, "Info");
-  win_info.draw = draw_info;
-  win_info.data = &world;
-  struct Win win_log = init_window(&win_meta, "Log");
-  win_log.draw = draw_log;
-  win_log.data = &world;
+  struct Win win_keys = init_window(&win_meta, "Keys", &world, draw_keys_window);
+  struct Win win_map = init_window(&win_meta, "Map", &world, draw_map);
+  struct Win win_info = init_window(&win_meta, "Info", &world, draw_info);
+  struct Win win_log = init_window(&win_meta, "Log", &world, draw_log);
 
   int key;
   while (1) {
index ba6401b2191a28f6a64938d3b955905a9ff1e206..6a649a325b187894c8ddc46b6eb34b51f680f68f 100644 (file)
--- a/windows.c
+++ b/windows.c
@@ -23,7 +23,7 @@ void scroll_pad (struct WinMeta * win_meta, char dir) {
   else if ('-' == dir && win_meta->pad_offset > 0)
     win_meta->pad_offset--; }
 
-struct Win init_window (struct WinMeta * win_meta, char * title) {
+struct Win init_window (struct WinMeta * win_meta, char * title, void * data, void * func) {
 // Create and populate Win struct with sane default values.
   struct Win win;
   win.prev = 0;
@@ -32,6 +32,8 @@ struct Win init_window (struct WinMeta * win_meta, char * title) {
   win.title = title;
   win.width = 20;
   win.height = win_meta->height - 1;
+  win.data = data;
+  win.draw = func;
   return win; }
 
 void append_window (struct WinMeta * win_meta, struct Win * win) {
index 8f06ffc38c85be20bf6681bb181ce2c72ee9291f..b5df4981e98fe13a7d9f3cc9ed2e19e44692c02b 100644 (file)
--- a/windows.h
+++ b/windows.h
@@ -30,7 +30,7 @@ struct Corners {
 
 struct  WinMeta init_win_meta (WINDOW *);
 void scroll_pad (struct WinMeta *, char);
-struct Win init_window (struct WinMeta *, char *);
+struct Win init_window (struct WinMeta *, char *, void *, void *);
 void append_window (struct WinMeta *, struct Win *);
 void suspend_window (struct WinMeta *, struct Win *);
 struct yx place_window (struct WinMeta *, struct Win *);