mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-03 08:23:08 -04:00
d_a_alink cleanup / debug work (#3045)
* start d_a_alink debug cleanup * d_a_alink_damage debug * d_a_alink_guard debug * d_a_alink_bow debug * d_a_alink_boom debug * d_a_alink_copyrod debug * d_a_alink_hvyboots debug * d_a_alink_grab debug * d_a_alink_sumou debug * d_a_alink_horse debug * d_a_alink_canoe debug * d_a_alink_crawl / d_a_alink_hang debug * d_a_alink_swim debug * d_a_alink_hook / d_a_alink_iceleaf debug * d_a_alink_bottle debug * d_a_alink_whistle / d_a_alink_kandelaar / d_a_alink_ironball debug * d_a_alink_demo debug * d_a_alink_effect debug * d_a_alink_wolf debug * d_a_alink debug / cleanup * cleanup button status enums
This commit is contained in:
+126
-111
@@ -33,8 +33,7 @@ void daPy_frameCtrl_c::updateFrame() {
|
||||
offNowSetFlg();
|
||||
}
|
||||
|
||||
void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate,
|
||||
f32 i_frame) {
|
||||
void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame) {
|
||||
setAttribute(i_attribute);
|
||||
setEnd(i_end);
|
||||
setRate(i_rate);
|
||||
@@ -50,15 +49,15 @@ void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32
|
||||
offEndFlg();
|
||||
}
|
||||
|
||||
void daPy_boomerangMove_c::initOffset(cXyz const* i_offset) {
|
||||
void daPy_boomerangMove_c::initOffset(const cXyz* i_pos) {
|
||||
daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor();
|
||||
|
||||
if (boomerang_p != NULL) {
|
||||
bgCheckAfterOffset(i_offset);
|
||||
bgCheckAfterOffset(i_pos);
|
||||
boomerang_p->onWindCatch();
|
||||
} else {
|
||||
field_0x4 = cM_rndF(70.0f) + 30.0f;
|
||||
field_0x8 = cM_rndF(50.0f) + 50.0f;
|
||||
m_offsetY = cM_rndF(70.0f) + 30.0f;
|
||||
m_offsetXZ = cM_rndF(50.0f) + 50.0f;
|
||||
field_0x2 = cM_rndF(65536.0f);
|
||||
}
|
||||
|
||||
@@ -71,20 +70,20 @@ s16 daPy_boomerangMove_c::m_dropAngleY;
|
||||
|
||||
s16 daPy_boomerangMove_c::m_eventKeepFlg;
|
||||
|
||||
int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param_2, s16 param_3) {
|
||||
int daPy_boomerangMove_c::posMove(cXyz* o_pos, s16* o_rotY, fopAc_ac_c* i_objActor, s16 i_rotStep) {
|
||||
daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor();
|
||||
|
||||
field_0x2 -= param_3;
|
||||
*param_1 -= param_3;
|
||||
field_0x2 -= i_rotStep;
|
||||
*o_rotY -= i_rotStep;
|
||||
|
||||
if (field_0x8 > 300.0f) {
|
||||
field_0x8 = 300.0f;
|
||||
if (m_offsetXZ > 300.0f) {
|
||||
m_offsetXZ = 300.0f;
|
||||
}
|
||||
|
||||
if (field_0x4 < -700.0f) {
|
||||
field_0x4 = -700.0f;
|
||||
} else if (field_0x4 > 50.0f) {
|
||||
field_0x4 = 50.0f;
|
||||
if (m_offsetY < -700.0f) {
|
||||
m_offsetY = -700.0f;
|
||||
} else if (m_offsetY > 50.0f) {
|
||||
m_offsetY = 50.0f;
|
||||
}
|
||||
|
||||
if (boomerang_p != NULL) {
|
||||
@@ -98,39 +97,39 @@ int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param
|
||||
return 0;
|
||||
}
|
||||
|
||||
param_0->set(boomerang_p->current.pos.x + field_0x8 * cM_ssin(field_0x2),
|
||||
boomerang_p->current.pos.y + field_0x4,
|
||||
boomerang_p->current.pos.z + field_0x8 * cM_scos(field_0x2));
|
||||
o_pos->set(boomerang_p->current.pos.x + m_offsetXZ * cM_ssin(field_0x2),
|
||||
boomerang_p->current.pos.y + m_offsetY,
|
||||
boomerang_p->current.pos.z + m_offsetXZ * cM_scos(field_0x2));
|
||||
boomerang_p->onWindCatch();
|
||||
return 1;
|
||||
}
|
||||
|
||||
daAlink_c* player_p = daAlink_getAlinkActorClass();
|
||||
if ((param_2 == NULL || !player_p->checkBoomerangCarry(param_2)) &&
|
||||
if ((i_objActor == NULL || !player_p->checkBoomerangCarry(i_objActor)) &&
|
||||
(m_eventKeepFlg == 0 || field_0x0 != 0))
|
||||
{
|
||||
s16 tmp = (m_dropAngleY + player_p->shape_angle.y) + cM_rndF(2048.0f);
|
||||
|
||||
param_0->x = player_p->current.pos.x + field_0x8 * cM_ssin(tmp);
|
||||
param_0->z = player_p->current.pos.z + field_0x8 * cM_scos(tmp);
|
||||
o_pos->x = player_p->current.pos.x + m_offsetXZ * cM_ssin(tmp);
|
||||
o_pos->z = player_p->current.pos.z + m_offsetXZ * cM_scos(tmp);
|
||||
m_dropAngleY += 0x2000;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* i_offset) {
|
||||
void daPy_boomerangMove_c::bgCheckAfterOffset(const cXyz* i_pos) {
|
||||
daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor();
|
||||
if (boomerang_p != NULL) {
|
||||
field_0x4 = i_offset->y - boomerang_p->current.pos.y;
|
||||
field_0x8 = boomerang_p->current.pos.absXZ(*i_offset);
|
||||
field_0x2 = cM_atan2s(i_offset->x - boomerang_p->current.pos.x,
|
||||
i_offset->z - boomerang_p->current.pos.z);
|
||||
m_offsetY = i_pos->y - boomerang_p->current.pos.y;
|
||||
m_offsetXZ = boomerang_p->current.pos.absXZ(*i_pos);
|
||||
field_0x2 = cM_atan2s(i_pos->x - boomerang_p->current.pos.x,
|
||||
i_pos->z - boomerang_p->current.pos.z);
|
||||
}
|
||||
}
|
||||
|
||||
u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) {
|
||||
return param_3 | (param_0 & 0x3F | (param_1 & 0x1F) << 0xC | param_2 << 0x18);
|
||||
u32 daPy_py_c::setParamData(int i_roomNo, int i_mode, int param_2, int param_3) {
|
||||
return (i_roomNo & 0x3F) | (i_mode & 0x1F) << 0xC | ((param_2 & 0xFF) << 0x18) | param_3;
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) {
|
||||
@@ -142,16 +141,23 @@ BOOL daPy_py_c::checkBombItem(int i_itemNo) {
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkBottleItem(int i_itemNo) {
|
||||
return (i_itemNo >= fpcNm_ITEM_EMPTY_BOTTLE && i_itemNo <= fpcNm_ITEM_FAIRY) || i_itemNo == fpcNm_ITEM_BEE_CHILD ||
|
||||
i_itemNo == fpcNm_ITEM_WORM || i_itemNo == fpcNm_ITEM_FAIRY_DROP || i_itemNo == fpcNm_ITEM_CHUCHU_BLACK ||
|
||||
(i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo <= fpcNm_ITEM_LV3_SOUP);
|
||||
return (i_itemNo >= fpcNm_ITEM_EMPTY_BOTTLE && i_itemNo <= fpcNm_ITEM_FAIRY)
|
||||
|| i_itemNo == fpcNm_ITEM_BEE_CHILD
|
||||
|| i_itemNo == fpcNm_ITEM_WORM
|
||||
|| i_itemNo == fpcNm_ITEM_FAIRY_DROP
|
||||
|| i_itemNo == fpcNm_ITEM_CHUCHU_BLACK
|
||||
|| (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo <= fpcNm_ITEM_LV3_SOUP);
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkDrinkBottleItem(int i_itemNo) {
|
||||
return (i_itemNo >= fpcNm_ITEM_RED_BOTTLE && i_itemNo <= fpcNm_ITEM_HALF_MILK_BOTTLE) || i_itemNo == fpcNm_ITEM_RED_BOTTLE_2 ||
|
||||
i_itemNo == fpcNm_ITEM_UGLY_SOUP || i_itemNo == fpcNm_ITEM_HOT_SPRING || i_itemNo == fpcNm_ITEM_BEE_CHILD ||
|
||||
i_itemNo == fpcNm_ITEM_CHUCHU_BLACK || i_itemNo == fpcNm_ITEM_FAIRY_DROP ||
|
||||
(i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo != fpcNm_ITEM_CHUCHU_YELLOW && i_itemNo <= fpcNm_ITEM_LV3_SOUP);
|
||||
return (i_itemNo >= fpcNm_ITEM_RED_BOTTLE && i_itemNo <= fpcNm_ITEM_HALF_MILK_BOTTLE)
|
||||
|| i_itemNo == fpcNm_ITEM_RED_BOTTLE_2
|
||||
|| i_itemNo == fpcNm_ITEM_UGLY_SOUP
|
||||
|| i_itemNo == fpcNm_ITEM_HOT_SPRING
|
||||
|| i_itemNo == fpcNm_ITEM_BEE_CHILD
|
||||
|| i_itemNo == fpcNm_ITEM_CHUCHU_BLACK
|
||||
|| i_itemNo == fpcNm_ITEM_FAIRY_DROP
|
||||
|| (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo != fpcNm_ITEM_CHUCHU_YELLOW && i_itemNo <= fpcNm_ITEM_LV3_SOUP);
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) {
|
||||
@@ -171,9 +177,13 @@ BOOL daPy_py_c::checkHookshotItem(int i_itemNo) {
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkTradeItem(int i_itemNo) {
|
||||
return (i_itemNo >= fpcNm_ITEM_LETTER && i_itemNo <= fpcNm_ITEM_IRIAS_PENDANT) || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT ||
|
||||
i_itemNo == fpcNm_ITEM_AIR_LETTER || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT2 || i_itemNo == fpcNm_ITEM_RAFRELS_MEMO ||
|
||||
i_itemNo == fpcNm_ITEM_TKS_LETTER || i_itemNo == fpcNm_ITEM_ASHS_SCRIBBLING;
|
||||
return (i_itemNo >= fpcNm_ITEM_LETTER && i_itemNo <= fpcNm_ITEM_IRIAS_PENDANT)
|
||||
|| i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT
|
||||
|| i_itemNo == fpcNm_ITEM_AIR_LETTER
|
||||
|| i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT2
|
||||
|| i_itemNo == fpcNm_ITEM_RAFRELS_MEMO
|
||||
|| i_itemNo == fpcNm_ITEM_TKS_LETTER
|
||||
|| i_itemNo == fpcNm_ITEM_ASHS_SCRIBBLING;
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) {
|
||||
@@ -181,11 +191,10 @@ BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) {
|
||||
}
|
||||
|
||||
void daPy_actorKeep_c::setActor() {
|
||||
if (mID != -1) {
|
||||
if (mID != fpcM_ERROR_PROCESS_ID_e) {
|
||||
mActor = fopAcM_SearchByID(mID);
|
||||
|
||||
if (mActor == NULL) {
|
||||
mID = -1;
|
||||
mID = fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
} else {
|
||||
mActor = NULL;
|
||||
@@ -202,7 +211,7 @@ void daPy_actorKeep_c::setData(fopAc_ac_c* i_actor) {
|
||||
}
|
||||
|
||||
void daPy_actorKeep_c::clearData() {
|
||||
mID = 0xffffffff;
|
||||
mID = fpcM_ERROR_PROCESS_ID_e;
|
||||
mActor = NULL;
|
||||
}
|
||||
|
||||
@@ -243,25 +252,44 @@ void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE i_heapType) {
|
||||
size = 0xA0;
|
||||
}
|
||||
|
||||
char* tmpWork;
|
||||
mDoExt_transAnmBas* tmpTransBas;
|
||||
J3DAnmTransformKey* tmpTrans;
|
||||
J3DAnmTexPattern* tmpTp;
|
||||
J3DAnmTextureSRTKey* tmpTk;
|
||||
|
||||
JKRHeap* tmp;
|
||||
mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20);
|
||||
|
||||
|
||||
if (i_heapType == 4) {
|
||||
char* tmpWork = new char[size];
|
||||
tmpWork = new char[size];
|
||||
JUT_ASSERT(669, tmpWork != NULL);
|
||||
} else if (i_heapType == 3) {
|
||||
mDoExt_transAnmBas* tmpTransBas = new mDoExt_transAnmBas(NULL);
|
||||
tmpTransBas = new mDoExt_transAnmBas(NULL);
|
||||
JUT_ASSERT(672, tmpTransBas != NULL);
|
||||
} else if (i_heapType == 0) {
|
||||
J3DAnmTransformKey* tmpTrans = new J3DAnmTransformKey();
|
||||
tmpTrans = new J3DAnmTransformKey();
|
||||
JUT_ASSERT(675, tmpTrans != NULL);
|
||||
} else if (i_heapType == 1) {
|
||||
J3DAnmTexPattern* tmpTp = new J3DAnmTexPattern();
|
||||
tmpTp = new J3DAnmTexPattern();
|
||||
JUT_ASSERT(678, tmpTp != NULL);
|
||||
} else {
|
||||
J3DAnmTextureSRTKey* tmpTk = new J3DAnmTextureSRTKey();
|
||||
tmpTk = new J3DAnmTextureSRTKey();
|
||||
JUT_ASSERT(681, tmpTk != NULL);
|
||||
}
|
||||
|
||||
mDoExt_setCurrentHeap(tmp);
|
||||
mDoExt_adjustSolidHeap(mAnimeHeap);
|
||||
}
|
||||
|
||||
void daPy_aramBufferCheck(void* i_buffer, u32 i_size) {
|
||||
daPy_anmHeap_c* heap = (daPy_anmHeap_c*)i_buffer;
|
||||
if (heap->mBufferSize > i_size) {
|
||||
OS_REPORT("%x, %x\n", heap->mBufferSize, i_size);
|
||||
JUT_ASSERT(699, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void* daPy_anmHeap_c::loadData(u16 i_resId) {
|
||||
static const char twglArcName[] = "TWGate_Lk";
|
||||
static const char twgwArcName[] = "TWGate_Wf";
|
||||
@@ -278,7 +306,11 @@ void* daPy_anmHeap_c::loadData(u16 i_resId) {
|
||||
};
|
||||
|
||||
if (mArcNo == 0xFFFF) {
|
||||
dComIfGp_getAnmArchive()->readIdxResource(mBuffer, mBufferSize, i_resId);
|
||||
JKRReadIdxResource(mBuffer, mBufferSize, i_resId, dComIfGp_getAnmArchive());
|
||||
#if DEBUG
|
||||
daPy_aramBufferCheck(mBuffer, mBufferSize);
|
||||
#endif
|
||||
|
||||
JKRHeap* heap = setAnimeHeap();
|
||||
void* data = J3DAnmLoaderDataBase::load(mBuffer, J3DLOADER_UNK_FLAG0);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
@@ -293,48 +325,36 @@ void* daPy_anmHeap_c::loadData(u16 i_resId) {
|
||||
}
|
||||
|
||||
void* daPy_anmHeap_c::loadDataIdx(u16 i_resID) {
|
||||
void* data;
|
||||
|
||||
if (i_resID == mIdx && mArcNo == 0xFFFF) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mIdx = i_resID;
|
||||
mArcNo = 0xFFFF;
|
||||
if (mPriIdx == 0xFFFF) {
|
||||
data = loadData(i_resID);
|
||||
} else {
|
||||
data = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return data;
|
||||
mIdx = i_resID;
|
||||
mArcNo = 0xFFFF;
|
||||
if (mPriIdx == 0xFFFF) {
|
||||
return loadData(i_resID);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* daPy_anmHeap_c::loadDataPriIdx(u16 i_resID) {
|
||||
void* data;
|
||||
|
||||
if (i_resID == mPriIdx || mArcNo != 0xFFFF) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mPriIdx = i_resID;
|
||||
data = loadData(i_resID);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return data;
|
||||
mPriIdx = i_resID;
|
||||
return loadData(i_resID);
|
||||
}
|
||||
|
||||
void* daPy_anmHeap_c::loadDataDemoRID(u16 i_resID, u16 i_arcNo) {
|
||||
void* data;
|
||||
|
||||
if (i_resID == mIdx && i_arcNo == mArcNo) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mIdx = i_resID;
|
||||
mArcNo = i_arcNo;
|
||||
data = loadData(i_resID);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return data;
|
||||
mIdx = i_resID;
|
||||
mArcNo = i_arcNo;
|
||||
return loadData(i_resID);
|
||||
}
|
||||
|
||||
JKRHeap* daPy_anmHeap_c::setAnimeHeap() {
|
||||
@@ -370,13 +390,11 @@ void daPy_sightPacket_c::draw() {
|
||||
|
||||
GXSetTevColor(GX_TEVREG0, reg0);
|
||||
GXSetTevColor(GX_TEVREG1, reg1);
|
||||
u8 tmp2 = mpImg->mipmapCount;
|
||||
tmp2 = tmp2 > 1;
|
||||
GXInitTexObj(&texObj, mpData, mpImg->width, mpImg->height, (GXTexFmt)mpImg->format,
|
||||
(GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, (GXBool)(tmp2));
|
||||
(GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, mpImg->mipmapCount > 1 ? GX_ENABLE : GX_DISABLE);
|
||||
GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0, 0.0, 0.0, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP0);
|
||||
GXLoadPosMtxImm(field_0x14, GX_PNMTX0);
|
||||
GXLoadPosMtxImm(mProjMtx, GX_PNMTX0);
|
||||
GXSetCurrentMtx(0);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXCallDisplayList(l_sightDL, 0x80);
|
||||
@@ -389,7 +407,7 @@ void daPy_sightPacket_c::setSight() {
|
||||
mDoLib_project(&mPos, &proj);
|
||||
mDoMtx_stack_c::transS(proj.x, proj.y, proj.z);
|
||||
mDoMtx_stack_c::scaleM(32.0f, 32.0f, 32.0f);
|
||||
mDoMtx_copy(mDoMtx_stack_c::get(), field_0x14);
|
||||
mDoMtx_copy(mDoMtx_stack_c::get(), mProjMtx);
|
||||
dComIfGd_set2DXlu(this);
|
||||
}
|
||||
|
||||
@@ -399,19 +417,12 @@ void daPy_sightPacket_c::setSightImage(ResTIMG* i_img) {
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkMasterSwordEquip() {
|
||||
u32 equipSword = dComIfGs_getSelectEquipSword();
|
||||
bool isMasterSword = false;
|
||||
|
||||
if (equipSword == fpcNm_ITEM_MASTER_SWORD || equipSword == fpcNm_ITEM_LIGHT_SWORD) {
|
||||
isMasterSword = true;
|
||||
}
|
||||
|
||||
return isMasterSword;
|
||||
u16 equipSword = dComIfGs_getSelectEquipSword();
|
||||
return equipSword == fpcNm_ITEM_MASTER_SWORD || equipSword == fpcNm_ITEM_LIGHT_SWORD;
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkWoodShieldEquip() {
|
||||
u16 equipShield = dComIfGs_getSelectEquipShield();
|
||||
|
||||
return equipShield == fpcNm_ITEM_WOOD_SHIELD || equipShield == fpcNm_ITEM_SHIELD;
|
||||
}
|
||||
|
||||
@@ -427,13 +438,12 @@ int daPy_py_c::checkNowWolfEyeUp() {
|
||||
return daAlink_getAlinkActorClass()->checkWolfEyeUp();
|
||||
}
|
||||
|
||||
|
||||
void daAlink_c::startRestartRoomFromOut(int param_0, u32 param_1, int param_2) {
|
||||
startRestartRoom(param_1, param_2, param_0, dComIfGp_event_runCheck());
|
||||
void daAlink_c::startRestartRoomFromOut(int i_dmgAmount, u32 i_mode, int param_2) {
|
||||
startRestartRoom(i_mode, param_2, i_dmgAmount, dComIfGp_event_runCheck());
|
||||
}
|
||||
|
||||
void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) {
|
||||
daAlink_getAlinkActorClass()->startRestartRoomFromOut(param_0, param_1, param_2);
|
||||
void daPy_py_c::forceRestartRoom(int i_dmgAmount, u32 i_mode, int param_2) {
|
||||
daAlink_getAlinkActorClass()->startRestartRoomFromOut(i_dmgAmount, i_mode, param_2);
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) {
|
||||
@@ -448,14 +458,13 @@ void daPy_py_c::setLookPos(cXyz* i_pos) {
|
||||
daAlink_getAlinkActorClass()->setLookPosFromOut(i_pos);
|
||||
}
|
||||
|
||||
void daPy_py_c::setPlayerSe(u32 i_sfxID) {
|
||||
daAlink_getAlinkActorClass()->seStartOnlyReverb(i_sfxID);
|
||||
void daPy_py_c::setPlayerSe(u32 i_soundID) {
|
||||
daAlink_getAlinkActorClass()->seStartOnlyReverb(i_soundID);
|
||||
}
|
||||
|
||||
bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* i_actor) {
|
||||
return (fopAcM_checkCarryNow(i_actor) &&
|
||||
daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(i_actor)) &&
|
||||
dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2);
|
||||
return (fopAcM_checkCarryNow(i_actor) && daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(i_actor))
|
||||
&& dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2);
|
||||
}
|
||||
|
||||
bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) {
|
||||
@@ -463,7 +472,7 @@ bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) {
|
||||
}
|
||||
|
||||
bool daPy_py_c::checkRoomRestartStart() {
|
||||
u8 mode = getLastSceneMode();
|
||||
u32 mode = getLastSceneMode();
|
||||
if (mode == 4 || mode == 8 || mode == 5) {
|
||||
return true;
|
||||
}
|
||||
@@ -472,9 +481,10 @@ bool daPy_py_c::checkRoomRestartStart() {
|
||||
}
|
||||
|
||||
u32 daPy_py_c::checkCarryStartLightBallA() {
|
||||
if (checkRoomRestartStart() || !dComIfGp_getStage() ||
|
||||
!dComIfGp_getStage()->getStagInfo() ||
|
||||
dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17)
|
||||
if (checkRoomRestartStart()
|
||||
|| !dComIfGp_getStage()
|
||||
|| !dComIfGp_getStage()->getStagInfo()
|
||||
|| dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV8)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -483,9 +493,10 @@ u32 daPy_py_c::checkCarryStartLightBallA() {
|
||||
}
|
||||
|
||||
u32 daPy_py_c::checkCarryStartLightBallB() {
|
||||
if (checkRoomRestartStart() || !dComIfGp_getStage() ||
|
||||
!dComIfGp_getStage()->getStagInfo() ||
|
||||
dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17)
|
||||
if (checkRoomRestartStart()
|
||||
|| !dComIfGp_getStage()
|
||||
|| !dComIfGp_getStage()->getStagInfo()
|
||||
|| dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV8)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -516,22 +527,25 @@ bool daPy_py_c::checkBoomerangCharge() {
|
||||
}
|
||||
|
||||
bool daPy_py_c::checkBoomerangChargeTime() {
|
||||
return 0;
|
||||
return daAlink_getAlinkActorClass()->checkBoomerangChargeNow();
|
||||
}
|
||||
|
||||
daBoomerang_c* daPy_py_c::getThrowBoomerangActor() {
|
||||
return static_cast<daBoomerang_c*>(
|
||||
daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor());
|
||||
return static_cast<daBoomerang_c*>(daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor());
|
||||
}
|
||||
|
||||
void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* i_actor) {
|
||||
daAlink_getAlinkActorClass()->cancelBoomerangLock(i_actor);
|
||||
}
|
||||
|
||||
void daPy_py_c::setPlayerDamage(int i_dmgAmount, int i_setDmgTimer) {
|
||||
void daPy_py_c::setPlayerDamage(int i_dmgAmount, BOOL i_setDmgTimer) {
|
||||
daAlink_getAlinkActorClass()->setDamagePoint(i_dmgAmount, FALSE, i_setDmgTimer, 0);
|
||||
}
|
||||
|
||||
BOOL daPy_py_c::checkAcceptDungeonWarp() {
|
||||
return daAlink_getAlinkActorClass()->checkAcceptDungeonWarpAlink(1);
|
||||
}
|
||||
|
||||
void daPy_py_c::setMidnaMotionNum(int i_motionNum) {
|
||||
if (m_midnaActor != NULL) {
|
||||
m_midnaActor->setMotionNum(i_motionNum);
|
||||
@@ -563,5 +577,6 @@ int daPy_addCalcShort(s16* i_value, s16 i_target, s16 i_scale, s16 i_maxStep, s1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return i_target - *i_value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user