marioparty4/src/REL/resultDll/datalist.c
Liam Coleman 560a592518
Add symbols for instdll and resultdll in us (#562)
* Label most of w01Dll

* Add symbols for instdll and resultdll in us

* Fix pal symbols for instDll

* Build resultdll+symbols for pal
2025-02-06 10:41:45 -06:00

86 lines
No EOL
2.1 KiB
C

#include "REL/resultdll.h"
s16 stageMdlId[32];
s16 stageMotId[32];
s16 stageSprId[33];
s16 lbl_1_bss_1A18;
void StageModelCreate(StageModel *model_list)
{
StageModel *list;
s16 i;
s16 model;
s16 clear_i;
ModelData *model_ptr;
void *data;
list = model_list;
for(clear_i=0; clear_i<32; clear_i++) {
stageMdlId[clear_i] = stageMotId[clear_i] = -1;
}
for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) {
if(list->type == 0) {
data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA);
model = Hu3DModelCreate(data);
stageMdlId[i] = model;
Hu3DModelAttrSet(model, list->attr);
Hu3DModelPosSetV(model, &list->pos);
Hu3DModelRotSetV(model, &list->rot);
Hu3DModelScaleSetV(model, &list->scale);
model_ptr = &Hu3DData[model];
if(model_ptr->unk_08 != -1) {
stageMotId[i] = model_ptr->unk_08;
}
} else if(list->type == 1) {
data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA);
stageMotId[i] = Hu3DJointMotion(stageMdlId[list->mot_link], data);
}
(void)i;
}
list = model_list;
for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) {
if(list->type == 2) {
model = Hu3DModelLink(stageMdlId[list->link]);
stageMdlId[i] = model;
Hu3DModelAttrSet(model, list->attr);
Hu3DModelPosSetV(model, &list->pos);
Hu3DModelRotSetV(model, &list->rot);
Hu3DModelScaleSetV(model, &list->scale);
}
if(list->mot_link != -1) {
Hu3DMotionSet(stageMdlId[i], stageMotId[list->mot_link]);
}
(void)i;
}
}
void StageSpriteCreate(StageSprite *sprite_list)
{
StageSprite *list;
s16 sprite;
s16 clear_i;
s16 i;
list = sprite_list;
for(clear_i=0; clear_i<32; clear_i++) {
stageSprId[clear_i] = -1;
}
for(i=0; list->datanum; i++, list++) {
sprite = espEntry(list->datanum, 100, 0);
stageSprId[i] = sprite;
espPosSet(sprite, list->x, list->y);
espColorSet(sprite, list->color.r, list->color.g, list->color.b);
espTPLvlSet(sprite, list->color.a/255.0f);
espPriSet(sprite, list->prio);
espAttrSet(sprite, list->attr);
}
}
void StageSpriteKill(void)
{
s16 i;
for(i=0; i<32; i++) {
if(stageSprId[i] != -1) {
espKill(stageSprId[i]);
}
}
}