Stability improvements

This commit is contained in:
korenkonder
2023-06-04 04:35:20 +03:00
parent 19e532711f
commit fe79ffb62f
9 changed files with 117 additions and 98 deletions
+4 -1
View File
@@ -254,7 +254,7 @@ void AetComp::put_number_sprite(int32_t value, int32_t max_digits,
if (!comp || !names || !spr_ids)
return;
for (int32_t i = 0; i < max_digits && (all_digits || value); i++) {
for (int32_t i = 0; i < max_digits; i++) {
int32_t digit = value % 10;
value /= 10;
@@ -262,6 +262,9 @@ void AetComp::put_number_sprite(int32_t value, int32_t max_digits,
if (layout)
aet_layout_data::put_sprite(spr_ids[digit],
spr::SPR_ATTR_CTR_CC, prio, pos, layout, spr_db);
if (!all_digits && !value)
break;
}
}
+4 -1
View File
@@ -1434,6 +1434,7 @@ namespace pv_db {
pv_db_pv_motion motion;
motion.index = (int32_t)m;
motion.id = aft_mot_db->get_motion_id(motion_name);
motion.name.assign(motion_name);
d.motion[l].push_back(motion);
}
@@ -1970,8 +1971,10 @@ namespace pv_db {
j.field.data.reserve(count);
for (int32_t k = 0; k <= count; k++) {
if (!kv.open_scope_fmt("%02d", k))
if (!kv.open_scope_fmt("%02d", k)) {
j.field.data.push_back({});
continue;
}
pv_db_pv_field field;
+17 -7
View File
@@ -1141,16 +1141,17 @@ bool SubGameState::PhotoModeDemo::Dest() {
}
bool SubGameState::Selector::Init() {
app::TaskWork::AddTask(&x_pv_game_selector, "X PVGAME SELECTOR", 0);
x_pv_game_selector_init();
app::TaskWork::AddTask(x_pv_game_selector_ptr, "X PVGAME SELECTOR", 0);
return true;
}
bool SubGameState::Selector::Ctrl() {
if (x_pv_game_selector.exit) {
if (x_pv_game_selector.start && x_pv_game_init()) {
XPVGameSelector& sel = x_pv_game_selector;
if (x_pv_game_selector_ptr->exit) {
if (x_pv_game_selector_ptr->start && x_pv_game_init()) {
XPVGameSelector* sel = x_pv_game_selector_ptr;
app::TaskWork::AddTask(x_pv_game_ptr, "X PVGAME", 0);
x_pv_game_ptr->Load(sel.pv_id, sel.stage_id, sel.charas, sel.modules);
x_pv_game_ptr->Load(sel->pv_id, sel->stage_id, sel->charas, sel->modules);
game_state_set_sub_game_state_next(SUB_GAME_STATE_GAME_MAIN);
}
else
@@ -1161,8 +1162,13 @@ bool SubGameState::Selector::Ctrl() {
}
bool SubGameState::Selector::Dest() {
x_pv_game_selector.DelTask();
return true;
if (!app::TaskWork::CheckTaskReady(x_pv_game_selector_ptr)) {
x_pv_game_selector_free();
return true;
}
x_pv_game_selector_ptr->DelTask();
return false;
}
bool SubGameState::GameMain::Init() {
@@ -1646,6 +1652,10 @@ void game_state_ctrl() {
game_state->call_count++;
}
GameStateEnum game_state_get_game_state() {
return game_state_get()->game_state;
}
size_t game_state_print(char* buf, size_t buf_size) {
GameState* game_state = game_state_get();
const char* game_state_name = game_state_names[game_state->game_state];
+1
View File
@@ -71,6 +71,7 @@ enum SubGameStateEnum {
extern void game_state_init();
extern void game_state_ctrl();
extern GameStateEnum game_state_get_game_state();
extern size_t game_state_print(char* buf, size_t buf_size);
extern void game_state_set_game_state_next(GameStateEnum state);
extern void game_state_set_sub_game_state_next(SubGameStateEnum state);
+49 -47
View File
@@ -269,12 +269,12 @@ current_reference_score(), target_count(), field_2CF84(), field_2CF88(), field_2
slide_chain_length(), field_2CF98(), field_2CF9C(), field_2CFA0(), field_2CFA4(), pv(),field_2CFB0(),
chance_point(), reference_score(), reference_score_no_flag(), reference_score_no_flag_life_bonus(),
field_2CFE0(), field_2CFE4(), notes_passed(), field_2CFF0(), song_energy(), song_energy_base(),
song_energy_border(), life_gauge_safety_time(), life_gauge_border(), stage_index(), field_2D00C(),
song_energy_border(), life_gauge_safety_time(), life_gauge_border(), stage_index(), music_play(),
no_fail(), changed_field(), challenge_time_start(), challenge_time_end(), max_time(), max_time_float(),
current_time_float(), current_time(), field_2D038(), field_2D03C(), score_hold_multi(),
score_hold(), score_slide(), has_slide(), has_success_se(), pv_disp2d(), life_gauge_final(),
hit_border(), field_2D05D(), field_2D05E(), start_fade(), title_image_init(), field_2D061(),
ex_stage(), field_2D063(), has_auth_3d_frame(), has_light_frame(), has_aet_frame(), has_aet_list(),
hit_border(), field_2D05D(), field_2D05E(), start_fade(), title_image_init(), mute(),
ex_stage(), play_success(), has_auth_3d_frame(), has_light_frame(), has_aet_frame(), has_aet_list(),
field_index(), edit_effect_index(), slidertouch_counter(), change_field_branch_success_counter(),
field_2D080(), field_2D084(), life_gauge_bonus(), life_gauge_total_bonus(), field_2D090(), no_clear(),
field_2D092(), field_2D093(), field_2D094(), field_2D095(), field_2D096(), success(), title_image_state(),
@@ -464,7 +464,7 @@ bool pv_game_data::sub_140119960(bool* has_target, int64_t* dsc_time, int32_t* t
case DSC_TARGET_FT_16:
case DSC_TARGET_FT_SLIDE_L_CHANCE:
case DSC_TARGET_FT_SLIDE_R_CHANCE:
*has_slide = 1;
*has_slide = true;
break;
case DSC_TARGET_FT_0E:
*slide_chain_type = 1;
@@ -815,12 +815,12 @@ field_4(), state(), field_C(), pv_id(), field_14(), modules(), items() {
data.life_gauge_safety_time = 0;
data.life_gauge_border = 0;
data.stage_index = 0;
data.field_2D00C = true;
data.music_play = true;
data.challenge_time_start = -1;
data.challenge_time_end = -1;
data.field_2D061 = false;
data.mute = false;
data.ex_stage = false;
data.field_2D063 = false;
data.play_success = false;
data.field_2D0BC = false;
data.next_stage = false;
data.has_frame_texture = false;
@@ -1153,7 +1153,7 @@ void pv_game::change_field(size_t field, ssize_t dsc_time, ssize_t curr_time) {
if (!data.task_effect_init && (dsc_time > -1 || curr_time > -1)) {
rand_state_array_4_set_seed_1393939();
task_effect_parent_reset();
data.task_effect_init = 1;
data.task_effect_init = true;
}
pv_game_field& curr_field_data = data.field_data[data.current_field];
@@ -2359,6 +2359,8 @@ bool pv_game::load() {
pv_db_pv* pv = task_pv_db_get_pv(pv_id);
if (pv)
data.pv = pv;
else
break;
const pv_db_pv_disp2d* pv_disp2d;
int32_t pv_disp2d_pv_id;
@@ -2388,7 +2390,7 @@ bool pv_game::load() {
pv_disp2d_data.pv_spr_set_id = aft_spr_db->get_spr_set_id_by_name(spr_set_name.c_str());
pv_disp2d_data.pv_aet_set_id = aft_aet_db->get_aet_set_id_by_name(aet_set_name.c_str());
pv_disp2d_data.pv_aet_id = aft_aet_db->get_aet_id_by_name(aet_set_name.c_str());
pv_disp2d_data.pv_aet_id = aft_aet_db->get_aet_id_by_name(aet_name.c_str());
}
pv_disp2d_data.title_start_2d_field = pv_disp2d->title_start_2d_field;
@@ -2663,7 +2665,7 @@ bool pv_game::load() {
sub_14013C8C0()->difficulty, sub_14013C8C0()->edition);
if (diff && !data.field_2D094) {
if (sub_14013C8C0()->sub_1400E7910() < 4
&& !data.pv_data.read_dsc_file(std::string(diff->script_file_name), this, data.field_2D00C))
&& !data.pv_data.read_dsc_file(std::string(diff->script_file_name), this, data.music_play))
return false;
data.field_2D094 = true;
@@ -4017,7 +4019,7 @@ void pv_game::reset() {
for (bool& i : data.has_aet_list)
i = false;
data.success = data.field_2D063;
data.success = data.play_success;
data.field_2CE98 = 0;
data.se_index = -1;
data.field_2DB34 = 0;
@@ -4760,7 +4762,7 @@ int32_t pv_game::sub_1400FDD80() {
void pv_game::sub_140104FB0() {
data.se_index = -1;
data.success = data.field_2D063;
data.success = data.play_success;
data.field_2CE98 = 0;
data.field_2DB34 = 0;
data.field_2D0A8 = 0;
@@ -5056,25 +5058,25 @@ void pv_game_init_data::reset() {
struc_14::struc_14() : edition(), pv(), field_10(), field_11(), field_12(),
field_13(), field_14(), field_18(), field_1C(), field_24(), field_25(), field_26() {
field_0 = 8;
type = 8;
difficulty = PV_DIFFICULTY_NORMAL;
field_20 = 1.0f;
}
int32_t struc_14::sub_1400E7910() {
return field_0;
return type;
}
bool struc_14::sub_1400E7920() {
return field_0 == 2 || field_0 == 3 || field_0 == 5 || field_0 == 7;
return type == 2 || type == 3 || type == 5 || type == 7;
}
void struc_14::sub_1400E79E0(int32_t a2) {
field_0 = a2;
type = a2;
}
TaskPvGame::Args::Args() : init_data(), field_190(), field_191(), no_fail(),
field_193(), field_194(), field_195(), ex_stage(), field_197(), test_pv(), option() {
field_193(), field_194(), mute(), ex_stage(), success(), test_pv(), option() {
Reset();
}
@@ -5100,15 +5102,15 @@ void TaskPvGame::Args::Reset() {
no_fail = false;
field_193 = true;
field_194 = false;
field_195 = false;
mute = false;
ex_stage = false;
field_197 = false;
success = false;
test_pv = false;
option = 0;
}
TaskPvGame::Data::Data() : field_0(), init_data(), field_190(), field_191(), no_fail(),
field_193(), field_194(), ex_stage(), field_196(), option() {
TaskPvGame::Data::Data() : type(), init_data(), field_190(), music_play(),
no_fail(), field_193(), mute(), ex_stage(), success(), option() {
Reset();
}
@@ -5127,16 +5129,16 @@ void TaskPvGame::Data::Clear() {
}
void TaskPvGame::Data::Reset() {
field_0 = 1;
type = 1;
init_data.reset();
Clear();
field_190 = false;
field_191 = true;
music_play = true;
no_fail = false;
field_193 = true;
field_194 = false;
mute = false;
ex_stage = false;
field_196 = false;
success = false;
option = 0;
}
@@ -5187,7 +5189,7 @@ void TaskPvGame::Load(TaskPvGame::Data& data) {
pv_game_time_data.current_time.get_timestamp();
pv_game_time_data.add_current_time = true;
sub_14013C8C0()->sub_1400E79E0(data.field_0);
sub_14013C8C0()->sub_1400E79E0(data.type);
sub_14013C8C0()->pv = data.init_data.pv_id;;
sub_14013C8C0()->difficulty = data.init_data.difficulty;
sub_14013C8C0()->edition = data.init_data.edition;
@@ -5199,7 +5201,7 @@ void TaskPvGame::Load(TaskPvGame::Data& data) {
pv_game_ptr->set_item_mask(i, i, data.init_data.items_mask[i].arr[j]);
}
pv_game_ptr->data.field_2D00C = data.field_191;
pv_game_ptr->data.music_play = data.music_play;
pv_game_ptr->data.no_fail = data.no_fail;
pv_game_ptr->data.field_2D00E = data.field_193;
pv_game_ptr->data.song_energy_base = (float_t)data.init_data.score_percentage_clear;
@@ -5213,9 +5215,9 @@ void TaskPvGame::Load(TaskPvGame::Data& data) {
pv_game_ptr->data.play_data.other_chainslide_success_name.assign(data.chainslide_success_name);
pv_game_ptr->data.play_data.other_chainslide_failure_name.assign(data.chainslide_failure_name);
pv_game_ptr->data.play_data.other_slidertouch_name.assign(data.slidertouch_name);
pv_game_ptr->data.field_2D061 = data.field_194;
pv_game_ptr->data.mute = data.mute;
pv_game_ptr->data.ex_stage = data.ex_stage;
pv_game_ptr->data.field_2D063 = data.field_196;
pv_game_ptr->data.play_success = data.success;
pv_game_ptr->data.play_data.option = data.option;
target_pos_scale_offset_get();
@@ -5252,7 +5254,7 @@ float_t bar_time_set_to_target_flying_time(int32_t bpm, int32_t time_signature,
}
float_t dsc_time_to_frame(int64_t time) {
return (float_t)((float_t)(int32_t)time / (float_t)1000000000) * 60.0f;
return (float_t)time / (float_t)1000000000 * 60.0f;
}
void pv_game_init() {
@@ -5279,7 +5281,7 @@ bool task_pv_game_add_task(TaskPvGame::Args& args) {
if (!task_pv_game)
task_pv_game = new TaskPvGame;
task_pv_game->data.field_0 = 1;
task_pv_game->data.type = 1;
task_pv_game->data.init_data = args.init_data;
task_pv_game->data.se_name.assign(args.se_name);
task_pv_game->data.slide_se_name.assign(args.slide_se_name);
@@ -5289,17 +5291,17 @@ bool task_pv_game_add_task(TaskPvGame::Args& args) {
task_pv_game->data.chainslide_failure_name.assign(args.chainslide_failure_name);
task_pv_game->data.slidertouch_name.assign(args.slidertouch_name);
task_pv_game->data.field_190 = args.field_190;
task_pv_game->data.field_191 = !args.field_195;
task_pv_game->data.music_play = !args.mute;
task_pv_game->data.no_fail = args.no_fail;
if (args.field_191) {
task_pv_game->data.field_0 = 2;
task_pv_game->data.type = 2;
task_pv_game->data.field_193 = args.field_193;
}
else
task_pv_game->data.field_193 = true;
task_pv_game->data.field_194 = args.field_195;
task_pv_game->data.mute = args.mute;
task_pv_game->data.ex_stage = args.ex_stage;
task_pv_game->data.field_196 = args.field_197;
task_pv_game->data.success = args.success;
task_pv_game->data.option = args.option;
if (args.test_pv)
@@ -5391,15 +5393,15 @@ void task_pv_game_init_pv() {
if (sub_14038BB30()->field_0.no_fail) {
args.no_fail = true;
if (!sub_14038BB30()->field_0.field_15) {
args.field_190 = false;
args.field_191 = false;
}
else {
if (sub_14038BB30()->field_0.field_15) {
args.field_190 = true;
args.field_191 = true;
if (sub_14038BB30()->field_0.field_16)
args.field_197 = true;
if (sub_14038BB30()->field_0.success)
args.success = true;
}
else {
args.field_190 = false;
args.field_191 = false;
}
}
else {
@@ -5429,7 +5431,7 @@ void task_pv_game_init_test_pv() {
args.no_fail = false;
args.field_193 = true;
args.field_194 = true;
args.field_195 = true;
args.mute = true;
args.test_pv = true;
task_pv_game_add_task(args);
}
@@ -5652,11 +5654,11 @@ static bool pv_game_parent_ctrl() {
int64_t curr_time = pv_game_time_data.curr_time;
if (pv_game_time_data.add_last_stop_time)
curr_time += (int64_t)(pv_game_time_data.last_stop_time.calc_time() * 100.0);
curr_time += (int64_t)(pv_game_time_data.last_stop_time.calc_time() * 1000.0);
int64_t delta_time = pv_game_time_data.delta_time;
if (pv_game_time_data.add_current_time)
delta_time += (int64_t)(pv_game_time_data.current_time.calc_time() * 100.0);
delta_time += (int64_t)(pv_game_time_data.current_time.calc_time() * 1000.0);
pv_game_time_data.delta_time = 0;
pv_game_time_data.current_time.get_timestamp();
@@ -5680,11 +5682,11 @@ static void pv_game_parent_disp() {
static void pv_game_time_ctrl() {
if (pv_game_time_data.add_last_stop_time)
pv_game_time_data.curr_time += (int64_t)(pv_game_time_data.last_stop_time.calc_time() * 100.0);
pv_game_time_data.curr_time += (int64_t)(pv_game_time_data.last_stop_time.calc_time() * 1000.0);
pv_game_time_data.add_last_stop_time = false;
if (pv_game_time_data.add_current_time)
pv_game_time_data.delta_time += (int64_t)(pv_game_time_data.current_time.calc_time() * 100.0);
pv_game_time_data.delta_time += (int64_t)(pv_game_time_data.current_time.calc_time() * 1000.0);
pv_game_time_data.add_current_time = false;
}
+11 -11
View File
@@ -185,7 +185,7 @@ struct pv_game_data {
int32_t life_gauge_safety_time;
int32_t life_gauge_border;
int32_t stage_index;
bool field_2D00C;
bool music_play;
bool no_fail;
bool field_2D00E;
bool changed_field;
@@ -209,9 +209,9 @@ struct pv_game_data {
bool field_2D05E;
bool start_fade;
bool title_image_init;
bool field_2D061;
bool mute;
bool ex_stage;
bool field_2D063;
bool play_success;
bool has_auth_3d_frame;
bool has_light_frame;
bool has_aet_frame[4];
@@ -473,7 +473,7 @@ struct pv_game_init_data {
};
struct struc_14 {
int32_t field_0;
int32_t type;
pv_difficulty difficulty;
int32_t edition;
uint32_t pv;
@@ -504,7 +504,7 @@ struct struc_677 {
int32_t field_10;
bool no_fail;
int8_t field_15;
int8_t field_16;
bool success;
bool field_17;
int32_t field_18;
int32_t field_1C;
@@ -746,9 +746,9 @@ public:
bool no_fail;
bool field_193;
bool field_194;
bool field_195;
bool mute;
bool ex_stage;
bool field_197;
bool success;
bool test_pv;
int32_t option;
@@ -760,7 +760,7 @@ public:
};
struct Data {
int32_t field_0;
int32_t type;
pv_game_init_data init_data;
std::string se_name;
std::string slide_se_name;
@@ -770,12 +770,12 @@ public:
std::string chainslide_failure_name;
std::string slidertouch_name;
bool field_190;
bool field_191;
bool music_play;
bool no_fail;
bool field_193;
bool field_194;
bool mute;
bool ex_stage;
bool field_196;
bool success;
int32_t option;
Data();
+24 -25
View File
@@ -296,18 +296,16 @@ void struc_676::reset() {
pv_game_pv_data::pv_game_pv_data() : field_0(), dsc_state(), play()/*, dsc_buffer(), dsc_buffer_counter()*/,
dsc_data_ptr(), dsc_data_ptr_end(), field_2BF38(), curr_time(), curr_time_float(), prev_time_float(),
field_2BF50(), field_2BF60(), field_2BF64(), field_2BF68(), chara_id(), pv_game()/*, field_2BF80()*/,
music(), dsc_file_handler(),
dsc_time(), music_play(), field_2BFC4(),
pv_end(), field_2BFD4(), field_2BFD5(), data_camera(),
has_signature(), has_perf_id(), targets_remaining(), target_index(), scene_rot_y(),
field_2C550(), branch_mode(), last_challenge_note(), field_2C560() {
music(), dsc_file_handler(), dsc_time(), music_playing(), field_2BFC4(), pv_end(), field_2BFD4(),
field_2BFD5(), data_camera(), has_signature(), has_perf_id(), targets_remaining(), target_index(),
scene_rot_y(), field_2C550(), branch_mode(), last_challenge_note(), field_2C560() {
field_2BF30 = -1;
field_2BF58 = -1i64;
field_2BFB0 = -1;
field_2BFB4 = -1;
field_2BFB8 = -1;
field_2BFBC = -1;
field_2BFC0 = true;
music_play = true;
fov = 32.2673416137695f;
min_dist = 0.05f;
target_flying_time = -1.0f;
@@ -394,7 +392,8 @@ void pv_game_pv_data::dsc_buffer_set(const void* data, uint32_t size) {
dsc_buffer_counter_set();
}*/
bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* dsc_time_offset, bool* music_play, bool a6, bool ignore_targets) {
bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time,
float_t* dsc_time_offset, bool* music_play, bool a6, bool ignore_targets) {
if (sub_14013C8C0()->sub_1400E7910() >= 4 && field_2BF68 <= curr_time)
pv_game->set_lyric(-1, { 0xFF, 0xFF, 0xFF, 0xFF });
@@ -422,8 +421,6 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
}
}
dsc_data_ptr++;
data_struct* aft_data = &data_list[DATA_AFT];
bone_database* aft_bone_data = &aft_data->data_ft.bone_data;
motion_database* aft_mot_db = &aft_data->data_ft.mot_db;
@@ -641,7 +638,7 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
playdata = &this->playdata[chara_id];
rob_chr = playdata->rob_chr;
int32_t motion_index = (int32_t)data[0];
int32_t motion_index = (int32_t)data[1];
if (motion_index >= 0) {
pv_play_data_motion* motion = playdata->get_motion(motion_index);
if (motion) {
@@ -688,7 +685,7 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
pv_game->set_data_campv(0, index, frame);
rctx_ptr->camera->set_fast_change_hist0(true);
set_camera_max_frame((int32_t)data_camera[0].time);
set_camera_max_frame(data_camera[0].time);
} break;
case 1: {
if (data_camera[1].index != index - 1) {
@@ -713,7 +710,7 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
pv_game->set_data_campv(1, index, frame);
rctx_ptr->camera->set_fast_change_hist0(true);
set_camera_max_frame((int32_t)data_camera[1].time);
set_camera_max_frame(data_camera[1].time);
} break;
case 2: {
pv_game->set_data_campv(2, index, 0.0f);
@@ -957,11 +954,11 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
music->play(4, pv_game->get_play_data_song_file_name(), false, 0.0f, 0.0f, 0.0f, 3.0f, false);
int32_t v189 = 100;
int32_t v192 = 0;
if (sub_14013C8C0()->sub_1400E7910() != 2 || !sub_14013C8C0()->field_25)
v192 = 100;
int32_t v192 = 100;
if (sub_14013C8C0()->sub_1400E7910() == 2 && sub_14013C8C0()->field_25)
v192 = 0;
if (!field_2BFC0) {
if (!music_play) {
v192 = 0;
v189 = 0;
}
@@ -978,7 +975,7 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
music->set_pause(true);
*music_play = true;
this->music_play = true;
this->music_playing = true;
} break;
case DSC_FT_MODE_SELECT:
case DSC_FT_EDIT_MODE_SELECT: {
@@ -2030,6 +2027,8 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* d
play = false;
} return false;
}
dsc_data_ptr++;
return true;
}
@@ -2353,7 +2352,7 @@ int32_t pv_game_pv_data::get_target_target_count(size_t index, float_t time_offs
return targets[index].target_count;
}
void pv_game_pv_data::init(::pv_game* pv_game, bool a3) {
void pv_game_pv_data::init(::pv_game* pv_game, bool music_play) {
this->pv_game = pv_game;
//field_2BF80 = sub_14013C8F0();
music = pv_game_music_get();
@@ -2389,7 +2388,7 @@ void pv_game_pv_data::init(::pv_game* pv_game, bool a3) {
field_2BFB4 = -1;
field_2BFB8 = -1;
field_2BFBC = -1;
field_2BFC0 = a3;
music_play = music_play;
field_2BFD4 = false;
field_2BFD5 = false;
pv_end = false;
@@ -2405,7 +2404,7 @@ void pv_game_pv_data::init(::pv_game* pv_game, bool a3) {
field_2BF30 = -1;
field_2BF38 = 0;
field_2BF68 = 0;
music_play = false;
music_playing = false;
dsc_reset_position();
@@ -2444,7 +2443,7 @@ void pv_game_pv_data::init(::pv_game* pv_game, bool a3) {
reset_camera_post_process();
}
bool pv_game_pv_data::read_dsc_file(std::string&& file_path, ::pv_game* pv_game, bool a4) {
bool pv_game_pv_data::read_dsc_file(std::string&& file_path, ::pv_game* pv_game, bool music_play) {
switch (dsc_state) {
case 0:
if (dsc_file_handler.read_file(&data_list[DATA_AFT], file_path.c_str()))
@@ -2473,7 +2472,7 @@ bool pv_game_pv_data::read_dsc_file(std::string&& file_path, ::pv_game* pv_game,
dsc_state = 2;
} break;
case 2:
init(pv_game, a4);
init(pv_game, music_play);
dsc_state = 0;
return true;
}
@@ -2521,9 +2520,9 @@ void pv_game_pv_data::reset() {
void pv_game_pv_data::reset_camera_post_process() {
camera* cam = rctx_ptr->camera;
cam->set_ignore_min_dist(false);
cam->set_max_distance(0.05);
cam->set_min_distance(0.05f);
cam->set_ignore_fov(false);
cam->set_fov(32.2673416137695);
cam->set_fov(32.2673416137695f);
post_process* pp = &rctx_ptr->post_process;
pp->tone_map->set_scene_fade_color(0.0f);
@@ -2547,7 +2546,7 @@ void pv_game_pv_data::scene_fade_ctrl(float_t delta_time) {
scene_fade.ctrl(delta_time);
}
void pv_game_pv_data::set_camera_max_frame(int32_t time) {
void pv_game_pv_data::set_camera_max_frame(int64_t time) {
std::vector<int32_t>& data_camera = branch_mode != 2
? data_camera_branch_fail
: data_camera_branch_success;
+6 -5
View File
@@ -288,8 +288,8 @@ struct pv_game_pv_data {
int32_t field_2BFB4;
int32_t field_2BFB8;
int32_t field_2BFBC;
bool field_2BFC0;
bool music_play;
bool music_playing;
int32_t field_2BFC4;
bool pv_end;
float_t fov;
@@ -325,7 +325,8 @@ struct pv_game_pv_data {
int64_t ctrl(float_t delta_time, int64_t curr_time, bool a4);
//void dsc_buffer_counter_set();
//void dsc_buffer_set(const void* data, uint32_t size);
bool dsc_ctrl(float_t delta_time, int64_t curr_time, float_t* dsc_time_offset, bool* music_play, bool a6, bool ignore_targets);
bool dsc_ctrl(float_t delta_time, int64_t curr_time,
float_t* dsc_time_offset, bool* music_play, bool a6, bool ignore_targets);
void dsc_reset_position();
//void dsc_get_start_position(int32_t* value);
dsc_data* find_func(int32_t func_name, int32_t* time,
@@ -338,12 +339,12 @@ struct pv_game_pv_data {
const std::vector<pv_data_set_motion>* get_set_motion(size_t chara_id);
pv_dsc_target_group* get_target();
int32_t get_target_target_count(size_t index, float_t time_offset, bool a4);
void init(::pv_game * pv_game, bool a3);
bool read_dsc_file(std::string&& file_path, struct pv_game* pv_game, bool a4);
void init(::pv_game * pv_game, bool music_play);
bool read_dsc_file(std::string&& file_path, struct pv_game* pv_game, bool music_play);
void reset();
void reset_camera_post_process();
void scene_fade_ctrl(float_t delta_time);
void set_camera_max_frame(int32_t time);
void set_camera_max_frame(int64_t time);
void set_item_anim_max_frame(int32_t chara_id, int32_t index, int64_t time);
void set_motion_max_frame(int32_t chara_id, int32_t motion_index, int64_t time);
};
+1 -1
View File
@@ -55,7 +55,7 @@ namespace system_startup_detail {
system_startup.state = 3;
break;
case 3:
if (mdata_manager_get()->state == 5 ||mdata_manager_get()->state == 15)
if (!app::TaskWork::CheckTaskReady(mdata_manager_get()))
system_startup.state = 4;
break;
case 4: