mirror of
https://github.com/zeldaret/tp
synced 2026-06-12 13:35:26 -04:00
various fixes / matches (#2052)
* some fixes in d/s, d_item, d_shop * fix for dKankyo_DayProc weak generation * d_cc_uty fix * some d_name / d_com_inf_game / f_op_actor_mng matches * fix some player inline virtuals * remove asm
This commit is contained in:
+25
-17
@@ -291,11 +291,11 @@ void daItem_c::setBaseMtx_0() {
|
||||
SECTION_SDATA2 static f32 lit_3923 = 0.5f;
|
||||
|
||||
/* 8015B1C8-8015B254 155B08 008C+00 1/1 0/0 0/0 .text setBaseMtx_1__8daItem_cFv */
|
||||
// literals / load instructions flipped
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daItem_c::setBaseMtx_1() {
|
||||
f32 max_y = mpModel->getModelData()->getJointNodePointer(0)->getMax()->y;
|
||||
f32 y = max_y * 0.5f * mScale.y;
|
||||
f32 y = (max_y / 2) * mScale.y;
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transM(0.0f, y, 0.0f);
|
||||
@@ -396,6 +396,15 @@ SECTION_DATA static void* lit_5193[10] = {
|
||||
(void*)(((char*)initScale__8daItem_cFv) + 0x3C),
|
||||
};
|
||||
|
||||
#ifdef NONMATCHING
|
||||
procFunc daItem_c::mFuncPtr[9] = {
|
||||
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry,
|
||||
&daItem_c::procMainSimpleGetDemo, &daItem_c::procWaitGetDemoEvent,
|
||||
&daItem_c::procMainGetDemoEvent, &daItem_c::procMainBoomerangCarry,
|
||||
&daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait,
|
||||
&daItem_c::procMainForceGet,
|
||||
};
|
||||
#else
|
||||
/* 803B9E2C-803B9E38 -00001 000C+00 0/1 0/0 0/0 .data @5240 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
@@ -497,13 +506,7 @@ SECTION_DATA u8 daItem_c::mFuncPtr[120] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* SECTION_DATA procFunc daItem_c::mFuncPtr[9] = {
|
||||
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry, &daItem_c::procMainSimpleGetDemo,
|
||||
&daItem_c::procWaitGetDemoEvent, &daItem_c::procMainGetDemoEvent,
|
||||
&daItem_c::procMainBoomerangCarry, &daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait,
|
||||
&daItem_c::procMainForceGet,
|
||||
}; */
|
||||
#endif
|
||||
|
||||
/* 803B9F10-803B9F54 017030 0044+00 1/1 0/0 0/0 .data m_cyl_src__8daItem_c */
|
||||
dCcD_SrcCyl daItem_c::m_cyl_src = {
|
||||
@@ -607,7 +610,8 @@ void daItem_c::CreateInit() {
|
||||
if (m_itemNo == BOOMERANG) {
|
||||
itemGetNextExecute();
|
||||
} else if ((m_itemNo == ORANGE_RUPEE || m_itemNo == SILVER_RUPEE) &&
|
||||
field_0x998.getEmitter() == NULL) {
|
||||
field_0x998.getEmitter() == NULL)
|
||||
{
|
||||
dComIfGp_particle_set(0x0C14, &field_0x9ac, NULL, NULL, -1, &field_0x998, -1, NULL, NULL,
|
||||
NULL);
|
||||
}
|
||||
@@ -770,7 +774,8 @@ int daItem_c::_daItem_create() {
|
||||
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckFieldItemCreateHeap,
|
||||
dItem_data::getFieldHeapSize(m_itemNo))) {
|
||||
dItem_data::getFieldHeapSize(m_itemNo)))
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
CreateInit();
|
||||
@@ -811,14 +816,14 @@ SECTION_SDATA2 static f32 lit_4320 = 300.0f;
|
||||
SECTION_SDATA2 static f32 lit_4321 = 18.0f;
|
||||
|
||||
/* 8015BA9C-8015BD84 1563DC 02E8+00 1/1 0/0 0/0 .text _daItem_execute__8daItem_cFv */
|
||||
// eyepos.y issue / need sinit for mFuncPtr
|
||||
// matches with sinit
|
||||
#ifdef NONMATCHING
|
||||
int daItem_c::_daItem_execute() {
|
||||
field_0x950 = speed;
|
||||
CountTimer();
|
||||
|
||||
mEyePos = current.pos;
|
||||
mEyePos.y += (f32)dItem_data::getH(m_itemNo) * 0.5f;
|
||||
mEyePos.y += (f32)dItem_data::getH(m_itemNo) / 2;
|
||||
|
||||
mAttentionInfo.mPosition = current.pos;
|
||||
|
||||
@@ -871,7 +876,7 @@ int daItem_c::_daItem_execute() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daItem_c::_daItem_execute() {
|
||||
asm int daItem_c::_daItem_execute() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_item/_daItem_execute__8daItem_cFv.s"
|
||||
}
|
||||
@@ -1307,7 +1312,8 @@ void daItem_c::itemGetNextExecute() {
|
||||
case SILVER_RUPEE:
|
||||
case PACHINKO_SHOT:
|
||||
if (daPy_getPlayerActorClass()->checkCanoeRide() ||
|
||||
daPy_getPlayerActorClass()->checkHorseRide()) {
|
||||
daPy_getPlayerActorClass()->checkHorseRide())
|
||||
{
|
||||
if (checkItemGet(m_itemNo, 1)) {
|
||||
haveItem = true;
|
||||
}
|
||||
@@ -1696,7 +1702,8 @@ REGISTER_CTORS(0x8015DED0, __sinit_d_a_obj_item_cpp);
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm const cXyz daPy_py_c::getItemPos() const {
|
||||
// asm const cXyz daPy_py_c::getItemPos() const {
|
||||
extern "C" asm void getItemPos__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_item/getItemPos__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -1706,7 +1713,8 @@ asm const cXyz daPy_py_c::getItemPos() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm const cXyz& daPy_py_c::getLeftHandPos() const {
|
||||
// asm const cXyz& daPy_py_c::getLeftHandPos() const {
|
||||
extern "C" asm void getLeftHandPos__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_item/getLeftHandPos__9daPy_py_cCFv.s"
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ extern "C" void ChkLineDown__9dBgS_AcchFv();
|
||||
extern "C" void __dt__12dBgS_AcchCirFv();
|
||||
extern "C" static void func_80077484();
|
||||
extern "C" static void func_8007748C();
|
||||
extern "C" bool checkPlayerFly__9daPy_py_cCFv();
|
||||
extern "C" u32 checkPlayerFly__9daPy_py_cCFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -823,6 +823,7 @@ static asm void func_8007748C() {
|
||||
#pragma pop
|
||||
|
||||
/* 80077494-8007749C 071DD4 0008+00 0/0 1/0 0/0 .text checkPlayerFly__9daPy_py_cCFv */
|
||||
u32 daPy_py_c::checkPlayerFly() const {
|
||||
// u32 daPy_py_c::checkPlayerFly() const {
|
||||
extern "C" u32 checkPlayerFly__9daPy_py_cCFv() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+162
-232
@@ -1,47 +1,16 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/cc/d_cc_uty
|
||||
//
|
||||
/**
|
||||
* d_cc_uty.cpp
|
||||
* Collider Utilties
|
||||
*/
|
||||
|
||||
#include "d/cc/d_cc_uty.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void pl_cut_LRC__Fi();
|
||||
extern "C" void cc_pl_cut_bit_get__Fv();
|
||||
extern "C" static void getMapInfo__FSc();
|
||||
extern "C" static void getHitId__FP8cCcD_Obji();
|
||||
extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c();
|
||||
extern "C" static void at_power_get__FP11dCcU_AtInfo();
|
||||
extern "C" void at_power_check__FP11dCcU_AtInfo();
|
||||
extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
|
||||
extern "C" bool checkCutJumpCancelTurn__9daPy_py_cCFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void getHitSeID__12dCcD_GObjInfFUci();
|
||||
extern "C" void dCcD_GetGObjInf__FP8cCcD_Obj();
|
||||
extern "C" void checkMasterSwordEquip__9daPy_py_cFv();
|
||||
extern "C" void GetAc__8cCcD_ObjFv();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void cM_rndFX__Ff();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _restgpr_25();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
bool daPy_py_c::checkWoodSwordEquip() {
|
||||
return dComIfGs_getSelectEquipSword() == WOOD_STICK;
|
||||
}
|
||||
@@ -50,9 +19,8 @@ BOOL daPy_py_c::checkNowWolf() {
|
||||
return dComIfGp_getLinkPlayer()->i_checkWolf();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803AC418-803AC500 009538 00E8+00 1/1 0/0 0/0 .data plCutLRC */
|
||||
SECTION_DATA static int plCutLRC[58] = {
|
||||
static int plCutLRC[58] = {
|
||||
0, //
|
||||
0, // CUT_VERTICAL
|
||||
1, // CUT_STAB
|
||||
@@ -124,33 +92,35 @@ int pl_cut_LRC(int index) {
|
||||
|
||||
/* 800873D4-800874C4 081D14 00F0+00 1/1 0/0 14/14 .text cc_pl_cut_bit_get__Fv */
|
||||
u16 cc_pl_cut_bit_get() {
|
||||
daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
|
||||
u16 bit = 0;
|
||||
if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) {
|
||||
if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) {
|
||||
bit = 0x1;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB) {
|
||||
bit = 0x2;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_COMBO_STAB) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_COMBO_STAB) {
|
||||
bit = 0x200;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_RIGHT) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_RIGHT) {
|
||||
bit = 0x4;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_LEFT) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_LEFT) {
|
||||
bit = 0x8;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_FINISH_LEFT) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_FINISH_LEFT) {
|
||||
bit = 0x20;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_FINISH_VERTICAL) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_FINISH_VERTICAL) {
|
||||
bit = 0x40;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT || link->getCutType() == 9 ||
|
||||
link->getCutType() == 43 ||
|
||||
link->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT ||
|
||||
player_p->getCutType() == 9 || player_p->getCutType() == 43 ||
|
||||
player_p->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT)
|
||||
{
|
||||
bit = 0x80;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT ||
|
||||
link->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT ||
|
||||
player_p->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT)
|
||||
{
|
||||
bit = 0x800;
|
||||
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_JUMP) {
|
||||
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_JUMP) {
|
||||
bit = 0x100;
|
||||
} else if (link->getCutType() == 40 || link->getCutType() == 41) {
|
||||
} else if (player_p->getCutType() == 40 || player_p->getCutType() == 41) {
|
||||
bit = 0x400;
|
||||
}
|
||||
|
||||
@@ -170,31 +140,31 @@ static int getMapInfo(s8 param_0) {
|
||||
}
|
||||
|
||||
/* 800874F0-80087514 081E30 0024+00 2/2 0/0 0/0 .text getHitId__FP8cCcD_Obji */
|
||||
static u32 getHitId(cCcD_Obj* p_obj, int useReboundSE) {
|
||||
dCcD_GObjInf* dObj = static_cast<dCcD_GObjInf*>(p_obj);
|
||||
return dObj->getHitSeID(dObj->GetAtSe(), useReboundSE);
|
||||
static u32 getHitId(cCcD_Obj* i_ccObj, int i_useReboundSe) {
|
||||
dCcD_GObjInf* dObj = static_cast<dCcD_GObjInf*>(i_ccObj);
|
||||
return dObj->getHitSeID(dObj->GetAtSe(), i_useReboundSe);
|
||||
}
|
||||
|
||||
/* 80087514-80087594 081E54 0080+00 0/0 0/0 47/47 .text
|
||||
* def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c */
|
||||
void def_se_set(Z2Creature* p_sound, cCcD_Obj* p_collider, u32 map_info, fopAc_ac_c* p_actor) {
|
||||
if (p_sound != NULL) {
|
||||
int useReboundSE;
|
||||
if (p_actor != NULL && fopAcM_checkStatus(p_actor, 0x280000)) {
|
||||
useReboundSE = false;
|
||||
void def_se_set(Z2Creature* i_sound, cCcD_Obj* i_ccObj, u32 i_mapInfo, fopAc_ac_c* i_actor) {
|
||||
if (i_sound != NULL) {
|
||||
int useReboundSe;
|
||||
if (i_actor != NULL && fopAcM_checkStatus(i_actor, 0x280000)) {
|
||||
useReboundSe = false;
|
||||
} else {
|
||||
useReboundSE = true;
|
||||
useReboundSe = true;
|
||||
}
|
||||
p_sound->startCollisionSE(getHitId(p_collider, useReboundSE), map_info);
|
||||
i_sound->startCollisionSE(getHitId(i_ccObj, useReboundSe), i_mapInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80087594-80087A58 081ED4 04C4+00 1/1 0/0 0/0 .text at_power_get__FP11dCcU_AtInfo */
|
||||
static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
u8 power = p_info->mpCollider->GetAtAtp();
|
||||
static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
|
||||
u8 power = i_AtInfo->mpCollider->GetAtAtp();
|
||||
|
||||
if (p_info->mPowerType == 0) {
|
||||
if (p_info->mpCollider->ChkAtType(0x10000000)) {
|
||||
if (i_AtInfo->mPowerType == 0) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -207,8 +177,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (p_info->mPowerType == 6) {
|
||||
if (p_info->mpCollider->ChkAtType(0x10000000)) {
|
||||
} else if (i_AtInfo->mPowerType == 6) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -219,10 +189,10 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 3) {
|
||||
power *= 10;
|
||||
}
|
||||
} else if (p_info->mPowerType == 4) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
} else if (i_AtInfo->mPowerType == 4) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
power = 200;
|
||||
} else if (p_info->mpCollider->ChkAtType(0x10000000)) {
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -235,8 +205,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (p_info->mPowerType == 5) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
|
||||
} else if (i_AtInfo->mPowerType == 5) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -245,8 +215,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 3) {
|
||||
power = 4;
|
||||
}
|
||||
} else if (p_info->mPowerType == 2) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
} else if (i_AtInfo->mPowerType == 2) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
power = 200;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -259,14 +229,14 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (p_info->mPowerType == 1) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
|
||||
} else if (i_AtInfo->mPowerType == 1) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
|
||||
power = 200;
|
||||
} else {
|
||||
power *= 10;
|
||||
}
|
||||
} else if (p_info->mPowerType == 3) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
|
||||
} else if (i_AtInfo->mPowerType == 3) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
|
||||
power = 200;
|
||||
} else if (power == 1) {
|
||||
power = 10;
|
||||
@@ -275,10 +245,10 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 3) {
|
||||
power = 40;
|
||||
}
|
||||
} else if (p_info->mPowerType == 7) {
|
||||
if (p_info->mpCollider->ChkAtType(0x420008)) {
|
||||
} else if (i_AtInfo->mPowerType == 7) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x420008)) {
|
||||
power = 50;
|
||||
} else if (p_info->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
|
||||
power = 27;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -291,7 +261,7 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (p_info->mPowerType == 8) {
|
||||
} else if (i_AtInfo->mPowerType == 8) {
|
||||
if (power == 1) {
|
||||
power = 3;
|
||||
} else if (power == 2) {
|
||||
@@ -301,11 +271,11 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 3) {
|
||||
power *= 10;
|
||||
}
|
||||
} else if (p_info->mPowerType == 9 || p_info->mPowerType == 10) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
} else if (i_AtInfo->mPowerType == 9 || i_AtInfo->mPowerType == 10) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
power = 0;
|
||||
}
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
power = 19;
|
||||
}
|
||||
|
||||
@@ -320,8 +290,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (p_info->mPowerType == 11) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
} else if (i_AtInfo->mPowerType == 11) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
power = 0;
|
||||
}
|
||||
|
||||
@@ -334,7 +304,7 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
} else if (power >= 4) {
|
||||
power = 100;
|
||||
}
|
||||
} else if (p_info->mPowerType == 12) {
|
||||
} else if (i_AtInfo->mPowerType == 12) {
|
||||
if (power == 1) {
|
||||
power = 10;
|
||||
} else if (power == 2) {
|
||||
@@ -351,237 +321,197 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
|
||||
|
||||
/* 80087A58-80087C04 082398 01AC+00 1/1 0/0 38/38 .text at_power_check__FP11dCcU_AtInfo
|
||||
*/
|
||||
fopAc_ac_c* at_power_check(dCcU_AtInfo* p_info) {
|
||||
if (p_info->mpCollider == NULL) {
|
||||
fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
|
||||
if (i_AtInfo->mpCollider == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
p_info->mpActor = p_info->mpCollider->GetAc();
|
||||
p_info->mHitType = 12;
|
||||
p_info->mAttackPower = 0;
|
||||
p_info->mHitBit = 0;
|
||||
i_AtInfo->mpActor = i_AtInfo->mpCollider->GetAc();
|
||||
i_AtInfo->mHitType = 12;
|
||||
i_AtInfo->mAttackPower = 0;
|
||||
i_AtInfo->mHitBit = 0;
|
||||
|
||||
if (p_info->mpActor != NULL) {
|
||||
p_info->mAttackPower = at_power_get(p_info);
|
||||
if (i_AtInfo->mpActor != NULL) {
|
||||
i_AtInfo->mAttackPower = at_power_get(i_AtInfo);
|
||||
|
||||
s16 ac_name = fopAcM_GetName(p_info->mpActor);
|
||||
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
|
||||
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
|
||||
if (p_info->mpCollider->ChkAtType(0x8000) ||
|
||||
p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
p_info->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x8000) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL))
|
||||
{
|
||||
i_AtInfo->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
|
||||
} else {
|
||||
p_info->mHitType = HIT_TYPE_LINK_NORMAL_ATTACK;
|
||||
p_info->mHitBit = cc_pl_cut_bit_get();
|
||||
i_AtInfo->mHitType = HIT_TYPE_LINK_NORMAL_ATTACK;
|
||||
i_AtInfo->mHitBit = cc_pl_cut_bit_get();
|
||||
}
|
||||
} else if (ac_name == PROC_NBOMB) {
|
||||
p_info->mHitType = HIT_TYPE_BOMB;
|
||||
p_info->mHitBit = 0x10000000;
|
||||
i_AtInfo->mHitType = HIT_TYPE_BOMB;
|
||||
i_AtInfo->mHitBit = 0x10000000;
|
||||
} else if (ac_name == PROC_BOOMERANG) {
|
||||
p_info->mHitType = HIT_TYPE_BOOMERANG;
|
||||
p_info->mHitBit = 0x40000000;
|
||||
i_AtInfo->mHitType = HIT_TYPE_BOOMERANG;
|
||||
i_AtInfo->mHitBit = 0x40000000;
|
||||
} else if (ac_name == PROC_ARROW) {
|
||||
p_info->mHitType = HIT_TYPE_ARROW;
|
||||
p_info->mHitBit = 0x80000000;
|
||||
i_AtInfo->mHitType = HIT_TYPE_ARROW;
|
||||
i_AtInfo->mHitBit = 0x80000000;
|
||||
}
|
||||
}
|
||||
|
||||
p_info->mHitStatus = 0;
|
||||
if (p_info->mpCollider->ChkAtType(0x40) || p_info->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
|
||||
p_info->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
|
||||
p_info->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK)) {
|
||||
p_info->mHitType = HIT_TYPE_STUN;
|
||||
} else if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
p_info->mHitBit = 0x1000;
|
||||
i_AtInfo->mHitStatus = 0;
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x40) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK))
|
||||
{
|
||||
i_AtInfo->mHitType = HIT_TYPE_STUN;
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
i_AtInfo->mHitBit = 0x1000;
|
||||
} else {
|
||||
s16 ac_name = fopAcM_GetName(p_info->mpActor);
|
||||
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
|
||||
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
|
||||
if (dCcD_GetGObjInf(p_info->mpCollider)->GetAtSpl() == 1) {
|
||||
p_info->mHitStatus = 1;
|
||||
if (dCcD_GetGObjInf(i_AtInfo->mpCollider)->GetAtSpl() == 1) {
|
||||
i_AtInfo->mHitStatus = 1;
|
||||
}
|
||||
} else if (p_info->mAttackPower >= 3) {
|
||||
p_info->mHitStatus = 1;
|
||||
} else if (i_AtInfo->mAttackPower >= 3) {
|
||||
i_AtInfo->mHitStatus = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return p_info->mpActor;
|
||||
return i_AtInfo->mpActor;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452798-804527A0 000D98 0004+04 1/1 0/0 0/0 .sdata2 @4212 */
|
||||
SECTION_SDATA2 static f32 lit_4212[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 804527A0-804527A8 000DA0 0008+00 1/1 0/0 0/0 .sdata2 @4213 */
|
||||
SECTION_SDATA2 static f64 lit_4213 = 0.5;
|
||||
|
||||
/* 804527A8-804527B0 000DA8 0008+00 1/1 0/0 0/0 .sdata2 @4214 */
|
||||
SECTION_SDATA2 static f64 lit_4214 = 3.0;
|
||||
|
||||
/* 804527B0-804527B8 000DB0 0008+00 1/1 0/0 0/0 .sdata2 @4215 */
|
||||
SECTION_SDATA2 static u8 lit_4215[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 804527B8-804527BC 000DB8 0004+00 1/1 0/0 0/0 .sdata2 @4216 */
|
||||
SECTION_SDATA2 static f32 lit_4216 = 100.0f;
|
||||
|
||||
/* 804527BC-804527C0 000DBC 0004+00 1/1 0/0 0/0 .sdata2 @4217 */
|
||||
SECTION_SDATA2 static f32 lit_4217 = 4000.0f;
|
||||
|
||||
/* 804527C0-804527C8 000DC0 0004+04 1/1 0/0 0/0 .sdata2 @4218 */
|
||||
SECTION_SDATA2 static f32 lit_4218[1 + 1 /* padding */] = {
|
||||
10000.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80087C04-80088134 082544 0530+00 0/0 0/0 84/84 .text cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo
|
||||
*/
|
||||
// data padding issues (?)
|
||||
#ifdef NONMATCHING
|
||||
fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
||||
daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
p_info->mpActor = at_power_check(p_info);
|
||||
fopAc_ac_c* cc_at_check(fopAc_ac_c* i_enemy, dCcU_AtInfo* i_AtInfo) {
|
||||
daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
i_AtInfo->mpActor = at_power_check(i_AtInfo);
|
||||
|
||||
f32 x_diff;
|
||||
f32 z_diff;
|
||||
if (p_info->mpActor != NULL) {
|
||||
cXyz tmp = p_info->mpActor->speed;
|
||||
if (i_AtInfo->mpActor != NULL) {
|
||||
cXyz tmp = i_AtInfo->mpActor->speed;
|
||||
tmp.y = 0.0f;
|
||||
if (tmp.abs() > 100.0f) {
|
||||
f32 x = p_info->mpActor->speed.x;
|
||||
f32 z = p_info->mpActor->speed.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
|
||||
f32 x = i_AtInfo->mpActor->speed.x;
|
||||
f32 z = i_AtInfo->mpActor->speed.z;
|
||||
i_AtInfo->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
|
||||
} else {
|
||||
if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) {
|
||||
x_diff = p_enemy->current.pos.x - link->current.pos.x;
|
||||
z_diff = p_enemy->current.pos.z - link->current.pos.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f);
|
||||
if (fopAcM_GetName(i_AtInfo->mpActor) == PROC_BOOMERANG) {
|
||||
x_diff = i_enemy->current.pos.x - player_p->current.pos.x;
|
||||
z_diff = i_enemy->current.pos.z - player_p->current.pos.z;
|
||||
i_AtInfo->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f);
|
||||
} else {
|
||||
x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x;
|
||||
z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff);
|
||||
x_diff = i_enemy->current.pos.x - i_AtInfo->mpActor->current.pos.x;
|
||||
z_diff = i_enemy->current.pos.z - i_AtInfo->mpActor->current.pos.z;
|
||||
i_AtInfo->mHitDirection = cM_atan2s(-x_diff, -z_diff);
|
||||
}
|
||||
}
|
||||
|
||||
if (p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK &&
|
||||
link->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP) {
|
||||
p_info->mHitDirection = link->shape_angle.y;
|
||||
if (i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK &&
|
||||
player_p->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP)
|
||||
{
|
||||
i_AtInfo->mHitDirection = player_p->shape_angle.y;
|
||||
}
|
||||
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
|
||||
fopAcM_checkStatus(p_enemy, 0x380000)) {
|
||||
p_info->mAttackPower = 0;
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
|
||||
fopAcM_checkStatus(i_enemy, 0x380000))
|
||||
{
|
||||
i_AtInfo->mAttackPower = 0;
|
||||
}
|
||||
|
||||
if (static_cast<dCcD_GObjInf*>(p_info->mpCollider)->GetAtMtrl() == 4) {
|
||||
if (fopAcM_GetName(p_enemy) == PROC_B_GND) {
|
||||
p_info->mAttackPower = 0;
|
||||
} else if (fopAcM_GetName(p_enemy) != PROC_B_ZANT) {
|
||||
p_info->mAttackPower = 100;
|
||||
if (static_cast<dCcD_GObjInf*>(i_AtInfo->mpCollider)->GetAtMtrl() == 4) {
|
||||
if (fopAcM_GetName(i_enemy) == PROC_B_GND) {
|
||||
i_AtInfo->mAttackPower = 0;
|
||||
} else if (fopAcM_GetName(i_enemy) != PROC_B_ZANT) {
|
||||
i_AtInfo->mAttackPower = 100;
|
||||
}
|
||||
}
|
||||
|
||||
if (p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK) {
|
||||
if (i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK) {
|
||||
if (!daPy_py_c::checkNowWolf()) {
|
||||
if (link->checkMasterSwordEquip()) {
|
||||
p_info->mAttackPower *= 2;
|
||||
if (player_p->checkMasterSwordEquip()) {
|
||||
i_AtInfo->mAttackPower *= 2;
|
||||
}
|
||||
|
||||
if (daPy_py_c::checkWoodSwordEquip()) {
|
||||
p_info->mAttackPower /= 2;
|
||||
i_AtInfo->mAttackPower /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (link->getSwordAtUpTime()) {
|
||||
p_info->mAttackPower *= 2;
|
||||
p_info->mHitStatus = 1;
|
||||
if (player_p->getSwordAtUpTime()) {
|
||||
i_AtInfo->mAttackPower *= 2;
|
||||
i_AtInfo->mHitStatus = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (p_info->mAttackPower != 0) {
|
||||
p_enemy->mHealth -= p_info->mAttackPower;
|
||||
if (i_AtInfo->mAttackPower != 0) {
|
||||
i_enemy->mHealth -= i_AtInfo->mAttackPower;
|
||||
}
|
||||
|
||||
s8 pause_time = 0;
|
||||
if (p_info->mAttackPower != 0 && p_enemy->mHealth <= 0) {
|
||||
p_info->mHitStatus = 2;
|
||||
p_enemy->mHealth = 0;
|
||||
if (i_AtInfo->mAttackPower != 0 && i_enemy->mHealth <= 0) {
|
||||
i_AtInfo->mHitStatus = 2;
|
||||
i_enemy->mHealth = 0;
|
||||
}
|
||||
|
||||
int uvar8;
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
|
||||
!fopAcM_checkStatus(p_enemy, 0x280000)) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
|
||||
!fopAcM_checkStatus(i_enemy, 0x280000))
|
||||
{
|
||||
uvar8 = 1;
|
||||
} else {
|
||||
uvar8 = 0;
|
||||
}
|
||||
|
||||
if (p_info->mpSound != NULL) {
|
||||
if (p_info->field_0x18 != 0) {
|
||||
p_info->mpSound->startCollisionSE(getHitId(p_info->mpCollider, uvar8),
|
||||
p_info->field_0x18);
|
||||
if (i_AtInfo->mpSound != NULL) {
|
||||
if (i_AtInfo->field_0x18 != 0) {
|
||||
i_AtInfo->mpSound->startCollisionSE(getHitId(i_AtInfo->mpCollider, uvar8),
|
||||
i_AtInfo->field_0x18);
|
||||
} else {
|
||||
p_info->mpSound->startCollisionSE(getHitId(p_info->mpCollider, uvar8),
|
||||
getMapInfo(p_info->mHitStatus));
|
||||
i_AtInfo->mpSound->startCollisionSE(getHitId(i_AtInfo->mpCollider, uvar8),
|
||||
getMapInfo(i_AtInfo->mHitStatus));
|
||||
}
|
||||
}
|
||||
|
||||
if (p_info->mHitStatus != 0) {
|
||||
if (i_AtInfo->mHitStatus != 0) {
|
||||
pause_time = 5;
|
||||
} else {
|
||||
if (p_info->mAttackPower > 1) {
|
||||
if (i_AtInfo->mAttackPower > 1) {
|
||||
pause_time = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_MIDNA_LOCK) ||
|
||||
((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide()) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_MIDNA_LOCK) ||
|
||||
((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide())
|
||||
{
|
||||
// actor is Bulblin or Horseback Ganon
|
||||
if ((fopAcM_GetName(p_enemy) == PROC_E_RD &&
|
||||
((s8*)p_enemy)[0x129a] != 0) ||
|
||||
fopAcM_GetName(p_enemy) == PROC_B_GND) {
|
||||
if ((fopAcM_GetName(i_enemy) == PROC_E_RD && ((s8*)i_enemy)[0x129a] != 0) ||
|
||||
fopAcM_GetName(i_enemy) == PROC_B_GND)
|
||||
{
|
||||
pause_time = 3;
|
||||
} else {
|
||||
pause_time = 0;
|
||||
}
|
||||
}
|
||||
|
||||
s16 ac_name = fopAcM_GetName(p_enemy);
|
||||
s16 ac_name = fopAcM_GetName(i_enemy);
|
||||
// actor is Stalkin, Chu, Keese, Shadow Keese, Shadow Vermin, Baby Gohma, or Rat
|
||||
if (ac_name == PROC_E_BS || ac_name == PROC_E_SM2 || ac_name == PROC_E_BA ||
|
||||
ac_name == PROC_E_YK || ac_name == PROC_E_YG || ac_name == PROC_E_GM ||
|
||||
ac_name == PROC_E_MS) {
|
||||
ac_name == PROC_E_MS)
|
||||
{
|
||||
pause_time = 0;
|
||||
}
|
||||
|
||||
if ((p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK ||
|
||||
p_info->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) &&
|
||||
!link->checkCutJumpCancelTurn()) {
|
||||
if (p_info->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) {
|
||||
if ((i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) &&
|
||||
!player_p->checkCutJumpCancelTurn())
|
||||
{
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) {
|
||||
pause_time = 4;
|
||||
}
|
||||
dScnPly_c::setPauseTimer(pause_time);
|
||||
}
|
||||
}
|
||||
|
||||
return p_info->mpActor;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fopAc_ac_c* cc_at_check(fopAc_ac_c* param_0, dCcU_AtInfo* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_uty/cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80088134-8008813C 082A74 0008+00 0/0 1/0 0/0 .text checkCutJumpCancelTurn__9daPy_py_cCFv */
|
||||
int daPy_py_c::checkCutJumpCancelTurn() const {
|
||||
return 0;
|
||||
return i_AtInfo->mpActor;
|
||||
}
|
||||
|
||||
+375
-170
File diff suppressed because it is too large
Load Diff
+26
-13
@@ -3827,7 +3827,8 @@ static asm void func_80182804() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getChainGrabActor() {
|
||||
// asm void daAlink_c::getChainGrabActor() {
|
||||
extern "C" asm void getChainGrabActor__9daAlink_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getChainGrabActor__9daAlink_cFv.s"
|
||||
}
|
||||
@@ -3837,7 +3838,8 @@ asm void daAlink_c::getChainGrabActor() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkCokkoGlide() const {
|
||||
// asm void daAlink_c::checkCokkoGlide() const {
|
||||
extern "C" asm void checkCokkoGlide__9daAlink_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkCokkoGlide__9daAlink_cCFv.s"
|
||||
}
|
||||
@@ -3847,7 +3849,8 @@ asm void daAlink_c::checkCokkoGlide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkCameraLargeDamage() const {
|
||||
// asm void daAlink_c::checkCameraLargeDamage() const {
|
||||
extern "C" asm void checkCameraLargeDamage__9daAlink_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkCameraLargeDamage__9daAlink_cCFv.s"
|
||||
}
|
||||
@@ -3858,7 +3861,8 @@ asm void daAlink_c::checkCameraLargeDamage() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getHsSubChainTopPos() const {
|
||||
// asm void daAlink_c::getHsSubChainTopPos() const {
|
||||
extern "C" asm void getHsSubChainTopPos__9daAlink_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getHsSubChainTopPos__9daAlink_cCFv.s"
|
||||
}
|
||||
@@ -3879,7 +3883,8 @@ extern "C" asm void daAlink_getAlinkActorClass__Fv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkCutHeadProc() const {
|
||||
// asm void daAlink_c::checkCutHeadProc() const {
|
||||
extern "C" asm void checkCutHeadProc__9daAlink_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkCutHeadProc__9daAlink_cCFv.s"
|
||||
}
|
||||
@@ -3889,7 +3894,8 @@ asm void daAlink_c::checkCutHeadProc() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getRideActor() {
|
||||
// asm void daAlink_c::getRideActor() {
|
||||
extern "C" asm void getRideActor__9daAlink_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getRideActor__9daAlink_cFv.s"
|
||||
}
|
||||
@@ -4007,7 +4013,8 @@ asm void dCamera_c::Bank() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkThrowDamage() const {
|
||||
// asm void daPy_py_c::checkThrowDamage() const {
|
||||
extern "C" asm void checkThrowDamage__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkThrowDamage__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -4055,7 +4062,8 @@ extern "C" asm void V__7cSGlobeCFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkGoronSideMove() const {
|
||||
// asm void daPy_py_c::checkGoronSideMove() const {
|
||||
extern "C" asm void checkGoronSideMove__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkGoronSideMove__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -4146,7 +4154,8 @@ extern "C" asm bool __gt__7cSAngleCFRC7cSAngle() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::getRightFootPosP() {
|
||||
// asm void daPy_py_c::getRightFootPosP() {
|
||||
extern "C" asm void getRightFootPosP__9daPy_py_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getRightFootPosP__9daPy_py_cFv.s"
|
||||
}
|
||||
@@ -4156,7 +4165,8 @@ asm void daPy_py_c::getRightFootPosP() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::getLeftFootPosP() {
|
||||
// asm void daPy_py_c::getLeftFootPosP() {
|
||||
extern "C" asm void getLeftFootPosP__9daPy_py_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getLeftFootPosP__9daPy_py_cFv.s"
|
||||
}
|
||||
@@ -4171,7 +4181,8 @@ extern "C" u32 getMidnaActor__9daPy_py_cFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkCopyRodThrowAfter() const {
|
||||
// asm void daPy_py_c::checkCopyRodThrowAfter() const {
|
||||
extern "C" asm void checkCopyRodThrowAfter__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkCopyRodThrowAfter__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -4186,7 +4197,8 @@ void dAttention_c::keepLock(int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkRide() const {
|
||||
// asm void daPy_py_c::checkRide() const {
|
||||
extern "C" asm void checkRide__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/checkRide__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -4196,7 +4208,8 @@ asm void daPy_py_c::checkRide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::getRightHandPos() const {
|
||||
// asm void daPy_py_c::getRightHandPos() const {
|
||||
extern "C" asm void getRightHandPos__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/getRightHandPos__9daPy_py_cCFv.s"
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ extern "C" u8 mWipeDlst__12dDlst_list_c[72];
|
||||
extern "C" u8 mWipeColor__12dDlst_list_c[4];
|
||||
extern "C" f32 mWipeRate__12dDlst_list_c;
|
||||
extern "C" f32 mWipeSpeed__12dDlst_list_c[1 + 1 /* padding */];
|
||||
extern "C" extern u8 data_80450EE0[8];
|
||||
extern "C" extern u8 data_80450EE0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -2850,7 +2850,7 @@ SECTION_DEAD static char const* const pad_8037A1BC = "\0\0\0";
|
||||
dDlst_2DT2_c dDlst_list_c::mWipeDlst;
|
||||
|
||||
/* 8045065C-80450660 0000DC 0004+00 1/1 0/0 0/0 .sdata mWipeColor__12dDlst_list_c */
|
||||
SECTION_SDATA GXColor dDlst_list_c::mWipeColor = {0, 0, 0, 0};
|
||||
GXColor dDlst_list_c::mWipeColor = {0, 0, 0, 0};
|
||||
|
||||
/* 80450ED0-80450ED4 0003D0 0004+00 2/2 1/1 0/0 .sbss None */
|
||||
u8 dDlst_list_c::mWipe;
|
||||
@@ -2993,9 +2993,3 @@ SECTION_DATA extern void* __vt__13dDlst_2DTri_c[3] = {
|
||||
(void*)NULL,
|
||||
(void*)draw__13dDlst_2DTri_cFv,
|
||||
};
|
||||
|
||||
/* 80450EE0-80450EE8 0003E0 0008+00 0/0 1/1 0/0 .sbss None */
|
||||
extern u8 data_80450EE0[8];
|
||||
u8 data_80450EE0[8] ALIGN_DECL(8);
|
||||
|
||||
/* 8037A1B0-8037A1B0 006810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+294
-755
File diff suppressed because it is too large
Load Diff
+3
-24
@@ -1,26 +1,7 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/d_item_data
|
||||
//
|
||||
|
||||
#include "d/d_item_data.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" extern char const* const d_d_item_data__stringBase0;
|
||||
extern "C" void* item_resource__10dItem_data[1530];
|
||||
extern "C" void* field_item_res__10dItem_data[1020];
|
||||
extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 803AC5A0-803ADD88 -00001 17E8+00 0/0 10/10 2/2 .data item_resource__10dItem_data */
|
||||
SECTION_DATA dItem_itemResource dItem_data::item_resource[255] = {
|
||||
dItem_itemResource dItem_data::item_resource[] = {
|
||||
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000},
|
||||
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x3C, 0x0000},
|
||||
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x1, 0xFF, 0x002D, 0x3C, 0x0000},
|
||||
@@ -279,7 +260,7 @@ SECTION_DATA dItem_itemResource dItem_data::item_resource[255] = {
|
||||
};
|
||||
|
||||
/* 803ADD88-803AED78 -00001 0FF0+00 0/0 3/3 14/14 .data field_item_res__10dItem_data */
|
||||
SECTION_DATA dItem_fieldItemResource dItem_data::field_item_res[255] = {
|
||||
dItem_fieldItemResource dItem_data::field_item_res[] = {
|
||||
{"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000},
|
||||
{"Always", 0x0017, 0xFFFF, 0x0031, 0x0, 0x1000},
|
||||
{"Always", 0x0017, 0xFFFF, 0x0031, 0x1, 0x1000},
|
||||
@@ -538,7 +519,7 @@ SECTION_DATA dItem_fieldItemResource dItem_data::field_item_res[255] = {
|
||||
};
|
||||
|
||||
/* 803AED78-803AF178 00BE98 03FC+04 0/0 9/9 9/9 .data item_info__10dItem_data */
|
||||
SECTION_DATA dItem_itemInfo dItem_data::item_info[255] = {
|
||||
dItem_itemInfo dItem_data::item_info[] = {
|
||||
{15, 40, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4},
|
||||
{20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 40, 30, 4}, {20, 40, 30, 4},
|
||||
{40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {20, 80, 50, 0},
|
||||
@@ -591,5 +572,3 @@ SECTION_DATA dItem_itemInfo dItem_data::item_info[255] = {
|
||||
{0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {150, 50, 20, 21}, {0, 0, 0, 0},
|
||||
{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0},
|
||||
};
|
||||
|
||||
/* 8037AD68-8037AD68 0073C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -8,11 +8,6 @@
|
||||
#include "d/d_procname.h"
|
||||
#include "d/kankyo/d_kankyo_wether.h"
|
||||
|
||||
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
|
||||
void dKankyo_DayProc() {
|
||||
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
|
||||
}
|
||||
|
||||
static int dKyeff_Draw(dKyeff_c* i_this) {
|
||||
dKyw_wether_draw();
|
||||
return 1;
|
||||
|
||||
+222
-181
@@ -4,15 +4,16 @@
|
||||
//
|
||||
|
||||
#include "d/d_name.h"
|
||||
#include "JSystem/J2DGraph/J2DAnmLoader.h"
|
||||
#include "JSystem/J2DGraph/J2DTextBox.h"
|
||||
#include "stdio.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "dol2asm.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "stdio.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -201,129 +202,8 @@ SECTION_DATA static selProcFunc SelProc[9] = {
|
||||
&dName_c::MojiSelectAnm3, &dName_c::MenuSelect, &dName_c::MenuSelectAnm,
|
||||
&dName_c::MenuSelectAnm2, &dName_c::MenuSelectAnm3, &dName_c::Wait};
|
||||
|
||||
/* 803C2750-803C2788 -00001 0034+04 1/1 0/0 0/0 .data @4121 */
|
||||
SECTION_DATA static void* lit_4121[13 + 1 /* padding */] = {
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x8C),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x130),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x170),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x2D4),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x31C),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x8C),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x31C),
|
||||
(void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0),
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 803C2788-803C27C8 01F8A8 0040+00 0/1 0/0 0/0 .data l_cur0TagName$4610 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_cur0TagName[8] = {
|
||||
's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C27C8-803C2808 01F8E8 0040+00 0/1 0/0 0/0 .data l_cur1TagName$4611 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_cur1TagName[8] = {
|
||||
's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2808-803C2828 01F928 0020+00 0/1 0/0 0/0 .data l_menu_icon_tag$4617 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_menu_icon_tag[4] = {
|
||||
'p_ABC_n',
|
||||
'p_abc_n',
|
||||
'j_eigo_n',
|
||||
'p_end_n',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2828-803C28A0 01F948 0078+00 0/1 0/0 0/0 .data l_menu_tag$4618 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_menu_tag[15] = {
|
||||
'p_ABC_0', 'p_ABC_1', 'p_ABC_2', 'p_abc_0', 'p_abc_1', 'p_abc_2',
|
||||
'm_eigo_0', 'm_eigo_1', 'm_eigo_2', 'p_end_0', 'p_end_1', 'p_end_2',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C28A0-803C28B0 01F9C0 0010+00 0/1 0/0 0/0 .data l_menu_msg$4619 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u32 l_menu_msg[4] = {
|
||||
0x38B,
|
||||
0x38C,
|
||||
0x388,
|
||||
0x38E,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C28B0-803C2AB8 01F9D0 0208+00 0/1 0/0 0/0 .data l_tagName$4635 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_tagName[65] = {
|
||||
'm_00_0', 'm_00_1', 'm_00_2', 'm_00_3', 'm_00_4', 'm_01_0', 'm_01_1', 'm_01_2', 'm_01_3',
|
||||
'm_01_4', 'm_02_0', 'm_02_1', 'm_02_2', 'm_02_3', 'm_02_4', 'm03_0', 'm03_1', 'm03_2',
|
||||
'm03_3', 'm03_4', 'm_04_0', 'm_04_1', 'm_04_2', 'm_04_3', 'm_04_4', 'm_05_0', 'm_05_1',
|
||||
'm_05_2', 'm_05_3', 'm_05_4', 'm_06_0', 'm_06_1', 'm_06_2', 'm_06_3', 'm_06_4', 'm_07_0',
|
||||
'm_07_1', 'm_07_2', 'm_07_3', 'm_07_4', 'm_08_0', 'm_08_1', 'm_08_2', 'm_08_3', 'm_08_4',
|
||||
'm_09_0', 'm_09_1', 'm_09_2', 'm_09_3', 'm_09_4', 'm_10_0', 'm_10_1', 'm_10_2', 'm_10_3',
|
||||
'm_10_4', 'm_11_0', 'm_11_1', 'm_11_2', 'm_11_3', 'm_11_4', 'm12_0', 'm12_1', 'm12_2',
|
||||
'm12_3', 'm12_4',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2AB8-803C2AF8 01FBD8 0040+00 0/1 0/0 0/0 .data l_nameTagName$4642 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_nameTagName[8] = {
|
||||
'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2AF8-803C2B38 01FC18 0040+00 0/1 0/0 0/0 .data l_nameCurTagName$4643 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_nameCurTagName[8] = {
|
||||
's__n_00', 's__n_01', 's__n_02', 's__n_03', 's__n_04', 's__n_05', 's__n_06', 's__n_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2B38-803C2B64 01FC58 0010+1C 3/3 0/0 0/0 .data __vt__14dDlst_NameIN_c */
|
||||
SECTION_DATA extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__14dDlst_NameIN_cFv,
|
||||
(void*)__dt__14dDlst_NameIN_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 803C2B64-803C2B7C 01FC84 000C+0C 2/2 0/0 0/0 .data __vt__7dName_c */
|
||||
SECTION_DATA extern void* __vt__7dName_c[3 + 3 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__7dName_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */];
|
||||
extern void* __vt__7dName_c[3 + 3 /* padding */];
|
||||
|
||||
/* 8024E3E0-8024E408 248D20 0028+00 1/1 0/0 0/0 .text __ct__9dNm_HIO_cFv */
|
||||
dNm_HIO_c::dNm_HIO_c() {
|
||||
@@ -340,6 +220,7 @@ dName_c::dName_c(J2DPane* pane) {
|
||||
}
|
||||
|
||||
/* 8024E468-8024E62C 248DA8 01C4+00 1/0 0/0 0/0 .text __dt__7dName_cFv */
|
||||
// matches with vtable data
|
||||
#ifdef NONMATCHING
|
||||
dName_c::~dName_c() {
|
||||
delete stick;
|
||||
@@ -502,7 +383,8 @@ void dName_c::_move() {
|
||||
}
|
||||
} else if (mDoCPd_c::getTrigStart(PAD_1)) {
|
||||
if ((mSelProc != PROC_MENU_SELECT || mSelMenu != MENU_END) &&
|
||||
(mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT)) {
|
||||
(mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT))
|
||||
{
|
||||
mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0);
|
||||
mPrevSelMenu = mSelMenu;
|
||||
mSelMenu = MENU_END;
|
||||
@@ -577,9 +459,7 @@ void dName_c::cursorAnm() {
|
||||
}
|
||||
|
||||
/* 8024ED48-8024ED4C 249688 0004+00 1/0 0/0 0/0 .text Wait__7dName_cFv */
|
||||
void dName_c::Wait() {
|
||||
/* empty function */
|
||||
}
|
||||
void dName_c::Wait() {}
|
||||
|
||||
/* 8024ED4C-8024F034 24968C 02E8+00 1/0 0/0 0/0 .text MojiSelect__7dName_cFv */
|
||||
// matches with literals
|
||||
@@ -672,7 +552,8 @@ void dName_c::MojiSelectAnmInit() {
|
||||
/* 8024F0E0-8024F164 249A20 0084+00 1/0 0/0 0/0 .text MojiSelectAnm__7dName_cFv */
|
||||
void dName_c::MojiSelectAnm() {
|
||||
if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale,
|
||||
lit_3820, 0) == 1) {
|
||||
lit_3820, 0) == 1)
|
||||
{
|
||||
selectCursorMove();
|
||||
mSelProc = PROC_MOJI_SELECT;
|
||||
field_0x2ad = mSelProc;
|
||||
@@ -682,7 +563,8 @@ void dName_c::MojiSelectAnm() {
|
||||
/* 8024F164-8024F1E8 249AA4 0084+00 1/0 0/0 0/0 .text MojiSelectAnm2__7dName_cFv */
|
||||
void dName_c::MojiSelectAnm2() {
|
||||
if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale,
|
||||
lit_3820, 0) == 1) {
|
||||
lit_3820, 0) == 1)
|
||||
{
|
||||
menuCursorMove2();
|
||||
mSelProc = PROC_MENU_SELECT;
|
||||
field_0x2ad = mSelProc;
|
||||
@@ -690,29 +572,28 @@ void dName_c::MojiSelectAnm2() {
|
||||
}
|
||||
|
||||
/* 8024F1E8-8024F1EC 249B28 0004+00 1/0 0/0 0/0 .text MojiSelectAnm3__7dName_cFv */
|
||||
void dName_c::MojiSelectAnm3() {
|
||||
/* empty function */
|
||||
}
|
||||
void dName_c::MojiSelectAnm3() {}
|
||||
|
||||
/* 8024F1EC-8024F55C 249B2C 0370+00 1/0 0/0 0/0 .text mojiChange__7dName_cFUc */
|
||||
// weird pattern
|
||||
#ifdef NONMATCHING
|
||||
int dName_c::mojiChange(u8 idx) {
|
||||
if (mChrInfo[idx].field_0x3 == 0 || mChrInfo[idx].mMojiSet == MOJI_EIGO ||
|
||||
mChrInfo[idx].mCharacter == ' ') {
|
||||
mChrInfo[idx].mCharacter == ' ')
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mChrInfo[idx].mColumn == 4 || mChrInfo[idx].mColumn == 6 || mChrInfo[idx].mColumn == 8 ||
|
||||
mChrInfo[idx].mColumn == 9) {
|
||||
mChrInfo[idx].mColumn == 9)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (mChrInfo[idx].mColumn) {
|
||||
case 0:
|
||||
case 10:
|
||||
case 10: {
|
||||
if (mChrInfo[idx].mCharacter == 'ウ' || mChrInfo[idx].mCharacter == 'ゥ' ||
|
||||
mChrInfo[idx].mCharacter == 'ヴ') {
|
||||
mChrInfo[idx].mCharacter == 'ヴ')
|
||||
{
|
||||
mChrInfo[idx].mCharacter++;
|
||||
|
||||
if (mChrInfo[idx].mCharacter == 'ェ') {
|
||||
@@ -723,7 +604,7 @@ int dName_c::mojiChange(u8 idx) {
|
||||
mChrInfo[idx].mCharacter = 'ゥ';
|
||||
}
|
||||
} else {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ぁ' : 'ァ';
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ァ' : 'ぁ';
|
||||
|
||||
if ((mChrInfo[idx].mCharacter - c) % 2) {
|
||||
--mChrInfo[idx].mCharacter;
|
||||
@@ -732,52 +613,82 @@ int dName_c::mojiChange(u8 idx) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
}
|
||||
case 1: {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'カ' : 'か';
|
||||
if ((mChrInfo[idx].mCharacter - c) % 2 == 0) {
|
||||
mChrInfo[idx].mCharacter += 1;
|
||||
} else {
|
||||
mChrInfo[idx].mCharacter -= 1;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ';
|
||||
((mChrInfo[idx].mCharacter - c) % 2) ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--;
|
||||
break;
|
||||
case 3:
|
||||
case 12:
|
||||
if (mChrInfo[idx].mCharacter != 0x815b) {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ': 'ぢ';
|
||||
c = ((mChrInfo[idx].mCharacter - c) % 2);
|
||||
|
||||
if (c < mChrInfo[idx].mCharacter) {
|
||||
int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ';
|
||||
(mChrInfo[idx].mCharacter - c2) % 2 ? mChrInfo[idx].mCharacter++ :
|
||||
mChrInfo[idx].mCharacter--;
|
||||
int c2 = c + 1;
|
||||
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ';
|
||||
c = ((mChrInfo[idx].mCharacter - c) % 2);
|
||||
|
||||
int c2 = c + 1;
|
||||
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
case 12: {
|
||||
if (mChrInfo[idx].mCharacter != (u32)0x815b) {
|
||||
if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ')) {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'タ' : 'た';
|
||||
c = ((mChrInfo[idx].mCharacter - c) % 2);
|
||||
|
||||
int c2 = c + 1;
|
||||
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
|
||||
} else if (mChrInfo[idx].mCharacter <=
|
||||
(mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ド' : 'ど') &&
|
||||
mChrInfo[idx].mCharacter >=
|
||||
(mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て'))
|
||||
{
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て';
|
||||
c = ((mChrInfo[idx].mCharacter - c) % 2);
|
||||
|
||||
int c2 = c + 1;
|
||||
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
|
||||
} else {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ッ' : 'っ';
|
||||
int c2 = (mChrInfo[idx].mCharacter - c) % 3;
|
||||
|
||||
int ivar2 = c2 + 1;
|
||||
if (ivar2 > 2) {
|
||||
ivar2 = 0;
|
||||
}
|
||||
|
||||
mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
}
|
||||
case 5: {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ハ' : 'は';
|
||||
int c2 = (mChrInfo[idx].mCharacter - c) % 3;
|
||||
|
||||
int ivar2 = c2 + 1;
|
||||
if (ivar2 > 2) {
|
||||
ivar2 = 0;
|
||||
}
|
||||
|
||||
mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2);
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
case 11:
|
||||
case 11: {
|
||||
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ャ' : 'ゃ';
|
||||
c = ((mChrInfo[idx].mCharacter - c) % 2);
|
||||
|
||||
int c2 = c + 1;
|
||||
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
setNameText();
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dName_c::mojiChange(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_name/mojiChange__7dName_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8024F55C-8024F59C 249E9C 0040+00 1/1 0/0 0/0 .text selectMojiSet__7dName_cFv */
|
||||
void dName_c::selectMojiSet() {
|
||||
@@ -1011,9 +922,7 @@ void dName_c::MenuSelectAnm2() {
|
||||
}
|
||||
|
||||
/* 8024FFA0-8024FFA4 24A8E0 0004+00 1/0 0/0 0/0 .text MenuSelectAnm3__7dName_cFv */
|
||||
void dName_c::MenuSelectAnm3() {
|
||||
/* empty function */
|
||||
}
|
||||
void dName_c::MenuSelectAnm3() {}
|
||||
|
||||
/* 8024FFA4-80250074 24A8E4 00D0+00 1/1 0/0 0/0 .text menuAbtnSelect__7dName_cFv */
|
||||
// matches with literals
|
||||
@@ -1221,20 +1130,130 @@ SECTION_SDATA2 static f32 lit_4725[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 803C2788-803C27C8 01F8A8 0040+00 0/1 0/0 0/0 .data l_cur0TagName$4610 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_cur0TagName[8] = {
|
||||
's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C27C8-803C2808 01F8E8 0040+00 0/1 0/0 0/0 .data l_cur1TagName$4611 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_cur1TagName[8] = {
|
||||
's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2808-803C2828 01F928 0020+00 0/1 0/0 0/0 .data l_menu_icon_tag$4617 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_menu_icon_tag[4] = {
|
||||
'p_ABC_n',
|
||||
'p_abc_n',
|
||||
'j_eigo_n',
|
||||
'p_end_n',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2828-803C28A0 01F948 0078+00 0/1 0/0 0/0 .data l_menu_tag$4618 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_menu_tag[5][3] = {
|
||||
'p_ABC_0', 'p_ABC_1', 'p_ABC_2', 'p_abc_0', 'p_abc_1', 'p_abc_2',
|
||||
'm_eigo_0', 'm_eigo_1', 'm_eigo_2', 'p_end_0', 'p_end_1', 'p_end_2',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C28A0-803C28B0 01F9C0 0010+00 0/1 0/0 0/0 .data l_menu_msg$4619 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u32 l_menu_msg[4] = {
|
||||
0x38B,
|
||||
0x38C,
|
||||
0x388,
|
||||
0x38E,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C28B0-803C2AB8 01F9D0 0208+00 0/1 0/0 0/0 .data l_tagName$4635 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_tagName[65] = {
|
||||
'm_00_0', 'm_00_1', 'm_00_2', 'm_00_3', 'm_00_4', 'm_01_0', 'm_01_1', 'm_01_2', 'm_01_3',
|
||||
'm_01_4', 'm_02_0', 'm_02_1', 'm_02_2', 'm_02_3', 'm_02_4', 'm03_0', 'm03_1', 'm03_2',
|
||||
'm03_3', 'm03_4', 'm_04_0', 'm_04_1', 'm_04_2', 'm_04_3', 'm_04_4', 'm_05_0', 'm_05_1',
|
||||
'm_05_2', 'm_05_3', 'm_05_4', 'm_06_0', 'm_06_1', 'm_06_2', 'm_06_3', 'm_06_4', 'm_07_0',
|
||||
'm_07_1', 'm_07_2', 'm_07_3', 'm_07_4', 'm_08_0', 'm_08_1', 'm_08_2', 'm_08_3', 'm_08_4',
|
||||
'm_09_0', 'm_09_1', 'm_09_2', 'm_09_3', 'm_09_4', 'm_10_0', 'm_10_1', 'm_10_2', 'm_10_3',
|
||||
'm_10_4', 'm_11_0', 'm_11_1', 'm_11_2', 'm_11_3', 'm_11_4', 'm12_0', 'm12_1', 'm12_2',
|
||||
'm12_3', 'm12_4',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2AB8-803C2AF8 01FBD8 0040+00 0/1 0/0 0/0 .data l_nameTagName$4642 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_nameTagName[8] = {
|
||||
'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2AF8-803C2B38 01FC18 0040+00 0/1 0/0 0/0 .data l_nameCurTagName$4643 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u64 l_nameCurTagName[8] = {
|
||||
's__n_00', 's__n_01', 's__n_02', 's__n_03', 's__n_04', 's__n_05', 's__n_06', 's__n_07',
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803C2B38-803C2B64 01FC58 0010+1C 3/3 0/0 0/0 .data __vt__14dDlst_NameIN_c */
|
||||
SECTION_DATA extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__14dDlst_NameIN_cFv,
|
||||
(void*)__dt__14dDlst_NameIN_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 803C2B64-803C2B7C 01FC84 000C+0C 2/2 0/0 0/0 .data __vt__7dName_c */
|
||||
SECTION_DATA extern void* __vt__7dName_c[3 + 3 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__7dName_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 802505CC-80250CEC 24AF0C 0720+00 1/1 0/0 0/0 .text screenSet__7dName_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dName_c::screenSet() {
|
||||
nameIn.NameInScr = new J2DScreen();
|
||||
JUT_ASSERT(nameIn.NameInScr != 0);
|
||||
|
||||
archive = dComIfGp_getNameResArchive();
|
||||
nameIn.NameInScr->setPriority("zelda_player_name.blo", 0x100000, archive);
|
||||
dPaneClass_showNullPane(nameIn.NameInScr);
|
||||
nameIn.field_0x10 = nameIn.NameInScr->search('name_n');
|
||||
|
||||
void* bpk = JKRFileLoader::getGlbResource("zelda_player_name.bpk", archive);
|
||||
void* bpk = JKRGetNameResource("zelda_player_name.bpk", archive);
|
||||
JUT_ASSERT(bpk != 0);
|
||||
mCursorColorKey = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(bpk);
|
||||
mCursorColorKey->searchUpdateMaterialID(nameIn.NameInScr);
|
||||
|
||||
void* btk = JKRFileLoader::getGlbResource("zelda_player_name.btk", archive);
|
||||
void* btk = JKRGetNameResource("zelda_player_name.btk", archive);
|
||||
JUT_ASSERT(btk != 0);
|
||||
mCursorTexKey = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(btk);
|
||||
mCursorTexKey->searchUpdateMaterialID(nameIn.NameInScr);
|
||||
|
||||
@@ -1271,7 +1290,7 @@ void dName_c::screenSet() {
|
||||
fopMsgM_messageGet(buf, l_menu_msg[i]);
|
||||
|
||||
for (int j = 0; j < 3; j++) {
|
||||
menuPane[j] = (J2DTextBox*)nameIn.NameInScr->search(l_menu_tag[j]);
|
||||
menuPane[j] = (J2DTextBox*)nameIn.NameInScr->search(l_menu_tag[i][j]);
|
||||
|
||||
if (j == 0) {
|
||||
mMenuText[i] = menuPane[j];
|
||||
@@ -1287,7 +1306,7 @@ void dName_c::screenSet() {
|
||||
mMenuIcon[1]->hide();
|
||||
mMojiPane = nameIn.NameInScr->search('moji_n');
|
||||
|
||||
for (int i = 0; i < 65; i++) {
|
||||
for (u32 i = 0; i < 65; i++) {
|
||||
mMojiIcon[i] = new CPaneMgr(nameIn.NameInScr, l_tagName[i], 2, NULL);
|
||||
((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setFont(nameIn.font);
|
||||
((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setString(72, "");
|
||||
@@ -1308,7 +1327,9 @@ void dName_c::screenSet() {
|
||||
mCharRow = 0;
|
||||
|
||||
mSelIcon = new dSelect_cursor_c(0, 1.0f, NULL);
|
||||
JUT_ASSERT(mSelIcon != 0);
|
||||
mSelIcon->setParam(0.82f, 0.77f, 0.05f, 0.4f, 0.4f);
|
||||
|
||||
Vec pos = mMojiIcon[mCharRow + mCharColumn * 5]->getGlobalVtxCenter(false, 0);
|
||||
mSelIcon->setPos(pos.x, pos.y, mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr(), true);
|
||||
mSelIcon->setAlphaRate(0.0f);
|
||||
@@ -1367,14 +1388,16 @@ void dName_c::NameStrSet() {
|
||||
for (int j = 0; j < 65; j++) {
|
||||
if (mChrInfo[i].mCharacter == *(u16*)l_mojiHira[j] ||
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojiHira2[j] ||
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojiHira3[j]) {
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojiHira3[j])
|
||||
{
|
||||
mChrInfo[i].mColumn = j / 5;
|
||||
mChrInfo[i].mRow = j % 5;
|
||||
mChrInfo[i].mMojiSet = MOJI_HIRA;
|
||||
break;
|
||||
} else if (mChrInfo[i].mCharacter == *(u16*)l_mojikata[j] ||
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojikata2[j] ||
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojikata3[j]) {
|
||||
mChrInfo[i].mCharacter == *(u16*)l_mojikata3[j])
|
||||
{
|
||||
mChrInfo[i].mColumn = j / 5;
|
||||
mChrInfo[i].mRow = j % 5;
|
||||
mChrInfo[i].mMojiSet = MOJI_KATA;
|
||||
@@ -1427,6 +1450,23 @@ s32 dName_c::getMenuPosIdx(u8 selPos) {
|
||||
}
|
||||
|
||||
/* 80251094-8025115C 24B9D4 00C8+00 1/0 0/0 0/0 .text draw__14dDlst_NameIN_cFv */
|
||||
// matches with literals / vtable data
|
||||
#ifdef NONMATCHING
|
||||
void dDlst_NameIN_c::draw() {
|
||||
if (field_0xc != NULL) {
|
||||
Mtx m;
|
||||
MtxP global_mtx = (MtxP)&field_0xc->getGlbMtx()[0][0]; // fake match?
|
||||
|
||||
MTXScale(m, (field_0xc->getWidth() / field_0x10->getWidth()),
|
||||
(field_0xc->getHeight() / field_0x10->getHeight()), 1.0f);
|
||||
MTXConcat(global_mtx, m, global_mtx);
|
||||
field_0x10->setMtx(global_mtx);
|
||||
}
|
||||
|
||||
J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort();
|
||||
NameInScr->draw(0.0f, 0.0f, graf_ctx);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1436,6 +1476,7 @@ extern "C" asm void draw__14dDlst_NameIN_cFv() {
|
||||
#include "asm/d/d_name/draw__14dDlst_NameIN_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8025115C-802511A4 24BA9C 0048+00 1/0 0/0 0/0 .text __dt__14dDlst_NameIN_cFv */
|
||||
dDlst_NameIN_c::~dDlst_NameIN_c() {}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h"
|
||||
#include "d/kankyo/d_kankyo_static.h"
|
||||
#include "string.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -217,7 +217,7 @@ extern "C" extern dScnKy_env_light_c g_env_light;
|
||||
extern "C" extern Z2EnvSeMgr g_mEnvSeMgr;
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u8 data_80450EE0[8];
|
||||
extern "C" extern u8 data_80450EE0;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind);
|
||||
@@ -1321,6 +1321,8 @@ SECTION_SDATA2 static f32 lit_5192 = 24575.0f;
|
||||
/* 80452160-80452164 000760 0004+00 1/1 0/0 0/0 .sdata2 @5193 */
|
||||
SECTION_SDATA2 static f32 lit_5193 = 0.00139999995008111f;
|
||||
|
||||
u8 data_80450EE0;
|
||||
|
||||
/* 80059728-80059E38 054068 0710+00 1/1 0/0 0/0 .text wether_move_vrkumo__Fv */
|
||||
// gameinfo load issue, cmath instruction order / reg alloc
|
||||
#ifdef NONMATCHING
|
||||
|
||||
@@ -1206,7 +1206,7 @@ static u8 virtual_stage[8];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmap_getStartStageName(void* param_0) {
|
||||
asm const char* dMenuFmap_getStartStageName(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_fmap/dMenuFmap_getStartStageName__FPv.s"
|
||||
}
|
||||
|
||||
+58
-79
@@ -1,46 +1,22 @@
|
||||
//
|
||||
// Translation Unit: d/s/d_s_logo
|
||||
//
|
||||
/**
|
||||
* d_s_logo.cpp
|
||||
* Game Boot Logo's Display
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_logo.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
#include "c/c_dylink.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/map/d_map_path_dmap.h"
|
||||
#include "dolphin/vi.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "dolphin/os/OSRtc.h"
|
||||
#include "dolphin/vi.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
class dEnemyItem_c {
|
||||
public:
|
||||
static void setItemData(u8* data) { mData = data; }
|
||||
|
||||
static u8* mData;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C2E38-803C2E44 01FF58 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -75,7 +51,6 @@ void dScnLogo_c::preLoad_dyl_remove() {
|
||||
delete[] m_preLoad_dylPhase;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80399FE0-80399FFC 026640 001C+00 1/1 0/0 0/0 .rodata l_preLoad_dylKeyTbl */
|
||||
static s16 const l_preLoad_dylKeyTbl[14] = {
|
||||
0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139,
|
||||
@@ -84,13 +59,13 @@ static s16 const l_preLoad_dylKeyTbl[14] = {
|
||||
|
||||
/* 8025611C-80256198 250A5C 007C+00 2/2 0/0 0/0 .text preLoad_dyl__10dScnLogo_cFv */
|
||||
bool dScnLogo_c::preLoad_dyl() {
|
||||
bool ret = 1;
|
||||
bool ret = true;
|
||||
|
||||
for (int i = 0; i < 14; i++) {
|
||||
int link = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]);
|
||||
int phase_state = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]);
|
||||
|
||||
if (link != 4) {
|
||||
ret = 0;
|
||||
if (phase_state != cPhs_COMPLEATE_e) {
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +75,7 @@ bool dScnLogo_c::preLoad_dyl() {
|
||||
/* 80256198-80256210 250AD8 0078+00 1/1 0/0 0/0 .text checkProgSelect__10dScnLogo_cFv */
|
||||
void dScnLogo_c::checkProgSelect() {
|
||||
if (mDoRst::getProgSeqFlag() == 0 && VIGetDTVStatus() != 0) {
|
||||
if (isProgressiveMode() || mDoCPd_c::getHoldB(0)) {
|
||||
if (isProgressiveMode() || mDoCPd_c::getHoldB(PAD_1)) {
|
||||
field_0x20a = 1;
|
||||
field_0x209 = 0;
|
||||
}
|
||||
@@ -138,7 +113,7 @@ void dScnLogo_c::progSelDraw() {
|
||||
|
||||
if (field_0x20b == 0) {
|
||||
if (field_0x209 == 0) {
|
||||
if (mDoCPd_c::getHoldRight(0) || mDoCPd_c::getStickX(0) > 0.5f) {
|
||||
if (mDoCPd_c::getHoldRight(PAD_1) || mDoCPd_c::getStickX(PAD_1) > 0.5f) {
|
||||
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
|
||||
field_0x209 = 1;
|
||||
field_0x20e = 30;
|
||||
@@ -146,7 +121,7 @@ void dScnLogo_c::progSelDraw() {
|
||||
field_0x212 = 0;
|
||||
}
|
||||
} else {
|
||||
if (mDoCPd_c::getHoldLeft(0) || mDoCPd_c::getStickX(0) < -0.5f) {
|
||||
if (mDoCPd_c::getHoldLeft(PAD_1) || mDoCPd_c::getStickX(PAD_1) < -0.5f) {
|
||||
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
|
||||
field_0x209 = 0;
|
||||
field_0x20e = 30;
|
||||
@@ -326,10 +301,11 @@ void dScnLogo_c::warningDispDraw() {
|
||||
field_0x210--;
|
||||
}
|
||||
|
||||
if (mTimer == 0 ||
|
||||
mDoCPd_c::getTrig(PAD_1) & (CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START |
|
||||
CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT |
|
||||
CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP)) {
|
||||
if (mTimer == 0 || mDoCPd_c::getTrig(PAD_1) &
|
||||
(CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START |
|
||||
CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT |
|
||||
CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP))
|
||||
{
|
||||
mExecCommand = EXEC_WARNING_OUT;
|
||||
mTimer = 30;
|
||||
mDoGph_gInf_c::startFadeOut(30);
|
||||
@@ -394,10 +370,9 @@ void dScnLogo_c::dolbyOutDraw() {
|
||||
|
||||
/* 80257058-80257070 251998 0018+00 1/0 0/0 0/0 .text dolbyOutDraw2__10dScnLogo_cFv */
|
||||
void dScnLogo_c::dolbyOutDraw2() {
|
||||
if (mTimer != 0) {
|
||||
return;
|
||||
if (mTimer == 0) {
|
||||
mExecCommand = EXEC_DVD_WAIT;
|
||||
}
|
||||
mExecCommand = EXEC_DVD_WAIT;
|
||||
}
|
||||
|
||||
/* 80257070-80257284 2519B0 0214+00 1/0 0/0 0/0 .text dvdWaitDraw__10dScnLogo_cFv */
|
||||
@@ -412,7 +387,8 @@ void dScnLogo_c::dvdWaitDraw() {
|
||||
mpMsgResCommand[3]->sync() && mpMsgResCommand[4]->sync() &&
|
||||
mpMsgResCommand[5]->sync() && mpMsgResCommand[6]->sync() && mpFontResCommand->sync() &&
|
||||
mpMain2DCommand->sync() && mpRubyResCommand->sync() && mParticleCommand->sync() &&
|
||||
mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl()) {
|
||||
mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl())
|
||||
{
|
||||
mDoRst::setLogoScnFlag(0);
|
||||
mDoRst::setProgChgFlag(0);
|
||||
mExecCommand = EXEC_SCENE_CHANGE;
|
||||
@@ -515,53 +491,56 @@ dScnLogo_c::~dScnLogo_c() {
|
||||
}
|
||||
|
||||
/* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */
|
||||
static int phase_0(dScnLogo_c* logo) {
|
||||
static int phase_0(dScnLogo_c* i_this) {
|
||||
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
|
||||
dComIfGp_particle_create();
|
||||
|
||||
logo->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10);
|
||||
logo->field_0x1d0 = JKRExpHeap::create(logo->buffer, 0x340000, NULL, false);
|
||||
logo->field_0x1d4 = JKRExpHeap::create(0x130000, logo->field_0x1d0, false);
|
||||
i_this->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10);
|
||||
i_this->field_0x1d0 = JKRExpHeap::create(i_this->buffer, 0x340000, NULL, false);
|
||||
i_this->field_0x1d4 = JKRExpHeap::create(0x130000, i_this->field_0x1d0, false);
|
||||
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 802579BC-80257A70 2522FC 00B4+00 1/0 0/0 0/0 .text phase_1__FP10dScnLogo_c */
|
||||
static int phase_1(dScnLogo_c* logo) {
|
||||
static int phase_1(dScnLogo_c* i_this) {
|
||||
if (!cDyl_InitAsyncIsDone()) {
|
||||
return 0;
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
|
||||
if (!mDoAud_zelAudio_c::isInitFlag() ||
|
||||
Z2AudioMgr::getInterface()->checkFirstWaves()) {
|
||||
return 0;
|
||||
if (!mDoAud_zelAudio_c::isInitFlag() || Z2AudioMgr::getInterface()->checkFirstWaves()) {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
|
||||
dComIfG_setObjectRes("LogoUs", (u8)0, logo->field_0x1d0);
|
||||
dComIfG_setObjectRes("LogoUs", (u8)0, i_this->field_0x1d0);
|
||||
mDoRst::setLogoScnFlag(1);
|
||||
archiveHeap->dump_sort();
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 80257A70-80257AB4 2523B0 0044+00 1/0 0/0 0/0 .text phase_2__FP10dScnLogo_c */
|
||||
static int phase_2(dScnLogo_c* param_0) {
|
||||
return dComIfG_syncAllObjectRes() ? 0 : 4;
|
||||
static int phase_2(dScnLogo_c* i_this) {
|
||||
if (dComIfG_syncAllObjectRes()) {
|
||||
return cPhs_INIT_e;
|
||||
} else {
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80257AB4-80257AE0 2523F4 002C+00 1/1 0/0 0/0 .text
|
||||
* resLoad__FP30request_of_phase_process_classP10dScnLogo_c */
|
||||
static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* param_1) {
|
||||
static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* i_this) {
|
||||
static int (*l_method[3])(void*) = {(int (*)(void*))phase_0, (int (*)(void*))phase_1,
|
||||
(int (*)(void*))phase_2};
|
||||
|
||||
return dComLbG_PhaseHandler(i_phase, l_method, param_1);
|
||||
return dComLbG_PhaseHandler(i_phase, l_method, i_this);
|
||||
}
|
||||
|
||||
/* 80257AE0-80257C64 252420 0184+00 1/1 0/0 0/0 .text create__10dScnLogo_cFv */
|
||||
int dScnLogo_c::create() {
|
||||
int stat = resLoad(&field_0x1c4, this);
|
||||
if (stat != 4) {
|
||||
return stat;
|
||||
int phase_state = resLoad(&field_0x1c4, this);
|
||||
if (phase_state != cPhs_COMPLEATE_e) {
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
mpHeap = mDoExt_setCurrentHeap(field_0x1d4);
|
||||
@@ -596,7 +575,7 @@ int dScnLogo_c::create() {
|
||||
mDoRst::offReset();
|
||||
mDoRst::offResetPrepare();
|
||||
|
||||
return stat;
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80257C64-80257FEC 2525A4 0388+00 1/1 0/0 0/0 .text logoInitGC__10dScnLogo_cFv */
|
||||
@@ -693,33 +672,33 @@ void dScnLogo_c::dvdDataLoad() {
|
||||
}
|
||||
|
||||
/* 80258420-80258444 252D60 0024+00 1/0 0/0 0/0 .text dScnLogo_Create__FP11scene_class */
|
||||
static int dScnLogo_Create(scene_class* scn) {
|
||||
return (new (scn) dScnLogo_c())->create();
|
||||
static int dScnLogo_Create(scene_class* i_this) {
|
||||
return (new (i_this) dScnLogo_c())->create();
|
||||
}
|
||||
|
||||
/* 80258444-80258484 252D84 0040+00 1/0 0/0 0/0 .text dScnLogo_Execute__FP10dScnLogo_c */
|
||||
static int dScnLogo_Execute(dScnLogo_c* logo) {
|
||||
static int dScnLogo_Execute(dScnLogo_c* i_this) {
|
||||
if (mDoRst::isReset()) {
|
||||
fopScnM_ChangeReq(logo, 9, 0, 5);
|
||||
fopScnM_ChangeReq(i_this, PROC_LOGO_SCENE, 0, 5);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80258484-802584A8 252DC4 0024+00 1/0 0/0 0/0 .text dScnLogo_Draw__FP10dScnLogo_c */
|
||||
static int dScnLogo_Draw(dScnLogo_c* logo) {
|
||||
logo->draw();
|
||||
static int dScnLogo_Draw(dScnLogo_c* i_this) {
|
||||
i_this->draw();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 802584A8-802584D0 252DE8 0028+00 1/0 0/0 0/0 .text dScnLogo_Delete__FP10dScnLogo_c */
|
||||
static int dScnLogo_Delete(dScnLogo_c* logo) {
|
||||
logo->~dScnLogo_c();
|
||||
static int dScnLogo_Delete(dScnLogo_c* i_this) {
|
||||
i_this->~dScnLogo_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 802584D0-802584D8 252E10 0008+00 1/0 0/0 0/0 .text dScnLogo_IsDelete__FP10dScnLogo_c
|
||||
*/
|
||||
static int dScnLogo_IsDelete(dScnLogo_c* logo) {
|
||||
static int dScnLogo_IsDelete(dScnLogo_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -751,8 +730,10 @@ dLog_HIO_c::~dLog_HIO_c() {}
|
||||
|
||||
/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */
|
||||
static dScnLogo_Method l_dScnLogo_Method[5] = {
|
||||
(dScnLogo_Method) dScnLogo_Create, dScnLogo_Delete,
|
||||
dScnLogo_Execute, dScnLogo_IsDelete,
|
||||
(dScnLogo_Method)dScnLogo_Create,
|
||||
dScnLogo_Delete,
|
||||
dScnLogo_Execute,
|
||||
dScnLogo_IsDelete,
|
||||
dScnLogo_Draw,
|
||||
};
|
||||
|
||||
@@ -770,5 +751,3 @@ extern scene_process_profile_definition g_profile_LOGO_SCENE = {
|
||||
(process_method_class*)&l_dScnLogo_Method,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* d_s_menu.cpp
|
||||
* dolzel2 - Scene Menu
|
||||
* Debug Level Select Menu
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_menu.h"
|
||||
@@ -8,8 +8,6 @@
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
#include "f_op/f_op_scene.h"
|
||||
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3018-803C3040 -00001 0028+00 0/0 0/0 1/0 .data g_profile_MENU_SCENE */
|
||||
extern scene_process_profile_definition g_profile_MENU_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
|
||||
+24
-115
@@ -1,6 +1,7 @@
|
||||
//
|
||||
// Translation Unit: d/s/d_s_name
|
||||
//
|
||||
/**
|
||||
* d_s_name.cpp
|
||||
* File Select Scene
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_name.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
@@ -15,95 +16,6 @@
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__9dSn_HIO_cFv();
|
||||
extern "C" static void phase_1__FPc();
|
||||
extern "C" static void phase_2__FPc();
|
||||
extern "C" static void resLoad__FP30request_of_phase_process_classPc();
|
||||
extern "C" void create__10dScnName_cFv();
|
||||
extern "C" void setView__10dScnName_cFv();
|
||||
extern "C" void execute__10dScnName_cFv();
|
||||
extern "C" void draw__10dScnName_cFv();
|
||||
extern "C" void __dt__10dScnName_cFv();
|
||||
extern "C" void FileSelectOpen__10dScnName_cFv();
|
||||
extern "C" void FileSelectMain__10dScnName_cFv();
|
||||
extern "C" void FileSelectMainNormal__10dScnName_cFv();
|
||||
extern "C" void FileSelectClose__10dScnName_cFv();
|
||||
extern "C" void brightCheckOpen__10dScnName_cFv();
|
||||
extern "C" void brightCheck__10dScnName_cFv();
|
||||
extern "C" void changeGameScene__10dScnName_cFv();
|
||||
extern "C" static void dScnName_Draw__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Execute__FP10dScnName_c();
|
||||
extern "C" static void dScnName_IsDelete__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Delete__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Create__FP11scene_class();
|
||||
extern "C" void __dt__17dScnName_camera_cFv();
|
||||
extern "C" void __dt__9dSn_HIO_cFv();
|
||||
extern "C" void __sinit_d_s_name_cpp();
|
||||
extern "C" extern char const* const d_s_d_s_name__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs();
|
||||
extern "C" void mDoMtx_concatProjView__FPA4_CfPA4_CfPA4_f();
|
||||
extern "C" void mDoExt_getGameHeap__Fv();
|
||||
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
|
||||
extern "C" void fopOvlpM_IsPeek__Fv();
|
||||
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
|
||||
extern "C" void dComIfG_resetToOpening__FP11scene_class();
|
||||
extern "C" void dComIfGp_setNextStage__FPCcsScSc();
|
||||
extern "C" void dComIfGs_gameStart__Fv();
|
||||
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
|
||||
extern "C" void offFirstBit__21dSv_player_get_item_cFUc();
|
||||
extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap();
|
||||
extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void getResInfo__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void cleanup__13dPa_control_cFv();
|
||||
extern "C" void setViewPort__14dDlst_window_cFffffff();
|
||||
extern "C" void setScissor__14dDlst_window_cFffff();
|
||||
extern "C" void Run__12dVibration_cFv();
|
||||
extern "C" void Init__12dVibration_cFv();
|
||||
extern "C" void __ct__14dFile_select_cFP10JKRArchive();
|
||||
extern "C" void _create__14dFile_select_cFv();
|
||||
extern "C" void _move__14dFile_select_cFv();
|
||||
extern "C" void _draw__14dFile_select_cFv();
|
||||
extern "C" void __ct__14dBrightCheck_cFP10JKRArchive();
|
||||
extern "C" void _move__14dBrightCheck_cFv();
|
||||
extern "C" void _draw__14dBrightCheck_cFv();
|
||||
extern "C" void dKy_clear_game_init__Fv();
|
||||
extern "C" void dKy_setLight_init__Fv();
|
||||
extern "C" void changeWater__13dMeter2Info_cFUc();
|
||||
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
|
||||
extern "C" void bgmStop__8Z2SeqMgrFUll();
|
||||
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
|
||||
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
|
||||
extern "C" void becomeCurrentHeap__7JKRHeapFv();
|
||||
extern "C" void destroy__7JKRHeapFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3040-803C304C 020160 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -128,10 +40,10 @@ dSn_HIO_c::dSn_HIO_c() {
|
||||
static s32 phase_1(char* resName) {
|
||||
mDoAud_bgmStart(-1);
|
||||
if (dComIfG_setObjectRes(resName, (u8)0, NULL) == 0) {
|
||||
return 5;
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 80258820-80258878 253160 0058+00 1/0 0/0 0/0 .text phase_2__FPc */
|
||||
@@ -139,25 +51,27 @@ static s32 phase_2(char* resName) {
|
||||
int syncStatus = dComIfG_syncObjectRes(resName);
|
||||
|
||||
if (syncStatus < 0) {
|
||||
return 5;
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (syncStatus > 0) {
|
||||
return cPhs_INIT_e;
|
||||
} else {
|
||||
return syncStatus > 0 ? 0 : 4;
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80258878-802588A0 2531B8 0028+00 1/1 0/0 0/0 .text
|
||||
* resLoad__FP30request_of_phase_process_classPc */
|
||||
static s32 resLoad(request_of_phase_process_class* i_phase, char* param_1) {
|
||||
static s32 resLoad(request_of_phase_process_class* i_phase, char* i_resName) {
|
||||
static request_of_phase_process_fn l_method[2] = {
|
||||
(request_of_phase_process_fn)phase_1,
|
||||
(request_of_phase_process_fn)phase_2
|
||||
};
|
||||
|
||||
return dComLbG_PhaseHandler(i_phase, l_method, param_1);
|
||||
return dComLbG_PhaseHandler(i_phase, l_method, i_resName);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
|
||||
s32 dScnName_c::create() {
|
||||
int phase_state = resLoad(&field_0x1c4, "fileSel");
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
@@ -349,8 +263,6 @@ void dScnName_c::brightCheck() {
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
|
||||
/* 802590F8-802591C0 253A38 00C8+00 1/0 0/0 0/0 .text changeGameScene__10dScnName_cFv */
|
||||
void dScnName_c::changeGameScene() {
|
||||
if (!mDoRst::isReset() && !fopOvlpM_IsPeek()) {
|
||||
@@ -369,37 +281,34 @@ void dScnName_c::changeGameScene() {
|
||||
}
|
||||
|
||||
/* 802591C0-802591E0 253B00 0020+00 1/0 0/0 0/0 .text dScnName_Draw__FP10dScnName_c */
|
||||
static void dScnName_Draw(dScnName_c* scn) {
|
||||
scn->draw();
|
||||
static int dScnName_Draw(dScnName_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 802591E0-80259200 253B20 0020+00 1/0 0/0 0/0 .text dScnName_Execute__FP10dScnName_c */
|
||||
static void dScnName_Execute(dScnName_c* scn) {
|
||||
scn->execute();
|
||||
static int dScnName_Execute(dScnName_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80259200-80259230 253B40 0030+00 1/0 0/0 0/0 .text dScnName_IsDelete__FP10dScnName_c
|
||||
*/
|
||||
static s32 dScnName_IsDelete(dScnName_c*) {
|
||||
static int dScnName_IsDelete(dScnName_c*) {
|
||||
dComIfGp_particle_cleanup();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80259230-80259258 253B70 0028+00 1/0 0/0 0/0 .text dScnName_Delete__FP10dScnName_c */
|
||||
static s32 dScnName_Delete(dScnName_c* scn) {
|
||||
scn->~dScnName_c();
|
||||
static int dScnName_Delete(dScnName_c* i_this) {
|
||||
i_this->~dScnName_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80259258-80259294 253B98 003C+00 1/0 0/0 0/0 .text dScnName_Create__FP11scene_class */
|
||||
static void dScnName_Create(scene_class* scn) {
|
||||
new (scn) dScnName_c();
|
||||
static_cast<dScnName_c*>(scn)->create();
|
||||
static int dScnName_Create(scene_class* i_this) {
|
||||
new (i_this) dScnName_c();
|
||||
return static_cast<dScnName_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
|
||||
/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */
|
||||
static leafdraw_method_class l_dScnName_Method = {
|
||||
(process_method_func)dScnName_Create, (process_method_func)dScnName_Delete,
|
||||
|
||||
+176
-148
@@ -1,8 +1,10 @@
|
||||
//
|
||||
// d/s/d_s_play
|
||||
//
|
||||
/**
|
||||
* d_s_play.cpp
|
||||
* Main Gameplay Scene
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "JSystem/JUtility/JUTGamePad.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
@@ -21,17 +23,12 @@
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "rel/d/a/d_a_suspend/d_a_suspend.h"
|
||||
#include "rel/d/a/d_a_ykgr/d_a_ykgr.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
static void dScnPly_Create(scene_class*);
|
||||
static int dScnPly_Delete(dScnPly_c*);
|
||||
static int dScnPly_IsDelete(dScnPly_c);
|
||||
@@ -52,7 +49,6 @@ static int phase_compleate(void*);
|
||||
|
||||
extern "C" s8 func_80252E70(s8*);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804510F8-80451100 0005F8 0008+00 2/2 0/0 0/0 .sbss resPhase */
|
||||
static request_of_phase_process_class resPhase[1];
|
||||
|
||||
@@ -71,11 +67,10 @@ static OSTime resPreLoadTime1;
|
||||
/* 80451120-80451124 000620 0004+00 1/1 0/0 0/0 .sbss g_preLoadHIO */
|
||||
static dScnPly_preLoad_HIO_c g_preLoadHIO;
|
||||
|
||||
/* 80451124-80451128 -00001 0004+00 3/3 7/7 38/38 .sbss None */
|
||||
/* 80451124 0001+00 data_80451124 None */
|
||||
/* 80451125 0003+00 nextPauseTimer__9dScnPly_c None */
|
||||
s8 dScnPly_c::pauseTimer;
|
||||
|
||||
/* 80451125 0003+00 nextPauseTimer__9dScnPly_c None */
|
||||
s8 dScnPly_c::nextPauseTimer;
|
||||
|
||||
/* 80259400-80259440 253D40 0040+00 1/1 0/0 0/0 .text calcPauseTimer__9dScnPly_cFv */
|
||||
@@ -89,66 +84,6 @@ s8 dScnPly_c::calcPauseTimer() {
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3158-803C3188 020278 002E+02 1/1 0/0 0/0 .data l_wipeType$4081 */
|
||||
static s16 l_wipeType[23] = {
|
||||
0x0000, 0x0000, 0x0011, 0x0002, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0004, 0x0005, 0x0005,
|
||||
0x0006, 0x0007, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0008, 0x0008,
|
||||
};
|
||||
|
||||
/* 803C3188-803C3194 0202A8 000A+02 1/1 0/0 0/0 .data camparamarc$4608 */
|
||||
static char camparamarc[10] = "CamParam";
|
||||
|
||||
/* 803C3194-803C31C0 -00001 002C+00 1/1 0/0 0/0 .data l_method$4860 */
|
||||
static request_of_phase_process_fn l_method[11] = {
|
||||
(request_of_phase_process_fn)phase_00,
|
||||
(request_of_phase_process_fn)phase_1,
|
||||
(request_of_phase_process_fn)phase_1_0,
|
||||
(request_of_phase_process_fn)phase_01,
|
||||
(request_of_phase_process_fn)phase_0,
|
||||
(request_of_phase_process_fn)phase_2,
|
||||
(request_of_phase_process_fn)phase_3,
|
||||
(request_of_phase_process_fn)phase_4,
|
||||
(request_of_phase_process_fn)phase_5,
|
||||
(request_of_phase_process_fn)phase_6,
|
||||
(request_of_phase_process_fn)phase_compleate,
|
||||
};
|
||||
|
||||
/* 803C31C0-803C31D4 -00001 0014+00 2/0 0/0 0/0 .data l_dScnPly_Method */
|
||||
static leafdraw_method_class l_dScnPly_Method = {
|
||||
(process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete,
|
||||
(process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete,
|
||||
(process_method_func)dScnPly_Draw,
|
||||
};
|
||||
|
||||
/* 803C31D4-803C31FC -00001 0028+00 0/0 0/0 1/0 .data g_profile_PLAY_SCENE */
|
||||
scene_process_profile_definition g_profile_PLAY_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_PLAY_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(dScnPly_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnPly_Method, // mpMtd
|
||||
};
|
||||
|
||||
/* 803C31FC-803C3224 -00001 0028+00 0/0 0/0 1/0 .data g_profile_OPENING_SCENE */
|
||||
scene_process_profile_definition g_profile_OPENING_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_OPENING_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(dScnPly_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnPly_Method, // mpMtd
|
||||
};
|
||||
|
||||
/* 80454F18-80454F1C 003518 0002+02 1/0 0/0 0/0 .sdata2 T_JOINT_dylKeyTbl */
|
||||
static const s16 T_JOINT_dylKeyTbl[1] = {
|
||||
0x0106,
|
||||
@@ -170,15 +105,20 @@ dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() {
|
||||
}
|
||||
|
||||
/* 802594AC-802597B8 253DEC 030C+00 1/0 0/0 0/0 .text dScnPly_Draw__FP9dScnPly_c */
|
||||
static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
static int dScnPly_Draw(dScnPly_c* i_this) {
|
||||
static s16 l_wipeType[] = {
|
||||
0x0000, 0x0000, 0x0011, 0x0002, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0004, 0x0005, 0x0005,
|
||||
0x0006, 0x0007, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0008, 0x0008,
|
||||
};
|
||||
|
||||
dComIfG_Ccsp()->Move();
|
||||
dComIfG_Bgsp().ClrMoveFlag();
|
||||
|
||||
u8 useWhiteColor;
|
||||
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(scn)) {
|
||||
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(i_this)) {
|
||||
if (dComIfGp_isEnableNextStage()) {
|
||||
u8 wipe = dComIfGp_getNextStageWipe();
|
||||
fopScnM_ChangeReq(scn, 11, l_wipeType[wipe], 5);
|
||||
fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, l_wipeType[wipe], 5);
|
||||
|
||||
int hour = dKy_getdaytime_hour();
|
||||
useWhiteColor = hour >= 6 && hour < 18 ? true : false;
|
||||
@@ -186,7 +126,8 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
|
||||
if (wipe == 1 || wipe == 2 || wipe == 7 || wipe == 17 || wipe == 21 ||
|
||||
((wipe == 8 || wipe == 10 || wipe == 18) && tmp) ||
|
||||
((wipe == 9 || wipe == 11 || wipe == 19) && !tmp)) {
|
||||
((wipe == 9 || wipe == 11 || wipe == 19) && !tmp))
|
||||
{
|
||||
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_saftyWhiteColor);
|
||||
} else if (wipe == 14 || wipe == 20) {
|
||||
GXColor color = {0x2A, 0x1E, 0x46, 0xFF};
|
||||
@@ -204,7 +145,7 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
dMdl_mng_c::reset();
|
||||
|
||||
if (!dComIfGp_isPauseFlag() && dScnPly_c::pauseTimer == 0) {
|
||||
if (fpcM_GetName(scn) == PROC_PLAY_SCENE) {
|
||||
if (fpcM_GetName(i_this) == PROC_PLAY_SCENE) {
|
||||
dComIfGp_getVibration().Run();
|
||||
}
|
||||
daSus_c::execute();
|
||||
@@ -236,8 +177,8 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
}
|
||||
|
||||
/* 802597B8-8025987C 2540F8 00C4+00 1/0 0/0 0/0 .text dScnPly_Execute__FP9dScnPly_c */
|
||||
static int dScnPly_Execute(dScnPly_c* scnPly) {
|
||||
scnPly->offReset();
|
||||
static int dScnPly_Execute(dScnPly_c* i_this) {
|
||||
i_this->offReset();
|
||||
dStage_roomControl_c::offNoChangeRoom();
|
||||
dStage_roomControl_c::setRoomReadId(0xFF);
|
||||
|
||||
@@ -248,7 +189,7 @@ static int dScnPly_Execute(dScnPly_c* scnPly) {
|
||||
mDoAud_zelAudio_c::offBgmSet();
|
||||
}
|
||||
|
||||
if (scnPly->calcPauseTimer() != 0) {
|
||||
if (i_this->calcPauseTimer() != 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -263,24 +204,24 @@ static int dScnPly_Execute(dScnPly_c* scnPly) {
|
||||
}
|
||||
|
||||
/* 8025987C-802598AC 2541BC 0030+00 1/0 0/0 0/0 .text dScnPly_IsDelete__F9dScnPly_c */
|
||||
static int dScnPly_IsDelete(dScnPly_c scnPly) {
|
||||
static int dScnPly_IsDelete(dScnPly_c i_this) {
|
||||
dComIfGp_particle_cleanup();
|
||||
return 1;
|
||||
}
|
||||
|
||||
struct ProLoadInfoStruct {
|
||||
const char* field_0x0;
|
||||
const s16* field_0x4;
|
||||
const char** field_0x8;
|
||||
u8 field_0xc;
|
||||
u8 field_0xd;
|
||||
struct PreLoadInfo {
|
||||
const char* stageName;
|
||||
const s16* profNameTbl;
|
||||
const char** resNameTbl;
|
||||
u8 dylKeyTblNum;
|
||||
u8 resNameNum;
|
||||
};
|
||||
|
||||
/* 80450760-80450764 -00001 0004+00 1/0 0/0 0/0 .sdata T_JOINT_resName */
|
||||
static const char* T_JOINT_resName[1] = {"Always"};
|
||||
|
||||
/* 8039A2C8-8039A2D8 -00001 0010+00 4/4 0/0 0/0 .rodata PreLoadInfoT */
|
||||
static ProLoadInfoStruct const PreLoadInfoT[1] = {
|
||||
static PreLoadInfo const PreLoadInfoT[1] = {
|
||||
{
|
||||
"T_JOINT",
|
||||
T_JOINT_dylKeyTbl,
|
||||
@@ -296,46 +237,59 @@ static s8 preLoadNo = -1;
|
||||
static u8 doPreLoad = 1;
|
||||
|
||||
/* 802598AC-80259AC4 2541EC 0218+00 1/0 0/0 0/0 .text dScnPly_Delete__FP9dScnPly_c */
|
||||
static int dScnPly_Delete(dScnPly_c* param_0) {
|
||||
static int dScnPly_Delete(dScnPly_c* i_this) {
|
||||
daSus_c::reset();
|
||||
dMpath_c::remove();
|
||||
dTres_c::remove();
|
||||
|
||||
dComIfGp_getAttention().~dAttention_c();
|
||||
dComIfGp_getVibration().Remove();
|
||||
|
||||
dComIfG_Bgsp().Dt();
|
||||
dComIfG_Ccsp()->Dt();
|
||||
dStage_Delete();
|
||||
|
||||
i_dComIfGp_event_remove();
|
||||
|
||||
dComIfGp_particle_removeScene(0);
|
||||
|
||||
dComIfGp_getMsgDtArchive(1)->removeResourceAll();
|
||||
JKRUnmountArchive(dComIfGp_getMsgDtArchive(1));
|
||||
|
||||
dDemo_c::remove();
|
||||
|
||||
fopMsgM_destroyExpHeap(dComIfGp_getExpHeap2D());
|
||||
dComIfGp_setExpHeap2D(NULL);
|
||||
fopMsgM_destroyExpHeap(dComIfGp_getMsgExpHeap());
|
||||
dComIfGp_setMsgExpHeap(NULL);
|
||||
|
||||
dComIfGp_deleteSimpleModel();
|
||||
dMdl_mng_c::remove();
|
||||
|
||||
mDoGph_gInf_c::getBloom()->remove();
|
||||
|
||||
dComIfGs_offPlayerFieldLastStayFieldDataExistFlag();
|
||||
dComIfGp_setWindowNum(0);
|
||||
dComIfGd_setView(NULL);
|
||||
|
||||
if (preLoadNo >= 0) {
|
||||
const char** piVar4 = PreLoadInfoT[preLoadNo].field_0x8;
|
||||
int bVar1 = PreLoadInfoT[preLoadNo].field_0xd;
|
||||
if (piVar4 != NULL && (*piVar4 != NULL)) {
|
||||
for (int iVar3 = 0; iVar3 < bVar1; iVar3++) {
|
||||
dComIfG_resDelete(&resPhase[iVar3], piVar4[iVar3]);
|
||||
const char** resname_table = PreLoadInfoT[preLoadNo].resNameTbl;
|
||||
int res_num = PreLoadInfoT[preLoadNo].resNameNum;
|
||||
if (resname_table != NULL && (*resname_table != NULL)) {
|
||||
for (int i = 0; i < res_num; i++) {
|
||||
dComIfG_resDelete(&resPhase[i], resname_table[i]);
|
||||
}
|
||||
}
|
||||
const s16* psVar5 = PreLoadInfoT[preLoadNo].field_0x4;
|
||||
int bVar2 = PreLoadInfoT[preLoadNo].field_0xc;
|
||||
if (psVar5 != NULL && *psVar5 != 0) {
|
||||
for (int iVar3 = 0; iVar3 < bVar2; iVar3++) {
|
||||
cDylPhs::Unlink(&dylPhase[iVar3], psVar5[iVar3]);
|
||||
|
||||
const s16* profname_table = PreLoadInfoT[preLoadNo].profNameTbl;
|
||||
int prof_num = PreLoadInfoT[preLoadNo].dylKeyTblNum;
|
||||
if (profname_table != NULL && *profname_table != 0) {
|
||||
for (int i = 0; i < prof_num; i++) {
|
||||
cDylPhs::Unlink(&dylPhase[i], profname_table[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dComIfGp_init();
|
||||
JUTAssertion::setMessageCount(0);
|
||||
return 1;
|
||||
@@ -359,7 +313,8 @@ bool dScnPly_c::resetGame() {
|
||||
if (dComIfGp_getNextStagePoint() == -4 || (dComIfGs_getLastSceneMode() & 0xF) == 0xC ||
|
||||
!strcmp(dComIfGp_getNextStageName(), "F_SP109") ||
|
||||
(!strcmp(dComIfGp_getNextStageName(), "F_SP116") &&
|
||||
dComIfGp_getNextStageRoomNo() == 1 && dComIfGp_getNextStageLayer() == 9)) {
|
||||
dComIfGp_getNextStageRoomNo() == 1 && dComIfGp_getNextStageLayer() == 9))
|
||||
{
|
||||
if (!dStage_roomControl_c::resetArchiveBank(0)) {
|
||||
return false;
|
||||
}
|
||||
@@ -384,8 +339,8 @@ void dScnPly_c::offReset() {
|
||||
}
|
||||
|
||||
/* 80259C70-80259CAC 2545B0 003C+00 1/0 0/0 0/0 .text phase_00__FP9dScnPly_c */
|
||||
static int phase_00(dScnPly_c* scn) {
|
||||
if (!scn->resetGame()) {
|
||||
static int phase_00(dScnPly_c* i_this) {
|
||||
if (!i_this->resetGame()) {
|
||||
return cPhs_INIT_e;
|
||||
} else {
|
||||
mDoGph_gInf_c::offBlure();
|
||||
@@ -394,7 +349,7 @@ static int phase_00(dScnPly_c* scn) {
|
||||
}
|
||||
|
||||
/* 80259CAC-80259D7C 2545EC 00D0+00 1/0 0/0 0/0 .text phase_01__FP9dScnPly_c */
|
||||
static int phase_01(dScnPly_c* scn) {
|
||||
static int phase_01(dScnPly_c* i_this) {
|
||||
mDoAud_setHour(dKy_getdaytime_hour());
|
||||
mDoAud_setMinute(dKy_getdaytime_minute());
|
||||
mDoAud_setWeekday(dKy_get_dayofweek());
|
||||
@@ -419,13 +374,13 @@ static int phase_01(dScnPly_c* scn) {
|
||||
}
|
||||
|
||||
/* 80259D7C-80259D84 2546BC 0008+00 1/0 0/0 0/0 .text phase_0__FP9dScnPly_c */
|
||||
static int phase_0(dScnPly_c* param_0) {
|
||||
static int phase_0(dScnPly_c* i_this) {
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 80259D84-8025A438 2546C4 06B4+00 1/0 0/0 0/0 .text phase_1__FP9dScnPly_c */
|
||||
static int phase_1(dScnPly_c* scn) {
|
||||
u32 id = fopScnM_GetID(scn);
|
||||
static int phase_1(dScnPly_c* i_this) {
|
||||
u32 id = fopScnM_GetID(i_this);
|
||||
dStage_roomControl_c::setProcID(id);
|
||||
|
||||
dComIfGp_setStartStage(dComIfGp_getNextStartStage());
|
||||
@@ -442,38 +397,45 @@ static int phase_1(dScnPly_c* scn) {
|
||||
|
||||
// Stage: Faron Woods, Room: Faron Spring
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP108") && dComIfGp_getStartStageRoomNo() == 1 &&
|
||||
dComIfGp_getStartStagePoint() == 3) {
|
||||
dComIfGp_getStartStagePoint() == 3)
|
||||
{
|
||||
dComIfGs_onDarkClearLV(0);
|
||||
execItemGet(WEAR_KOKIRI);
|
||||
}
|
||||
// Stage: Kakariko Village, Room: Kakariko Village
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP109") &&
|
||||
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStagePoint() == 30) {
|
||||
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStagePoint() == 30)
|
||||
{
|
||||
dComIfGs_onDarkClearLV(1);
|
||||
}
|
||||
// Stage: Lake Hylia, Room: Fountain
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
|
||||
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 20) {
|
||||
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 20)
|
||||
{
|
||||
dComIfGs_onDarkClearLV(2);
|
||||
}
|
||||
// Stage: Sacred Grove, Room: Lost Woods
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP117") &&
|
||||
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 99) {
|
||||
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 99)
|
||||
{
|
||||
dComIfGs_onDarkClearLV(3);
|
||||
}
|
||||
|
||||
// Stage: Ordon Spring, Room: Ordon Spring
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP104") && dComIfGp_getStartStageRoomNo() == 1 &&
|
||||
dComIfGp_getStartStagePoint() == 23 && dComIfGp_getStartStageLayer() == 12) {
|
||||
dComIfGp_getStartStagePoint() == 23 && dComIfGp_getStartStageLayer() == 12)
|
||||
{
|
||||
dComIfGs_onItemFirstBit(HORSE_FLUTE);
|
||||
dComIfGs_setItem(SLOT_21, HORSE_FLUTE);
|
||||
}
|
||||
|
||||
if ((u8)dKy_darkworld_stage_check(dComIfGp_getStartStageName(),
|
||||
dComIfGp_getStartStageRoomNo()) == true) {
|
||||
dComIfGp_getStartStageRoomNo()) == true)
|
||||
{
|
||||
dComIfGp_world_dark_set(1);
|
||||
} else if ((u8)dKy_darkworld_spot_check(dComIfGp_getStartStageName(),
|
||||
dComIfGp_getStartStageRoomNo()) == true) {
|
||||
dComIfGp_getStartStageRoomNo()) == true)
|
||||
{
|
||||
dComIfGp_world_dark_set(2);
|
||||
} else {
|
||||
dComIfGp_world_dark_set(0);
|
||||
@@ -481,7 +443,8 @@ static int phase_1(dScnPly_c* scn) {
|
||||
|
||||
// Stage: Lake Hylia, Room: Fountain
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
|
||||
dComIfGp_getStartStageLayer() < 0) {
|
||||
dComIfGp_getStartStageLayer() < 0)
|
||||
{
|
||||
const char* stage = dComIfGp_getStartStageName();
|
||||
s8 room = dComIfGp_getStartStageRoomNo();
|
||||
s8 layer = dComIfGp_getStartStageLayer();
|
||||
@@ -502,13 +465,15 @@ static int phase_1(dScnPly_c* scn) {
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
|
||||
dComIfGp_getStartStageLayer() == 8) ||
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
|
||||
dComIfGp_getStartStageLayer() == 9)) {
|
||||
dComIfGp_getStartStageLayer() == 9))
|
||||
{
|
||||
dComIfGp_world_dark_set(1);
|
||||
}
|
||||
|
||||
// Stage: Zant Boss Fight, Room: Throne Room
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "D_MN08D") && dComIfGp_getStartStageRoomNo() == 50 &&
|
||||
dComIfGp_getStartStagePoint() == 20) {
|
||||
dComIfGp_getStartStagePoint() == 20)
|
||||
{
|
||||
dComIfGs_onSaveDunSwitch(30);
|
||||
}
|
||||
|
||||
@@ -516,29 +481,34 @@ static int phase_1(dScnPly_c* scn) {
|
||||
|
||||
// Stage: Hyrule Castle Sewers, Room: Prison Cell
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "R_SP107") && dComIfGp_getStartStageRoomNo() == 0 &&
|
||||
(dComIfGp_getStartStagePoint() == 24 || dComIfGp_getStartStagePoint() == 0)) {
|
||||
(dComIfGp_getStartStagePoint() == 24 || dComIfGp_getStartStagePoint() == 0))
|
||||
{
|
||||
dComIfGs_onTransformLV(0);
|
||||
}
|
||||
// Stage: Hyrule Field, Room: Eldin Gorge south entrance
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
|
||||
dComIfGp_getStartStageRoomNo() == 2 && dComIfGp_getStartStagePoint() == 10) {
|
||||
dComIfGp_getStartStageRoomNo() == 2 && dComIfGp_getStartStagePoint() == 10)
|
||||
{
|
||||
dComIfGs_onTransformLV(1);
|
||||
}
|
||||
// Stage: Hyrule Field, Room: Lanayru Field north entrance
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
|
||||
dComIfGp_getStartStageRoomNo() == 9 && dComIfGp_getStartStagePoint() == 10) {
|
||||
dComIfGp_getStartStageRoomNo() == 9 && dComIfGp_getStartStagePoint() == 10)
|
||||
{
|
||||
dComIfGs_onTransformLV(2);
|
||||
}
|
||||
// Stage: Hyrule Field, Room: Lanayru Field
|
||||
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
|
||||
dComIfGp_getStartStageRoomNo() == 10 &&
|
||||
(dComIfGp_getStartStagePoint() == 23 || dComIfGp_getStartStagePoint() == 20)) {
|
||||
(dComIfGp_getStartStagePoint() == 23 || dComIfGp_getStartStagePoint() == 20))
|
||||
{
|
||||
dComIfGs_onTransformLV(3);
|
||||
}
|
||||
|
||||
// Stage: Fishing Pond, Room: Fishing Pond
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && dComIfGp_getStartStageRoomNo() == 0 &&
|
||||
dComIfGp_getStartStagePoint() == 2) {
|
||||
dComIfGp_getStartStagePoint() == 2)
|
||||
{
|
||||
g_env_light.mPondSeason++;
|
||||
|
||||
if (g_env_light.mPondSeason > 4) {
|
||||
@@ -559,7 +529,9 @@ static int phase_1(dScnPly_c* scn) {
|
||||
}
|
||||
|
||||
/* 8025A438-8025A4F8 254D78 00C0+00 1/0 0/0 0/0 .text phase_1_0__FP9dScnPly_c */
|
||||
static int phase_1_0(dScnPly_c* param_0) {
|
||||
static int phase_1_0(dScnPly_c* i_this) {
|
||||
static char camparamarc[10] = "CamParam";
|
||||
|
||||
if (dComIfG_syncStageRes("Stg_00")) {
|
||||
return cPhs_INIT_e;
|
||||
} else {
|
||||
@@ -572,29 +544,33 @@ static int phase_1_0(dScnPly_c* param_0) {
|
||||
}
|
||||
|
||||
/* 8025A4F8-8025A5D4 254E38 00DC+00 1/0 0/0 0/0 .text phase_2__FP9dScnPly_c */
|
||||
static int phase_2(dScnPly_c* scn) {
|
||||
static int phase_2(dScnPly_c* i_this) {
|
||||
int tmp = dComIfG_syncAllObjectRes();
|
||||
if (tmp >= 0 && tmp != 0) {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
u8 particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo(), dComIfG_play_c::getLayerNo(0));
|
||||
|
||||
u8 particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo(),
|
||||
dComIfG_play_c::getLayerNo(0));
|
||||
if (particle_no == 255) {
|
||||
particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo());
|
||||
}
|
||||
|
||||
dComIfGp_particle_readScene(particle_no, &scn->sceneCommand);
|
||||
dMsgObject_readMessageGroup(&scn->field_0x1d0);
|
||||
dComIfGp_particle_readScene(particle_no, &i_this->sceneCommand);
|
||||
dMsgObject_readMessageGroup(&i_this->field_0x1d0);
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025A5D4-8025A654 254F14 0080+00 1/0 0/0 0/0 .text phase_3__FP9dScnPly_c */
|
||||
static int phase_3(dScnPly_c* scn) {
|
||||
if ((scn->sceneCommand != NULL && !scn->sceneCommand->sync()) || mDoAud_check1stDynamicWave()) {
|
||||
static int phase_3(dScnPly_c* i_this) {
|
||||
if ((i_this->sceneCommand != NULL && !i_this->sceneCommand->sync()) || mDoAud_check1stDynamicWave()) {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
if (!scn->field_0x1d0 == NULL && !scn->field_0x1d0->sync()) {
|
||||
}
|
||||
|
||||
if (!i_this->field_0x1d0 == NULL && !i_this->field_0x1d0->sync()) {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
}
|
||||
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
@@ -664,7 +640,7 @@ static int phase_4(dScnPly_c* i_this) {
|
||||
new (&dComIfGp_getAttention()) dAttention_c(dComIfGp_getPlayer(0), 0);
|
||||
dComIfGp_getVibration().Init();
|
||||
daYkgr_c::init();
|
||||
|
||||
|
||||
dComIfG_setBrightness(255);
|
||||
mDoGph_gInf_c::offFade();
|
||||
mDoAud_zelAudio_c::onBgmSet();
|
||||
@@ -676,7 +652,7 @@ static int phase_4(dScnPly_c* i_this) {
|
||||
const char* stageName = dComIfGp_getStartStageName();
|
||||
OS_REPORT("stageName=%s\n", stageName);
|
||||
for (u32 i = 0; i < 1; i++) {
|
||||
if (strcmp(stageName, PreLoadInfoT[i].field_0x0) == 0) {
|
||||
if (strcmp(stageName, PreLoadInfoT[i].stageName) == 0) {
|
||||
preLoadNo = i;
|
||||
}
|
||||
}
|
||||
@@ -691,11 +667,12 @@ static int phase_4(dScnPly_c* i_this) {
|
||||
}
|
||||
|
||||
/* 8025A9F4-8025AAC0 255334 00CC+00 1/0 0/0 0/0 .text phase_5__FP9dScnPly_c */
|
||||
static int phase_5(dScnPly_c* param_0) {
|
||||
static int phase_5(dScnPly_c* i_this) {
|
||||
if (preLoadNo >= 0) {
|
||||
int rv = 2;
|
||||
const char** resNames = PreLoadInfoT[preLoadNo].field_0x8;
|
||||
s32 resNameNum = PreLoadInfoT[preLoadNo].field_0xd;
|
||||
int phase_state = cPhs_NEXT_e;
|
||||
|
||||
const char** resNames = PreLoadInfoT[preLoadNo].resNameTbl;
|
||||
s32 resNameNum = PreLoadInfoT[preLoadNo].resNameNum;
|
||||
if (resNames != NULL && *resNames != NULL) {
|
||||
JUT_ASSERT(2830, resNameNum <= (sizeof(resPhase) / sizeof(resPhase[0])));
|
||||
int goodLoads = 0;
|
||||
@@ -704,52 +681,103 @@ static int phase_5(dScnPly_c* param_0) {
|
||||
if (dComIfG_resLoad(&resPhase[i], resNames[i]) == 4) {
|
||||
goodLoads++;
|
||||
} else {
|
||||
rv = 0;
|
||||
phase_state = cPhs_INIT_e;
|
||||
}
|
||||
loadNum++;
|
||||
}
|
||||
}
|
||||
if (rv == 4) {
|
||||
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
resPreLoadTime1 = OSGetTime();
|
||||
}
|
||||
return rv;
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025AAC0-8025AB8C 255400 00CC+00 1/0 0/0 0/0 .text phase_6__FP9dScnPly_c */
|
||||
static int phase_6(dScnPly_c* param_0) {
|
||||
static int phase_6(dScnPly_c* i_this) {
|
||||
if (preLoadNo >= 0) {
|
||||
int rv = 2;
|
||||
const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].field_0x4;
|
||||
s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].field_0xc;
|
||||
int phase_state = cPhs_NEXT_e;
|
||||
|
||||
const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].profNameTbl;
|
||||
s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].dylKeyTblNum;
|
||||
if (dylKeyTbl != NULL && *dylKeyTbl != 0) {
|
||||
JUT_ASSERT(2864, dylKeyTblNum <= (sizeof(dylPhase) / sizeof(dylPhase[0])));
|
||||
int goodLoads = 0;
|
||||
int loadNum = 0;
|
||||
for (int i = 0; i < dylKeyTblNum; i++) {
|
||||
if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) == 4) {
|
||||
if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) == cPhs_COMPLEATE_e) {
|
||||
goodLoads++;
|
||||
} else {
|
||||
rv = 0;
|
||||
phase_state = cPhs_INIT_e;
|
||||
}
|
||||
loadNum++;
|
||||
}
|
||||
}
|
||||
if (rv == 4) {
|
||||
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
dylPreLoadTime1 = OSGetTime();
|
||||
}
|
||||
return rv;
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025AB8C-8025AB94 2554CC 0008+00 1/0 0/0 0/0 .text phase_compleate__FPv */
|
||||
static int phase_compleate(void* param_0) {
|
||||
static int phase_compleate(void* i_this) {
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 8025AB94-8025ABC4 2554D4 0030+00 1/0 0/0 0/0 .text dScnPly_Create__FP11scene_class */
|
||||
static void dScnPly_Create(scene_class* i_this) {
|
||||
static request_of_phase_process_fn l_method[] = {
|
||||
(request_of_phase_process_fn)phase_00, (request_of_phase_process_fn)phase_1,
|
||||
(request_of_phase_process_fn)phase_1_0, (request_of_phase_process_fn)phase_01,
|
||||
(request_of_phase_process_fn)phase_0, (request_of_phase_process_fn)phase_2,
|
||||
(request_of_phase_process_fn)phase_3, (request_of_phase_process_fn)phase_4,
|
||||
(request_of_phase_process_fn)phase_5, (request_of_phase_process_fn)phase_6,
|
||||
(request_of_phase_process_fn)phase_compleate,
|
||||
};
|
||||
|
||||
dComLbG_PhaseHandler(&static_cast<dScnPly_c*>(i_this)->field_0x1c4, l_method, i_this);
|
||||
}
|
||||
|
||||
/* 803C31C0-803C31D4 -00001 0014+00 2/0 0/0 0/0 .data l_dScnPly_Method */
|
||||
static leafdraw_method_class l_dScnPly_Method = {
|
||||
(process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete,
|
||||
(process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete,
|
||||
(process_method_func)dScnPly_Draw,
|
||||
};
|
||||
|
||||
/* 803C31D4-803C31FC -00001 0028+00 0/0 0/0 1/0 .data g_profile_PLAY_SCENE */
|
||||
scene_process_profile_definition g_profile_PLAY_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_PLAY_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(dScnPly_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnPly_Method, // mpMtd
|
||||
};
|
||||
|
||||
/* 803C31FC-803C3224 -00001 0028+00 0/0 0/0 1/0 .data g_profile_OPENING_SCENE */
|
||||
scene_process_profile_definition g_profile_OPENING_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_OPENING_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(dScnPly_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnPly_Method, // mpMtd
|
||||
};
|
||||
+64
-38
@@ -1,16 +1,16 @@
|
||||
//
|
||||
// d_s_room
|
||||
//
|
||||
/**
|
||||
* d_s_room.cpp
|
||||
* Gameplay Room Scene
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_room.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
#include "stdio.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "dolphin/os.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "stdio.h"
|
||||
|
||||
/* 8025AE1C-8025AE24 25575C 0008+00 1/0 0/0 0/0 .text dScnRoom_Draw__FP19room_of_scene_class */
|
||||
static int dScnRoom_Draw(room_of_scene_class* i_this) {
|
||||
@@ -21,6 +21,7 @@ static int dScnRoom_Draw(room_of_scene_class* i_this) {
|
||||
static int getResetArchiveBank(int param_1, u8 const** param_2) {
|
||||
dStage_roomControl_c::nameData* arcBankName = dStage_roomControl_c::getArcBankName();
|
||||
int local_30 = 0;
|
||||
|
||||
*param_2 = NULL;
|
||||
if (arcBankName != NULL) {
|
||||
dStage_roomControl_c::bankData* arcBankData = dStage_roomControl_c::getArcBankData();
|
||||
@@ -35,19 +36,23 @@ static int getResetArchiveBank(int param_1, u8 const** param_2) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 const* pbVar1 = *param_2;
|
||||
for (int i = 0; i < local_30; pbVar1++, i++) {
|
||||
char* arcBank = dStage_roomControl_c::getArcBank(i);
|
||||
char* name = "";
|
||||
|
||||
int id = *pbVar1;
|
||||
if (id != 0xff) {
|
||||
JUT_ASSERT(160, 0 <= id && id < arcBankName->m_num);
|
||||
name = arcBankName->m_names[id];
|
||||
}
|
||||
|
||||
if (strcmp(arcBank, name) != 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return local_30;
|
||||
}
|
||||
|
||||
@@ -60,24 +65,26 @@ static bool resetArchiveBank(int param_0) {
|
||||
/* 8025AF4C-8025B0F0 25588C 01A4+00 1/1 0/0 0/0 .text setArchiveBank__Fi */
|
||||
static bool setArchiveBank(int param_0) {
|
||||
u8* arr[4];
|
||||
int iVar1 = getResetArchiveBank(param_0, (u8 const**)&arr);
|
||||
int bank_no = getResetArchiveBank(param_0, (u8 const**)&arr);
|
||||
if (arr[0] == NULL) {
|
||||
return true;
|
||||
}
|
||||
|
||||
dStage_roomControl_c::nameData* arcBankName = dStage_roomControl_c::getArcBankName();
|
||||
for (; (int)iVar1 < 0x20; iVar1++) {
|
||||
for (; (int)bank_no < 0x20; bank_no++) {
|
||||
const char* name = "";
|
||||
int id = arr[0][iVar1];
|
||||
int id = arr[0][bank_no];
|
||||
if (id != 0xff) {
|
||||
JUT_ASSERT(216, 0 <= id && id < arcBankName->m_num);
|
||||
name = arcBankName->m_names[id];
|
||||
}
|
||||
|
||||
if (strcmp(name, "") != 0) {
|
||||
if (strnicmp(name, "pack", 4) == 0) {
|
||||
int syncres = dComIfG_syncObjectRes(name);
|
||||
if (syncres < 0) {
|
||||
if (!dComIfG_setObjectRes(name, 0, mDoExt_getArchiveHeap())) {
|
||||
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", iVar1, name);
|
||||
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", bank_no, name);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@@ -86,12 +93,14 @@ static bool setArchiveBank(int param_0) {
|
||||
}
|
||||
} else {
|
||||
if (!dComIfG_setObjectRes(name, 0, mDoExt_getArchiveHeap())) {
|
||||
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", iVar1, name);
|
||||
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", bank_no, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
dStage_roomControl_c::setArcBank(iVar1, name);
|
||||
|
||||
dStage_roomControl_c::setArcBank(bank_no, name);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -131,24 +140,31 @@ static bool isCreating(unsigned int param_0) {
|
||||
static int loadDemoArchive(int room_no) {
|
||||
if (*dStage_roomControl_c::getDemoArcName() == 0) {
|
||||
dStage_Lbnk_c* lbnk = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getLbnk();
|
||||
|
||||
if (lbnk != NULL) {
|
||||
dStage_Lbnk_dt_c* entries = lbnk->entries;
|
||||
|
||||
if (entries != NULL) {
|
||||
int bank = entries[dComIfG_play_c::getLayerNo(room_no)].bank;
|
||||
|
||||
if (bank != 0xff) {
|
||||
JUT_ASSERT(350, 0 <= bank && bank < 100);
|
||||
u8 bank2 = entries[dComIfG_play_c::getLayerNo(room_no)].bank2;
|
||||
JUT_ASSERT(353, 0 <= bank2 && bank2 < 100);
|
||||
|
||||
sprintf(dStage_roomControl_c::getDemoArcName(), "Demo%02d_%02d", bank, bank2);
|
||||
if (!dComIfG_setObjectRes(dStage_roomControl_c::getDemoArcName(), 0, (JKRHeap*)NULL)) {
|
||||
if (!dComIfG_setObjectRes(dStage_roomControl_c::getDemoArcName(), 0,
|
||||
(JKRHeap*)NULL))
|
||||
{
|
||||
*dStage_roomControl_c::getDemoArcName() = 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -224,7 +240,8 @@ static int dScnRoom_Execute(room_of_scene_class* i_this) {
|
||||
fopScnM_DeleteReq(i_this);
|
||||
} else if (i_this->field_0x1d4 < 0 && i_this->field_0x1d5 != 0 &&
|
||||
!i_dComIfGp_event_runCheck() &&
|
||||
(int)fopScnM_GetParam(i_this) == dComIfGp_roomControl_getStayNo()) {
|
||||
(int)fopScnM_GetParam(i_this) == dComIfGp_roomControl_getStayNo())
|
||||
{
|
||||
if (isCreating(fpcM_LayerID(i_this))) {
|
||||
dScnPly_c::nextPauseTimer = 2;
|
||||
} else {
|
||||
@@ -259,7 +276,8 @@ static bool isReadRoom(int param_0) {
|
||||
|
||||
for (int i = 0; i < roomData->field_0x0; i++) {
|
||||
if (dStage_roomRead_dt_c_ChkBg(*tmp) &&
|
||||
param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp)) {
|
||||
param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
tmp++;
|
||||
@@ -280,7 +298,8 @@ static int dScnRoom_Delete(room_of_scene_class* i_this) {
|
||||
|
||||
if (mDoRst::isReset() || !dComIfGp_isEnableNextStage() ||
|
||||
strcmp(dComIfGp_getNextStageName(), dComIfGp_getStartStageName()) ||
|
||||
(roomNo != dComIfGp_getNextStageRoomNo() && !isReadRoom(roomNo))) {
|
||||
(roomNo != dComIfGp_getNextStageRoomNo() && !isReadRoom(roomNo)))
|
||||
{
|
||||
dComIfG_deleteStageRes(setArcName(i_this));
|
||||
|
||||
JKRExpHeap* heap = dStage_roomControl_c::getMemoryBlock(roomNo);
|
||||
@@ -298,7 +317,7 @@ static int dScnRoom_Delete(room_of_scene_class* i_this) {
|
||||
static int phase_0(room_of_scene_class* i_this) {
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
dStage_roomControl_c::setStatusProcID(roomNo, fopScnM_GetID(i_this));
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025B8A4-8025B980 2561E4 00DC+00 1/0 0/0 0/0 .text phase_1__FP19room_of_scene_class */
|
||||
@@ -313,7 +332,7 @@ static int phase_1(room_of_scene_class* i_this) {
|
||||
|
||||
if (heap != NULL) {
|
||||
if (heap->getTotalUsedSize() != 0) {
|
||||
return 0;
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
} else {
|
||||
stage_stag_info_class* stagInfo = i_dComIfGp_getStage()->getStagInfo();
|
||||
@@ -328,7 +347,7 @@ static int phase_1(room_of_scene_class* i_this) {
|
||||
}
|
||||
}
|
||||
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025B980-8025BAAC 2562C0 012C+00 1/0 0/0 0/0 .text phase_2__FP19room_of_scene_class */
|
||||
@@ -341,7 +360,7 @@ static int phase_2(room_of_scene_class* i_this) {
|
||||
}
|
||||
|
||||
if (phase != 0) {
|
||||
return 0;
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
@@ -368,7 +387,7 @@ static int phase_2(room_of_scene_class* i_this) {
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
}
|
||||
|
||||
return 2;
|
||||
return cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 8025BAAC-8025BAC4 2563EC 0018+00 1/1 0/0 0/0 .text setZoneNo__20dStage_roomControl_cFii */
|
||||
@@ -378,16 +397,24 @@ void dStage_roomControl_c::setZoneNo(int i_roomNo, int i_zoneNo) {
|
||||
|
||||
/* 8025BAC4-8025BAF8 256404 0034+00 1/0 0/0 0/0 .text phase_3__FP19room_of_scene_class */
|
||||
static int phase_3(room_of_scene_class* i_this) {
|
||||
return objectSetCheck(i_this) ? 2 : 0;
|
||||
if (objectSetCheck(i_this)) {
|
||||
return cPhs_NEXT_e;
|
||||
} else {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8025BAF8-8025BB48 256438 0050+00 1/0 0/0 0/0 .text phase_4__FP19room_of_scene_class */
|
||||
static int phase_4(room_of_scene_class* i_this) {
|
||||
if (dComIfGp_getPlayer(0) == NULL) {
|
||||
return 0;
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
|
||||
return objectSetCheck(i_this) ? cPhs_COMPLEATE_e : 0;
|
||||
if (objectSetCheck(i_this)) {
|
||||
return cPhs_COMPLEATE_e;
|
||||
} else {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8025BB48-8025BB78 256488 0030+00 1/0 0/0 0/0 .text dScnRoom_Create__FP11scene_class */
|
||||
@@ -401,24 +428,23 @@ static int dScnRoom_Create(scene_class* i_this) {
|
||||
return dComLbG_PhaseHandler(&room->field_0x1c4, l_method, i_this);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3274-803C3288 -00001 0014+00 1/0 0/0 0/0 .data l_dScnRoom_Method */
|
||||
static leafdraw_method_class l_dScnRoom_Method = {
|
||||
(process_method_func)dScnRoom_Create, (process_method_func)dScnRoom_Delete, (process_method_func)dScnRoom_Execute,
|
||||
(process_method_func)dScnRoom_IsDelete, (process_method_func)dScnRoom_Draw,
|
||||
(process_method_func)dScnRoom_Create, (process_method_func)dScnRoom_Delete,
|
||||
(process_method_func)dScnRoom_Execute, (process_method_func)dScnRoom_IsDelete,
|
||||
(process_method_func)dScnRoom_Draw,
|
||||
};
|
||||
|
||||
/* 803C3288-803C32B0 -00001 0028+00 0/0 0/0 1/0 .data g_profile_ROOM_SCENE */
|
||||
scene_process_profile_definition g_profile_ROOM_SCENE = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
0, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_ROOM_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(room_of_scene_class), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnRoom_Method, // mpMtd
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
0, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_ROOM_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
sizeof(room_of_scene_class), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
(process_method_class*)&l_dScnRoom_Method, // mpMtd
|
||||
};
|
||||
/* 8039A388-8039A388 0269E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* d_s_title.cpp
|
||||
* dolzel2 - Scene Title
|
||||
* Title Screen Scene
|
||||
*/
|
||||
|
||||
#include "d/s/d_s_title.h"
|
||||
@@ -8,7 +8,6 @@
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C32B0-803C32D8 -00001 0028+00 0/0 0/0 1/0 .data g_profile_WARNING_SCENE */
|
||||
extern scene_process_profile_definition g_profile_WARNING_SCENE = {
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
//
|
||||
// d/shop/d_shop_camera
|
||||
//
|
||||
/**
|
||||
* d_shop_camera.cpp
|
||||
* Shop Camera Handling
|
||||
*/
|
||||
|
||||
#include "d/shop/d_shop_camera.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
struct SeiraCam {
|
||||
/* 0x00 */ Vec field_0x0;
|
||||
@@ -17,20 +18,22 @@ struct SeiraCam {
|
||||
/* 0x18 */ f32 field_0x34;
|
||||
};
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BB7C8-803BB800 0188E8 0038+00 1/0 0/0 0/0 .data cam_seira_shop */
|
||||
static SeiraCam cam_seira_shop = {
|
||||
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
|
||||
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f,
|
||||
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
|
||||
};
|
||||
|
||||
/* 803BB800-803BB838 018920 0038+00 1/0 0/0 0/0 .data cam_seira_evnt_before */
|
||||
static SeiraCam cam_seira_evnt_before = {
|
||||
{-50.0f, 115.0f, 0.0f}, {-50.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
|
||||
{-50.0f, 115.0f, 0.0f}, {-50.0f, 115.0f, 150.0f}, 45.0f,
|
||||
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
|
||||
};
|
||||
|
||||
/* 803BB838-803BB870 018958 0038+00 1/0 0/0 0/0 .data cam_seira_evnt_after */
|
||||
static SeiraCam cam_seira_evnt_after = {
|
||||
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
|
||||
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f,
|
||||
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
|
||||
};
|
||||
|
||||
/* 803BB870-803BB87C -00001 000C+00 2/2 0/0 0/0 .data shop_cam_data_tbl */
|
||||
@@ -44,8 +47,10 @@ static SeiraCam* shop_cam_data_tbl[3] = {
|
||||
*/
|
||||
int ShopCam_action_c::shop_cam_action_init() {
|
||||
Save();
|
||||
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
player->i_onPlayerNoDraw();
|
||||
|
||||
setCamAction(&ShopCam_action_c::shop_cam_action);
|
||||
if (field_0xd6 >= 0) {
|
||||
field_0x7c = shop_cam_data_tbl[field_0xd6]->field_0x0;
|
||||
@@ -60,6 +65,7 @@ int ShopCam_action_c::shop_cam_action_init() {
|
||||
field_0x88 = field_0x60;
|
||||
field_0x94 = field_0x6c;
|
||||
}
|
||||
|
||||
SetSelectIdx(-1);
|
||||
return 1;
|
||||
}
|
||||
@@ -69,6 +75,7 @@ int ShopCam_action_c::shop_cam_action() {
|
||||
camera_class* camera = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
|
||||
camera->mCamera.Stay();
|
||||
camera->mCamera.SetTrimSize(1);
|
||||
|
||||
cXyz acStack_4c;
|
||||
cXyz acStack_58;
|
||||
f32 dVar11;
|
||||
@@ -91,32 +98,39 @@ int ShopCam_action_c::shop_cam_action() {
|
||||
acStack_58 = field_0x60;
|
||||
dVar11 = field_0x6c;
|
||||
}
|
||||
|
||||
cLib_addCalcPos2(&field_0x7c, acStack_4c, field_0xc0, field_0xc4);
|
||||
cLib_addCalcPos2(&field_0x88, acStack_58, field_0xc0, field_0xc4);
|
||||
cLib_addCalc2(&field_0x94, dVar11, field_0xc8, field_0xcc);
|
||||
|
||||
cXyz cStack_64 = field_0x7c - acStack_4c;
|
||||
cXyz cStack_70 = field_0x88 - acStack_58;
|
||||
f32 dVar10 = field_0x94 - dVar11;
|
||||
bool r30 = false;
|
||||
bool r29 = false;
|
||||
bool r28 = false;
|
||||
|
||||
if (cStack_64.abs() < 1.0f) {
|
||||
field_0x7c = acStack_4c;
|
||||
field_0x7c = acStack_4c;
|
||||
r30 = true;
|
||||
}
|
||||
|
||||
if (cStack_70.abs() < 1.0f) {
|
||||
field_0x88 = acStack_58;
|
||||
r29 = true;
|
||||
}
|
||||
|
||||
if (dVar10 < 1.0f) {
|
||||
field_0x94 = dVar11;
|
||||
r28 = true;
|
||||
}
|
||||
|
||||
if (r30 && r29 && r28) {
|
||||
field_0xda = true;
|
||||
} else {
|
||||
field_0xda = false;
|
||||
}
|
||||
|
||||
camera->mCamera.Set(field_0x7c, field_0x88, field_0x94, 0);
|
||||
return 1;
|
||||
}
|
||||
@@ -136,25 +150,28 @@ void ShopCam_action_c::EventRecoverNotime() {
|
||||
dComIfGp_getPlayer(0);
|
||||
field_0xd8 = 2;
|
||||
dCam_getBody()->EventRecoverNotime();
|
||||
field_0x0 = NULL;
|
||||
mCamAction = NULL;
|
||||
}
|
||||
|
||||
/* 801963B4-801964C8 190CF4 0114+00 0/0 0/0 9/9 .text Reset__16ShopCam_action_cFv */
|
||||
void ShopCam_action_c::Reset() {
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
player->i_offPlayerNoDraw();
|
||||
|
||||
camera_class* camera = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
|
||||
camera->mCamera.Set(field_0x98, field_0xa4, field_0xbc, 0);
|
||||
camera->mCamera.Stay();
|
||||
camera->mCamera.Reset(field_0x98, field_0xa4, field_0xbc, 0);
|
||||
field_0x0 = NULL;
|
||||
|
||||
mCamAction = NULL;
|
||||
}
|
||||
|
||||
/* 801964C8-80196544 190E08 007C+00 0/0 0/0 9/9 .text move__16ShopCam_action_cFv */
|
||||
void ShopCam_action_c::move() {
|
||||
if (field_0x0 != NULL) {
|
||||
(this->*field_0x0)();
|
||||
if (mCamAction != NULL) {
|
||||
(this->*mCamAction)();
|
||||
}
|
||||
|
||||
if (field_0xd8 > 0) {
|
||||
--field_0xd8;
|
||||
if (field_0xd8 == 0) {
|
||||
@@ -172,6 +189,7 @@ void ShopCam_action_c::setCamDataIdx(fopAc_ac_c* param_1, fopAc_ac_c* param_2, f
|
||||
if (field_0x18 == NULL) {
|
||||
field_0xb0 = param_1->mEyePos;
|
||||
}
|
||||
|
||||
field_0x18 = param_1;
|
||||
field_0x1c = param_2;
|
||||
field_0x20 = param_3;
|
||||
@@ -180,29 +198,33 @@ void ShopCam_action_c::setCamDataIdx(fopAc_ac_c* param_1, fopAc_ac_c* param_2, f
|
||||
field_0x2c = 0;
|
||||
field_0x30 = 0;
|
||||
field_0x34 = 0;
|
||||
|
||||
field_0x44.x = param_5->x;
|
||||
field_0x44.y = param_5->y;
|
||||
field_0x44.z = param_5->z;
|
||||
field_0x50 = 45.0f;
|
||||
|
||||
field_0x60.x = param_6->x;
|
||||
field_0x60.y = param_6->y;
|
||||
field_0x60.z = param_6->z;
|
||||
field_0x6c = 45.0f;
|
||||
|
||||
field_0x70.set(*param_6);
|
||||
|
||||
_debugSetCamera();
|
||||
}
|
||||
|
||||
/* 80196608-801966D4 190F48 00CC+00 0/0 1/1 0/0 .text
|
||||
* setCamDataIdx2__16ShopCam_action_cFP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP4cXyzP4cXyz
|
||||
*/
|
||||
void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2,
|
||||
fopAc_ac_c* param_3, fopAc_ac_c* param_4,
|
||||
fopAc_ac_c* param_5, fopAc_ac_c* param_6,
|
||||
fopAc_ac_c* param_7, cXyz* param_8, cXyz* param_9) {
|
||||
field_0xd6 = -1;
|
||||
void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3,
|
||||
fopAc_ac_c* param_4, fopAc_ac_c* param_5, fopAc_ac_c* param_6,
|
||||
fopAc_ac_c* param_7, cXyz* param_8, cXyz* param_9) {
|
||||
field_0xd6 = -1;
|
||||
if (field_0x18 == NULL) {
|
||||
field_0xb0 = param_1->mEyePos;
|
||||
}
|
||||
|
||||
field_0x18 = param_1;
|
||||
field_0x1c = param_2;
|
||||
field_0x20 = param_3;
|
||||
@@ -211,15 +233,19 @@ void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2,
|
||||
field_0x2c = param_6;
|
||||
field_0x30 = param_7;
|
||||
field_0x34 = 0;
|
||||
|
||||
field_0x44.x = param_8->x;
|
||||
field_0x44.y = param_8->y;
|
||||
field_0x44.z = param_8->z;
|
||||
field_0x50 = 45.0f;
|
||||
|
||||
field_0x60.x = param_9->x;
|
||||
field_0x60.y = param_9->y;
|
||||
field_0x60.z = param_9->z;
|
||||
field_0x6c = 45.0f;
|
||||
|
||||
field_0x70.set(*param_9);
|
||||
|
||||
_debugSetCamera();
|
||||
}
|
||||
|
||||
@@ -228,11 +254,13 @@ void ShopCam_action_c::_debugSetCamera() {
|
||||
field_0x38.x = field_0xb0.x;
|
||||
field_0x38.y = field_0xb0.y;
|
||||
field_0x38.z = field_0xb0.z;
|
||||
|
||||
cXyz local_28;
|
||||
cXyz cStack_34;
|
||||
cXyz local_40;
|
||||
cXyz local_4c;
|
||||
bool bVar1 = false;
|
||||
|
||||
if (field_0x1c != NULL && field_0x20 != NULL && field_0x24 != NULL && field_0x28 != NULL &&
|
||||
field_0x2c == NULL && field_0x30 == NULL)
|
||||
{
|
||||
@@ -249,6 +277,7 @@ void ShopCam_action_c::_debugSetCamera() {
|
||||
local_4c.set(field_0x20->orig.pos);
|
||||
}
|
||||
}
|
||||
|
||||
if (bVar1) {
|
||||
field_0x54.x = 167.0f;
|
||||
field_0x54.y = 220.0f;
|
||||
@@ -272,6 +301,7 @@ void ShopCam_action_c::setMasterCamCtrPos(cXyz* param_0) {
|
||||
} else {
|
||||
field_0xb0.set(*param_0);
|
||||
}
|
||||
|
||||
field_0x38.x = field_0xb0.x;
|
||||
field_0x38.y = field_0xb0.y;
|
||||
field_0x38.z = field_0xb0.z;
|
||||
|
||||
@@ -20,11 +20,11 @@ dShopItemCtrl_c::~dShopItemCtrl_c() {}
|
||||
|
||||
/* 801969A0-80196A3C 1912E0 009C+00 0/0 3/3 3/3 .text getCurrentPos__15dShopItemCtrl_cFi
|
||||
*/
|
||||
cXyz dShopItemCtrl_c::getCurrentPos(int item_index) {
|
||||
cXyz dShopItemCtrl_c::getCurrentPos(int i_itemIdx) {
|
||||
cXyz item_pos(0.0f, 0.0f, 0.0f);
|
||||
|
||||
if (mItemIndex[item_index] != -1) {
|
||||
fopAc_ac_c* item = fopAcM_SearchByID(mItemIndex[item_index]);
|
||||
if (mItemIndex[i_itemIdx] != -1) {
|
||||
fopAc_ac_c* item = fopAcM_SearchByID(mItemIndex[i_itemIdx]);
|
||||
if (item != NULL) {
|
||||
item_pos.set(item->current.pos);
|
||||
}
|
||||
@@ -34,15 +34,16 @@ cXyz dShopItemCtrl_c::getCurrentPos(int item_index) {
|
||||
}
|
||||
|
||||
/* 80196A3C-80196AF0 19137C 00B4+00 0/0 2/2 0/0 .text isHomePos__15dShopItemCtrl_cFi */
|
||||
bool dShopItemCtrl_c::isHomePos(int item_index) {
|
||||
if (item_index >= 0 && item_index < 7 && mItemIndex[item_index] != -1) {
|
||||
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[item_index]);
|
||||
bool dShopItemCtrl_c::isHomePos(int i_itemIdx) {
|
||||
if (i_itemIdx >= 0 && i_itemIdx < 7 && mItemIndex[i_itemIdx] != -1) {
|
||||
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i_itemIdx]);
|
||||
if (item != NULL) {
|
||||
cXyz* item_pos = item->getPosP();
|
||||
cXyz item_home = item->orig.pos;
|
||||
|
||||
if (item_pos->x == item_home.x && item_pos->y == item_home.y &&
|
||||
item_pos->z == item_home.z) {
|
||||
item_pos->z == item_home.z)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -53,14 +54,14 @@ bool dShopItemCtrl_c::isHomePos(int item_index) {
|
||||
|
||||
/* 80196AF0-80196BA4 191430 00B4+00 0/0 1/1 0/0 .text setRotateAnime__15dShopItemCtrl_cFi
|
||||
*/
|
||||
void dShopItemCtrl_c::setRotateAnime(int item_index) {
|
||||
void dShopItemCtrl_c::setRotateAnime(int i_itemIdx) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (mItemIndex[i] != -1) {
|
||||
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i]);
|
||||
if (item != NULL) {
|
||||
csXyz* item_rot = item->getRotateP();
|
||||
|
||||
if (i == item_index - 1) {
|
||||
if (i == i_itemIdx - 1) {
|
||||
item_rot->y += 0x200;
|
||||
} else {
|
||||
cLib_addCalcAngleS(&item_rot->y, item->orig.angle.y, 4, 0x800, 0x80);
|
||||
@@ -76,47 +77,43 @@ void dShopItemCtrl_c::setZoomAnime(int param_1, cXyz* param_2, s16 param_3, bool
|
||||
if (mItemIndex[i] == -1) {
|
||||
continue;
|
||||
}
|
||||
daShopItem_c* shopItem = (daShopItem_c*) fopAcM_SearchByID(mItemIndex[i]);
|
||||
|
||||
daShopItem_c* shopItem = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i]);
|
||||
if (shopItem == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cXyz* this_01 = shopItem->getPosP();
|
||||
cXyz cStack_44 = shopItem->orig.pos;
|
||||
cXyz cStack_50 = *param_2 - cStack_44;
|
||||
s16 local_5e = shopItem->getAngleX();
|
||||
s16 local_60 = shopItem->getAngleY();
|
||||
cXyz* pos_p = shopItem->getPosP();
|
||||
cXyz target_pos = shopItem->orig.pos;
|
||||
cXyz cStack_50 = *param_2 - target_pos;
|
||||
s16 x_angle = shopItem->getAngleX();
|
||||
s16 y_angle = shopItem->getAngleY();
|
||||
|
||||
if (i == param_1 - 1 && param_4 == true) {
|
||||
cLib_addCalcPos2(
|
||||
this_01,
|
||||
*param_2,
|
||||
0.5f,
|
||||
0.05f * cStack_50.abs()
|
||||
);
|
||||
cLib_addCalcAngleS(&local_5e, param_3, 4, 0x800, 0x80);
|
||||
shopItem->setAngleX(local_5e);
|
||||
cLib_addCalcAngleS(&local_60, shopItem->orig.angle.y, 4, 0x800, 0x80);
|
||||
shopItem->setAngleY(local_60);
|
||||
cLib_addCalcPos2(pos_p, *param_2, 0.5f, 0.05f * cStack_50.abs());
|
||||
cLib_addCalcAngleS(&x_angle, param_3, 4, 0x800, 0x80);
|
||||
shopItem->setAngleX(x_angle);
|
||||
cLib_addCalcAngleS(&y_angle, shopItem->orig.angle.y, 4, 0x800, 0x80);
|
||||
shopItem->setAngleY(y_angle);
|
||||
} else {
|
||||
cLib_addCalcPos2(
|
||||
this_01,
|
||||
cStack_44,
|
||||
0.5f,
|
||||
0.1f * cStack_50.abs());
|
||||
cXyz cStack_5c = *this_01 - cStack_44;
|
||||
cLib_addCalcPos2(pos_p, target_pos, 0.5f, 0.1f * cStack_50.abs());
|
||||
cXyz cStack_5c = *pos_p - target_pos;
|
||||
if (cStack_5c.abs() < 0.01f) {
|
||||
this_01->set(shopItem->orig.pos);
|
||||
pos_p->set(shopItem->orig.pos);
|
||||
}
|
||||
cLib_addCalcAngleS(&local_5e, 0, 4, 0x800, 0x80);
|
||||
if (local_5e <= 0x80) {
|
||||
local_5e = 0;
|
||||
|
||||
cLib_addCalcAngleS(&x_angle, 0, 4, 0x800, 0x80);
|
||||
if (x_angle <= 0x80) {
|
||||
x_angle = 0;
|
||||
}
|
||||
shopItem->setAngleX(local_5e);
|
||||
cLib_addCalcAngleS(&local_60, 0, 4, 0x800, 0x80);
|
||||
if (local_60 <= 0x80) {
|
||||
local_60 = 0;
|
||||
|
||||
shopItem->setAngleX(x_angle);
|
||||
cLib_addCalcAngleS(&y_angle, 0, 4, 0x800, 0x80);
|
||||
if (y_angle <= 0x80) {
|
||||
y_angle = 0;
|
||||
}
|
||||
shopItem->setAngleY(local_60);
|
||||
|
||||
shopItem->setAngleY(y_angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+242
-852
File diff suppressed because it is too large
Load Diff
+74
-95
@@ -9,6 +9,7 @@
|
||||
#include "SSystem/SComponent/c_malloc.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
@@ -21,6 +22,9 @@
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h"
|
||||
|
||||
#define MAKE_ITEM_PARAMS(itemNo, itemBitNo, param_2, param_3) \
|
||||
((itemNo & 0xFF) << 0 | (itemBitNo & 0xFF) << 0x8 | param_2 << 0x10 | (param_3 & 0xF) << 0x18)
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
@@ -29,11 +33,6 @@ struct l_HIO {
|
||||
/* 8001E098 */ ~l_HIO();
|
||||
};
|
||||
|
||||
class dEnemyItem_c {
|
||||
public:
|
||||
static u8* mData;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -156,9 +155,9 @@ extern "C" static void func_8001E104();
|
||||
extern "C" static void func_8001E10C();
|
||||
extern "C" static void func_8001E114();
|
||||
extern "C" void onFrollCrashFlg__9daPy_py_cFUci();
|
||||
extern "C" bool checkWolfDash__9daPy_py_cCFv();
|
||||
extern "C" bool checkFrontRoll__9daPy_py_cCFv();
|
||||
extern "C" bool checkHorseRide__9daPy_py_cCFv();
|
||||
extern "C" int checkWolfDash__9daPy_py_cCFv();
|
||||
extern "C" int checkFrontRoll__9daPy_py_cCFv();
|
||||
extern "C" u32 checkHorseRide__9daPy_py_cCFv();
|
||||
extern "C" s32 getGrabActorID__9daPy_py_cCFv();
|
||||
extern "C" extern char const* const f_op_f_op_actor_mng__stringBase0;
|
||||
extern "C" u8 mLineCheck__11fopAcM_lc_c[112];
|
||||
@@ -171,7 +170,7 @@ extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
|
||||
|
||||
// TODO: move
|
||||
|
||||
u32 check_itemno(int param1);
|
||||
u8 check_itemno(int param1);
|
||||
BOOL isHeart(u8);
|
||||
|
||||
//
|
||||
@@ -807,7 +806,7 @@ s16 fopAcM_searchActorAngleX(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_act
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
#pragma optimizewithasm off
|
||||
asm s16 fopAcM_searchActorAngleX(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_mng/fopAcM_searchActorAngleX__FPC10fopAc_ac_cPC10fopAc_ac_c.s"
|
||||
@@ -1067,11 +1066,13 @@ s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) {
|
||||
if (fopAcM_GetCullSize(i_actor) == 14) {
|
||||
if (fopAcM_getCullSizeFar(i_actor) > 0.0f) {
|
||||
mDoLib_clipper::changeFar(cullsize_far * mDoLib_clipper::getFar());
|
||||
u32 ret = mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax, &i_actor->mCull.mBox.mMin);
|
||||
u32 ret = mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax,
|
||||
&i_actor->mCull.mBox.mMin);
|
||||
mDoLib_clipper::resetFar();
|
||||
return ret;
|
||||
} else {
|
||||
return mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax, &i_actor->mCull.mBox.mMin);
|
||||
return mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax,
|
||||
&i_actor->mCull.mBox.mMin);
|
||||
}
|
||||
} else {
|
||||
cull_box* box = &l_cullSizeBox[cullsize];
|
||||
@@ -1096,7 +1097,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) {
|
||||
center.x = center_p->x;
|
||||
center.y = center_p->y;
|
||||
center.z = center_p->z;
|
||||
|
||||
|
||||
u32 ret = mDoLib_clipper::clip(mtx_p, center, radius);
|
||||
mDoLib_clipper::resetFar();
|
||||
return ret;
|
||||
@@ -1668,20 +1669,11 @@ void* fopAcM_createItemForSimpleDemo(const cXyz* i_pos, int i_itemNo, int i_room
|
||||
0x4, NULL);
|
||||
}
|
||||
|
||||
inline u32 maskShift(int val, int bits, int shift) {
|
||||
return (val & ((1 << bits) - 1)) << shift;
|
||||
}
|
||||
|
||||
inline u32 makeItemParams(u32 iNo, u32 p8, u32 unk, u32 p9) {
|
||||
return maskShift(p8, 8, 0x8) | maskShift(iNo, 8, 0) | maskShift(unk, 8, 0x10) |
|
||||
maskShift(p9, 4, 0x18);
|
||||
}
|
||||
|
||||
/* 8001C240-8001C3E0 016B80 01A0+00 1/1 1/1 17/17 .text
|
||||
* fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi */
|
||||
s32 fopAcM_createItem(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo,
|
||||
s32 fopAcM_createItem(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
|
||||
const csXyz* i_angle, const cXyz* i_scale, int param_7) {
|
||||
if (itemNo == NO_ITEM) {
|
||||
if (i_itemNo == NO_ITEM) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1689,67 +1681,66 @@ s32 fopAcM_createItem(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo,
|
||||
if (i_angle != NULL) {
|
||||
item_angle = *i_angle;
|
||||
} else {
|
||||
item_angle.y = cM_rndFX(32767.0f);
|
||||
item_angle.y = cM_rndFX(0x7FFF);
|
||||
}
|
||||
item_angle.z = 0xFF;
|
||||
|
||||
u32 itemActorParams = makeItemParams(check_itemno(itemNo), param_3, 0xFF, param_7);
|
||||
u8 item_no = check_itemno(i_itemNo);
|
||||
u32 params = MAKE_ITEM_PARAMS(item_no, i_itemBitNo, 0xFF, param_7);
|
||||
|
||||
switch (itemNo) {
|
||||
switch (i_itemNo) {
|
||||
case RECOVERY_FAILY:
|
||||
return fopAcM_create(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1);
|
||||
case KAKERA_HEART:
|
||||
case UTAWA_HEART:
|
||||
return fopAcM_create(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
|
||||
i_scale, -1);
|
||||
return fopAcM_create(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale, -1);
|
||||
case TRIPLE_HEART:
|
||||
for (int i = 0; i < 2; i++) {
|
||||
fopAcM_create(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1);
|
||||
fopAcM_create(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1);
|
||||
item_angle.y = cM_rndFX(32767.0f);
|
||||
}
|
||||
default:
|
||||
return fopAcM_create(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1);
|
||||
return fopAcM_create(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8001C3E0-8001C5B0 016D20 01D0+00 1/1 0/0 0/0 .text
|
||||
* fopAcM_fastCreateItem2__FPC4cXyziiiiPC5csXyzPC4cXyz */
|
||||
void* fopAcM_fastCreateItem2(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo, int param_5,
|
||||
const csXyz* i_angle, const cXyz* i_scale) {
|
||||
void* fopAcM_fastCreateItem2(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
|
||||
int param_5, const csXyz* i_angle, const cXyz* i_scale) {
|
||||
csXyz item_angle(csXyz::Zero);
|
||||
|
||||
if (itemNo == NO_ITEM) {
|
||||
if (i_itemNo == NO_ITEM) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (i_angle != NULL) {
|
||||
item_angle = *i_angle;
|
||||
} else {
|
||||
item_angle.y = cM_rndFX(32767.0f);
|
||||
item_angle.y = cM_rndFX(0x7FFF);
|
||||
}
|
||||
item_angle.z = 0xFF;
|
||||
|
||||
int tmpItemNo = check_itemno(itemNo);
|
||||
u32 itemActorParams =
|
||||
(param_3 & 0xFF) << 0x8 | (tmpItemNo & 0xFF) | 0xFF << 0x10 | ((param_5 & 0xF) << 0x18);
|
||||
u8 item_no = check_itemno(i_itemNo);
|
||||
u32 params = MAKE_ITEM_PARAMS(item_no, i_itemBitNo, 0xFF, param_5);
|
||||
|
||||
switch (itemNo) {
|
||||
switch (i_itemNo) {
|
||||
case RECOVERY_FAILY:
|
||||
return fopAcM_fastCreate(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1,
|
||||
NULL, NULL);
|
||||
case KAKERA_HEART:
|
||||
case UTAWA_HEART:
|
||||
return fopAcM_fastCreate(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
|
||||
i_scale, -1, NULL, NULL);
|
||||
return fopAcM_fastCreate(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale,
|
||||
-1, NULL, NULL);
|
||||
case TRIPLE_HEART:
|
||||
for (int i = 0; i < 2; i++) {
|
||||
fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1,
|
||||
NULL, NULL);
|
||||
item_angle.y = cM_rndFX(32767.0f);
|
||||
fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1, NULL,
|
||||
NULL);
|
||||
item_angle.y = cM_rndFX(0x7FFF);
|
||||
}
|
||||
default:
|
||||
return fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale,
|
||||
-1, NULL, NULL);
|
||||
return fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1, NULL,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1763,60 +1754,54 @@ SECTION_SDATA2 static f32 lit_5809 = 8192.0f;
|
||||
/* 80451C38-80451C3C 000238 0004+00 4/4 0/0 0/0 .sdata2 @5810 */
|
||||
SECTION_SDATA2 static f32 lit_5810 = 1.0f;
|
||||
|
||||
/* 80451C3C-80451C40 00023C 0004+00 1/1 0/0 0/0 .sdata2 @5811 */
|
||||
SECTION_SDATA2 static f32 lit_5811 = 3.0f / 10.0f;
|
||||
|
||||
/* 80451C40-80451C44 000240 0004+00 1/1 0/0 0/0 .sdata2 @5812 */
|
||||
SECTION_SDATA2 static f32 lit_5812 = 1.0f / 5.0f;
|
||||
|
||||
/* 8001C5B0-8001C870 016EF0 02C0+00 3/3 0/0 4/4 .text
|
||||
* fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i */
|
||||
// issue with makeItemParams
|
||||
#ifdef NONMATCHING
|
||||
void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const csXyz* i_angle,
|
||||
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int param_8,
|
||||
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int i_itemBitNo,
|
||||
int param_9, createFunc i_createFunc) {
|
||||
csXyz angle;
|
||||
|
||||
if (i_itemNo == NO_ITEM) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
u32 itemActorParams = makeItemParams(check_itemno(i_itemNo), param_8, 0xFF, param_9);
|
||||
int i;
|
||||
|
||||
u8 item_no = check_itemno(i_itemNo);
|
||||
u8 item_bit_no = i_itemBitNo;
|
||||
u32 params = MAKE_ITEM_PARAMS(item_no, item_bit_no, 0xFF, param_9);
|
||||
|
||||
if (p_speedF != NULL && isHeart(i_itemNo)) {
|
||||
*p_speedF = *p_speedF * 2.0f;
|
||||
*p_speedF = lit_5808 * *p_speedF;
|
||||
}
|
||||
|
||||
csXyz angle;
|
||||
switch (i_itemNo) {
|
||||
case RECOVERY_FAILY:
|
||||
return fopAcM_fastCreate(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1,
|
||||
NULL, NULL);
|
||||
case KAKERA_HEART:
|
||||
case UTAWA_HEART:
|
||||
return fopAcM_fastCreate(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
|
||||
i_scale, -1, NULL, NULL);
|
||||
return fopAcM_fastCreate(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale,
|
||||
-1, NULL, NULL);
|
||||
case TRIPLE_HEART:
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
if (i_angle != NULL) {
|
||||
angle = *i_angle;
|
||||
} else {
|
||||
angle = csXyz::Zero;
|
||||
}
|
||||
angle.z = 0xFF;
|
||||
angle.y += (s16)cM_rndFX(8192.0f);
|
||||
angle.y += (s16)cM_rndFX(lit_5809);
|
||||
|
||||
fopAc_ac_c* actor =
|
||||
(fopAc_ac_c*)fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &angle,
|
||||
i_scale, -1, i_createFunc, NULL);
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(
|
||||
PROC_ITEM, params, i_pos, i_roomNo, &angle, i_scale, -1, i_createFunc, NULL);
|
||||
|
||||
if (actor != NULL) {
|
||||
if (p_speedF != NULL) {
|
||||
actor->speedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
|
||||
actor->speedF = *p_speedF * (lit_5810 + cM_rndFX(0.3f));
|
||||
}
|
||||
|
||||
if (p_speedY != NULL) {
|
||||
actor->speed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
|
||||
actor->speed.y = *p_speedY * (lit_5810 + cM_rndFX(0.2f));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1828,8 +1813,8 @@ void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const
|
||||
}
|
||||
angle.z = 0xFF;
|
||||
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(
|
||||
PROC_ITEM, itemActorParams, i_pos, i_roomNo, &angle, i_scale, -1, i_createFunc, NULL);
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo,
|
||||
&angle, i_scale, -1, i_createFunc, NULL);
|
||||
|
||||
if (actor != NULL) {
|
||||
if (p_speedF != NULL) {
|
||||
@@ -1844,18 +1829,6 @@ void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const
|
||||
return actor;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const csXyz* i_angle,
|
||||
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int param_8,
|
||||
int param_9, createFunc i_createFunc) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_mng/fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001C870-8001C95C 0171B0 00EC+00 0/0 0/0 1/1 .text fopAcM_createBokkuri__FUsPC4cXyziiiPC4cXyzii
|
||||
*/
|
||||
@@ -1910,7 +1883,7 @@ fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 i_roomNo) {
|
||||
return actor;
|
||||
}
|
||||
|
||||
return (fopAc_ac_c*) fpcM_JudgeInLayer(fpcM_LayerID(roomProc), enemySearchJugge, NULL);
|
||||
return (fopAc_ac_c*)fpcM_JudgeInLayer(fpcM_LayerID(roomProc), enemySearchJugge, NULL);
|
||||
}
|
||||
|
||||
/* 8001CAD8-8001CB48 017418 0070+00 0/0 0/0 81/81 .text
|
||||
@@ -2104,7 +2077,7 @@ f32 fopAcM_gc_c::mGroundY;
|
||||
/* 8001D020-8001D10C 017960 00EC+00 0/0 0/0 96/96 .text
|
||||
* fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci */
|
||||
void fopAcM_effSmokeSet1(u32* param_0, u32* param_1, cXyz const* param_2, csXyz const* param_3,
|
||||
f32 param_4, dKy_tevstr_c const* param_5, int param_6) {
|
||||
f32 param_4, dKy_tevstr_c const* param_5, int param_6) {
|
||||
cXyz p2;
|
||||
float z = param_2->z;
|
||||
float y = FLOAT_LABEL(lit_6035) + param_2->y;
|
||||
@@ -2117,7 +2090,9 @@ void fopAcM_effSmokeSet1(u32* param_0, u32* param_1, cXyz const* param_2, csXyz
|
||||
stack_18.x = param_4;
|
||||
stack_18.y = param_4;
|
||||
stack_18.z = param_4;
|
||||
*param_0 = dComIfGp_particle_setSimpleFoot(*param_0, param_1, *fopAcM_gc_c::getGroundCheck(), &p2, param_5, param_6, param_3, &stack_18, NULL, 0xff, NULL);
|
||||
*param_0 =
|
||||
dComIfGp_particle_setSimpleFoot(*param_0, param_1, *fopAcM_gc_c::getGroundCheck(), &p2,
|
||||
param_5, param_6, param_3, &stack_18, NULL, 0xff, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2421,9 +2396,9 @@ s32 fopAcM_getWaterStream(cXyz const* param_0, cBgS_PolyInfo const& param_1, cXy
|
||||
daTagStream_c* stream = daTagStream_c::getTop();
|
||||
if (stream != NULL) {
|
||||
for (stream = daTagStream_c::getTop(); stream != NULL; stream = stream->getNext()) {
|
||||
if (stream->checkStreamOn() &&
|
||||
(param_4 == 0 || stream->checkCanoeOn()) &&
|
||||
stream->checkArea(param_0)) {
|
||||
if (stream->checkStreamOn() && (param_4 == 0 || stream->checkCanoeOn()) &&
|
||||
stream->checkArea(param_0))
|
||||
{
|
||||
*speed = stream->speed;
|
||||
*param_3 = stream->getPower() & 0xff;
|
||||
return 1;
|
||||
@@ -2521,8 +2496,7 @@ asm s16 fopAcM_getPolygonAngle(cM3dGPla const* param_0, s16 param_1) {
|
||||
|
||||
/* 8001DC68-8001DCBC 0185A8 0054+00 0/0 5/5 21/21 .text
|
||||
* lineCheck__11fopAcM_lc_cFPC4cXyzPC4cXyzPC10fopAc_ac_c */
|
||||
bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1,
|
||||
fopAc_ac_c const* param_2) {
|
||||
bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1, fopAc_ac_c const* param_2) {
|
||||
((dBgS_LinChk*)mLineCheck)->Set(param_0, param_1, param_2);
|
||||
dComIfG_Bgsp().LineCross((cBgS_LinChk*)mLineCheck);
|
||||
}
|
||||
@@ -2783,27 +2757,32 @@ static asm void func_8001E114() {
|
||||
#pragma pop
|
||||
|
||||
/* 8001E11C-8001E120 018A5C 0004+00 0/0 1/0 0/0 .text onFrollCrashFlg__9daPy_py_cFUci */
|
||||
void daPy_py_c::onFrollCrashFlg(u8 param_0, int param_1) {
|
||||
// void daPy_py_c::onFrollCrashFlg(u8 param_0, int param_1) {
|
||||
extern "C" void onFrollCrashFlg__9daPy_py_cFUci() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8001E120-8001E128 018A60 0008+00 0/0 1/0 0/0 .text checkWolfDash__9daPy_py_cCFv */
|
||||
int daPy_py_c::checkWolfDash() const {
|
||||
// int daPy_py_c::checkWolfDash() const {
|
||||
extern "C" int checkWolfDash__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8001E128-8001E130 018A68 0008+00 0/0 1/0 0/0 .text checkFrontRoll__9daPy_py_cCFv */
|
||||
int daPy_py_c::checkFrontRoll() const {
|
||||
// int daPy_py_c::checkFrontRoll() const {
|
||||
extern "C" int checkFrontRoll__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8001E130-8001E138 018A70 0008+00 0/0 1/0 0/0 .text checkHorseRide__9daPy_py_cCFv */
|
||||
u32 daPy_py_c::checkHorseRide() const {
|
||||
// u32 daPy_py_c::checkHorseRide() const {
|
||||
extern "C" u32 checkHorseRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8001E138-8001E140 018A78 0008+00 0/0 1/0 0/0 .text getGrabActorID__9daPy_py_cCFv */
|
||||
s32 daPy_py_c::getGrabActorID() const {
|
||||
// s32 daPy_py_c::getGrabActorID() const {
|
||||
extern "C" s32 getGrabActorID__9daPy_py_cCFv() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
+274
-240
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "JSystem/J2DGraph/J2DPrint.h"
|
||||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTProcBar.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "JSystem/J2DGraph/J2DPrint.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/menu/d_menu_collect.h"
|
||||
@@ -17,8 +17,8 @@
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "m_Do/m_Do_main.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -159,7 +159,7 @@ static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
|
||||
ResTIMG* timg;
|
||||
|
||||
void* alloc_res = JKRHeap::alloc(bufferSize, 0x20, NULL);
|
||||
timg = (ResTIMG*) alloc_res;
|
||||
timg = (ResTIMG*)alloc_res;
|
||||
|
||||
if (timg == NULL) {
|
||||
return NULL;
|
||||
@@ -594,186 +594,216 @@ SECTION_SDATA2 static f32 lit_4442 = -0.0025f;
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
static void drawDepth2(view_class* param_0, view_port_class* param_1, int param_2) {
|
||||
if (dComIfGp_getLinkPlayer() == NULL) {
|
||||
return;
|
||||
}
|
||||
s16 x_orig;
|
||||
s16 y_orig;
|
||||
s16 y_orig_pos;
|
||||
s16 width;
|
||||
s16 height;
|
||||
void* zBufferTex;
|
||||
void* frameBufferTex;
|
||||
|
||||
if ((s32)data_80450BE7 != 0) {
|
||||
f32 auStack_d8[7];
|
||||
f32 auStack_f0[6];
|
||||
f32 auStack_110;
|
||||
f32 auStack_114;
|
||||
f32 local_118;
|
||||
GXGetProjectionv(auStack_d8);
|
||||
GXGetViewportv(auStack_f0);
|
||||
GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y,
|
||||
param_0->mLookat.mCenter.z, (MtxP)param_0->mViewMtx, (f32*)auStack_d8, (f32*)auStack_f0,
|
||||
&auStack_110, &auStack_114, &local_118);
|
||||
}
|
||||
u16 halfWidth;
|
||||
u16 halfHeight;
|
||||
|
||||
camera_class* local_120 = dComIfGp_getCamera(0);
|
||||
f32 f30 = -255.0f;
|
||||
if (dCam_getBody()->mNextMode != 4 && dCam_getBody()->mNextMode != 7) {
|
||||
camera_class* local_128 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
|
||||
dAttention_c& local_12c = dComIfGp_getAttention();
|
||||
f32 f31 = 60.0f / (local_128 ? fopCamM_GetFovy(local_128) : 48.0f);
|
||||
if (local_12c.LockonTruth()) {
|
||||
fopAc_ac_c* local_130 = fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID());
|
||||
if (local_130 != NULL) {
|
||||
cXyz cStack_100 = local_130->mEyePos;
|
||||
if (fabsf(cStack_100.y - local_120->mLookat.mEye.y) < 400.0f) {
|
||||
cStack_100.y = local_120->mLookat.mEye.y;
|
||||
f32* temp_r20;
|
||||
|
||||
if (daPy_getLinkPlayerActorClass() != NULL) {
|
||||
if (mDoGph_gInf_c::isAutoForcus()) {
|
||||
f32 sp4C[7];
|
||||
f32 sp34[6];
|
||||
f32 sp1C;
|
||||
f32 sp18;
|
||||
f32 sp14;
|
||||
GXGetProjectionv(sp4C);
|
||||
GXGetViewportv(sp34);
|
||||
GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y,
|
||||
param_0->mLookat.mCenter.z, param_0->mViewMtx, sp4C, sp34, &sp1C, &sp18,
|
||||
&sp14);
|
||||
}
|
||||
|
||||
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
|
||||
camera_class* camera_p = (camera_class*)dComIfGp_getCamera(0);
|
||||
f32 var_f30 = -255.0f;
|
||||
|
||||
if (dCam_getBody()->Mode() != 4 && dCam_getBody()->Mode() != 7) {
|
||||
camera_class* temp_r4 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
|
||||
dAttention_c& local_12c = dComIfGp_getAttention();
|
||||
|
||||
f32 temp_f31 = 60.0f / (temp_r4 ? fopCamM_GetFovy(temp_r4) : 48.0f);
|
||||
if (local_12c.LockonTruth()) {
|
||||
fopAc_ac_c* atn_actor =
|
||||
fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID());
|
||||
|
||||
if (atn_actor != NULL) {
|
||||
cXyz sp28 = atn_actor->mEyePos;
|
||||
if (fabsf(sp28.y - camera_p->mLookat.mEye.y) < 400.0f) {
|
||||
sp28.y = camera_p->mLookat.mEye.y;
|
||||
}
|
||||
|
||||
f32 var_f2 =
|
||||
(atn_actor->current.pos.abs(camera_p->mLookat.mEye)) / (280.0f * temp_f31);
|
||||
var_f2 -= 0.8f;
|
||||
if (var_f2 < 0.0f) {
|
||||
var_f2 = 0.0f;
|
||||
} else if (var_f2 > 1.0f) {
|
||||
var_f2 = 1.0f;
|
||||
}
|
||||
var_f30 = -180.0f - 75.0f * var_f2;
|
||||
}
|
||||
f32 fVar2 = (local_130->current.pos.abs(local_120->mLookat.mEye)) / (280.0f * f31);
|
||||
fVar2 -= 0.8f;
|
||||
if (fVar2 < 0.0f) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
} else if (g_dComIfG_gameInfo.play.getEvent().runCheck() && temp_f31 < 3.0f &&
|
||||
g_env_light.field_0x126c < 999999.0f)
|
||||
{
|
||||
f32 var_f2 = g_env_light.field_0x126c / (80.0f * temp_f31);
|
||||
var_f2 -= 0.8f;
|
||||
if (var_f2 < 0.0f) {
|
||||
var_f2 = 0.0f;
|
||||
} else if (var_f2 > 1.0f) {
|
||||
var_f2 = 1.0f;
|
||||
}
|
||||
f30 = -180.0f - 75.0f * fVar2;
|
||||
}
|
||||
} else {
|
||||
if (g_dComIfG_gameInfo.play.getEvent().runCheck() && f31 < 3.0f && g_env_light.field_0x126c < 999999.0f) {
|
||||
f32 fVar2 = g_env_light.field_0x126c / (80.0f * f31);
|
||||
fVar2 -= 0.8f;
|
||||
if (fVar2 < 0.0f) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
f30 = -180.0f - 75.0f * fVar2;
|
||||
var_f30 = -180.0f - 75.0f * var_f2;
|
||||
}
|
||||
}
|
||||
|
||||
temp_r20 = &g_env_light.field_0x1264;
|
||||
cLib_addCalc(temp_r20, var_f30, 0.1f, 100.0f, 0.0001f);
|
||||
l_tevColor0.a = *temp_r20;
|
||||
if (l_tevColor0.a <= -254) {
|
||||
l_tevColor0.a = -255;
|
||||
}
|
||||
|
||||
x_orig = (int)param_1->mXOrig & ~7;
|
||||
y_orig = (int)param_1->mYOrig & ~7;
|
||||
y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
width = (int)param_1->mWidth & ~7;
|
||||
height = (int)param_1->mHeight & ~7;
|
||||
zBufferTex = mDoGph_gInf_c::mZbufferTex;
|
||||
frameBufferTex = mDoGph_gInf_c::mFrameBufferTex;
|
||||
|
||||
if (y_orig < 0) {
|
||||
height += y_orig;
|
||||
s16 tmp_y_orig = -y_orig >> 1;
|
||||
zBufferTex =
|
||||
(char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig, GX_TF_IA8, GX_FALSE, 0);
|
||||
frameBufferTex =
|
||||
(char*)frameBufferTex +
|
||||
GXGetTexBufferSize(304, tmp_y_orig, mDoGph_gInf_c::getFrameBufferTimg()->format,
|
||||
GX_FALSE, 0);
|
||||
}
|
||||
|
||||
halfWidth = width >> 1;
|
||||
halfHeight = height >> 1;
|
||||
GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight,
|
||||
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
|
||||
GXCopyTex(frameBufferTex, GX_FALSE);
|
||||
GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight,
|
||||
GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f,
|
||||
GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight,
|
||||
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP,
|
||||
GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f,
|
||||
0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1);
|
||||
GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0);
|
||||
|
||||
if (0.0f != g_env_light.mDemoAttentionPoint) {
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint;
|
||||
} else {
|
||||
l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint);
|
||||
}
|
||||
}
|
||||
|
||||
GXSetTevColorS10(GX_TEVREG0, l_tevColor0);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
|
||||
} else {
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff);
|
||||
}
|
||||
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetNumIndStages(0);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig,
|
||||
param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4);
|
||||
mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d);
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(3);
|
||||
GXSetNumTevStages(4);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
|
||||
if (l_tevColor0.a > -255) {
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3s16(x_orig, y_orig, -5);
|
||||
GXTexCoord2s8(0, 0);
|
||||
GXPosition3s16(width, y_orig, -5);
|
||||
GXTexCoord2s8(1, 0);
|
||||
GXPosition3s16(width, height, -5);
|
||||
GXTexCoord2s8(1, 1);
|
||||
GXPosition3s16(x_orig, height, -5);
|
||||
GXTexCoord2s8(0, 1);
|
||||
GXEnd();
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
|
||||
}
|
||||
|
||||
cLib_addCalc(&g_env_light.field_0x1264, f30, 0.1f, 100.0f, 0.0001f);
|
||||
l_tevColor0.a = g_env_light.field_0x1264;
|
||||
if (l_tevColor0.a <= -254) {
|
||||
l_tevColor0.a = -255;
|
||||
}
|
||||
|
||||
s16 x_orig = (int)param_1->mXOrig & ~7;
|
||||
s16 y_orig = (int)param_1->mYOrig & ~7;
|
||||
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
s16 width = (int)param_1->mWidth & ~7;
|
||||
s16 height = (int)param_1->mHeight & ~7;
|
||||
void* zBufferTex = mDoGph_gInf_c::mZbufferTex;
|
||||
void* frameBufferTex = mDoGph_gInf_c::mFrameBufferTex;
|
||||
|
||||
if (y_orig < 0) {
|
||||
height += y_orig;
|
||||
s16 tmp_y_orig = -y_orig >> 1;
|
||||
zBufferTex = (char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
|
||||
GX_TF_IA8,
|
||||
GX_FALSE, 0);
|
||||
frameBufferTex = (char*)frameBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
|
||||
mDoGph_gInf_c::getFrameBufferTimg()->format,
|
||||
GX_FALSE, 0);
|
||||
}
|
||||
u16 halfWidth = width >> 1;
|
||||
u16 halfHeight = height >> 1;
|
||||
GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight, mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
|
||||
GXCopyTex(frameBufferTex, GX_FALSE);
|
||||
GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1);
|
||||
GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0);
|
||||
if (0.0f != g_env_light.mDemoAttentionPoint) {
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint;
|
||||
} else {
|
||||
l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint);
|
||||
}
|
||||
}
|
||||
GXSetTevColorS10(GX_TEVREG0, l_tevColor0);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
|
||||
} else {
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff);
|
||||
}
|
||||
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetNumIndStages(0);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig, param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4);
|
||||
mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d);
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(3);
|
||||
GXSetNumTevStages(4);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
|
||||
if (l_tevColor0.a > -255) {
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3s16(x_orig, y_orig, -5);
|
||||
GXTexCoord2s8(0,0);
|
||||
GXPosition3s16(width, y_orig, -5);
|
||||
GXTexCoord2s8(1,0);
|
||||
GXPosition3s16(width, height, -5);
|
||||
GXTexCoord2s8(1,1);
|
||||
GXPosition3s16(x_orig, height, -5);
|
||||
GXTexCoord2s8(0,1);
|
||||
GXEnd();
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -812,7 +842,7 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
|
||||
s16 y_orig = (int)param_1->mYOrig & ~7;
|
||||
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
if ((y_orig_pos == 0) && (param_1->mScissor.mYOrig != param_1->mYOrig ||
|
||||
(param_1->mScissor.mHeight != param_1->mHeight)))
|
||||
(param_1->mScissor.mHeight != param_1->mHeight)))
|
||||
{
|
||||
s32 sc_top = (int)param_1->mScissor.mYOrig;
|
||||
s32 sc_bottom = param_1->mScissor.mYOrig + param_1->mScissor.mHeight;
|
||||
@@ -822,27 +852,19 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f,
|
||||
0.0f, 0.0f,
|
||||
0.0f, g_clearColor);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetNumIndStages(0);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(
|
||||
ortho,
|
||||
0.0f, 448.0f,
|
||||
0.0f, 608.0f,
|
||||
0.0f, 10.0f);
|
||||
C_MTXOrtho(ortho, 0.0f, 448.0f, 0.0f, 608.0f, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
@@ -860,8 +882,8 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
|
||||
GXPosition3s16(0, 0x1c8, -5);
|
||||
GXEnd();
|
||||
}
|
||||
GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig,
|
||||
param_1->mScissor.mWidth, param_1->mScissor.mHeight);
|
||||
GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig, param_1->mScissor.mWidth,
|
||||
param_1->mScissor.mHeight);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -967,10 +989,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C2, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A2);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
|
||||
GXSetTevColor(GX_TEVREG2, mMonoColor);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
|
||||
@@ -984,32 +1006,32 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_TEXA, GX_CC_HALF, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_CPREV, GX_CC_HALF, GX_CC_C0);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP3, GX_TEV_SWAP3);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR);
|
||||
GXColorS10 tevColor0 = lit_4528;
|
||||
tevColor0.r = -mPoint;
|
||||
tevColor0.g = -mPoint;
|
||||
tevColor0.b = -mPoint;
|
||||
GXSetTevColorS10(GX_TEVREG0,tevColor0);
|
||||
GXSetTevColorS10(GX_TEVREG0, tevColor0);
|
||||
GXColor tevColor1 = lit_4530;
|
||||
tevColor1.r = mBlureRatio;
|
||||
tevColor1.g = mBlureRatio;
|
||||
@@ -1026,38 +1048,43 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTexCopyDst(0x98, 0x70, 6, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, 0);
|
||||
GXTexObj auStack_c0;
|
||||
GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
|
||||
GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
|
||||
GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
|
||||
GXSetNumTexGens(8);
|
||||
u32 iVar11 = 0x1e;
|
||||
s16 sVar10 = 0;
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
|
||||
for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD; texCoord++, iVar11 += 3, sVar10 += 0x2492) {
|
||||
GXSetTexCoordGen((GXTexCoordID) texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11);
|
||||
f32 dVar15 = mBlureSize * (1.0f / 6400.0f);
|
||||
mDoMtx_stack_c::transS(
|
||||
(dVar15 * cM_scos(sVar10)) * getInvScale(),
|
||||
dVar15 * cM_ssin(sVar10),
|
||||
0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4);
|
||||
for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD;
|
||||
texCoord++, iVar11 += 3, sVar10 += 0x2492)
|
||||
{
|
||||
GXSetTexCoordGen((GXTexCoordID)texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11);
|
||||
f32 dVar15 = mBlureSize * (1.0f / 6400.0f);
|
||||
mDoMtx_stack_c::transS((dVar15 * cM_scos(sVar10)) * getInvScale(),
|
||||
dVar15 * cM_ssin(sVar10), 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4);
|
||||
}
|
||||
GXSetNumTevStages(8);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
for (int tevStage = (int)GX_TEVSTAGE1; tevStage < 8; tevStage++) {
|
||||
GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV);
|
||||
GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0,
|
||||
GX_COLOR_NULL);
|
||||
GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1,
|
||||
GX_CC_CPREV);
|
||||
GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1,
|
||||
GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO,
|
||||
GX_CA_A0);
|
||||
GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1,
|
||||
GX_TRUE, GX_TEVPREV);
|
||||
}
|
||||
GXPixModeSync();
|
||||
mDoGph_drawFilterQuad(1, 1);
|
||||
@@ -1065,8 +1092,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTexCopyDst(0x4c, 0x38, 6, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXTexObj auStack_e0;
|
||||
GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
|
||||
GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
|
||||
GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
|
||||
GXPixModeSync();
|
||||
@@ -1075,8 +1104,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTexCopySrc(0, 0, 0x98, 0x70);
|
||||
GXSetTexCopyDst(0x98, 0x70, 6, GX_FALSE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
|
||||
GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
|
||||
GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
|
||||
@@ -1084,10 +1115,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ONE, GX_LO_OR);
|
||||
mDoGph_drawFilterQuad(2, 2);
|
||||
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
|
||||
@@ -1096,15 +1127,15 @@ void mDoGph_gInf_c::bloom_c::draw() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C0, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GX_TEVPREV);
|
||||
GXBlendFactor blendFactor;
|
||||
if (mMode == 1) {
|
||||
blendFactor = GX_BL_INV_DST_COLOR;
|
||||
blendFactor = GX_BL_INV_DST_COLOR;
|
||||
} else {
|
||||
blendFactor = GX_BL_ONE;
|
||||
blendFactor = GX_BL_ONE;
|
||||
}
|
||||
GXSetBlendMode(GX_BM_BLEND, blendFactor, GX_BL_SRC_ALPHA, GX_LO_OR);
|
||||
GXPixModeSync();
|
||||
@@ -1151,8 +1182,8 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in
|
||||
}
|
||||
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(width >> 1, height >> 1, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format,
|
||||
GX_TRUE);
|
||||
GXSetTexCopyDst(width >> 1, height >> 1,
|
||||
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
|
||||
GXCopyTex(tex, GX_FALSE);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
@@ -1174,11 +1205,9 @@ static void motionBlure(view_class* param_0) {
|
||||
GXSetTevColor(GX_TEVREG0, local_60);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
@@ -1453,7 +1482,8 @@ int mDoGph_Painter() {
|
||||
GXSetProjection(camera_p->mProjMtx, GX_PERSPECTIVE);
|
||||
j3dSys.reinitGX();
|
||||
|
||||
if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08"))) {
|
||||
if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08")))
|
||||
{
|
||||
u8 enable = mDoGph_gInf_c::getBloom()->getEnable();
|
||||
GXColor color = *mDoGph_gInf_c::getBloom()->getMonoColor();
|
||||
if (color.a != 0 || enable) {
|
||||
@@ -1480,7 +1510,9 @@ int mDoGph_Painter() {
|
||||
|
||||
trimming(camera_p, view_port);
|
||||
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 && (mDoGph_gInf_c::mFade & 0x80) == 0) {
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 &&
|
||||
(mDoGph_gInf_c::mFade & 0x80) == 0)
|
||||
{
|
||||
mDoGph_gInf_c::calcFade();
|
||||
}
|
||||
}
|
||||
@@ -1522,7 +1554,8 @@ int mDoGph_Painter() {
|
||||
dComIfGp_particle_draw2Dfore(&draw_info3);
|
||||
}
|
||||
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0) {
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0)
|
||||
{
|
||||
mDoGph_gInf_c::calcFade();
|
||||
}
|
||||
|
||||
@@ -1547,7 +1580,7 @@ asm void mDoGph_Painter() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
//asm J2DOrthoGraph::~J2DOrthoGraph() {
|
||||
// asm J2DOrthoGraph::~J2DOrthoGraph() {
|
||||
asm void __dt__13J2DOrthoGraphFv() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/__dt__13J2DOrthoGraphFv.s"
|
||||
@@ -1579,6 +1612,7 @@ REGISTER_CTORS(0x8000B1D0, __sinit_m_Do_graphic_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 8000B1E4-8000B1EC 005B24 0008+00 0/0 1/0 0/0 .text getAtnActorID__9daPy_py_cCFv */
|
||||
s32 daPy_py_c::getAtnActorID() const {
|
||||
// s32 daPy_py_c::getAtnActorID() const {
|
||||
extern "C" s32 getAtnActorID__9daPy_py_cCFv() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user