hsfload fixes

This commit is contained in:
dbalatoni13 2025-04-15 05:15:22 +02:00
parent 316d80a0ae
commit 7628f37163
12 changed files with 187 additions and 52 deletions

View file

@ -3347,14 +3347,13 @@ void PGObjReplica(ModelData *arg0, HsfObject *arg1)
}
}
HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1)
HsfObject *Hu3DObjDuplicate(HsfData *arg0, uintptr_t arg1)
{
HsfObject *temp_r27;
HsfObject *var_r30;
HsfObject *var_r31;
s16 i;
s16 j;
var_r31 = HuMemDirectMallocNum(HEAP_DATA, arg0->objectCnt * sizeof(HsfObject), arg1);
temp_r27 = var_r31;
var_r30 = arg0->object;
@ -3362,7 +3361,7 @@ HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1)
for (i = 0; i < arg0->objectCnt; i++, var_r31++, var_r30++) {
if (var_r31->type != 8 && var_r31->type != 7) {
if (var_r31->data.parent) {
var_r31->data.parent = (HsfObject *)((u8 *)temp_r27 + ((u32)var_r30->data.parent - (u32)arg0->object));
var_r31->data.parent = (HsfObject *)((u8 *)temp_r27 + ((uintptr_t)var_r30->data.parent - (uintptr_t)arg0->object));
}
var_r31->data.children = HuMemDirectMallocNum(HEAP_DATA, var_r30->data.childrenCount * 4, arg1);
if (var_r30->constData) {
@ -3370,7 +3369,7 @@ HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1)
memcpy(var_r31->constData, var_r30->constData, sizeof(HsfConstData));
}
for (j = 0; j < var_r30->data.childrenCount; j++) {
var_r31->data.children[j] = (HsfObject *)((u8 *)temp_r27 + ((u32)var_r30->data.children[j] - (u32)arg0->object));
var_r31->data.children[j] = (HsfObject *)((u8 *)temp_r27 + ((uintptr_t)var_r30->data.children[j] - (uintptr_t)arg0->object));
}
}
}