Finished mpexDll/main.c
This commit is contained in:
parent
e501678f5d
commit
b3e563bdf0
5 changed files with 547 additions and 3 deletions
|
|
@ -6,8 +6,11 @@ Sections:
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/mpexDll/main.c:
|
REL/mpexDll/main.c:
|
||||||
.text start:0x00000000 end:0x00003044
|
.text start:0x000000A0 end:0x00003044
|
||||||
.rodata start:0x00000000 end:0x000000A0
|
.rodata start:0x00000000 end:0x000000A0
|
||||||
.data start:0x00000000 end:0x00000240
|
.data start:0x00000000 end:0x00000240
|
||||||
.bss start:0x00000000 end:0x000000A8
|
.bss start:0x00000000 end:0x000000A8
|
||||||
|
|
|
||||||
|
|
@ -213,6 +213,8 @@ fn_1_1CB80 = .text:0x0001CB80; // type:function size:0x4AC
|
||||||
fn_1_1D02C = .text:0x0001D02C; // type:function size:0x16C
|
fn_1_1D02C = .text:0x0001D02C; // type:function size:0x16C
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||||
|
__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double
|
||||||
|
__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
|
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
|
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
|
||||||
|
|
@ -436,7 +438,8 @@ lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20
|
||||||
lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte
|
lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte
|
lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte
|
||||||
lbl_1_data_788 = .data:0x00000788; // type:object size:0x318
|
lbl_1_data_788 = .data:0x00000788; // type:object size:0x318
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:4byte
|
||||||
lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float
|
lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float
|
||||||
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte
|
lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -1299,7 +1299,7 @@ config.libs = [
|
||||||
Rel(
|
Rel(
|
||||||
"mpexDll",
|
"mpexDll",
|
||||||
objects={
|
objects={
|
||||||
Object(NonMatching, "REL/mpexDll/main.c"),
|
Object(Matching, "REL/mpexDll/main.c"),
|
||||||
Object(NonMatching, "REL/mpexDll/mpex.c"),
|
Object(NonMatching, "REL/mpexDll/mpex.c"),
|
||||||
Object(NonMatching, "REL/mpexDll/charsel.c"),
|
Object(NonMatching, "REL/mpexDll/charsel.c"),
|
||||||
Object(NonMatching, "REL/mpexDll/mgname.c"),
|
Object(NonMatching, "REL/mpexDll/mgname.c"),
|
||||||
|
|
|
||||||
37
include/REL/mpexDll.h
Normal file
37
include/REL/mpexDll.h
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
#ifndef MPEXDLL_H
|
||||||
|
#define MPEXDLL_H
|
||||||
|
|
||||||
|
#include "game/object.h"
|
||||||
|
|
||||||
|
typedef void (*MpexDllUnkFunc)(void);
|
||||||
|
|
||||||
|
typedef struct MpexDllUnkStruct {
|
||||||
|
/* 0x00 */ MpexDllUnkFunc unk_00;
|
||||||
|
/* 0x04 */ void *unk_04; // func, unknown args
|
||||||
|
/* 0x08 */ Vec unk_08;
|
||||||
|
/* 0x14 */ Vec unk_14;
|
||||||
|
/* 0x20 */ Vec unk_20;
|
||||||
|
/* 0x2C */ Vec unk_2C;
|
||||||
|
/* 0x38 */ float unk_38;
|
||||||
|
/* 0x3C */ float unk_3C;
|
||||||
|
/* 0x40 */ s32 unk_40;
|
||||||
|
} MpexDllUnkStruct; /* size = 0x44 */
|
||||||
|
|
||||||
|
typedef struct MpexDllUnkStruct2 {
|
||||||
|
/* 0x00 */ char unk00[0x40];
|
||||||
|
/* 0x40 */ s16 *unk_40;
|
||||||
|
/* 0x44 */ char unk44;
|
||||||
|
/* 0x48 */ s16 *unk_48;
|
||||||
|
/* 0x4C */ char unk_4C[0xC];
|
||||||
|
/* 0x58 */ u32 unk_58;
|
||||||
|
} MpexDllUnkStruct2; /* size = unknown */
|
||||||
|
|
||||||
|
s32 fn_1_3044(Process *arg0);
|
||||||
|
|
||||||
|
// s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c
|
||||||
|
s32 fn_1_1B554(float, float, float);
|
||||||
|
s32 fn_1_1B574(float, float, float, float);
|
||||||
|
s32 fn_1_1B64C(float, float, float, float);
|
||||||
|
s32 fn_1_1B7D0(s32 arg0);
|
||||||
|
|
||||||
|
#endif
|
||||||
501
src/REL/mpexDll/main.c
Normal file
501
src/REL/mpexDll/main.c
Normal file
|
|
@ -0,0 +1,501 @@
|
||||||
|
#include "ext_math.h"
|
||||||
|
#include "game/armem.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/hsfmotion.h"
|
||||||
|
#include "game/objsub.h"
|
||||||
|
#include "game/pad.h"
|
||||||
|
#include "game/printfunc.h"
|
||||||
|
#include "game/wipe.h"
|
||||||
|
#include "rel_sqrt_consts.h"
|
||||||
|
|
||||||
|
#include "REL/mpexDll.h"
|
||||||
|
|
||||||
|
void fn_1_230();
|
||||||
|
void fn_1_A70(MpexDllUnkStruct *arg0);
|
||||||
|
|
||||||
|
MpexDllUnkStruct lbl_1_bss_64;
|
||||||
|
s32 lbl_1_bss_4[0x18];
|
||||||
|
Process *lbl_1_bss_0; // it's something bigger
|
||||||
|
|
||||||
|
void fn_1_A0(void)
|
||||||
|
{
|
||||||
|
if (HuPadBtnDown[0] & PAD_BUTTON_Y) {
|
||||||
|
OSReport("\n###################################################################### HEAP\n\n");
|
||||||
|
HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1);
|
||||||
|
OSReport("\n###################################################################### SOUND\n\n");
|
||||||
|
HuMemHeapDump(HuMemHeapPtrGet(HEAP_MUSIC), -1);
|
||||||
|
OSReport("\n###################################################################### MODEL\n\n");
|
||||||
|
HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1);
|
||||||
|
OSReport("\n###################################################################### DVD\n\n");
|
||||||
|
HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1);
|
||||||
|
OSReport("\n###################################################################### SPACE\n\n");
|
||||||
|
HuMemHeapDump(HuMemHeapPtrGet(HEAP_MISC), -1);
|
||||||
|
OSReport("\n###################################################################### ARAM\n\n");
|
||||||
|
HuAMemDump();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_188(omObjData *object)
|
||||||
|
{
|
||||||
|
if (WipeStatGet() == 0) {
|
||||||
|
omOvlReturnEx(1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1C0(omObjData *object)
|
||||||
|
{
|
||||||
|
if (omSysExitReq != 0) {
|
||||||
|
HuAudFadeOut(0x3E8);
|
||||||
|
WipeColorSet(0, 0, 0);
|
||||||
|
WipeCreate(2, 0, -1);
|
||||||
|
object->func = fn_1_188;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_230(void)
|
||||||
|
{
|
||||||
|
mgPracticeEnableF = 0;
|
||||||
|
lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000);
|
||||||
|
GWSystem.mg_next = 0xFFFF;
|
||||||
|
fn_1_3044(lbl_1_bss_0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_298(void)
|
||||||
|
{
|
||||||
|
s32 var_r31;
|
||||||
|
|
||||||
|
var_r31 = -1;
|
||||||
|
var_r31 = Hu3DGLightCreate(0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF);
|
||||||
|
Hu3DGLightPosAimSet(var_r31, 0.0f, 1000.0f, 1000.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
Hu3DGLightInfinitytSet(var_r31);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_374(void)
|
||||||
|
{
|
||||||
|
Vec sp20 = { 0.0f, 3000.0f, 3000.0f };
|
||||||
|
Vec sp14 = { 0.0f, 0.0f, 0.0f };
|
||||||
|
Vec sp8 = { 0.0f, 1.0f, 0.0f };
|
||||||
|
|
||||||
|
Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f);
|
||||||
|
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
|
||||||
|
Hu3DShadowTPLvlSet(0.8f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_438(void)
|
||||||
|
{
|
||||||
|
MpexDllUnkStruct *var_r31 = &lbl_1_bss_64;
|
||||||
|
|
||||||
|
if (HuPadBtn[0] & PAD_BUTTON_B) {
|
||||||
|
if (HuPadBtn[0] & 0x20) {
|
||||||
|
var_r31->unk_08.z -= (HuPadStkY[0] / 10.0f);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var_r31->unk_08.x += HuPadStkX[0] / 10.0f;
|
||||||
|
var_r31->unk_08.y += (HuPadStkY[0] / 10.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (HuPadBtn[0] & PAD_BUTTON_Y) {
|
||||||
|
var_r31->unk_20.x -= HuPadStkY[0] / 100.0f;
|
||||||
|
var_r31->unk_20.y += (HuPadStkX[0] / 100.0f);
|
||||||
|
if (var_r31->unk_20.x < 0.0f) {
|
||||||
|
var_r31->unk_20.x += 360.0f;
|
||||||
|
}
|
||||||
|
if (var_r31->unk_20.x >= 360.0f) {
|
||||||
|
var_r31->unk_20.x -= 360.0f;
|
||||||
|
}
|
||||||
|
if (var_r31->unk_20.y < 0.0f) {
|
||||||
|
var_r31->unk_20.y += 360.0f;
|
||||||
|
}
|
||||||
|
if (var_r31->unk_20.y >= 360.0f) {
|
||||||
|
var_r31->unk_20.y -= 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (HuPadBtn[0] & PAD_BUTTON_X) {
|
||||||
|
var_r31->unk_38 -= (HuPadStkY[0] / 10.0f);
|
||||||
|
}
|
||||||
|
print8(0x18, 0x28, 1.0f, ">>>>>>>>>> CAMERA DATA <<<<<<<<<<");
|
||||||
|
print8(0x18, 0x32, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z);
|
||||||
|
print8(0x18, 0x3C, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z);
|
||||||
|
print8(0x18, 0x46, 1.0f, "ZOOM : %.2f", var_r31->unk_38);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_81C(omObjData *object)
|
||||||
|
{
|
||||||
|
MpexDllUnkStruct *var_r31 = &lbl_1_bss_64;
|
||||||
|
if (var_r31->unk_00 != NULL) {
|
||||||
|
var_r31->unk_00();
|
||||||
|
}
|
||||||
|
Center.x = var_r31->unk_08.x;
|
||||||
|
Center.y = var_r31->unk_08.y;
|
||||||
|
Center.z = var_r31->unk_08.z;
|
||||||
|
CRot.x = var_r31->unk_20.x;
|
||||||
|
CRot.y = var_r31->unk_20.y;
|
||||||
|
CRot.z = var_r31->unk_20.z;
|
||||||
|
CZoom = var_r31->unk_38;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_8D4(MpexDllUnkFunc arg0)
|
||||||
|
{
|
||||||
|
lbl_1_bss_64.unk_00 = arg0;
|
||||||
|
fn_1_A70(&lbl_1_bss_64);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_910(MpexDllUnkFunc arg0)
|
||||||
|
{
|
||||||
|
Hu3DCameraCreate(1);
|
||||||
|
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||||
|
Hu3DCameraPerspectiveSet(1, 45.0f, 20.0f, 5000.0f, 1.2f);
|
||||||
|
lbl_1_bss_64.unk_00 = arg0;
|
||||||
|
lbl_1_bss_64.unk_04 = fn_1_438;
|
||||||
|
omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView);
|
||||||
|
omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_81C);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A34(MpexDllUnkStruct *arg0)
|
||||||
|
{
|
||||||
|
arg0->unk_08.x = arg0->unk_14.x;
|
||||||
|
arg0->unk_08.y = arg0->unk_14.y;
|
||||||
|
arg0->unk_08.z = arg0->unk_14.z;
|
||||||
|
arg0->unk_20.x = arg0->unk_2C.x;
|
||||||
|
arg0->unk_20.y = arg0->unk_2C.y;
|
||||||
|
arg0->unk_20.z = arg0->unk_2C.z;
|
||||||
|
arg0->unk_38 = arg0->unk_3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A70(MpexDllUnkStruct *arg0)
|
||||||
|
{
|
||||||
|
arg0->unk_40 = 0;
|
||||||
|
arg0->unk_14.x = arg0->unk_08.x;
|
||||||
|
arg0->unk_14.y = arg0->unk_08.y;
|
||||||
|
arg0->unk_14.z = arg0->unk_08.z;
|
||||||
|
arg0->unk_2C.x = arg0->unk_20.x;
|
||||||
|
arg0->unk_2C.y = arg0->unk_20.y;
|
||||||
|
arg0->unk_2C.z = arg0->unk_20.z;
|
||||||
|
arg0->unk_3C = arg0->unk_38;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_AB4(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8)
|
||||||
|
{
|
||||||
|
arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, arg8);
|
||||||
|
arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, arg8);
|
||||||
|
arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, arg8);
|
||||||
|
arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, arg8);
|
||||||
|
arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, arg8);
|
||||||
|
arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, arg8);
|
||||||
|
arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, arg8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_C84(MpexDllUnkStruct *arg0, float arg8, float argB)
|
||||||
|
{
|
||||||
|
arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg0->unk_14.x, arg8);
|
||||||
|
arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg0->unk_14.y, arg8);
|
||||||
|
arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg0->unk_14.z, arg8);
|
||||||
|
arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg0->unk_2C.x, arg8);
|
||||||
|
arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg0->unk_2C.y, arg8);
|
||||||
|
arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg0->unk_2C.z, arg8);
|
||||||
|
arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg0->unk_3C, arg8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_E48(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1048(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = arg1->unk_14.x;
|
||||||
|
arg0->unk_08.y = arg1->unk_14.y;
|
||||||
|
arg0->unk_08.z = arg1->unk_14.z;
|
||||||
|
arg0->unk_20.x = arg1->unk_2C.x;
|
||||||
|
arg0->unk_20.y = arg1->unk_2C.y;
|
||||||
|
arg0->unk_20.z = arg1->unk_2C.z;
|
||||||
|
arg0->unk_38 = arg1->unk_3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1280(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA);
|
||||||
|
arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA);
|
||||||
|
arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA);
|
||||||
|
arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA);
|
||||||
|
arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA);
|
||||||
|
arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA);
|
||||||
|
arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_161C(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_181C(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = arg1->unk_14.x;
|
||||||
|
arg0->unk_08.y = arg1->unk_14.y;
|
||||||
|
arg0->unk_08.z = arg1->unk_14.z;
|
||||||
|
arg0->unk_20.x = arg1->unk_2C.x;
|
||||||
|
arg0->unk_20.y = arg1->unk_2C.y;
|
||||||
|
arg0->unk_20.z = arg1->unk_2C.z;
|
||||||
|
arg0->unk_38 = arg1->unk_3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1A54(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA);
|
||||||
|
arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA);
|
||||||
|
arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA);
|
||||||
|
arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA);
|
||||||
|
arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA);
|
||||||
|
arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA);
|
||||||
|
arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1DF0(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1FF0(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = arg1->unk_14.x;
|
||||||
|
arg0->unk_08.y = arg1->unk_14.y;
|
||||||
|
arg0->unk_08.z = arg1->unk_14.z;
|
||||||
|
arg0->unk_20.x = arg1->unk_2C.x;
|
||||||
|
arg0->unk_20.y = arg1->unk_2C.y;
|
||||||
|
arg0->unk_20.z = arg1->unk_2C.z;
|
||||||
|
arg0->unk_38 = arg1->unk_3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2228(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC)
|
||||||
|
{
|
||||||
|
arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9);
|
||||||
|
arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9);
|
||||||
|
arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9);
|
||||||
|
arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9);
|
||||||
|
arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9);
|
||||||
|
arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9);
|
||||||
|
arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9);
|
||||||
|
arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA);
|
||||||
|
arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA);
|
||||||
|
arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA);
|
||||||
|
arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA);
|
||||||
|
arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA);
|
||||||
|
arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA);
|
||||||
|
arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4)
|
||||||
|
{
|
||||||
|
switch (arg4) {
|
||||||
|
case 0:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4)
|
||||||
|
{
|
||||||
|
if (arg0->unk_58 != arg0->unk_48[arg2]) {
|
||||||
|
arg0->unk_58 = arg0->unk_48[arg2];
|
||||||
|
switch (arg4) {
|
||||||
|
case 0:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_28DC(void) { }
|
||||||
|
|
||||||
|
void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4)
|
||||||
|
{
|
||||||
|
Vec sp4C;
|
||||||
|
Vec sp40;
|
||||||
|
Vec sp34;
|
||||||
|
Vec sp28;
|
||||||
|
Vec sp1C;
|
||||||
|
Vec sp10;
|
||||||
|
|
||||||
|
s32 var_r29 = 0;
|
||||||
|
s32 var_r28 = 0;
|
||||||
|
s32 var_r26;
|
||||||
|
|
||||||
|
sp40.x = Hu3DData[arg0->unk_40[arg1]].pos.x;
|
||||||
|
sp40.y = Hu3DData[arg0->unk_40[arg1]].pos.y;
|
||||||
|
sp40.z = Hu3DData[arg0->unk_40[arg1]].pos.z;
|
||||||
|
|
||||||
|
sp34.x = arg2->x;
|
||||||
|
sp34.y = arg2->y;
|
||||||
|
sp34.z = arg2->z;
|
||||||
|
|
||||||
|
sp1C.x = Hu3DData[arg0->unk_40[arg1]].rot.x;
|
||||||
|
sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y;
|
||||||
|
sp1C.z = Hu3DData[arg0->unk_40[arg1]].rot.z;
|
||||||
|
|
||||||
|
sp10.x = 0.0f;
|
||||||
|
sp10.y = arg8;
|
||||||
|
sp10.z = 0.0f;
|
||||||
|
|
||||||
|
if ((sp34.x - sp40.x) >= 0.0f) {
|
||||||
|
var_r29 = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var_r29 = 0;
|
||||||
|
}
|
||||||
|
if ((sp34.z - sp40.z) >= 0.0f) {
|
||||||
|
var_r28 = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var_r28 = 0;
|
||||||
|
}
|
||||||
|
while (arg3 != 0) {
|
||||||
|
fn_1_1B7D0(1);
|
||||||
|
sp28.y = -((atan2d(sp34.z - sp40.z, sp34.x - sp40.x)) - 90.0);
|
||||||
|
if (sp28.y < 0.0f) {
|
||||||
|
sp28.y += 360.0f;
|
||||||
|
}
|
||||||
|
else if (sp28.y >= 360.0f) {
|
||||||
|
sp28.y -= 360.0f;
|
||||||
|
}
|
||||||
|
if (arg4 != 0) {
|
||||||
|
if (sp28.y >= 180.0f) {
|
||||||
|
if ((sp1C.y - sp28.y) >= 180.0f) {
|
||||||
|
sp1C.y -= 360.0f;
|
||||||
|
}
|
||||||
|
if ((sp1C.y - sp28.y) < -180.0f) {
|
||||||
|
sp1C.y += 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((sp1C.y - sp28.y) > 180.0f) {
|
||||||
|
sp1C.y -= 360.0f;
|
||||||
|
}
|
||||||
|
if ((sp1C.y - sp28.y) <= -180.0f) {
|
||||||
|
sp1C.y += 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sp4C.x = (sp40.x += (arg9 * sind(sp28.y)));
|
||||||
|
sp4C.z = (sp40.z += (arg9 * cosd(sp28.y)));
|
||||||
|
if (var_r29 == 1) {
|
||||||
|
if (sp40.x >= sp34.x) {
|
||||||
|
sp4C.x = sp40.x = sp34.x;
|
||||||
|
var_r29 = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((var_r29 == 0) && (sp40.x <= sp34.x)) {
|
||||||
|
sp4C.x = sp40.x = sp34.x;
|
||||||
|
var_r29 = 2;
|
||||||
|
}
|
||||||
|
if (var_r28 == 1) {
|
||||||
|
if (sp40.z >= sp34.z) {
|
||||||
|
sp4C.z = sp40.z = sp34.z;
|
||||||
|
var_r28 = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((var_r28 == 0) && (sp40.z <= sp34.z)) {
|
||||||
|
sp4C.z = sp40.z = sp34.z;
|
||||||
|
var_r28 = 2;
|
||||||
|
}
|
||||||
|
if (arg4 != 0) {
|
||||||
|
sp1C.y = fn_1_1B554(sp1C.y, sp28.y, argA);
|
||||||
|
}
|
||||||
|
Hu3DModelPosSet(arg0->unk_40[arg1], sp4C.x, sp40.y, sp4C.z);
|
||||||
|
Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp1C.y, sp1C.z);
|
||||||
|
|
||||||
|
if (var_r29 == 2 && var_r28 == 2) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y;
|
||||||
|
if (arg4 != 0) {
|
||||||
|
for (var_r26 = 0; var_r26 <= argA; var_r26++) {
|
||||||
|
fn_1_1B7D0(1);
|
||||||
|
if (sp10.y >= 180.0f) {
|
||||||
|
if ((sp1C.y - sp10.y) >= 180.0f) {
|
||||||
|
sp1C.y -= 360.0f;
|
||||||
|
}
|
||||||
|
if ((sp1C.y - sp10.y) < -180.0f) {
|
||||||
|
sp1C.y += 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((sp1C.y - sp10.y) > 180.0f) {
|
||||||
|
sp1C.y -= 360.0f;
|
||||||
|
}
|
||||||
|
if ((sp1C.y - sp10.y) <= -180.0f) {
|
||||||
|
sp1C.y += 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sp10.z = fn_1_1B52C(sp1C.y, sp10.y, var_r26, argA);
|
||||||
|
Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp10.z, sp1C.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue