Fully match MotionLoad
Still some file issues
This commit is contained in:
parent
afd8fce01d
commit
83140bb795
1 changed files with 78 additions and 37 deletions
|
|
@ -1082,6 +1082,9 @@ static inline int FindMotionAttributeName(char *name)
|
||||||
|
|
||||||
static inline void MotionLoadTransform(HsfTrack *track, void *data)
|
static inline void MotionLoadTransform(HsfTrack *track, void *data)
|
||||||
{
|
{
|
||||||
|
float *step_data;
|
||||||
|
float *linear_data;
|
||||||
|
float *bezier_data;
|
||||||
HsfTrack *out_track;
|
HsfTrack *out_track;
|
||||||
char *name;
|
char *name;
|
||||||
s32 numKeyframes;
|
s32 numKeyframes;
|
||||||
|
|
@ -1094,22 +1097,22 @@ static inline void MotionLoadTransform(HsfTrack *track, void *data)
|
||||||
switch(track->curveType) {
|
switch(track->curveType) {
|
||||||
case HSF_CURVE_STEP:
|
case HSF_CURVE_STEP:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
step_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = step_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_LINEAR:
|
case HSF_CURVE_LINEAR:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
linear_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = linear_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BEZIER:
|
case HSF_CURVE_BEZIER:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
bezier_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = bezier_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1120,9 +1123,13 @@ static inline void MotionLoadTransform(HsfTrack *track, void *data)
|
||||||
|
|
||||||
static inline void MotionLoadCluster(HsfTrack *track, void *data)
|
static inline void MotionLoadCluster(HsfTrack *track, void *data)
|
||||||
{
|
{
|
||||||
|
s32 numKeyframes;
|
||||||
|
float *step_data;
|
||||||
|
float *linear_data;
|
||||||
|
float *bezier_data;
|
||||||
HsfTrack *out_track;
|
HsfTrack *out_track;
|
||||||
char *name;
|
char *name;
|
||||||
s32 numKeyframes;
|
|
||||||
out_track = track;
|
out_track = track;
|
||||||
name = SetMotionName(&track->target);
|
name = SetMotionName(&track->target);
|
||||||
if(!MotionOnly) {
|
if(!MotionOnly) {
|
||||||
|
|
@ -1131,25 +1138,26 @@ static inline void MotionLoadCluster(HsfTrack *track, void *data)
|
||||||
AS_S16(out_track->target) = FindMotionClusterName(name);
|
AS_S16(out_track->target) = FindMotionClusterName(name);
|
||||||
}
|
}
|
||||||
numKeyframes = AS_S16(track->numKeyframes);
|
numKeyframes = AS_S16(track->numKeyframes);
|
||||||
|
(void)out_track;
|
||||||
switch(track->curveType) {
|
switch(track->curveType) {
|
||||||
case HSF_CURVE_STEP:
|
case HSF_CURVE_STEP:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
step_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = step_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_LINEAR:
|
case HSF_CURVE_LINEAR:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
linear_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = linear_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BEZIER:
|
case HSF_CURVE_BEZIER:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
bezier_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = bezier_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1160,9 +1168,13 @@ static inline void MotionLoadCluster(HsfTrack *track, void *data)
|
||||||
|
|
||||||
static inline void MotionLoadClusterWeight(HsfTrack *track, void *data)
|
static inline void MotionLoadClusterWeight(HsfTrack *track, void *data)
|
||||||
{
|
{
|
||||||
|
s32 numKeyframes;
|
||||||
|
float *step_data;
|
||||||
|
float *linear_data;
|
||||||
|
float *bezier_data;
|
||||||
HsfTrack *out_track;
|
HsfTrack *out_track;
|
||||||
char *name;
|
char *name;
|
||||||
s32 numKeyframes;
|
|
||||||
out_track = track;
|
out_track = track;
|
||||||
name = SetMotionName(&track->target);
|
name = SetMotionName(&track->target);
|
||||||
if(!MotionOnly) {
|
if(!MotionOnly) {
|
||||||
|
|
@ -1171,25 +1183,26 @@ static inline void MotionLoadClusterWeight(HsfTrack *track, void *data)
|
||||||
AS_S16(out_track->target) = FindMotionClusterName(name);
|
AS_S16(out_track->target) = FindMotionClusterName(name);
|
||||||
}
|
}
|
||||||
numKeyframes = AS_S16(track->numKeyframes);
|
numKeyframes = AS_S16(track->numKeyframes);
|
||||||
|
(void)out_track;
|
||||||
switch(track->curveType) {
|
switch(track->curveType) {
|
||||||
case HSF_CURVE_STEP:
|
case HSF_CURVE_STEP:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
step_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = step_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_LINEAR:
|
case HSF_CURVE_LINEAR:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
linear_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = linear_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BEZIER:
|
case HSF_CURVE_BEZIER:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
bezier_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = bezier_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1200,6 +1213,9 @@ static inline void MotionLoadClusterWeight(HsfTrack *track, void *data)
|
||||||
|
|
||||||
static inline void MotionLoadMaterial(HsfTrack *track, void *data)
|
static inline void MotionLoadMaterial(HsfTrack *track, void *data)
|
||||||
{
|
{
|
||||||
|
float *step_data;
|
||||||
|
float *linear_data;
|
||||||
|
float *bezier_data;
|
||||||
s32 numKeyframes;
|
s32 numKeyframes;
|
||||||
HsfTrack *out_track;
|
HsfTrack *out_track;
|
||||||
out_track = track;
|
out_track = track;
|
||||||
|
|
@ -1207,22 +1223,22 @@ static inline void MotionLoadMaterial(HsfTrack *track, void *data)
|
||||||
switch(track->curveType) {
|
switch(track->curveType) {
|
||||||
case HSF_CURVE_STEP:
|
case HSF_CURVE_STEP:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
step_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = step_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_LINEAR:
|
case HSF_CURVE_LINEAR:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
linear_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = linear_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BEZIER:
|
case HSF_CURVE_BEZIER:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
bezier_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = bezier_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1233,6 +1249,12 @@ static inline void MotionLoadMaterial(HsfTrack *track, void *data)
|
||||||
|
|
||||||
static inline void MotionLoadAttribute(HsfTrack *track, void *data)
|
static inline void MotionLoadAttribute(HsfTrack *track, void *data)
|
||||||
{
|
{
|
||||||
|
HsfBitmapKey *file_frame;
|
||||||
|
HsfBitmapKey *new_frame;
|
||||||
|
s32 i;
|
||||||
|
float *step_data;
|
||||||
|
float *linear_data;
|
||||||
|
float *bezier_data;
|
||||||
HsfTrack *out_track;
|
HsfTrack *out_track;
|
||||||
char *name;
|
char *name;
|
||||||
out_track = track;
|
out_track = track;
|
||||||
|
|
@ -1248,30 +1270,27 @@ static inline void MotionLoadAttribute(HsfTrack *track, void *data)
|
||||||
switch(track->curveType) {
|
switch(track->curveType) {
|
||||||
case HSF_CURVE_STEP:
|
case HSF_CURVE_STEP:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
step_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = step_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_LINEAR:
|
case HSF_CURVE_LINEAR:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
linear_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = linear_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BEZIER:
|
case HSF_CURVE_BEZIER:
|
||||||
{
|
{
|
||||||
void *temp_data = (void *)((u32)data+(u32)track->data);
|
bezier_data = (float *)((u32)data+(u32)track->data);
|
||||||
out_track->data = temp_data;
|
out_track->data = bezier_data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HSF_CURVE_BITMAP:
|
case HSF_CURVE_BITMAP:
|
||||||
{
|
{
|
||||||
HsfBitmapKey *file_frame;
|
|
||||||
HsfBitmapKey *new_frame;
|
|
||||||
s32 i;
|
|
||||||
new_frame = file_frame = (HsfBitmapKey *)((u32)data+(u32)track->data);
|
new_frame = file_frame = (HsfBitmapKey *)((u32)data+(u32)track->data);
|
||||||
out_track->data = file_frame;
|
out_track->data = file_frame;
|
||||||
for(i=0; i<out_track->numKeyframes; i++, file_frame++, new_frame++) {
|
for(i=0; i<out_track->numKeyframes; i++, file_frame++, new_frame++) {
|
||||||
|
|
@ -1284,7 +1303,6 @@ static inline void MotionLoadAttribute(HsfTrack *track, void *data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void MotionLoad(void)
|
static void MotionLoad(void)
|
||||||
{
|
{
|
||||||
HsfMotion *file_motion;
|
HsfMotion *file_motion;
|
||||||
|
|
@ -1332,7 +1350,30 @@ static void MotionLoad(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//HACK: Bump register of i to r31
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
|
(void)i;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MatrixLoad(void)
|
static void MatrixLoad(void)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue