Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1#ifndef NW4HBM_UT_LIST_H
2#define NW4HBM_UT_LIST_H
3
4#include <revolution/types.h>
5#include "../db/assert.h"
6
7
8namespace nw4hbm {
9 namespace ut {
10
11 typedef struct Link {
12 /* 0x00 */ void* prevObject;
13 /* 0x04 */ void* nextObject;
14 } Link; // size = 0x08
15
16 typedef struct List {
17 /* 0x00 */ void* headObject;
18 /* 0x04 */ void* tailObject;
19 /* 0x08 */ u16 numObjects;
20 /* 0x0A */ u16 offset;
21 } List; // size = 0x0C
22
23 void List_Init(List* list, u16 offset);
24 void List_Append(List* list, void* object);
25 void List_Prepend(List* list, void* object);
26 void List_Insert(List* list, void* target, void* object);
27 void List_Remove(List* list, void* object);
28
29 void* List_GetNext(const List* list, const void* object);
30 void* List_GetPrev(const List* list, const void* object);
31 void* List_GetNth(const List* list, u16 index);
32
33 static void* List_GetFirst(const List* list) {
34 return List_GetNext(list, NULL);
35 }
36 static void* List_GetLast(const List* list) {
37 return List_GetPrev(list, NULL);
38 }
39
40 inline u16 List_GetSize(const List* list) {
41 NW4R_ASSERT_CHECK_NULL(207, list);
42 return list->numObjects;
43 }
44
45 } // namespace ut
46} // namespace nw4hbm
47
48#endif
static s32 offset
Definition WUD.c:1669
static void * target
Definition d_a_npc_cd2.cpp:886
static u8 index[20][3]
Definition GXDraw.c:434
unsigned short int u16
Definition types.h:10
void List_Prepend(List *list, void *object)
void * List_GetPrev(const List *list, const void *object)
void * List_GetNext(const List *list, const void *object)
Definition ut_list.cpp:76
static void * List_GetLast(const List *list)
Definition list.h:36
static void * List_GetFirst(const List *list)
Definition list.h:33
void * List_GetNth(const List *list, u16 index)
Definition ut_list.cpp:86
void List_Remove(List *list, void *object)
Definition ut_list.cpp:52
struct nw4hbm::ut::List List
u16 List_GetSize(const List *list)
Definition list.h:40
void List_Insert(List *list, void *target, void *object)
void List_Init(List *list, u16 offset)
Definition ut_list.cpp:11
struct nw4hbm::ut::Link Link
void List_Append(List *list, void *object)
Definition ut_list.cpp:32
Definition HBMAnmController.h:6
Definition list.h:16
u16 numObjects
Definition list.h:19
void * tailObject
Definition list.h:18
void * headObject
Definition list.h:17
u16 offset
Definition list.h:20