From 7765b46941b537fa8c75d6ab200754a6be0fbab8 Mon Sep 17 00:00:00 2001 From: TheoryOfNekomata Date: Thu, 16 Feb 2023 14:16:47 +0800 Subject: [PATCH] Update docs Include updated usage on list functions. --- src/packages/game/data/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/packages/game/data/README.md b/src/packages/game/data/README.md index aebc806..f411d52 100644 --- a/src/packages/game/data/README.md +++ b/src/packages/game/data/README.md @@ -4,7 +4,7 @@ Fundamental functions for various data structures used in the project. ## `list` -A singly-linked list is used on certain parts of the game, such as the memory pool's entries of currently allocated game +A doubly-linked list is used on certain parts of the game, such as the memory pool's entries of currently allocated game objects. Here is how to properly use a list: @@ -26,22 +26,22 @@ int main() { // lists should accept any type of value (void*), so the implementor is free to use whatever type they want int node1_value = 1; - IZ_ListAppendNode(&list, &node1_value); + IZ_ListAppendNode(&list, &node1_value, NULL); int node2_value = 2; - IZ_ListAppendNode(&list, &node2_value); + IZ_ListAppendNode(&list, &node2_value, NULL); // pass predicate functions for finding nodes - ListNode* find_node; - find_node = IZ_ListFindFirstNode(&list, &FindNodeWithValueTwo); + ListNode* find_node = NULL; + IZ_ListFindFirstNode(&list, &FindNodeWithValueTwo, &find_node); if (find_node != NULL) { printf("Found node with value 2!\n"); } ListNode* delete_node; - delete_node = IZ_ListFindFirstNode(&list, &FindNodeWithValueOne); + IZ_ListFindFirstNode(&list, &FindNodeWithValueOne, &delete_node); // deletions are done only on one node at a time - IZ_ListDeleteNode(&list, delete_node); + IZ_ListDeleteNode(delete_node); // teardown takes care of de-allocating nodes and making sure data cannot be accessed sensibly anymore. IZ_ListTeardown(&list);