Named most things in presentDll

This commit is contained in:
kabiskac 2024-08-04 18:40:58 +02:00
parent a7bde60c97
commit 3a7cde9f33
7 changed files with 1301 additions and 1127 deletions

View file

@ -8,158 +8,158 @@
#include "REL/present.h"
typedef struct UnkPresentStruct6 {
/* 0x00 */ s16 unk_00;
/* 0x04 */ float unk_04;
/* 0x08 */ float unk_08;
} UnkPresentStruct6; /* size 0x0C */ // looks like a struct in option/scene.c
typedef struct FaderWork {
/* 0x00 */ s16 id;
/* 0x04 */ float tplvl;
/* 0x08 */ float speed;
} FaderWork; /* size 0x0C */ // same as in option/scene.c
typedef struct UnkPresentStruct6Weird {
/* 0x00 */ s16 unk_00;
/* 0x04 */ float unk_04;
/* 0x08 */ float unk_08;
/* 0x0C */ float unk_0C;
} UnkPresentStruct6Weird; /* size = 0x10 */ // looks like a struct in option/scene.c
typedef struct FaderWork2 {
/* 0x00 */ s16 id;
/* 0x04 */ float tpMultiplier;
/* 0x08 */ float tplvl;
/* 0x0C */ float speed;
} FaderWork2; /* size = 0x10 */
omObjData *lbl_1_bss_18;
omObjData *presentState;
omObjData *lbl_1_bss_14;
omObjData *lbl_1_bss_10;
omObjData *present;
omObjData *lbl_1_bss_C;
omObjData *lbl_1_bss_8;
Process *lbl_1_bss_4;
omObjData *lbl_1_bss_0;
omObjData *presentCamera;
Process *presentObjMan;
static omObjData *scene;
static void fn_1_254(void);
static void fn_1_45C(void);
static void fn_1_5EC(omObjData *object);
static void FadeSprite(void);
static void FadeModel(void);
static void SceneMain(omObjData *object);
void ObjectSetup(void)
{
lbl_1_bss_4 = omInitObjMan(150, 8192);
omGameSysInit(lbl_1_bss_4);
presentObjMan = omInitObjMan(150, 8192);
omGameSysInit(presentObjMan);
HuWinInit(1);
lbl_1_bss_0 = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 0, fn_1_5EC);
lbl_1_bss_0->unk10 = 0;
lbl_1_bss_18 = fn_1_39A8();
scene = omAddObjEx(presentObjMan, 1000, 0, 0, 0, SceneMain);
scene->unk10 = 0;
presentState = PresentStateCreate();
}
void fn_1_144(s16 arg0, s32 arg1, s32 arg2)
void PresentFadeSprite(s16 sprite, BOOL inF, s32 duration)
{
Process *var_r30;
Process *process;
UnkPresentStruct6 *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM);
var_r31->unk_00 = arg0;
var_r31->unk_08 = 1.0f / arg2;
if (arg1) {
var_r31->unk_08 = var_r31->unk_08;
var_r31->unk_04 = 0.0f;
FaderWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM);
work->id = sprite;
work->speed = 1.0f / duration;
if (inF) {
work->speed = work->speed;
work->tplvl = 0.0f;
}
else {
var_r31->unk_08 = -var_r31->unk_08;
var_r31->unk_04 = 1.0f;
work->speed = -work->speed;
work->tplvl = 1.0f;
}
espDispOn(var_r31->unk_00);
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
var_r30 = HuPrcChildCreate(fn_1_254, 100, 5376, 0, HuPrcCurrentGet());
var_r30->user_data = var_r31;
espDispOn(work->id);
espTPLvlSet(work->id, work->tplvl);
process = HuPrcChildCreate(FadeSprite, 100, 5376, 0, HuPrcCurrentGet());
process->user_data = work;
}
static void fn_1_254(void)
static void FadeSprite(void)
{
UnkPresentStruct6 *var_r31 = HuPrcCurrentGet()->user_data;
FaderWork *work = HuPrcCurrentGet()->user_data;
while (TRUE) {
var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_08;
if (var_r31->unk_04 > 1.0f) {
var_r31->unk_04 = 1.0f;
work->tplvl = work->tplvl + work->speed;
if (work->tplvl > 1.0f) {
work->tplvl = 1.0f;
break;
}
else if (var_r31->unk_04 < 0.0f) {
var_r31->unk_04 = 0.0f;
else if (work->tplvl < 0.0f) {
work->tplvl = 0.0f;
break;
}
else {
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
espTPLvlSet(work->id, work->tplvl);
HuPrcVSleep();
}
}
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
if (var_r31->unk_08 < 0.0f) {
espDispOff(var_r31->unk_00);
espTPLvlSet(work->id, work->tplvl);
if (work->speed < 0.0f) {
espDispOff(work->id);
}
HuMemDirectFree(work);
HuPrcEnd();
}
void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 duration)
{
Process *process;
// bug: wrong struct in sizeof
FaderWork2 *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM);
work->id = model;
work->speed = 1.0f / duration;
work->tpMultiplier = tpMultiplier;
if (inF) {
work->speed = work->speed;
work->tplvl = 0.0f;
}
else {
work->speed = -work->speed;
work->tplvl = 1.0f;
}
Hu3DModelTPLvlSet(work->id, work->tplvl * work->tpMultiplier);
Hu3DModelAttrReset(work->id, 1);
process = HuPrcChildCreate(FadeModel, 100, 5376, 0, HuPrcCurrentGet());
process->user_data = work;
}
static void FadeModel(void)
{
FaderWork2 *var_r31 = HuPrcCurrentGet()->user_data;
while (TRUE) {
var_r31->tplvl += var_r31->speed;
if (var_r31->tplvl > 1.0f) {
var_r31->tplvl = 1.0f;
break;
}
else if (var_r31->tplvl < 0.0f) {
var_r31->tplvl = 0.0f;
break;
}
else {
Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier);
HuPrcVSleep();
}
}
Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier);
if (var_r31->speed < 0.0f) {
Hu3DModelAttrSet(var_r31->id, 1);
}
HuMemDirectFree(var_r31);
HuPrcEnd();
}
void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2)
BOOL PresentPadCheck(u16 btn)
{
Process *var_r30;
// TODO correct type? why are only 12 bytes allocated?
UnkPresentStruct6Weird *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM);
var_r31->unk_00 = arg0;
var_r31->unk_0C = 1.0f / arg2;
var_r31->unk_04 = arg8;
if (arg1) {
var_r31->unk_0C = var_r31->unk_0C;
var_r31->unk_08 = 0.0f;
}
else {
var_r31->unk_0C = -var_r31->unk_0C;
var_r31->unk_08 = 1.0f;
}
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
Hu3DModelAttrReset(var_r31->unk_00, 1);
var_r30 = HuPrcChildCreate(fn_1_45C, 100, 5376, 0, HuPrcCurrentGet());
var_r30->user_data = var_r31;
}
static void fn_1_45C(void)
{
UnkPresentStruct6Weird *var_r31 = HuPrcCurrentGet()->user_data;
while (TRUE) {
var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_0C;
if (var_r31->unk_08 > 1.0f) {
var_r31->unk_08 = 1.0f;
break;
}
else if (var_r31->unk_08 < 0.0f) {
var_r31->unk_08 = 0.0f;
break;
}
else {
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
HuPrcVSleep();
}
}
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
if (var_r31->unk_0C < 0.0f) {
Hu3DModelAttrSet(var_r31->unk_00, 1);
}
HuMemDirectFree(var_r31);
HuPrcEnd();
}
s32 fn_1_550(u16 arg0)
{
u32 var_r31 = HuPadBtnDown[0] & arg0;
u32 var_r31 = HuPadBtnDown[0] & btn;
return var_r31 != 0;
}
s32 fn_1_584(u16 arg0)
BOOL PresentPadDStkRepCheck(u16 dir)
{
u32 var_r31 = HuPadDStkRep[0] & arg0;
u32 var_r31 = HuPadDStkRep[0] & dir;
return var_r31 != 0;
}
s32 fn_1_5B8(u16 arg0)
BOOL PresentPadDStkCheck(u16 dir)
{
u32 var_r31 = HuPadDStk[0] & arg0;
u32 var_r31 = HuPadDStk[0] & dir;
return var_r31 != 0;
}
static void fn_1_5EC(omObjData *object)
static void SceneMain(omObjData *object)
{
switch (object->unk10) {
case 0:
@ -176,7 +176,7 @@ static void fn_1_5EC(omObjData *object)
break;
case 3:
if (!WipeStatGet()) {
fn_1_3B18(lbl_1_bss_18);
PresentStateKill(presentState);
omOvlReturnEx(1, 1);
}
break;