mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
d_a_obj_coming OK, d_a_coming2 OK
The barrel2 make_prm params were swapped around, making it seem impossible to match.
This commit is contained in:
+2
-2
@@ -1391,7 +1391,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_bita"),
|
||||
ActorRel(Matching, "d_a_branch"),
|
||||
ActorRel(NonMatching, "d_a_bridge"),
|
||||
ActorRel(NonMatching, "d_a_coming2"),
|
||||
ActorRel(Matching, "d_a_coming2"),
|
||||
ActorRel(Matching, "d_a_coming3"),
|
||||
ActorRel(Matching, "d_a_demo_dk"),
|
||||
ActorRel(Matching, "d_a_demo_kmm"),
|
||||
@@ -1433,7 +1433,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_obj_barrel2"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_bscurtain"),
|
||||
ActorRel(Matching, "d_a_obj_cafelmp"),
|
||||
ActorRel(NonMatching, "d_a_obj_coming"),
|
||||
ActorRel(Matching, "d_a_obj_coming"),
|
||||
ActorRel(Matching, "d_a_obj_demo_barrel"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu_demo"),
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace daObjBarrel2 {
|
||||
PRM_TYPE_S = 0x18,
|
||||
|
||||
PRM_TEXTURE_W = 1,
|
||||
PRM_TEXTURE_S = 10,
|
||||
PRM_TEXTURE_S = 0xA,
|
||||
|
||||
PRM_COMING_W = 1,
|
||||
PRM_COMING_S = 0x1C,
|
||||
@@ -72,17 +72,23 @@ namespace daObjBarrel2 {
|
||||
const Attr_c* attr() const { return &M_attr[m410]; }
|
||||
u8 chk_item_give() const { return m476; }
|
||||
void delete_req() {}
|
||||
void exit_req() {}
|
||||
void get_item_id() {}
|
||||
static fpc_ProcID make_coming(cXyz* pos, int roomNo, Type_e type, int droppedItem, bool hasFlag, short angleY, daObjBuoyflag::Texture_e arg6) {
|
||||
void exit_req() { m474 = 1; }
|
||||
fpc_ProcID get_item_id() { return mItemId; }
|
||||
static fpc_ProcID make_coming(cXyz* pos, int roomNo, Type_e type, int droppedItem, bool hasFlag, s16 angleY, daObjBuoyflag::Texture_e tex) {
|
||||
csXyz angle(0, angleY, 0);
|
||||
return fopAcM_create(PROC_Obj_Barrel2, make_prm(type, droppedItem, hasFlag, false, arg6), pos, roomNo, &angle);
|
||||
return fopAcM_create(PROC_Obj_Barrel2, make_prm(type, droppedItem, !hasFlag, true, tex), pos, roomNo, &angle);
|
||||
}
|
||||
static u32 make_prm(Type_e arg0, int droppedItem, bool hasFlag, bool flagType, daObjBuoyflag::Texture_e arg4) {
|
||||
s32 item = (droppedItem & 0x3F);
|
||||
s32 tmp = hasFlag ? 1 : 0;
|
||||
s32 a6 = arg4;
|
||||
return (item | (0x7F << 16)) | (arg0 << 24) | (tmp << 8) | ((flagType ? 1 : 0) << 10) | (a6 << 28);
|
||||
static u32 make_prm(Type_e type, int droppedItem, bool hasFlag, bool _unused, daObjBuoyflag::Texture_e tex) {
|
||||
int itemNo = (droppedItem & 0x3F);
|
||||
int buoy = hasFlag ? 1 : 0;
|
||||
bool coming = true;
|
||||
return
|
||||
(itemNo << PRM_ITEM_NO_S) |
|
||||
(0x7F << PRM_ITEM_SAVE_S) |
|
||||
(type << PRM_TYPE_S) |
|
||||
(buoy << PRM_BUOY_S) |
|
||||
((tex == daObjBuoyflag::Texture_00_e ? 0 : 1) << PRM_TEXTURE_S) |
|
||||
(coming << PRM_COMING_S);
|
||||
}
|
||||
s32 prm_get_buoy() const {
|
||||
return daObj::PrmAbstract(this, PRM_BUOY_W, PRM_BUOY_S);
|
||||
@@ -181,7 +187,7 @@ namespace daObjBarrel2 {
|
||||
/* 0x44C */ f32 m44C;
|
||||
/* 0x450 */ f32 m450;
|
||||
/* 0x458 */ f32 m454;
|
||||
/* 0x458 */ fpc_ProcID m458;
|
||||
/* 0x458 */ fpc_ProcID mItemId;
|
||||
/* 0x45C */ f32 m45C;
|
||||
/* 0x460 */ fpc_ProcID m460;
|
||||
/* 0x464 */ s32 m464;
|
||||
|
||||
+35
-11
@@ -16,9 +16,21 @@
|
||||
#include "d/actor/d_a_obj_barrel2.h"
|
||||
|
||||
s32 daComing2::coming_make_item_no_table[] = {
|
||||
dItem_GREEN_RUPEE_e, dItem_GREEN_RUPEE_e, dItem_GREEN_RUPEE_e, dItem_GREEN_RUPEE_e, dItem_GREEN_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e, dItem_BLUE_RUPEE_e, dItem_BLUE_RUPEE_e, dItem_BLUE_RUPEE_e, dItem_BLUE_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e, dItem_YELLOW_RUPEE_e, dItem_YELLOW_RUPEE_e, dItem_YELLOW_RUPEE_e, dItem_YELLOW_RUPEE_e
|
||||
dItem_GREEN_RUPEE_e,
|
||||
dItem_GREEN_RUPEE_e,
|
||||
dItem_GREEN_RUPEE_e,
|
||||
dItem_GREEN_RUPEE_e,
|
||||
dItem_GREEN_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e,
|
||||
dItem_BLUE_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e,
|
||||
dItem_YELLOW_RUPEE_e,
|
||||
};
|
||||
|
||||
static void dummy() {
|
||||
@@ -232,7 +244,7 @@ BOOL daComing2::Act_c::request_barrel_exitN(int idx) {
|
||||
|
||||
if (barrelProc != fpcM_ERROR_PROCESS_ID_e) {
|
||||
if (fopAcM_SearchByID(barrelProc, (fopAc_ac_c**)&barrel) != NULL && barrel != NULL) {
|
||||
barrel->m474 = 1;
|
||||
barrel->exit_req();
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
@@ -281,7 +293,7 @@ BOOL daComing2::Act_c::request_all_flag_exit() {
|
||||
daObjBarrel2::Act_c* buoy;
|
||||
|
||||
if (buoyProc != fpcM_ERROR_PROCESS_ID_e && fopAcM_SearchByID(buoyProc, (fopAc_ac_c**)&buoy) != NULL && buoy != NULL) {
|
||||
buoy->m474 = 1;
|
||||
buoy->exit_req();
|
||||
mStartBuoy[i].unk_00 = fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
}
|
||||
@@ -434,12 +446,16 @@ void daComing2::Act_c::coming_setF_main() {
|
||||
cMtx_multVec(sp4C, &sp34[i], &sp28);
|
||||
if (get_water_height(&sp28.y, &sp28) && check_in_large_sea(&sp28) &&
|
||||
position_is_none_obj(&sp28) && no_ship_obstacle(&sp28)) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
fpc_ProcID barrel = daObjBarrel2::Act_c::make_coming(&sp28, -1, daObjBarrel2::Type_01_e, 0x3F, false, mStartStat.unk_00, daObjBuoyflag::Texture_01_e);
|
||||
#else
|
||||
daObjBarrel2::Type_e type(daObjBarrel2::Type_01_e);
|
||||
fpc_ProcID barrel = daObjBarrel2::Act_c::make_coming(&sp28, -1, type, 0x3F, false, mStartStat.unk_00, daObjBuoyflag::Texture_01_e);
|
||||
#endif
|
||||
fpc_ProcID barrel = daObjBarrel2::Act_c::make_coming(
|
||||
&sp28,
|
||||
-1,
|
||||
DEMO_SELECT(daObjBarrel2::Type_01_e, type),
|
||||
0x3F,
|
||||
true,
|
||||
mStartStat.unk_00,
|
||||
daObjBuoyflag::Texture_01_e
|
||||
);
|
||||
mStartBuoy[i].unk_00 = barrel;
|
||||
if (barrel != fpcM_ERROR_PROCESS_ID_e) {
|
||||
mStartBuoy[i].unk_04 = sp28;
|
||||
@@ -503,7 +519,15 @@ void daComing2::Act_c::coming_game_main() {
|
||||
if ((mBarrelInfo[unk_2A4].unk_00 == fpcM_ERROR_PROCESS_ID_e && make_coming_param(&sp1C, &type, &droppedItem, &hasFlag))) {
|
||||
if (check_in_large_sea(&sp1C) != 0) {
|
||||
if (position_is_none_obj(&sp1C) && no_ship_obstacle(&sp1C)) {
|
||||
fpc_ProcID barrel = daObjBarrel2::Act_c::make_coming(&sp1C, -1, type, droppedItem, hasFlag, mStartStat.unk_00, daObjBuoyflag::Texture_01_e);
|
||||
fpc_ProcID barrel = daObjBarrel2::Act_c::make_coming(
|
||||
&sp1C,
|
||||
-1,
|
||||
type,
|
||||
droppedItem,
|
||||
hasFlag,
|
||||
mStartStat.unk_00,
|
||||
daObjBuoyflag::Texture_00_e
|
||||
);
|
||||
mBarrelInfo[unk_2A4].unk_00 = barrel;
|
||||
if (barrel != fpcM_ERROR_PROCESS_ID_e) {
|
||||
unk_29A = 0;
|
||||
|
||||
@@ -198,7 +198,15 @@ void daComing3::Act_c::coming_start_main() {
|
||||
static s32 make_item_table[] = {
|
||||
dItem_BLUE_RUPEE_e, dItem_YELLOW_RUPEE_e,
|
||||
};
|
||||
unk_400 = daObjBarrel2::Act_c::make_coming(&sp18, fopAcM_GetRoomNo(this), daObjBarrel2::Type_01_e, make_item_table[get_challenge_id()], true, shape_angle.y, daObjBuoyflag::Texture_01_e);
|
||||
unk_400 = daObjBarrel2::Act_c::make_coming(
|
||||
&sp18,
|
||||
fopAcM_GetRoomNo(this),
|
||||
daObjBarrel2::Type_01_e,
|
||||
make_item_table[get_challenge_id()],
|
||||
false,
|
||||
shape_angle.y,
|
||||
daObjBuoyflag::Texture_00_e
|
||||
);
|
||||
}
|
||||
|
||||
if (unk_400 != fpcM_ERROR_PROCESS_ID_e) {
|
||||
@@ -253,7 +261,7 @@ void daComing3::Act_c::coming_game_main() {
|
||||
unk_404 = 3;
|
||||
eff_break_tsubo();
|
||||
} else if ((unk_478 <= get_limit_dist()) && (barrel != NULL)) {
|
||||
barrel->m474 = 1;
|
||||
barrel->exit_req();
|
||||
unk_404 = 2;
|
||||
}
|
||||
break;
|
||||
@@ -284,8 +292,8 @@ void daComing3::Act_c::coming_wait_main() {
|
||||
|
||||
fopAcM_SearchByID(unk_400, &ac1);
|
||||
daObjBarrel2::Act_c* barrel = (daObjBarrel2::Act_c*)ac1;
|
||||
if (barrel != NULL && !fopAcM_SearchByID(barrel->m458, &ac2)) {
|
||||
barrel->m474 = 1;
|
||||
if (barrel != NULL && !fopAcM_SearchByID(barrel->get_item_id(), &ac2)) {
|
||||
barrel->exit_req();
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,8 +272,15 @@ cPhs_State daObjBarrel2::Act_c::_create() {
|
||||
csXyz sp10(0, home.angle.y, 0);
|
||||
sp24.setall(attr()->m28 * attr()->m2C);
|
||||
|
||||
m458 =
|
||||
fopAcM_createRaceItemFromTable(&sp30, prm_get_itemNo(), prm_get_itemSave(), fopAcM_GetHomeRoomNo(this), &sp10, &sp24, prm_get_coming() ? 1 : 0);
|
||||
mItemId = fopAcM_createRaceItemFromTable(
|
||||
&sp30,
|
||||
prm_get_itemNo(),
|
||||
prm_get_itemSave(),
|
||||
fopAcM_GetHomeRoomNo(this),
|
||||
&sp10,
|
||||
&sp24,
|
||||
prm_get_coming() ? 1 : 0
|
||||
);
|
||||
m45C = 3.4028235e+38f;
|
||||
m468 = 0;
|
||||
m470 = 0;
|
||||
@@ -796,7 +803,7 @@ void daObjBarrel2::Act_c::item_delete() {
|
||||
void daObjBarrel2::Act_c::item_give() {
|
||||
if (M_tmp_item_actor != NULL) {
|
||||
M_tmp_item_actor->raceItemForceGet();
|
||||
m458 = fpcM_ERROR_PROCESS_ID_e;
|
||||
mItemId = fpcM_ERROR_PROCESS_ID_e;
|
||||
m476 = 1;
|
||||
M_tmp_item_actor = NULL;
|
||||
}
|
||||
@@ -805,19 +812,19 @@ void daObjBarrel2::Act_c::item_give() {
|
||||
/* 000022A4-0000233C .text item_connect_check__Q212daObjBarrel25Act_cFv */
|
||||
void daObjBarrel2::Act_c::item_connect_check() {
|
||||
M_tmp_item_actor = NULL;
|
||||
if (m458 != fpcM_ERROR_PROCESS_ID_e) {
|
||||
if (mItemId != fpcM_ERROR_PROCESS_ID_e) {
|
||||
fopAc_ac_c* pRaceitem;
|
||||
if (fopAcM_SearchByID(m458, &pRaceitem)) {
|
||||
if (fopAcM_SearchByID(mItemId, &pRaceitem)) {
|
||||
daRaceItem_c* raceitem = (daRaceItem_c*)pRaceitem;
|
||||
if (raceitem != NULL) {
|
||||
if (raceitem->checkOffsetPos()) {
|
||||
M_tmp_item_actor = raceitem;
|
||||
} else {
|
||||
m458 = fpcM_ERROR_PROCESS_ID_e;
|
||||
mItemId = fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m458 = fpcM_ERROR_PROCESS_ID_e;
|
||||
mItemId = fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -441,7 +441,7 @@ void daObjComing::Act_c::mode_barrel2_wait(daObjComing::Ctrl_c* ctrl) {
|
||||
barrel2.mItem,
|
||||
barrel2.m14,
|
||||
barrel2.mAngleY,
|
||||
daObjBuoyflag::Texture_01_e
|
||||
daObjBuoyflag::Texture_00_e
|
||||
);
|
||||
ctrl->set_appear_timer(this);
|
||||
ctrl->m00 = 1;
|
||||
@@ -463,7 +463,7 @@ void daObjComing::Act_c::mode_barrel2_appear(daObjComing::Ctrl_c* ctrl) {
|
||||
if (ac != NULL) {
|
||||
daObjBarrel2::Act_c* barrel2_act = (daObjBarrel2::Act_c*)ac;
|
||||
JUT_ASSERT(1119, fopAcM_GetName(barrel2_act) == tk_Obj_Barrel2_e);
|
||||
barrel2_act->m474 = 1;
|
||||
barrel2_act->exit_req();
|
||||
}
|
||||
} else {
|
||||
ctrl->m08 = fpcM_ERROR_PROCESS_ID_e;
|
||||
@@ -487,7 +487,7 @@ void daObjComing::Act_c::mode_barrel2_leave(daObjComing::Ctrl_c* ctrl) {
|
||||
if (ac != NULL) {
|
||||
daObjBarrel2::Act_c* barrel2_act = (daObjBarrel2::Act_c*)ac;
|
||||
JUT_ASSERT(1145, fopAcM_GetName(barrel2_act) == tk_Obj_Barrel2_e);
|
||||
barrel2_act->m474 = 1;
|
||||
barrel2_act->exit_req();
|
||||
}
|
||||
} else {
|
||||
ctrl->m08 = fpcM_ERROR_PROCESS_ID_e;
|
||||
|
||||
Reference in New Issue
Block a user