Files
jak-project/game/overlord/jak3/list.cpp
T
2024-07-26 09:42:28 -04:00

54 lines
1.3 KiB
C++

#include "list.h"
#include "common/util/Assert.h"
#include "game/overlord/jak3/vag.h"
#include "game/sce/iop.h"
namespace jak3 {
using namespace iop;
void jak3_overlord_init_globals_list() {}
void InitList(List* list, int count, int element_size) {
VagStreamData* iter;
int iVar1;
SemaParam sema_params;
list->count = count;
iter = (VagStreamData*)AllocSysMemory(0, count * element_size, 0);
ASSERT(iter);
ASSERT(element_size == sizeof(VagStreamData));
list->buffer = (u8*)iter;
if (iter != (VagStreamData*)0x0) {
list->next = iter;
iVar1 = 0;
if (0 < count) {
do {
iter->in_use = 0;
if (iVar1 < count + -1) {
iter->next = (VagStreamData*)((u8*)iter + element_size);
} else {
iter->next = nullptr;
}
if (iVar1 == 0) {
iter->prev = nullptr;
} else {
iter->prev = (VagStreamData*)((u8*)iter - element_size);
}
iVar1 = iVar1 + 1;
iter = (VagStreamData*)((u8*)iter + element_size);
} while (iVar1 < count);
}
list->unk_flag = 0;
list->pending_data = 0;
sema_params.max_count = 1;
sema_params.attr = 1;
sema_params.init_count = 1;
sema_params.option = 0;
iVar1 = CreateSema(&sema_params);
list->sema = iVar1;
ASSERT(list->sema >= 0);
}
}
} // namespace jak3