mirror of
https://github.com/open-goal/jak-project
synced 2026-07-01 04:10:32 -04:00
54 lines
1.3 KiB
C++
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
|