mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Match m_player_main_dma.c_inc
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
|
||||
int Player_actor_request_main_dma(GAME* game, int flag) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_DMA, flag) != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_DMA, flag);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Dma(void) {
|
||||
Player_actor_setup_main_Base();
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromDma(ACTOR* actorx, GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
Object_Exchange_c* exchange = &play->object_exchange;
|
||||
int bank_idx = mSc_bank_regist_check(exchange, 14);
|
||||
PLAYER_ACTOR* actor = (PLAYER_ACTOR*)actorx;
|
||||
int i;
|
||||
cKF_SkeletonInfo_R_c* keyf;
|
||||
u16 type;
|
||||
|
||||
if (exchange->banks[bank_idx].bank_id > 0) {
|
||||
if (exchange->banks[bank_idx + 1].bank_id > 0 && exchange->banks[bank_idx + 2].bank_id > 0 &&
|
||||
exchange->banks[bank_idx + 3].bank_id > 0 && exchange->banks[bank_idx + 4].bank_id > 0 &&
|
||||
exchange->banks[bank_idx + 5].bank_id > 0 && exchange->banks[bank_idx + 6].bank_id > 0) {
|
||||
Player_actor_ItemBank_ct(actor, play);
|
||||
if (actor->requested_main_index_priority == mPlayer_INDEX_SLIP_NET) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actor);
|
||||
}
|
||||
keyf = &actor->keyframe0;
|
||||
type = actor->actor_class.actor_specific;
|
||||
cKF_SkeletonInfo_R_ct(keyf, mPlib_get_player_mdl_p(), NULL, actor->joint_data, actor->morph_data);
|
||||
|
||||
actor->keyframe1 = *keyf;
|
||||
|
||||
if ((type & 7) == 1) {
|
||||
mPlib_request_main_outdoor_type1(game, 1, 0);
|
||||
} else if ((type & 7) == 2) {
|
||||
mPlib_request_main_outdoor_type1(game, 0, 0);
|
||||
} else if ((type & 7) == 3) {
|
||||
mPlib_request_main_outdoor_type1(game, 0, 1);
|
||||
} else if ((type & 7) == 4) {
|
||||
mPlib_request_main_hide_type1(game);
|
||||
} else if ((type & 7) == 5) {
|
||||
mPlib_request_main_groundhog_type1(game);
|
||||
} else {
|
||||
if (Common_Get(_02883D) == 1) {
|
||||
Player_actor_request_main_fail_emu(play, mPlayer_INDEX_READY_WALK_NET);
|
||||
} else {
|
||||
Player_actor_request_main_intro_all(play, mPlayer_INDEX_READY_WALK_NET);
|
||||
}
|
||||
}
|
||||
Camera2_request_main_normal(play, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
void Player_actor_main_Dma(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_request_proc_index_fromDma(actor, game);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user