Matched everything in present except two functions in present.c
This commit is contained in:
parent
6cbd25fc6c
commit
56a9e44b90
9 changed files with 2133 additions and 117 deletions
228
src/REL/present/common.c
Normal file
228
src/REL/present/common.c
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_4620(omObjData *arg0);
|
||||
void fn_1_4880(omObjData *arg0);
|
||||
|
||||
omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 };
|
||||
|
||||
static const s32 lbl_1_rodata_BD8[] = { 0x006E0089, 0x006E008A, 0x006E008B };
|
||||
|
||||
void fn_1_4A04(omObjData *object);
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA);
|
||||
|
||||
omObjData *fn_1_42F4(void)
|
||||
{
|
||||
omObjData *var_r31;
|
||||
s32 var_lr;
|
||||
s32 var_r29;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
|
||||
var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM);
|
||||
var_r31->data = var_r30;
|
||||
var_r30->x = 0.0f;
|
||||
var_r30->z = 0.0f;
|
||||
var_r30->y = 0.0f;
|
||||
var_r30->unk_20 = 0.0f;
|
||||
var_r30->unk_24 = 0.0f;
|
||||
var_r30->unk_28 = 0.0f;
|
||||
var_r30->unk_2C = 0.0f;
|
||||
var_r30->unk_34 = 0.0f;
|
||||
var_r30->unk_30 = 0.0f;
|
||||
var_r31->model[0] = Hu3DModelCreate(HuDataReadNum(0x6E0088, MEMORY_DEFAULT_NUM));
|
||||
Hu3DModelLayerSet(var_r31->model[0], 1);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 3; var_r29++) {
|
||||
var_r31->motion[var_r29] = Hu3DJointMotion(var_r31->model[0], HuDataSelHeapReadNum(lbl_1_rodata_BD8[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
}
|
||||
Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[var_r30->unk_04 = 0], 0.0f, 8.0f, 0x40000001);
|
||||
var_r30->unk_50 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[2], 1, 10);
|
||||
var_r30->unk_54 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[1], 0, 10);
|
||||
CharModelLayerSetAll(1);
|
||||
Hu3DModelShadowSet(var_r31->model[0]);
|
||||
fn_1_45C0(var_r31, 0);
|
||||
fn_1_4A04(var_r31);
|
||||
Hu3DModelAttrSet(var_r31->model[0], 1);
|
||||
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4534(omObjData *object)
|
||||
{
|
||||
s32 var_r31;
|
||||
void *var_r29;
|
||||
void *var_r30;
|
||||
|
||||
var_r29 = object->data;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
Hu3DModelKill(object->model[var_r31]);
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
Hu3DMotionKill(object->motion[var_r31]);
|
||||
}
|
||||
HuMemDirectFree(var_r29);
|
||||
}
|
||||
|
||||
void fn_1_45C0(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_00 = arg1;
|
||||
object->func = lbl_1_data_1A0[arg1];
|
||||
object->unk10 = 0;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_4604(omObjData *object)
|
||||
{
|
||||
s32 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
return *var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4620(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
omObjData *var_r30;
|
||||
void *var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
var_r31->x = -300.0f;
|
||||
var_r31->z = -180.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.025f;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r31->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r31->unk_14 = -300.0f + (300.0f * var_f31);
|
||||
var_r31->unk_2C = var_r31->unk_14 - var_r31->x;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
var_r31->x = 0.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.05f;
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_34 = 0.01f;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
var_r31->unk_24 = 0.0f;
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_30 = 0.0f;
|
||||
var_r31->unk_34 = 0.0f;
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
}
|
||||
|
||||
void fn_1_4880(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
void *var_r29;
|
||||
|
||||
var_r30 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
var_r30->unk_48 = 0.0f;
|
||||
var_r30->unk_4C = 0.025f;
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r30->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r30->unk_14 = -(300.0f * var_f31);
|
||||
var_r30->unk_2C = var_r30->unk_14 - var_r30->x;
|
||||
if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
(void)object;
|
||||
}
|
||||
|
||||
void fn_1_4A04(omObjData *object)
|
||||
{
|
||||
float var_f29;
|
||||
float var_f30;
|
||||
double var_f31;
|
||||
s16 var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = 0;
|
||||
var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34;
|
||||
var_r31->unk_38 = sqrtf(var_f30);
|
||||
if (0.001f <= var_r31->unk_38) {
|
||||
if (12.0f <= var_r31->unk_38) {
|
||||
var_r31->unk_2C = var_r31->unk_2C / var_r31->unk_38;
|
||||
var_r31->unk_34 = var_r31->unk_34 / var_r31->unk_38;
|
||||
var_r31->unk_38 = 12.0f;
|
||||
var_r31->unk_2C = 12.0f * var_r31->unk_2C;
|
||||
var_r31->unk_34 = 12.0f * var_r31->unk_34;
|
||||
}
|
||||
var_r31->unk_24 = fn_1_4CEC(var_r31->unk_24, atan2d(var_r31->unk_2C, var_r31->unk_34), 0.4f);
|
||||
|
||||
if (8.0f <= var_r31->unk_38) {
|
||||
var_r29 = 2;
|
||||
} else {
|
||||
var_r29 = 1;
|
||||
}
|
||||
}
|
||||
var_r31->x = var_r31->x + var_r31->unk_2C;
|
||||
var_r31->z = var_r31->z + var_r31->unk_34;
|
||||
if (var_r31->unk_04 != var_r29) {
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_04 = var_r29], 0.0f, 8.0f, 0x40000001); // or 0x41000000
|
||||
}
|
||||
omSetTra(object, var_r31->x, var_r31->y, var_r31->z);
|
||||
omSetRot(object, var_r31->unk_20, var_r31->unk_24, var_r31->unk_28);
|
||||
}
|
||||
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA)
|
||||
{
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
|
||||
var_f31 = fmod(arg9 - arg8, 360.0f);
|
||||
if (0.0f > var_f31) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (180.0f < var_f31) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
var_f30 = fmod(arg8 + (var_f31 * argA), 360.0f);
|
||||
if (0.0f > var_f30) {
|
||||
var_f30 += 360.0f;
|
||||
}
|
||||
return var_f30;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue