Discover chr anim run speeds
This commit is contained in:
parent
6d1ab5e6e9
commit
504cdb1f78
|
|
@ -1331,90 +1331,90 @@ s32 g_NumBgChrs = 0;
|
|||
s16 *g_TeamList = NULL;
|
||||
s16 *g_SquadronList = NULL;
|
||||
|
||||
struct var80067e6c var80067e6c[] = {
|
||||
{ ANIM_0028, 0 },
|
||||
struct animdist g_ChrAvgAnimMoveDistsHuman[] = {
|
||||
{ ANIM_0028, 0 },
|
||||
{ ANIM_RUNNING_TWOHANDGUN, 0 },
|
||||
{ ANIM_0029, 0 },
|
||||
{ ANIM_006B, 0 },
|
||||
{ ANIM_0029, 0 },
|
||||
{ ANIM_006B, 0 },
|
||||
{ ANIM_RUNNING_ONEHANDGUN, 0 },
|
||||
{ ANIM_005A, 0 },
|
||||
{ ANIM_0072, 0 },
|
||||
{ ANIM_0073, 0 },
|
||||
{ ANIM_005A, 0 },
|
||||
{ ANIM_006C, 0 },
|
||||
{ ANIM_0030, 0 },
|
||||
{ ANIM_0031, 0 },
|
||||
{ ANIM_0052, 0 },
|
||||
{ ANIM_0055, 0 },
|
||||
{ ANIM_006E, 0 },
|
||||
{ ANIM_006F, 0 },
|
||||
{ ANIM_0057, 0 },
|
||||
{ ANIM_0056, 0 },
|
||||
{ ANIM_006D, 0 },
|
||||
{ ANIM_005A, 0 },
|
||||
{ ANIM_0072, 0 },
|
||||
{ ANIM_0073, 0 },
|
||||
{ ANIM_005A, 0 },
|
||||
{ ANIM_006C, 0 },
|
||||
{ ANIM_0030, 0 },
|
||||
{ ANIM_0031, 0 },
|
||||
{ ANIM_0052, 0 },
|
||||
{ ANIM_0055, 0 },
|
||||
{ ANIM_006E, 0 },
|
||||
{ ANIM_006F, 0 },
|
||||
{ ANIM_0057, 0 },
|
||||
{ ANIM_0056, 0 },
|
||||
{ ANIM_006D, 0 },
|
||||
{ ANIM_RUNNING_ONEHANDGUN, 0 },
|
||||
{ ANIM_020A, 0 },
|
||||
{ ANIM_020D, 0 },
|
||||
{ ANIM_01F9, 0 },
|
||||
{ ANIM_01F8, 0 },
|
||||
{ ANIM_021D, 0 },
|
||||
{ ANIM_0016, 0 },
|
||||
{ ANIM_0018, 0 },
|
||||
{ ANIM_001B, 0 },
|
||||
{ ANIM_001D, 0 },
|
||||
{ ANIM_001E, 0 },
|
||||
{ ANIM_005C, 0 },
|
||||
{ ANIM_005D, 0 },
|
||||
{ ANIM_005E, 0 },
|
||||
{ ANIM_005F, 0 },
|
||||
{ ANIM_020A, 0 },
|
||||
{ ANIM_020D, 0 },
|
||||
{ ANIM_01F9, 0 },
|
||||
{ ANIM_01F8, 0 },
|
||||
{ ANIM_021D, 0 },
|
||||
{ ANIM_0016, 0 },
|
||||
{ ANIM_0018, 0 },
|
||||
{ ANIM_001B, 0 },
|
||||
{ ANIM_001D, 0 },
|
||||
{ ANIM_001E, 0 },
|
||||
{ ANIM_005C, 0 },
|
||||
{ ANIM_005D, 0 },
|
||||
{ ANIM_005E, 0 },
|
||||
{ ANIM_005F, 0 },
|
||||
{ -1 },
|
||||
};
|
||||
|
||||
struct var80067e6c var80067f84[] = {
|
||||
{ ANIM_0392, 0 },
|
||||
{ ANIM_0393, 0 },
|
||||
struct animdist g_ChrAvgAnimMoveDistsSkedar[] = {
|
||||
{ ANIM_0392, 0 },
|
||||
{ ANIM_0393, 0 },
|
||||
{ ANIM_SKEDAR_RUNNING, 0 },
|
||||
{ -1 },
|
||||
};
|
||||
|
||||
struct var80067e6c var80067fa4[] = {
|
||||
struct animdist g_ChrAvgAnimMoveDistsDrCaroll[] = {
|
||||
{ ANIM_015F, 0 },
|
||||
{ ANIM_0160, 0 },
|
||||
{ -1 },
|
||||
};
|
||||
|
||||
struct var80067e6c var80067fbc[] = {
|
||||
struct animdist g_ChrAvgAnimMoveDistsEyespy[] = {
|
||||
{ ANIM_015F, 0 },
|
||||
{ -1 },
|
||||
};
|
||||
|
||||
struct var80067e6c var80067fcc[] = {
|
||||
struct animdist g_ChrAvgAnimMoveDistsRobot[] = {
|
||||
{ ANIM_0238, 0 },
|
||||
{ -1 },
|
||||
};
|
||||
|
||||
struct var80067e6c *var80067fdc[] = {
|
||||
var80067e6c,
|
||||
var80067f84,
|
||||
var80067fa4,
|
||||
var80067fbc,
|
||||
var80067fcc,
|
||||
struct animdist *g_ChrAvgAnimMoveDists[] = {
|
||||
g_ChrAvgAnimMoveDistsHuman,
|
||||
g_ChrAvgAnimMoveDistsSkedar,
|
||||
g_ChrAvgAnimMoveDistsDrCaroll,
|
||||
g_ChrAvgAnimMoveDistsEyespy,
|
||||
g_ChrAvgAnimMoveDistsRobot,
|
||||
};
|
||||
|
||||
f32 func0f02dff0(s16 animnum)
|
||||
f32 chr_get_anim_movedist_per_frame(s16 animnum)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAYCOUNT(var80067fdc); i++) {
|
||||
for (i = 0; i < ARRAYCOUNT(g_ChrAvgAnimMoveDists); i++) {
|
||||
s32 j = 0;
|
||||
s16 thisanimnum = var80067fdc[i][j].animnum;
|
||||
s16 thisanimnum = g_ChrAvgAnimMoveDists[i][j].animnum;
|
||||
|
||||
while (thisanimnum >= 0) {
|
||||
if (thisanimnum == animnum) {
|
||||
return var80067fdc[i][j].value;
|
||||
return g_ChrAvgAnimMoveDists[i][j].value;
|
||||
}
|
||||
|
||||
j++;
|
||||
thisanimnum = var80067fdc[i][j].animnum;
|
||||
thisanimnum = g_ChrAvgAnimMoveDists[i][j].animnum;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2169,28 +2169,16 @@ void chr_run_pos_choose_animation(struct chrdata *chr)
|
|||
if (race == RACE_HUMAN) {
|
||||
if (heavy) {
|
||||
f32 mult = 0.5;
|
||||
#if PAL
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_RUNNING_TWOHANDGUN) * mult) * distance * 0.83333331346512f;
|
||||
#else
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_RUNNING_TWOHANDGUN) * mult) * distance;
|
||||
#endif
|
||||
chr->act_runpos.eta60 = PALDOWNF(1.0f / (chr_get_anim_movedist_per_frame(ANIM_RUNNING_TWOHANDGUN) * mult) * distance);
|
||||
model_set_animation(chr->model, ANIM_RUNNING_TWOHANDGUN, flip, 0, mult, 16);
|
||||
} else {
|
||||
f32 mult = 0.5;
|
||||
#if PAL
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_RUNNING_ONEHANDGUN) * mult) * distance * 0.83333331346512f;
|
||||
#else
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_RUNNING_ONEHANDGUN) * mult) * distance;
|
||||
#endif
|
||||
chr->act_runpos.eta60 = PALDOWNF(1.0f / (chr_get_anim_movedist_per_frame(ANIM_RUNNING_ONEHANDGUN) * mult) * distance);
|
||||
model_set_animation(chr->model, ANIM_RUNNING_ONEHANDGUN, flip, 0, mult, 16);
|
||||
}
|
||||
} else if (race == RACE_SKEDAR) {
|
||||
f32 mult = 0.5;
|
||||
#if PAL
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_SKEDAR_RUNNING) * mult) * distance * 0.83333331346512f;
|
||||
#else
|
||||
chr->act_runpos.eta60 = 1.0f / (func0f02dff0(ANIM_SKEDAR_RUNNING) * mult) * distance;
|
||||
#endif
|
||||
chr->act_runpos.eta60 = PALDOWNF(1.0f / (chr_get_anim_movedist_per_frame(ANIM_SKEDAR_RUNNING) * mult) * distance);
|
||||
model_set_animation(chr->model, ANIM_SKEDAR_RUNNING, flip, 0, mult, 16);
|
||||
}
|
||||
}
|
||||
|
|
@ -5410,7 +5398,7 @@ void chr_go_pos_get_cur_waypoint_info(struct chrdata *chr, struct coord *pos, Ro
|
|||
chr_go_pos_get_cur_waypoint_info_with_flags(chr, pos, rooms, NULL);
|
||||
}
|
||||
|
||||
f32 func0f0370a8(struct chrdata *chr)
|
||||
f32 chr_get_run_speed(struct chrdata *chr)
|
||||
{
|
||||
f32 result;
|
||||
|
||||
|
|
@ -5418,7 +5406,7 @@ f32 func0f0370a8(struct chrdata *chr)
|
|||
result = bot_calculate_max_speed(chr);
|
||||
} else {
|
||||
s16 animnum = model_get_anim_num(chr->model);
|
||||
result = func0f02dff0(animnum) * (chr->model->scale * 9.999999f);
|
||||
result = chr_get_anim_movedist_per_frame(animnum) * (chr->model->scale * 9.999999f);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
@ -5446,7 +5434,7 @@ s32 chr_go_pos_calculate_base_ttl(struct chrdata *chr)
|
|||
zdiff = -zdiff;
|
||||
}
|
||||
|
||||
speed = func0f0370a8(chr);
|
||||
speed = chr_get_run_speed(chr);
|
||||
|
||||
if (chr->aibot == NULL) {
|
||||
speed *= model_get_abs_anim_speed(chr->model);
|
||||
|
|
@ -6231,7 +6219,7 @@ void chr_patrol_choose_animation(struct chrdata *chr)
|
|||
if (race == RACE_SKEDAR) {
|
||||
model_set_animation(chr->model, ANIM_0392, flip, 0, 0.25f, 16);
|
||||
} else {
|
||||
speed = 0.5f * func0f02dff0(ANIM_0028) / func0f02dff0(ANIM_006B);
|
||||
speed = 0.5f * chr_get_anim_movedist_per_frame(ANIM_0028) / chr_get_anim_movedist_per_frame(ANIM_006B);
|
||||
|
||||
if (heavy) {
|
||||
model_set_animation(chr->model, random() % 2 ? ANIM_0018 : ANIM_0028, flip, 0, speed, 16);
|
||||
|
|
@ -11722,12 +11710,12 @@ void chr_tick_run_pos(struct chrdata *chr)
|
|||
|
||||
if (race == RACE_HUMAN) {
|
||||
if (model_get_anim_num(model) == ANIM_RUNNING_ONEHANDGUN) {
|
||||
fVar7 = func0f02dff0(ANIM_RUNNING_ONEHANDGUN);
|
||||
fVar7 = chr_get_anim_movedist_per_frame(ANIM_RUNNING_ONEHANDGUN);
|
||||
} else {
|
||||
fVar7 = func0f02dff0(ANIM_RUNNING_TWOHANDGUN);
|
||||
fVar7 = chr_get_anim_movedist_per_frame(ANIM_RUNNING_TWOHANDGUN);
|
||||
}
|
||||
} else if (race == RACE_SKEDAR) {
|
||||
fVar7 = func0f02dff0(ANIM_SKEDAR_RUNNING);
|
||||
fVar7 = chr_get_anim_movedist_per_frame(ANIM_SKEDAR_RUNNING);
|
||||
}
|
||||
|
||||
chr->act_runpos.neardist += fVar7 * g_Vars.lvupdate60freal * model_get_abs_anim_speed(model);
|
||||
|
|
@ -12828,7 +12816,7 @@ void chr_tick_go_pos(struct chrdata *chr)
|
|||
return;
|
||||
}
|
||||
|
||||
chr_nav_tick_magic(chr, &chr->act_gopos.waydata, func0f0370a8(chr), &curwppos, curwprooms);
|
||||
chr_nav_tick_magic(chr, &chr->act_gopos.waydata, chr_get_run_speed(chr), &curwppos, curwprooms);
|
||||
} else {
|
||||
bool advance = false;
|
||||
bool arrivingxyz;
|
||||
|
|
@ -13069,7 +13057,7 @@ void chr_tick_patrol(struct chrdata *chr)
|
|||
func0f037580(chr);
|
||||
} else {
|
||||
// Continue magic
|
||||
chr_nav_tick_magic(chr, &chr->act_patrol.waydata, func0f0370a8(chr), &sp58, sp48);
|
||||
chr_nav_tick_magic(chr, &chr->act_patrol.waydata, chr_get_run_speed(chr), &sp58, sp48);
|
||||
}
|
||||
|
||||
footstep_check_magic(chr);
|
||||
|
|
|
|||
|
|
@ -43,10 +43,10 @@ s32 race_init_anim_group(struct attackanimconfig *configs)
|
|||
u16 angle = race_get_anim_sum_angle_as_int(config->animnum, 0, floor(config->unk04));
|
||||
|
||||
if (config->unk04 > 0) {
|
||||
if (angle < 0x8000) {
|
||||
config->unk08 = angle * 0.00009585853695171f / config->unk04;
|
||||
if (angle < 32768) {
|
||||
config->unk08 = angle * (1.0f / (32768 / M_BADPI)) / config->unk04;
|
||||
} else {
|
||||
config->unk08 = (angle * 0.00009585853695171f - M_BADTAU) / config->unk04;
|
||||
config->unk08 = (angle * (1.0f / (32768 / M_BADPI)) - M_BADTAU) / config->unk04;
|
||||
}
|
||||
} else {
|
||||
config->unk08 = 0;
|
||||
|
|
@ -79,11 +79,11 @@ s32 race_count_anims(struct animtablerow *rows)
|
|||
return i;
|
||||
}
|
||||
|
||||
f32 race0f0005c0(s16 animnum)
|
||||
f32 race_get_anim_avg_forward(s16 animnum)
|
||||
{
|
||||
f32 avgforward = race_get_anim_sum_forward_as_int(animnum, 0, anim_get_num_frames(animnum) - 1) / (f32) anim_get_num_frames(animnum);
|
||||
|
||||
var8005f014[animnum] = avgforward;
|
||||
g_AnimAverageMoveDist[animnum] = avgforward;
|
||||
|
||||
return avgforward * 0.1000000089407f;
|
||||
}
|
||||
|
|
@ -108,8 +108,8 @@ void race_init_anims(void)
|
|||
}
|
||||
}
|
||||
|
||||
for (i = 0; var80067fdc[race][i].animnum >= 0; i++) {
|
||||
var80067fdc[race][i].value = race0f0005c0(var80067fdc[race][i].animnum);
|
||||
for (i = 0; g_ChrAvgAnimMoveDists[race][i].animnum >= 0; i++) {
|
||||
g_ChrAvgAnimMoveDists[race][i].value = race_get_anim_avg_forward(g_ChrAvgAnimMoveDists[race][i].animnum);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,11 +109,13 @@
|
|||
#define TICKS(val) ((val) * 50 / 60)
|
||||
#define PALUP(val) ((val) * 60 / 50)
|
||||
#define PALUPF(val) ((val) * 1.2f)
|
||||
#define PALDOWNF(val) ((val) * (1.0f / 1.2f))
|
||||
#define FRAMEDURATION (1 / 50.0f)
|
||||
#else
|
||||
#define TICKS(val) (val)
|
||||
#define PALUP(val) (val)
|
||||
#define PALUPF(val) (val)
|
||||
#define PALDOWNF(val) (val)
|
||||
#define FRAMEDURATION (1 / 60.0f)
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ extern u32 g_NextAnimFrameIndex;
|
|||
extern s16 g_NumAnimations;
|
||||
extern struct animtableentry *g_Anims;
|
||||
extern u8 *g_AnimToHeaderSlot;
|
||||
extern s16 *var8005f014;
|
||||
extern s16 *g_AnimAverageMoveDist;
|
||||
extern s32 g_AnimMaxBytesPerFrame;
|
||||
extern s32 g_AnimMaxHeaderLength;
|
||||
extern bool g_AnimHostEnabled;
|
||||
|
|
@ -180,7 +180,7 @@ extern s16 *g_BgChrnums;
|
|||
extern s32 g_NumBgChrs;
|
||||
extern s16 *g_TeamList;
|
||||
extern s16 *g_SquadronList;
|
||||
extern struct var80067e6c *var80067fdc[];
|
||||
extern struct animdist *g_ChrAvgAnimMoveDists[];
|
||||
extern s16 var80067ff0[];
|
||||
extern f32 g_AutoAimScale;
|
||||
extern u32 g_TintedGlassEnabled;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
f32 func0f02dff0(s16 animnum);
|
||||
f32 chr_get_anim_movedist_per_frame(s16 animnum);
|
||||
bool chr_go_pos_is_waiting(struct chrdata *chr);
|
||||
bool weapon_is_one_handed(struct prop *prop);
|
||||
f32 chr_get_ranged_speed(struct chrdata *chr, f32 min, f32 max);
|
||||
|
|
@ -68,7 +68,6 @@ bool chr_can_jump_in_direction(struct chrdata *chr, bool side, f32 distance);
|
|||
bool chr_is_room_off_screen(struct chrdata *chr, struct coord *waypos, RoomNum *wayrooms);
|
||||
void chr_go_pos_init_magic(struct chrdata *chr, struct waydata *waydata, struct coord *arg2, struct coord *prevpos);
|
||||
void chr_go_pos_get_cur_waypoint_info_with_flags(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 *flags);
|
||||
f32 func0f0370a8(struct chrdata *chr);
|
||||
s32 chr_go_pos_calculate_base_ttl(struct chrdata *chr);
|
||||
void chr_go_pos_consider_restart(struct chrdata *chr);
|
||||
void chr_go_pos_init_expensive(struct chrdata *chr);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ s32 race_get_anim_sum_forward_as_int(s16 animnum, s32 startframe, s32 endframe);
|
|||
s32 race_init_anim_group(struct attackanimconfig *configs);
|
||||
void race_init_anim_groups(struct attackanimgroup **groups);
|
||||
s32 race_count_anims(struct animtablerow *rows);
|
||||
f32 race0f0005c0(s16 animnum);
|
||||
void race_init_anims(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ void anim_load_header(s16 animnum);
|
|||
s32 anim_read_bits(u8 *ptr, u8 readbitlen, u32 bitoffset);
|
||||
s32 anim_read_signed_short(u8 *arg0, u8 arg1, s32 arg2);
|
||||
void anim_get_rot_translate_scale(s32 part, bool flip, struct skeleton *skel, s16 animnum, u8 frameslot, struct coord *rot, struct coord *translate, struct coord *scale);
|
||||
u16 anim_get_pos_angle_as_int(s32 part, bool flip, struct skeleton *skel, s16 animnum, s32 framenum, s16 inttranslate[3], bool arg6);
|
||||
u16 anim_get_pos_angle_as_int(s32 part, bool flip, struct skeleton *skel, s16 animnum, s32 framenum, s16 inttranslate[3], bool use_cache);
|
||||
f32 anim_get_translate_angle(s32 part, bool flip, struct skeleton *skel, s16 animnum, s32 framenum, struct coord *pos, bool arg6);
|
||||
f32 anim_get_camera_value(s32 part, s16 animnum, u8 frameslot);
|
||||
|
||||
|
|
|
|||
|
|
@ -5294,7 +5294,7 @@ struct pakfileheader {
|
|||
u32 version : 1; // 0, but can be set to 1 using -forceversion argument
|
||||
};
|
||||
|
||||
struct var80067e6c {
|
||||
struct animdist {
|
||||
s16 animnum;
|
||||
f32 value;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ s32 g_NextAnimHeaderIndex = 0;
|
|||
s16 g_NumAnimations = 0;
|
||||
struct animtableentry *g_Anims = NULL;
|
||||
u8 *g_AnimToHeaderSlot = NULL;
|
||||
s16 *var8005f014 = NULL;
|
||||
s16 *g_AnimAverageMoveDist = NULL;
|
||||
s32 g_AnimMaxBytesPerFrame = 176;
|
||||
s32 g_AnimMaxHeaderLength = 608;
|
||||
bool g_AnimHostEnabled = false;
|
||||
|
|
@ -71,7 +71,7 @@ void anims_init(void)
|
|||
g_AnimMaxBytesPerFrame = ALIGN16(g_AnimMaxBytesPerFrame + 34);
|
||||
|
||||
g_AnimToHeaderSlot = memp_alloc(ALIGN64(g_NumAnimations), MEMPOOL_PERMANENT);
|
||||
var8005f014 = memp_alloc(ALIGN64(g_NumAnimations * sizeof(*var8005f014)), MEMPOOL_PERMANENT);
|
||||
g_AnimAverageMoveDist = memp_alloc(ALIGN64(g_NumAnimations * sizeof(*g_AnimAverageMoveDist)), MEMPOOL_PERMANENT);
|
||||
g_AnimFrameByteSlots = memp_alloc(ALIGN64(ANIM_FRAME_CACHE_SIZE * g_AnimMaxBytesPerFrame), MEMPOOL_PERMANENT);
|
||||
g_AnimFrameBytes = memp_alloc(ALIGN64(ANIM_FRAME_CACHE_SIZE * sizeof(*g_AnimFrameBytes)), MEMPOOL_PERMANENT);
|
||||
g_AnimFrameAnimNums = memp_alloc(ALIGN64(ANIM_FRAME_CACHE_SIZE * sizeof(*g_AnimFrameAnimNums)), MEMPOOL_PERMANENT);
|
||||
|
|
@ -94,7 +94,7 @@ void anims_init_tables(void)
|
|||
|
||||
for (i = 0; i < g_NumAnimations; i++) {
|
||||
g_AnimToHeaderSlot[i] = 0xff;
|
||||
var8005f014[i] = 0;
|
||||
g_AnimAverageMoveDist[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < ANIM_FRAME_CACHE_SIZE; i++) {
|
||||
|
|
@ -610,7 +610,7 @@ void anim_get_rot_translate_scale(s32 part, bool flip, struct skeleton *skel, s1
|
|||
* No data needs to be loaded by the caller - the function will ensure the
|
||||
* header and frame are loaded.
|
||||
*/
|
||||
u16 anim_get_pos_angle_as_int(s32 part, bool flip, struct skeleton *skel, s16 animnum, s32 framenum, s16 inttranslate[3], bool arg6)
|
||||
u16 anim_get_pos_angle_as_int(s32 part, bool flip, struct skeleton *skel, s16 animnum, s32 framenum, s16 inttranslate[3], bool use_cache)
|
||||
{
|
||||
u16 result = 0;
|
||||
s32 bitoffset;
|
||||
|
|
@ -620,10 +620,10 @@ u16 anim_get_pos_angle_as_int(s32 part, bool flip, struct skeleton *skel, s16 an
|
|||
u8 *ptr;
|
||||
s32 i;
|
||||
|
||||
if (arg6) {
|
||||
if (use_cache) {
|
||||
inttranslate[0] = 0;
|
||||
inttranslate[1] = 0;
|
||||
inttranslate[2] = var8005f014[animnum];
|
||||
inttranslate[2] = g_AnimAverageMoveDist[animnum];
|
||||
} else {
|
||||
anim_load_header(animnum);
|
||||
slot = anim_load_frame(animnum, framenum);
|
||||
|
|
|
|||
Loading…
Reference in New Issue