summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2019-07-28 21:23:27 +0300
committerOxore <oxore@protonmail.com>2019-07-28 22:03:03 +0300
commit1a0886d852bb8a0d9428dc6f54c1e503d06073a0 (patch)
tree0b49cd355b514f4bd5877f08a41fad7f6269a3e1 /include
parenteae3a50f9c791c9aa7dae39cc87d63e0488c4cee (diff)
Refactor idlist, move all global vars to local scope
- Replace list_foreach with LIST_FOREACH macro. - Remove `game` global variable and make it local everywhere. - Move global vars `fld`, `nxt` and `texts` into `game` struct. - Add `static` qualifier to engine.c's specific global vars. - Move `sfRenderWindow window` global var to local scope
Diffstat (limited to 'include')
-rw-r--r--include/common.h6
-rw-r--r--include/engine.h6
-rw-r--r--include/idlist.h4
3 files changed, 13 insertions, 3 deletions
diff --git a/include/common.h b/include/common.h
index 2273e4d..140044d 100644
--- a/include/common.h
+++ b/include/common.h
@@ -1,3 +1,5 @@
+struct field;
+
struct game {
size_t level;
int started;
@@ -14,4 +16,8 @@ struct game {
sfClock *repPushDown; // repeat latency when hold Down arrow
sfClock *repKeyLeft; // repeat latency when hold Left arrow
sfClock *repKeyRight; // repeat latency when hold Right arrow
+
+ struct field *fld;
+ struct field *nxt;
+ struct idlist *texts;
};
diff --git a/include/engine.h b/include/engine.h
index 4e0ee33..48342e9 100644
--- a/include/engine.h
+++ b/include/engine.h
@@ -1,2 +1,4 @@
-void transition_init(void);
-void main_loop(void);
+struct game;
+
+void transition_init(struct game *game);
+void main_loop(struct game *);
diff --git a/include/idlist.h b/include/idlist.h
index c006a32..6d09e16 100644
--- a/include/idlist.h
+++ b/include/idlist.h
@@ -18,5 +18,7 @@ struct idlist *list_new();
struct idlist *list_append(struct idlist *list);
struct idlist *list_get(const struct idlist *list, size_t id);
void list_rm_node(struct idlist *node);
-void list_foreach(struct idlist *list, void (*job)(void *));
void list_destroy(struct idlist *list);
+
+#define LIST_FOREACH(head, e) \
+ for (struct idlist *e = head; e; e = e->next)