summaryrefslogtreecommitdiff
path: root/src/bonus-node.h
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2022-11-10 09:59:51 -0800
committerVito Caputo <vcaputo@pengaru.com>2022-11-10 10:03:03 -0800
commit6bd2dbf11f908abb225fb160c568462e95da2da7 (patch)
tree04013a01b8f888b77baa972339253b93fde6b888 /src/bonus-node.h
parentaa20a9ec8697a05d44e949ad6a1f2b2f6a3fe908 (diff)
bonus-node: add bonus node for bonus quantities
This shows a numeric display with an API for tracking a position until released. Once released the node self-animates and frees itself from its own rendering function. Post-release the node stops accessing the tracking position, intended for allowing the associated entity to become reused or discarded immediately upon release. For this to work smoothly the release must be accompanied by a storing of the last position within the bonus node via the provided pointer, which the bonus node's render function then uses as the origin of its self-animating before destruction. See comment at start of bonus-node.c for more information/issues. This only adds the node without integrating into the game, a subsequent commit will integrate into game.c. Initial impetus for adding this is making teepee quantities visible.
Diffstat (limited to 'src/bonus-node.h')
-rw-r--r--src/bonus-node.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bonus-node.h b/src/bonus-node.h
new file mode 100644
index 0000000..c138589
--- /dev/null
+++ b/src/bonus-node.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2022 - Vito Caputo - <vcaputo@pengaru.com>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3 as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BONUS_NODE_H
+#define _BONUS_NODE_H
+
+#define BONUS_NODE_RELEASE_MS 100 /* FIXME: this needs to be actual time units, right now it's frames */
+
+typedef struct stage_conf_t stage_conf_t;
+typedef struct m4f_t m4f_t;
+typedef struct v2f_t v2f_t;
+
+stage_t * bonus_node_new(stage_conf_t *conf, unsigned value, m4f_t *projection_x, v2f_t *position, float scale, unsigned **release, v2f_t **release_position);
+
+#endif
+
© All Rights Reserved