mirror of
https://github.com/zeldaret/tp
synced 2026-08-02 00:24:25 -04:00
d_a_shop_item, d_a_b_go, d_a_b_gos OK (#2085)
* d_a_shop_item OK * d_a_b_go OK * d_a_b_gos OK * remove asm * some work on d_a_b_oh / d_a_b_zant_sima * d_a_startAndGoal done
This commit is contained in:
+188
-683
File diff suppressed because it is too large
Load Diff
+389
-642
File diff suppressed because it is too large
Load Diff
+119
-117
@@ -921,192 +921,193 @@ static void non(b_oh_class* i_this) {
|
||||
}
|
||||
|
||||
/* 8061C2C4-8061CB4C 000C84 0888+00 2/1 0/0 0/0 .text action__FP10b_oh_class */
|
||||
// close-ish
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void action(b_oh_class* i_this) {
|
||||
BOOL bvar;
|
||||
int uvar;
|
||||
b_oh_class* a_this = (b_oh_class*)i_this;
|
||||
int var_r28;
|
||||
BOOL var_r27;
|
||||
|
||||
cXyz sp90;
|
||||
cXyz sp9C;
|
||||
|
||||
cXyz local_90;
|
||||
cXyz cstack_9c;
|
||||
a_this->mAngleToPlayer = fopAcM_searchPlayerAngleY(a_this);
|
||||
a_this->mDistToPlayer = fopAcM_searchPlayerDistance(a_this);
|
||||
|
||||
i_this->mAngleToPlayer = fopAcM_searchPlayerAngleY(i_this);
|
||||
i_this->mDistToPlayer = fopAcM_searchPlayerDistance(i_this);
|
||||
fopAcM_OffStatus(a_this, 0);
|
||||
a_this->attention_info.flags = 0;
|
||||
|
||||
fopAcM_OffStatus(i_this, 0);
|
||||
i_this->attention_info.flags = 0;
|
||||
var_r28 = 0;
|
||||
var_r27 = true;
|
||||
|
||||
uvar = 0;
|
||||
bvar = true;
|
||||
cLib_addCalcAngleS2(&a_this->field_0xc98, 0x800, 1, 0x10);
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->field_0xc98, 0x800, 1, 0x10);
|
||||
|
||||
switch (i_this->mAction) {
|
||||
switch (a_this->mAction) {
|
||||
case ACTION_START:
|
||||
start(i_this);
|
||||
uvar = 1;
|
||||
start(a_this);
|
||||
var_r28 = 1;
|
||||
break;
|
||||
case ACTION_WAIT:
|
||||
wait(i_this);
|
||||
uvar = 1;
|
||||
wait(a_this);
|
||||
var_r28 = 1;
|
||||
break;
|
||||
case ACTION_ATTACK:
|
||||
attack(i_this);
|
||||
uvar = 2;
|
||||
attack(a_this);
|
||||
var_r28 = 2;
|
||||
boss->field_0x4794 = 180;
|
||||
break;
|
||||
case ACTION_CAUGHT:
|
||||
caught(i_this);
|
||||
bvar = false;
|
||||
uvar = 3;
|
||||
caught(a_this);
|
||||
var_r27 = false;
|
||||
var_r28 = 3;
|
||||
boss->field_0x4794 = 180;
|
||||
break;
|
||||
case ACTION_END:
|
||||
end(i_this);
|
||||
uvar = 1;
|
||||
end(a_this);
|
||||
var_r28 = 1;
|
||||
break;
|
||||
case ACTION_NON:
|
||||
non(i_this);
|
||||
non(a_this);
|
||||
return;
|
||||
}
|
||||
|
||||
if (boss->field_0x4752 == 2) {
|
||||
cLib_addCalc2(&i_this->field_0x60c, 500.0f, 1.0f, 80.0f);
|
||||
cLib_addCalc2(&a_this->field_0x60c, 500.0f, 1.0f, 80.0f);
|
||||
}
|
||||
|
||||
if (uvar == 1) {
|
||||
f32 fvar15 = i_this->field_0x608 * 500.0f;
|
||||
f32 fvar14 = i_this->field_0x608 * 1500.0f;
|
||||
s16 tmp = 2000;
|
||||
if (var_r28 == 1) {
|
||||
f32 var_f29 = a_this->field_0x608 * 500.0f;
|
||||
f32 var_f28 = a_this->field_0x608 * 1500.0f;
|
||||
s16 var_r5 = 2000;
|
||||
|
||||
for (int i = i_this->field_0xca8; i < 30; i++) {
|
||||
f32 fvar = 1.0f;
|
||||
f32 var_f31 = 1.0f;
|
||||
if (i < 5) {
|
||||
fvar = i * 0.2f;
|
||||
var_f31 = i * 0.2f;
|
||||
} else if (i >= 20) {
|
||||
fvar = (i - 20) * 0.3f + 1.0f;
|
||||
var_f31 = (i - 20) * 0.3f + 1.0f;
|
||||
}
|
||||
|
||||
i_this->field_0x6d0[i].x = fvar * (fvar15 * cM_ssin(i_this->field_0x5f8 + (i * 1800)));
|
||||
i_this->field_0x6d0[i].y = fvar * (fvar14 * cM_ssin(i_this->field_0x5fa + (i * 1800)));
|
||||
a_this->field_0x6d0[i].x = var_f31 * (var_f29 * cM_ssin( i_this->field_0x5f8 + (i * 1800) ));
|
||||
a_this->field_0x6d0[i].y = var_f31 * (var_f28 * cM_ssin( i_this->field_0x5fa + (i * 1800) ));
|
||||
|
||||
i_this->field_0x838[i].x =
|
||||
tmp + fvar * (fvar15 * cM_ssin(i_this->field_0x5fa + (i * 7000)) * 0.5f);
|
||||
i_this->field_0x838[i].y =
|
||||
fvar * (fvar14 * cM_ssin(i_this->field_0x5f8 + (i * 7000)) * 0.5f);
|
||||
a_this->field_0x838[i].x =
|
||||
var_r5 + var_f31 * (var_f29 * cM_ssin(a_this->field_0x5fa + (i * 7000)) * 0.5f);
|
||||
a_this->field_0x838[i].y =
|
||||
var_f31 * (var_f28 * cM_ssin(a_this->field_0x5f8 + (i * 7000)) * 0.5f);
|
||||
|
||||
tmp -= 200;
|
||||
if (tmp < 0) {
|
||||
tmp = 0;
|
||||
var_r5 -= 200;
|
||||
if (var_r5 < 0) {
|
||||
var_r5 = 0;
|
||||
}
|
||||
|
||||
i_this->field_0x964[i] =
|
||||
i_this->field_0x610 + 1.0f +
|
||||
i_this->field_0x610 * cM_ssin(i_this->field_0x5f6 + i * -10000);
|
||||
a_this->field_0x964[i] =
|
||||
a_this->field_0x610 + 1.0f +
|
||||
a_this->field_0x610 * cM_ssin(a_this->field_0x5f6 + i * -10000);
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.x, -0xF2C, 4, 100);
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->home.angle.y, 4, 0x100);
|
||||
} else if (uvar == 2) {
|
||||
f32 fvar = i_this->field_0xc8c;
|
||||
for (int i = i_this->field_0xca8; i < 30; i++) {
|
||||
if (i >= 30 - i_this->field_0xca2) {
|
||||
i_this->field_0x6d0[i].y = i_this->field_0xca4;
|
||||
cLib_addCalcAngleS2(&a_this->current.angle.x, -0xF2C, 4, 100);
|
||||
cLib_addCalcAngleS2(&a_this->current.angle.y, a_this->home.angle.y, 4, 0x100);
|
||||
} else if (var_r28 == 2) {
|
||||
f32 var_f4 = a_this->field_0xc8c;
|
||||
for (int i = a_this->field_0xca8; i < 30; i++) {
|
||||
if (i >= 30 - a_this->field_0xca2) {
|
||||
a_this->field_0x6d0[i].y = a_this->field_0xca4;
|
||||
} else {
|
||||
i_this->field_0x6d0[i].y = 0;
|
||||
a_this->field_0x6d0[i].y = 0;
|
||||
}
|
||||
|
||||
if (i >= 13) {
|
||||
fvar *= i_this->field_0xc90 + 1.0f;
|
||||
var_f4 *= a_this->field_0xc90 + 1.0f;
|
||||
}
|
||||
|
||||
i_this->field_0x6d0[i].x =
|
||||
fvar * cM_ssin(i_this->field_0xc94 + i * i_this->field_0xc96);
|
||||
a_this->field_0x6d0[i].x =
|
||||
var_f4 * cM_ssin(a_this->field_0xc94 + i * a_this->field_0xc96);
|
||||
|
||||
if (i >= 18) {
|
||||
i_this->field_0x838[i].x =
|
||||
i_this->field_0xc9c * cM_ssin(i_this->field_0x5cc * 1000 + i * -4000);
|
||||
a_this->field_0x838[i].x =
|
||||
a_this->field_0xc9c * cM_ssin(a_this->field_0x5cc * 1000 + i * -4000);
|
||||
} else {
|
||||
i_this->field_0x838[i].x = 0;
|
||||
a_this->field_0x838[i].x = 0;
|
||||
}
|
||||
|
||||
i_this->field_0x838[i].y = 0;
|
||||
i_this->field_0x964[i] =
|
||||
i_this->field_0x610 + 1.0f +
|
||||
i_this->field_0x610 * cM_ssin(i_this->field_0x5f6 + i * -10000);
|
||||
a_this->field_0x838[i].y = 0;
|
||||
a_this->field_0x964[i] =
|
||||
a_this->field_0x610 + 1.0f +
|
||||
a_this->field_0x610 * cM_ssin(a_this->field_0x5f6 + i * -10000);
|
||||
}
|
||||
} else if (uvar == 3) {
|
||||
for (int i = i_this->field_0xca8; i < 30; i++) {
|
||||
i_this->field_0x838[i].y = 0;
|
||||
i_this->field_0x838[i].x = 0;
|
||||
} else if (var_r28 == 3) {
|
||||
for (int i = a_this->field_0xca8; i < 30; i++) {
|
||||
a_this->field_0x838[i].y = 0;
|
||||
a_this->field_0x838[i].x = 0;
|
||||
|
||||
if (i >= 30 - i_this->field_0xca2) {
|
||||
i_this->field_0x6d0[i].y = i_this->field_0xca4;
|
||||
i_this->field_0x6d0[i].x = 0;
|
||||
i_this->field_0x964[i] = 1.0f;
|
||||
if (i >= 30 - a_this->field_0xca2) {
|
||||
a_this->field_0x6d0[i].y = a_this->field_0xca4;
|
||||
a_this->field_0x6d0[i].x = 0;
|
||||
a_this->field_0x964[i] = 1.0f;
|
||||
} else {
|
||||
i_this->field_0x6d0[i].y = 0;
|
||||
i_this->field_0x6d0[i].x = 2250;
|
||||
i_this->field_0x964[i] =
|
||||
i_this->field_0x610 + 1.0f +
|
||||
i_this->field_0x610 * cM_ssin(i_this->field_0x5f6 + i * -10000);
|
||||
a_this->field_0x6d0[i].y = 0;
|
||||
a_this->field_0x6d0[i].x = 2250;
|
||||
a_this->field_0x964[i] =
|
||||
a_this->field_0x610 + 1.0f +
|
||||
a_this->field_0x610 * cM_ssin(a_this->field_0x5f6 + i * -10000);
|
||||
}
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.x, 0xA92, 4, 0x200);
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->home.angle.y, 4, 0x800);
|
||||
cLib_addCalcAngleS2(&a_this->current.angle.x, 0xA92, 4, 0x200);
|
||||
cLib_addCalcAngleS2(&a_this->current.angle.y, a_this->home.angle.y, 4, 0x800);
|
||||
}
|
||||
|
||||
i_this->field_0x600 =
|
||||
(-i_this->field_0x614 - i_this->field_0x60c) + cM_ssin(i_this->field_0x5cc * 200) * 100.0f;
|
||||
i_this->field_0x604 = ((100.0f - i_this->field_0x614) - i_this->field_0x60c) +
|
||||
cM_ssin(i_this->field_0x5cc * 200) * 100.0f;
|
||||
i_this->field_0x5f8 += (s16)i_this->field_0x600;
|
||||
i_this->field_0x5fa += (s16)i_this->field_0x604;
|
||||
i_this->field_0x5fc = i_this->field_0x60c + 2000.0f;
|
||||
i_this->field_0x5f6 += (s16)i_this->field_0x5fc;
|
||||
a_this->field_0x600 =
|
||||
(-a_this->field_0x614 - a_this->field_0x60c) + cM_ssin(a_this->field_0x5cc * 200) * 100.0f;
|
||||
a_this->field_0x604 = ((100.0f - a_this->field_0x614) - a_this->field_0x60c) +
|
||||
cM_ssin(a_this->field_0x5cc * 200) * 100.0f;
|
||||
a_this->field_0x5f8 += (s16)a_this->field_0x600;
|
||||
a_this->field_0x5fa += (s16)a_this->field_0x604;
|
||||
a_this->field_0x5fc = a_this->field_0x60c + 2000.0f;
|
||||
a_this->field_0x5f6 += (s16)a_this->field_0x5fc;
|
||||
|
||||
cLib_addCalc0(&i_this->field_0x60c, 0.1f, 50.0f);
|
||||
cLib_addCalc2(&i_this->field_0x610, 0.2f, 0.1f, 0.01f);
|
||||
|
||||
if (uvar <= 3) {
|
||||
cLib_addCalc2(&i_this->mTentacleLength, l_HIO.mLength, 0.1f, 0.5f);
|
||||
cLib_addCalc0(&a_this->field_0x60c, 0.1f, 50.0f);
|
||||
cLib_addCalc2(&a_this->field_0x610, 0.2f, 0.1f, 0.01f);
|
||||
|
||||
if (var_r28 <= 3) {
|
||||
cLib_addCalc2(&a_this->mTentacleLength, l_HIO.mLength, 0.1f, 0.5f);
|
||||
}
|
||||
|
||||
MTXCopy(i_this->mpMorf->getModel()->i_getAnmMtx(i_this->field_0x5c8 + 8),
|
||||
MTXCopy(boss->mParts[0].field_0x0->getModel()->i_getAnmMtx(a_this->field_0x5c8 + 8),
|
||||
mDoMtx_stack_c::get());
|
||||
mDoMtx_stack_c::multVecZero(&i_this->current.pos);
|
||||
mDoMtx_stack_c::multVecZero(&a_this->current.pos);
|
||||
|
||||
local_90.x = i_this->current.pos.x - boss->home.pos.x;
|
||||
local_90.z = i_this->current.pos.z - boss->home.pos.z;
|
||||
i_this->home.angle.y = cM_atan2s(local_90.x, local_90.z);
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.y, i_this->current.angle.y, 2, 0x2000);
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.x, i_this->current.angle.x, 2, 0x2000);
|
||||
sp90.x = a_this->current.pos.x - boss->home.pos.x;
|
||||
sp90.z = a_this->current.pos.z - boss->home.pos.z;
|
||||
a_this->home.angle.y = cM_atan2s(sp90.x, sp90.z);
|
||||
cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 2, 0x2000);
|
||||
cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 2, 0x2000);
|
||||
|
||||
for (int i = i_this->field_0xca8; i < 30; i++) {
|
||||
for (int i = a_this->field_0xca8; i < 30; i++) {
|
||||
if (Cinit) {
|
||||
i_this->field_0x61c[i] = i_this->field_0x6d0[i];
|
||||
i_this->field_0x784[i] = i_this->field_0x838[i];
|
||||
i_this->field_0x8ec[i] = i_this->field_0x964[i];
|
||||
a_this->field_0x61c[i] = a_this->field_0x6d0[i];
|
||||
a_this->field_0x784[i] = a_this->field_0x838[i];
|
||||
a_this->field_0x8ec[i] = a_this->field_0x964[i];
|
||||
} else {
|
||||
cLib_addCalcAngleS2(&i_this->field_0x61c[i].x, i_this->field_0x6d0[i].x, 2,
|
||||
i_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&i_this->field_0x61c[i].y, i_this->field_0x6d0[i].y, 2,
|
||||
i_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&i_this->field_0x784[i].x, i_this->field_0x838[i].x, 2,
|
||||
i_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&i_this->field_0x784[i].y, i_this->field_0x838[i].y, 2,
|
||||
i_this->field_0xc98);
|
||||
cLib_addCalc2(&i_this->field_0x8ec[i], i_this->field_0x964[i], 0.5f, 0.2f);
|
||||
cLib_addCalc0(&i_this->field_0x9dc[i], 0.1f, 0.2f);
|
||||
cLib_addCalcAngleS2(&a_this->field_0x61c[i].x, a_this->field_0x6d0[i].x, 2,
|
||||
a_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&a_this->field_0x61c[i].y, a_this->field_0x6d0[i].y, 2,
|
||||
a_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&a_this->field_0x784[i].x, a_this->field_0x838[i].x, 2,
|
||||
a_this->field_0xc98);
|
||||
cLib_addCalcAngleS2(&a_this->field_0x784[i].y, a_this->field_0x838[i].y, 2,
|
||||
a_this->field_0xc98);
|
||||
cLib_addCalc2(&a_this->field_0x8ec[i], a_this->field_0x964[i], 0.5f, 0.2f);
|
||||
cLib_addCalc0(&a_this->field_0x9dc[i], 0.1f, 0.2f);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (bvar && boss->mDemoAction == 0) {
|
||||
i_this->mColliders[i].OnCoSetBit();
|
||||
if (var_r27 && boss->mDemoAction == 0) {
|
||||
a_this->mColliders[i].OnCoSetBit();
|
||||
} else {
|
||||
i_this->mColliders[i].OffCoSetBit();
|
||||
a_this->mColliders[i].OffCoSetBit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1592,7 +1593,8 @@ extern "C" void __ct__5csXyzFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daB_OH_HIO_c::~daB_OH_HIO_c() {
|
||||
// asm daB_OH_HIO_c::~daB_OH_HIO_c() {
|
||||
extern "C" asm void __dt__12daB_OH_HIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh/d_a_b_oh/__dt__12daB_OH_HIO_cFv.s"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,33 +1,21 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_b_zant_sima
|
||||
//
|
||||
/**
|
||||
* d_a_b_zant_sima.cpp
|
||||
* Boss Zant Lava Island
|
||||
*/
|
||||
|
||||
#include "rel/d/a/b/d_a_b_zant_sima/d_a_b_zant_sima.h"
|
||||
#include "JSystem/JKernel/JKRHeap.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_procname.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
static int daB_ZANTS_Draw(daB_ZANTS_c*);
|
||||
static int daB_ZANTS_Execute(daB_ZANTS_c*);
|
||||
static int daB_ZANTS_IsDelete(daB_ZANTS_c*);
|
||||
static int daB_ZANTS_Delete(daB_ZANTS_c*);
|
||||
static int daB_ZANTS_Create(daB_ZANTS_c*);
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#define TIMER_PLAYER 0
|
||||
#define TIMER_ZANT 1
|
||||
|
||||
/* 806529D8-80652AAC 000078 00D4+00 1/1 0/0 0/0 .text draw__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::draw() {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
|
||||
dComIfGd_setListBG();
|
||||
mpBtkAnm->entry(mpModel->getModelData());
|
||||
mpBrkAnm->entry(mpModel->getModelData());
|
||||
@@ -43,13 +31,13 @@ static int daB_ZANTS_Draw(daB_ZANTS_c* i_this) {
|
||||
|
||||
/* 80652ACC-80652B28 00016C 005C+00 1/1 0/0 0/0 .text
|
||||
* zants_ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
static void zants_ride_call_back(dBgW* param_0, fopAc_ac_c* i_this, fopAc_ac_c* i_target) {
|
||||
static void zants_ride_call_back(dBgW* i_bgw, fopAc_ac_c* i_this, fopAc_ac_c* i_target) {
|
||||
if (fopAcM_GetName(i_target) == PROC_ALINK) {
|
||||
((daB_ZANTS_c*)i_this)->mPlayerID = fopAcM_GetID(i_target);
|
||||
((daB_ZANTS_c*)i_this)->field_0x584[0] = 3;
|
||||
((daB_ZANTS_c*)i_this)->mSinkTimers[TIMER_PLAYER] = 3;
|
||||
} else if (fopAcM_GetName(i_target) == PROC_B_ZANT) {
|
||||
((daB_ZANTS_c*)i_this)->mBossID = fopAcM_GetID(i_target);
|
||||
((daB_ZANTS_c*)i_this)->field_0x584[1] = 3;
|
||||
((daB_ZANTS_c*)i_this)->mSinkTimers[TIMER_ZANT] = 3;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,50 +45,61 @@ static void zants_ride_call_back(dBgW* param_0, fopAc_ac_c* i_this, fopAc_ac_c*
|
||||
void daB_ZANTS_c::action() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
if (player->i_checkMagneBootsOn()) {
|
||||
field_0x584[0] = 3;
|
||||
mSinkTimers[TIMER_PLAYER] = 3;
|
||||
mPlayerID = fopAcM_GetID(player);
|
||||
}
|
||||
cXyz pos = current.pos;
|
||||
fopAc_ac_c* target;
|
||||
if (field_0x584[1] != 0) {
|
||||
if (fopAcM_SearchByID(mBossID, &target), target != NULL) {
|
||||
pos = target->current.pos;
|
||||
|
||||
cXyz target_pos = current.pos;
|
||||
|
||||
if (mSinkTimers[TIMER_ZANT] != 0) {
|
||||
fopAc_ac_c* target;
|
||||
fopAcM_SearchByID(mBossID, &target);
|
||||
|
||||
if (target != NULL) {
|
||||
target_pos = target->current.pos;
|
||||
}
|
||||
}
|
||||
u8 temp = field_0x584[3];
|
||||
field_0x584[3] = 0;
|
||||
field_0x584[2] = 0;
|
||||
if (field_0x584[1]) {
|
||||
field_0x584[3] = 1;
|
||||
|
||||
bool prev_sink_zant = mSinkZant;
|
||||
mSinkZant = false;
|
||||
mSinkPlayer = false;
|
||||
if (mSinkTimers[TIMER_ZANT] != 0) {
|
||||
mSinkZant = true;
|
||||
}
|
||||
if (field_0x584[0]) {
|
||||
field_0x584[2] = 1;
|
||||
|
||||
if (mSinkTimers[TIMER_PLAYER] != 0) {
|
||||
mSinkPlayer = true;
|
||||
}
|
||||
f32 x = pos.x - current.pos.x;
|
||||
f32 z = pos.z - current.pos.z;
|
||||
pos.absXZ(current.pos);
|
||||
cLib_addCalcAngleS2(&field_0x58c.y, cM_atan2s(x, z), 8, 1024);
|
||||
if (temp == 0 && field_0x584[3] != 0) {
|
||||
if (field_0x58c.x == 0) {
|
||||
field_0x58c.y = cM_atan2s(x, z);
|
||||
|
||||
f32 x = target_pos.x - current.pos.x;
|
||||
f32 z = target_pos.z - current.pos.z;
|
||||
target_pos.absXZ(current.pos);
|
||||
cLib_addCalcAngleS2(&mRotation.y, cM_atan2s(x, z), 8, 0x400);
|
||||
|
||||
if (!prev_sink_zant && mSinkZant) {
|
||||
if (mRotation.x == 0) {
|
||||
mRotation.y = cM_atan2s(x, z);
|
||||
}
|
||||
field_0x58c.z = 0x400;
|
||||
mRotation.z = 0x400;
|
||||
}
|
||||
cLib_addCalcAngleS2(&field_0x58c.x, 0, 8, 64);
|
||||
field_0x58c.x += field_0x58c.z;
|
||||
if (0x1400 < field_0x58c.x) {
|
||||
field_0x58c.x = 0x1400;
|
||||
field_0x58c.z = 0;
|
||||
|
||||
cLib_addCalcAngleS2(&mRotation.x, 0, 8, 0x40);
|
||||
mRotation.x += mRotation.z;
|
||||
if (0x1400 < mRotation.x) {
|
||||
mRotation.x = 0x1400;
|
||||
mRotation.z = 0;
|
||||
}
|
||||
cLib_chaseAngleS(&field_0x58c.z, 0, 128);
|
||||
f32 temp2 = 150.0f;
|
||||
if (field_0x584[0] || field_0x584[1]) {
|
||||
temp2 = 130.0f;
|
||||
cLib_chaseAngleS(&mRotation.z, 0, 0x80);
|
||||
|
||||
f32 target_height = 150.0f;
|
||||
if (mSinkTimers[TIMER_PLAYER] != 0 || mSinkTimers[TIMER_ZANT] != 0) {
|
||||
target_height = 130.0f;
|
||||
}
|
||||
cLib_addCalc2(&field_0x588, temp2, 0.2f, 20.0f);
|
||||
|
||||
cLib_addCalc2(&mHeight, target_height, 0.2f, 20.0f);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x584[i] != 0) {
|
||||
field_0x584[i] -= 1;
|
||||
if (mSinkTimers[i] != 0) {
|
||||
mSinkTimers[i]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -109,17 +108,20 @@ void daB_ZANTS_c::action() {
|
||||
int daB_ZANTS_c::execute() {
|
||||
mpBrkAnm->play();
|
||||
mpBtkAnm->play();
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y + field_0x588, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(field_0x58c.y);
|
||||
mDoMtx_stack_c::XrotM(field_0x58c.x);
|
||||
mDoMtx_stack_c::YrotM(-field_0x58c.y);
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y + mHeight, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(mRotation.y);
|
||||
mDoMtx_stack_c::XrotM(mRotation.x);
|
||||
mDoMtx_stack_c::YrotM(-mRotation.y);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), field_0x594);
|
||||
if (mpBgW) {
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
|
||||
|
||||
if (mpBgW != NULL) {
|
||||
mpBgW->Move();
|
||||
}
|
||||
|
||||
action();
|
||||
return 1;
|
||||
}
|
||||
@@ -137,7 +139,7 @@ static int daB_ZANTS_IsDelete(daB_ZANTS_c* i_this) {
|
||||
/* 80652EC0-80652F18 000560 0058+00 1/1 0/0 0/0 .text _delete__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::_delete() {
|
||||
dComIfG_resDelete(&mPhase, "MAGNESIMA");
|
||||
if (mpBgW) {
|
||||
if (mpBgW != NULL) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
return 1;
|
||||
@@ -148,6 +150,88 @@ static int daB_ZANTS_Delete(daB_ZANTS_c* i_this) {
|
||||
return i_this->_delete();
|
||||
}
|
||||
|
||||
/* 80652F38-80653180 0005D8 0248+00 1/1 0/0 0/0 .text CreateHeap__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("MAGNESIMA", 7);
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mpBtkAnm = new mDoExt_btkAnm();
|
||||
if (mpBtkAnm == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("MAGNESIMA", 13);
|
||||
if (!mpBtkAnm->init(mpModel->getModelData(), pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0,
|
||||
-1))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mpBrkAnm = new mDoExt_brkAnm();
|
||||
if (mpBrkAnm == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("MAGNESIMA", 10);
|
||||
if (!mpBrkAnm->init(mpModel->getModelData(), pbrk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0,
|
||||
-1))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("MAGNESIMA", 16);
|
||||
if (mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &mMtx)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
mpBgW->SetRideCallback(zants_ride_call_back);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 806531C8-806531E8 000868 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
return static_cast<daB_ZANTS_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 806531E8-80653304 000888 011C+00 1/1 0/0 0/0 .text create__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::create() {
|
||||
fopAcM_SetupActor(this, daB_ZANTS_c);
|
||||
|
||||
int phase_state = dComIfG_resLoad(&mPhase, "MAGNESIMA");
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x3AA0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (mpBgW && dComIfG_Bgsp().Regist(mpBgW, this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
attention_info.flags = 0;
|
||||
mHeight = 150.0f;
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_SetMin(this, -200.0f, -500.0f, -500.0f);
|
||||
fopAcM_SetMax(this, 200.0f, 500.0f, 500.0f);
|
||||
daB_ZANTS_Execute(this);
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80653304-80653324 0009A4 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Create__FP11daB_ZANTS_c */
|
||||
static int daB_ZANTS_Create(daB_ZANTS_c* i_this) {
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* 80653370-80653390 -00001 0020+00 1/0 0/0 0/0 .data l_daB_ZANTS_Method */
|
||||
static actor_method_class l_daB_ZANTS_Method = {
|
||||
(process_method_func)daB_ZANTS_Create, (process_method_func)daB_ZANTS_Delete,
|
||||
@@ -171,71 +255,4 @@ extern actor_process_profile_definition g_profile_B_ZANTS = {
|
||||
0x40000,
|
||||
fopAc_ACTOR_e,
|
||||
fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
/* 80652F38-80653180 0005D8 0248+00 1/1 0/0 0/0 .text CreateHeap__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("MAGNESIMA", 7);
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
mpBtkAnm = new mDoExt_btkAnm();
|
||||
if (mpBtkAnm == NULL) {
|
||||
return 0;
|
||||
}
|
||||
J3DAnmTextureSRTKey* srtkey = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("MAGNESIMA", 13);
|
||||
if (!mpBtkAnm->init(mpModel->getModelData(), srtkey, 1, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
mpBrkAnm = new mDoExt_brkAnm();
|
||||
if (mpBrkAnm == NULL) {
|
||||
return 0;
|
||||
}
|
||||
J3DAnmTevRegKey* tevkey = (J3DAnmTevRegKey*)dComIfG_getObjectRes("MAGNESIMA", 10);
|
||||
if (!mpBrkAnm->init(mpModel->getModelData(), tevkey, 1, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
cBgD_t* bgt = (cBgD_t*)dComIfG_getObjectRes("MAGNESIMA", 16);
|
||||
if (mpBgW->Set(bgt, 1, &field_0x594)) {
|
||||
return 0;
|
||||
}
|
||||
mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
mpBgW->SetRideCallback(zants_ride_call_back);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 806531C8-806531E8 000868 0020+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
return static_cast<daB_ZANTS_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 806531E8-80653304 000888 011C+00 1/1 0/0 0/0 .text create__11daB_ZANTS_cFv */
|
||||
int daB_ZANTS_c::create() {
|
||||
fopAcM_SetupActor(this, daB_ZANTS_c);
|
||||
int result = dComIfG_resLoad(&mPhase, "MAGNESIMA");
|
||||
if (result == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x3AA0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
if (mpBgW && dComIfG_Bgsp().Regist(mpBgW, this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
attention_info.flags = 0;
|
||||
field_0x588 = 150.0f;
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_SetMin(this, -200.0f, -500.0f, -500.0f);
|
||||
fopAcM_SetMax(this, 200.0f, 500.0f, 500.0f);
|
||||
daB_ZANTS_Execute(this);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 80653304-80653324 0009A4 0020+00 1/0 0/0 0/0 .text daB_ZANTS_Create__FP11daB_ZANTS_c */
|
||||
static int daB_ZANTS_Create(daB_ZANTS_c* i_this) {
|
||||
return i_this->create();
|
||||
}
|
||||
};
|
||||
@@ -10,17 +10,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fopAcM_lc_c {
|
||||
/* 8001DC68 */ void lineCheck(cXyz const*, cXyz const*, fopAc_ac_c const*);
|
||||
};
|
||||
|
||||
struct fopAcM_gc_c {
|
||||
/* 8001DCBC */ void gndCheck(cXyz const*);
|
||||
|
||||
static u8 mGndCheck[84];
|
||||
static f32 mGroundY;
|
||||
};
|
||||
|
||||
struct J3DMaterial {};
|
||||
|
||||
struct daMidna_matAnm_c {
|
||||
|
||||
@@ -1,629 +1,311 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_shop_item
|
||||
//
|
||||
/**
|
||||
* d_a_shop_item.cpp
|
||||
* Shop Item Actor
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_shop_item/d_a_shop_item.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct mDoLib_clipper {
|
||||
static f32 mSystemFar;
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daShopItem_c {
|
||||
/* 8059E9B8 */ void getShopArcname();
|
||||
/* 8059EC04 */ void getHeapSize();
|
||||
/* 8059EC1C */ void CreateInit();
|
||||
/* 8059ED58 */ void set_mtx();
|
||||
/* 8059EEF4 */ void _execute();
|
||||
/* 8059EF48 */ void _draw();
|
||||
/* 8059EF9C */ void setListStart();
|
||||
/* 8059EFA0 */ void setShadow();
|
||||
/* 8059F024 */ void chkFlag(int);
|
||||
/* 8059F044 */ void getTevFrm();
|
||||
/* 8059F064 */ void getBtpFrm();
|
||||
/* 8059F084 */ void getShadowSize();
|
||||
/* 8059F0A0 */ void getCollisionH();
|
||||
/* 8059F0BC */ void getCollisionR();
|
||||
|
||||
static void* const mData[276];
|
||||
static f32 const m_cullfar_max;
|
||||
};
|
||||
|
||||
struct daItemBase_c {
|
||||
/* 80037A74 */ void show();
|
||||
/* 80037ACC */ void chkDraw();
|
||||
/* 80144724 */ void DeleteBase(char const*);
|
||||
/* 8014474C */ bool clothCreate();
|
||||
/* 80144754 */ bool __CreateHeap();
|
||||
/* 80144B94 */ void DrawBase();
|
||||
/* 80144C30 */ void RotateYBase();
|
||||
/* 80144CC4 */ void settingBeforeDraw();
|
||||
/* 80144D18 */ void setTevStr();
|
||||
/* 80144D70 */ void setShadow();
|
||||
/* 80144EDC */ void animEntry();
|
||||
/* 8014503C */ void animPlay(f32, f32, f32, f32, f32, f32);
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct dDlst_shadowControl_c {
|
||||
static u8 mSimpleTexObj[32];
|
||||
};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
};
|
||||
|
||||
struct dBgS_PolyPassChk {
|
||||
/* 80078E68 */ void SetObj();
|
||||
};
|
||||
|
||||
struct dBgS_ObjAcch {
|
||||
/* 8059F324 */ ~dBgS_ObjAcch();
|
||||
};
|
||||
|
||||
struct dBgS_AcchCir {
|
||||
/* 80075EAC */ dBgS_AcchCir();
|
||||
};
|
||||
|
||||
struct dBgS_Acch {
|
||||
/* 80075F94 */ ~dBgS_Acch();
|
||||
/* 800760A0 */ dBgS_Acch();
|
||||
};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 8059F294 */ ~cM3dGCyl();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 8059F2DC */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct _GXTexObj {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void getShopArcname__12daShopItem_cFv();
|
||||
extern "C" void getHeapSize__12daShopItem_cFv();
|
||||
extern "C" void CreateInit__12daShopItem_cFv();
|
||||
extern "C" void set_mtx__12daShopItem_cFv();
|
||||
extern "C" void _execute__12daShopItem_cFv();
|
||||
extern "C" void _draw__12daShopItem_cFv();
|
||||
extern "C" void setListStart__12daShopItem_cFv();
|
||||
extern "C" void setShadow__12daShopItem_cFv();
|
||||
extern "C" void chkFlag__12daShopItem_cFi();
|
||||
extern "C" void getTevFrm__12daShopItem_cFv();
|
||||
extern "C" void getBtpFrm__12daShopItem_cFv();
|
||||
extern "C" void getShadowSize__12daShopItem_cFv();
|
||||
extern "C" void getCollisionH__12daShopItem_cFv();
|
||||
extern "C" void getCollisionR__12daShopItem_cFv();
|
||||
extern "C" static void daShopItem_Create__FPv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" static void daShopItem_Delete__FPv();
|
||||
extern "C" static void daShopItem_Draw__FPv();
|
||||
extern "C" static void daShopItem_Execute__FPv();
|
||||
extern "C" static bool daShopItem_IsDelete__FPv();
|
||||
extern "C" static void func_8059F420();
|
||||
extern "C" static void func_8059F428();
|
||||
extern "C" f32 const m_cullfar_max__12daShopItem_c;
|
||||
extern "C" extern char const* const d_a_shop_item__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
|
||||
extern "C" void mDoMtx_XrotM__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void
|
||||
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
|
||||
extern "C" void show__12daItemBase_cFv();
|
||||
extern "C" void chkDraw__12daItemBase_cFv();
|
||||
extern "C" void CheckShopItemCreateHeap__FP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void DeleteBase__12daItemBase_cFPCc();
|
||||
extern "C" bool clothCreate__12daItemBase_cFv();
|
||||
extern "C" bool __CreateHeap__12daItemBase_cFv();
|
||||
extern "C" void DrawBase__12daItemBase_cFv();
|
||||
extern "C" void RotateYBase__12daItemBase_cFv();
|
||||
extern "C" void settingBeforeDraw__12daItemBase_cFv();
|
||||
extern "C" void setTevStr__12daItemBase_cFv();
|
||||
extern "C" void setShadow__12daItemBase_cFv();
|
||||
extern "C" void animEntry__12daItemBase_cFv();
|
||||
extern "C" void animPlay__12daItemBase_cFffffff();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" void* const mData__12daShopItem_c[276];
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12daItemBase_c[17 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
extern "C" f32 mSystemFar__14mDoLib_clipper;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059F48C-8059F48C 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8059F48C = "R_SP160";
|
||||
#pragma pop
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
|
||||
/* 8059E9B8-8059EC04 000078 024C+00 2/2 0/0 0/0 .text getShopArcname__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getShopArcname() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getShopArcname__12daShopItem_cFv.s"
|
||||
const char* daShopItem_c::getShopArcname() {
|
||||
switch (m_itemNo) {
|
||||
case NO_ITEM:
|
||||
if (strcmp("R_SP160", dComIfGp_getStartStageName()) == 0) {
|
||||
mShopItemID = SHOP_ITEMNO_ARMOR_SOLD;
|
||||
} else {
|
||||
mShopItemID = SHOP_ITEMNO_SOLD;
|
||||
}
|
||||
break;
|
||||
case OIL_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_OIL;
|
||||
break;
|
||||
case MILK_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_MILK;
|
||||
break;
|
||||
case HALF_MILK_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_HALF_MILK;
|
||||
break;
|
||||
case RED_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_RED;
|
||||
break;
|
||||
case GREEN_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_GREEN;
|
||||
break;
|
||||
case BLUE_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_BLUE;
|
||||
break;
|
||||
case DROP_BOTTLE:
|
||||
mShopItemID = SHOP_ITEMNO_DROP;
|
||||
break;
|
||||
case ARROW_10:
|
||||
case ARROW_20:
|
||||
case ARROW_30:
|
||||
mShopItemID = SHOP_ITEMNO_ARROW;
|
||||
break;
|
||||
case SHIELD:
|
||||
mShopItemID = SHOP_ITEMNO_SHIELD_B;
|
||||
break;
|
||||
case HYLIA_SHIELD:
|
||||
mShopItemID = SHOP_ITEMNO_SHIELD_A;
|
||||
break;
|
||||
case NORMAL_BOMB:
|
||||
case BOMB_5:
|
||||
case BOMB_10:
|
||||
case BOMB_20:
|
||||
case BOMB_30:
|
||||
mShopItemID = SHOP_ITEMNO_BOMB;
|
||||
break;
|
||||
case WATER_BOMB:
|
||||
mShopItemID = SHOP_ITEMNO_WATER_BOMB;
|
||||
break;
|
||||
case POKE_BOMB:
|
||||
mShopItemID = SHOP_ITEMNO_POKE_BOMB;
|
||||
break;
|
||||
case BOMB_BAG_LV1:
|
||||
case BOMB_IN_BAG:
|
||||
mShopItemID = SHOP_ITEMNO_BOMB_BAG;
|
||||
break;
|
||||
case BOMB_BAG_LV2:
|
||||
mShopItemID = SHOP_ITEMNO_BOMB_BAG_LV2;
|
||||
break;
|
||||
case BEE_CHILD:
|
||||
mShopItemID = SHOP_ITEMNO_BEE_CHILD;
|
||||
break;
|
||||
case PACHINKO:
|
||||
mShopItemID = SHOP_ITEMNO_PACHINKO;
|
||||
break;
|
||||
case HAWK_EYE:
|
||||
mShopItemID = SHOP_ITEMNO_HAWKEYE;
|
||||
break;
|
||||
case ARMOR:
|
||||
mShopItemID = SHOP_ITEMNO_ARMOR;
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return mData[mShopItemID].get_arcName();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059F438-8059F43C 000000 0004+00 2/2 0/0 0/0 .rodata m_cullfar_max__12daShopItem_c */
|
||||
SECTION_RODATA f32 const daShopItem_c::m_cullfar_max = 5000.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F438, &daShopItem_c::m_cullfar_max);
|
||||
|
||||
/* 8059F43C-8059F46C 000004 002E+02 1/1 0/0 0/0 .rodata HeapSizeTbl$3665 */
|
||||
SECTION_RODATA static u8 const HeapSizeTbl[46 + 2 /* padding */] = {
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x0E,
|
||||
0xB0,
|
||||
0x08,
|
||||
0x10,
|
||||
0x0E,
|
||||
0xB0,
|
||||
0x39,
|
||||
0x90,
|
||||
0x39,
|
||||
0x90,
|
||||
0x80,
|
||||
0x00,
|
||||
0x08,
|
||||
0x10,
|
||||
0x15,
|
||||
0x40,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
0x43,
|
||||
0xA0,
|
||||
0x22,
|
||||
0x80,
|
||||
0x08,
|
||||
0x10,
|
||||
0x08,
|
||||
0x10,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8059F43C, &HeapSizeTbl);
|
||||
const f32 daShopItem_c::m_cullfar_max = 5000.0f;
|
||||
|
||||
/* 8059EC04-8059EC1C 0002C4 0018+00 1/1 0/0 0/0 .text getHeapSize__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getHeapSize() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getHeapSize__12daShopItem_cFv.s"
|
||||
u16 daShopItem_c::getHeapSize() {
|
||||
static const u16 HeapSizeTbl[] = {
|
||||
0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810,
|
||||
0x0EB0, 0x0810, 0x0EB0, 0x3990, 0x3990, 0x8000, 0x0810, 0x1540,
|
||||
0x0810, 0x0810, 0x0810, 0x43A0, 0x2280, 0x0810, 0x0810,
|
||||
};
|
||||
|
||||
u8 a_ShopItemID = getShopItemID();
|
||||
OS_REPORT("ShopItemID [%u]\n", a_ShopItemID);
|
||||
ASSERT(a_ShopItemID < SHOP_ITEMNO_MAX);
|
||||
|
||||
return HeapSizeTbl[a_ShopItemID];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059F46C-8059F470 000034 0004+00 0/1 0/0 0/0 .rodata @3718 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3718 = -100.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F46C, &lit_3718);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F470-8059F474 000038 0004+00 0/2 0/0 0/0 .rodata @3719 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3719[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8059F470, &lit_3719);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F474-8059F478 00003C 0004+00 0/1 0/0 0/0 .rodata @3720 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3720 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F474, &lit_3720);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F478-8059F47C 000040 0004+00 0/1 0/0 0/0 .rodata @3721 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3721 = 200.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F478, &lit_3721);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F47C-8059F480 000044 0004+00 1/3 0/0 0/0 .rodata @3722 */
|
||||
SECTION_RODATA static f32 const lit_3722 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F47C, &lit_3722);
|
||||
|
||||
/* 8059F480-8059F484 000048 0004+00 0/1 0/0 0/0 .rodata @3723 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3723 = 5000.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F480, &lit_3723);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F484-8059F488 00004C 0004+00 0/1 0/0 0/0 .rodata @3724 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3724 = 4.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F484, &lit_3724);
|
||||
#pragma pop
|
||||
|
||||
/* 8059F48C-8059F48C 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8059F494 = "R_SP109";
|
||||
#pragma pop
|
||||
|
||||
/* 8059EC1C-8059ED58 0002DC 013C+00 1/1 0/0 0/0 .text CreateInit__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::CreateInit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/CreateInit__12daShopItem_cFv.s"
|
||||
void daShopItem_c::CreateInit() {
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
fopAcM_setCullSizeBox(this, -100.0f, 0.0f, -100.0f, 100.0f, 200.0f, 100.0f);
|
||||
|
||||
if (mDoLib_clipper::getFar() > 1.0f) {
|
||||
fopAcM_setCullSizeFar(this, 5000.0f / mDoLib_clipper::getFar());
|
||||
}
|
||||
|
||||
show();
|
||||
|
||||
if (strcmp("R_SP109", dComIfGp_getStartStageName()) == 0 && dComIfGp_getStartStageRoomNo() == 1)
|
||||
{
|
||||
scale.set(mData[mShopItemID].get_scale() * 0.8f, mData[mShopItemID].get_scale() * 0.8f,
|
||||
mData[mShopItemID].get_scale() * 0.8f);
|
||||
} else {
|
||||
scale.set(mData[mShopItemID].get_scale(), mData[mShopItemID].get_scale(),
|
||||
mData[mShopItemID].get_scale());
|
||||
}
|
||||
|
||||
home.pos = current.pos;
|
||||
set_mtx();
|
||||
mpModel->setUserArea(NULL);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059ED58-8059EEF4 000418 019C+00 2/2 0/0 0/0 .text set_mtx__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::set_mtx() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/set_mtx__12daShopItem_cFv.s"
|
||||
void daShopItem_c::set_mtx() {
|
||||
mpModel->setBaseScale(scale);
|
||||
|
||||
if (daShopItem_prm::getGroup(this) == 15) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
} else {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y + mData[mShopItemID].get_offsetY(),
|
||||
current.pos.z);
|
||||
}
|
||||
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx);
|
||||
mDoMtx_stack_c::YrotM(mAngleY);
|
||||
|
||||
if (daShopItem_prm::getGroup(this) == 15) {
|
||||
mDoMtx_stack_c::ZXYrotM(-11300, 32700, 7300);
|
||||
} else {
|
||||
mDoMtx_stack_c::ZXYrotM(mAngleX + mData[mShopItemID].get_angleX(),
|
||||
mData[mShopItemID].get_angleY(), mData[mShopItemID].get_angleZ());
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z);
|
||||
|
||||
if (daShopItem_prm::getGroup(this) == 15) {
|
||||
mDoMtx_stack_c::XrotM(0);
|
||||
} else {
|
||||
mDoMtx_stack_c::XrotM(mData[mShopItemID].get_angleOffsetX());
|
||||
}
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059EEF4-8059EF48 0005B4 0054+00 1/1 0/0 0/0 .text _execute__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::_execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/_execute__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059EF48-8059EF9C 000608 0054+00 1/1 0/0 0/0 .text _draw__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::_draw() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/_draw__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059EF9C-8059EFA0 00065C 0004+00 1/0 0/0 0/0 .text setListStart__12daShopItem_cFv */
|
||||
void daShopItem_c::setListStart() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059F488-8059F48C 000050 0004+00 0/1 0/0 0/0 .rodata @3823 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3823 = 80.0f;
|
||||
COMPILER_STRIP_GATE(0x8059F488, &lit_3823);
|
||||
#pragma pop
|
||||
|
||||
/* 8059EFA0-8059F024 000660 0084+00 1/0 0/0 0/0 .text setShadow__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::setShadow() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/setShadow__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F024-8059F044 0006E4 0020+00 1/0 0/0 0/0 .text chkFlag__12daShopItem_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::chkFlag(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/chkFlag__12daShopItem_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F044-8059F064 000704 0020+00 1/0 0/0 0/0 .text getTevFrm__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getTevFrm() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getTevFrm__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F064-8059F084 000724 0020+00 1/0 0/0 0/0 .text getBtpFrm__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getBtpFrm() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getBtpFrm__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F084-8059F0A0 000744 001C+00 1/0 0/0 0/0 .text getShadowSize__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getShadowSize() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getShadowSize__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F0A0-8059F0BC 000760 001C+00 1/0 0/0 0/0 .text getCollisionH__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getCollisionH() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getCollisionH__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F0BC-8059F0D8 00077C 001C+00 1/0 0/0 0/0 .text getCollisionR__12daShopItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daShopItem_c::getCollisionR() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/getCollisionR__12daShopItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059F49C-8059F4BC -00001 0020+00 1/0 0/0 0/0 .data daShopItemMethodTable */
|
||||
SECTION_DATA static void* daShopItemMethodTable[8] = {
|
||||
(void*)daShopItem_Create__FPv,
|
||||
(void*)daShopItem_Delete__FPv,
|
||||
(void*)daShopItem_Execute__FPv,
|
||||
(void*)daShopItem_IsDelete__FPv,
|
||||
(void*)daShopItem_Draw__FPv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 8059F4BC-8059F4EC -00001 0030+00 0/0 0/0 1/0 .data g_profile_ShopItem */
|
||||
SECTION_DATA extern void* g_profile_ShopItem[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x021E0000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x00000968, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x00F20000, (void*)&daShopItemMethodTable,
|
||||
(void*)0x00060100, (void*)0x000E0000,
|
||||
};
|
||||
|
||||
/* 8059F4EC-8059F4F8 000050 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
|
||||
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGCylFv,
|
||||
};
|
||||
|
||||
/* 8059F4F8-8059F504 00005C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 8059F504-8059F528 000068 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_8059F428,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_8059F420,
|
||||
};
|
||||
|
||||
/* 8059F528-8059F56C 00008C 0044+00 1/1 0/0 0/0 .data __vt__12daShopItem_c */
|
||||
SECTION_DATA extern void* __vt__12daShopItem_c[17] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)DrawBase__12daItemBase_cFv,
|
||||
(void*)setListStart__12daShopItem_cFv,
|
||||
(void*)settingBeforeDraw__12daItemBase_cFv,
|
||||
(void*)setTevStr__12daItemBase_cFv,
|
||||
(void*)setShadow__12daShopItem_cFv,
|
||||
(void*)animEntry__12daItemBase_cFv,
|
||||
(void*)RotateYBase__12daItemBase_cFv,
|
||||
(void*)clothCreate__12daItemBase_cFv,
|
||||
(void*)__CreateHeap__12daItemBase_cFv,
|
||||
(void*)chkFlag__12daShopItem_cFi,
|
||||
(void*)getTevFrm__12daShopItem_cFv,
|
||||
(void*)getBtpFrm__12daShopItem_cFv,
|
||||
(void*)getShadowSize__12daShopItem_cFv,
|
||||
(void*)getCollisionH__12daShopItem_cFv,
|
||||
(void*)getCollisionR__12daShopItem_cFv,
|
||||
};
|
||||
|
||||
/* 8059F0D8-8059F294 000798 01BC+00 1/0 0/0 0/0 .text daShopItem_Create__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daShopItem_Create(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/daShopItem_Create__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F294-8059F2DC 000954 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGCyl::~cM3dGCyl() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/__dt__8cM3dGCylFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F2DC-8059F324 00099C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F324-8059F394 0009E4 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/__dt__12dBgS_ObjAcchFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F394-8059F3D0 000A54 003C+00 1/0 0/0 0/0 .text daShopItem_Delete__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daShopItem_Delete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/daShopItem_Delete__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F3D0-8059F3F4 000A90 0024+00 1/0 0/0 0/0 .text daShopItem_Draw__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daShopItem_Draw(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/daShopItem_Draw__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F3F4-8059F418 000AB4 0024+00 1/0 0/0 0/0 .text daShopItem_Execute__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daShopItem_Execute(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/daShopItem_Execute__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F418-8059F420 000AD8 0008+00 1/0 0/0 0/0 .text daShopItem_IsDelete__FPv */
|
||||
static bool daShopItem_IsDelete(void* param_0) {
|
||||
bool daShopItem_c::_execute() {
|
||||
animPlay(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
|
||||
set_mtx();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8059F420-8059F428 000AE0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8059F420() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/func_8059F420.s"
|
||||
}
|
||||
#pragma pop
|
||||
/* 8059EF48-8059EF9C 000608 0054+00 1/1 0/0 0/0 .text _draw__12daShopItem_cFv */
|
||||
bool daShopItem_c::_draw() {
|
||||
if (!chkDraw()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8059F428-8059F430 000AE8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8059F428() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_shop_item/d_a_shop_item/func_8059F428.s"
|
||||
DrawBase();
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8059F48C-8059F48C 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 8059EF9C-8059EFA0 00065C 0004+00 1/0 0/0 0/0 .text setListStart__12daShopItem_cFv */
|
||||
void daShopItem_c::setListStart() {}
|
||||
|
||||
/* 8059EFA0-8059F024 000660 0084+00 1/0 0/0 0/0 .text setShadow__12daShopItem_cFv */
|
||||
void daShopItem_c::setShadow() {
|
||||
if (m_itemNo != NO_ITEM) {
|
||||
daItemBase_c::setShadow();
|
||||
} else {
|
||||
mShadowKey = dComIfGd_setShadow(mShadowKey, 1, mpModel, ¤t.pos, 80.0f, 0.0f,
|
||||
current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd, &tevStr, 0,
|
||||
1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
}
|
||||
|
||||
/* 8059F024-8059F044 0006E4 0020+00 1/0 0/0 0/0 .text chkFlag__12daShopItem_cFi */
|
||||
BOOL daShopItem_c::chkFlag(int i_flag) {
|
||||
return mData[mShopItemID].get_flag() & i_flag;
|
||||
}
|
||||
|
||||
/* 8059F044-8059F064 000704 0020+00 1/0 0/0 0/0 .text getTevFrm__12daShopItem_cFv */
|
||||
s8 daShopItem_c::getTevFrm() {
|
||||
return mData[mShopItemID].get_tevfrm();
|
||||
}
|
||||
|
||||
/* 8059F064-8059F084 000724 0020+00 1/0 0/0 0/0 .text getBtpFrm__12daShopItem_cFv */
|
||||
s8 daShopItem_c::getBtpFrm() {
|
||||
return mData[mShopItemID].get_btpfrm();
|
||||
}
|
||||
|
||||
/* 8059F084-8059F0A0 000744 001C+00 1/0 0/0 0/0 .text getShadowSize__12daShopItem_cFv */
|
||||
u8 daShopItem_c::getShadowSize() {
|
||||
return mData[mShopItemID].get_shadowSize();
|
||||
}
|
||||
|
||||
/* 8059F0A0-8059F0BC 000760 001C+00 1/0 0/0 0/0 .text getCollisionH__12daShopItem_cFv */
|
||||
u8 daShopItem_c::getCollisionH() {
|
||||
return mData[mShopItemID].get_collisionH();
|
||||
}
|
||||
|
||||
/* 8059F0BC-8059F0D8 00077C 001C+00 1/0 0/0 0/0 .text getCollisionR__12daShopItem_cFv */
|
||||
u8 daShopItem_c::getCollisionR() {
|
||||
return mData[mShopItemID].get_collisionR();
|
||||
}
|
||||
|
||||
int daShopItem_c::_create() {
|
||||
fopAcM_SetupActor(this, daShopItem_c);
|
||||
|
||||
mAngleX = 0;
|
||||
mAngleY = 0;
|
||||
m_itemNo = daShopItem_prm::getItemNo(this);
|
||||
|
||||
if (getShopArcname() == NULL) {
|
||||
// "Display model archive name doesn't exist![%d]\n"
|
||||
OS_REPORT("陳列用モデルのアーカイブ名がありません![%d]\n", m_itemNo);
|
||||
m_itemNo = NO_ITEM;
|
||||
}
|
||||
|
||||
int phase_state = dComIfG_resLoad(&mPhase, getShopArcname());
|
||||
switch (phase_state) {
|
||||
case cPhs_COMPLEATE_e:
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckShopItemCreateHeap, getHeapSize())) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
// "Shop Item[%d]Memory:%d used\n"
|
||||
OS_REPORT("ショップアイテム[%d]メモリ:%x 使用\n", m_itemNo, heap->getHeapSize());
|
||||
CreateInit();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 8059F0D8-8059F294 000798 01BC+00 1/0 0/0 0/0 .text daShopItem_Create__FPv */
|
||||
static int daShopItem_Create(void* i_this) {
|
||||
return static_cast<daShopItem_c*>(i_this)->_create();
|
||||
}
|
||||
|
||||
int daShopItem_c::_delete() {
|
||||
DeleteBase(getShopArcname());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8059F394-8059F3D0 000A54 003C+00 1/0 0/0 0/0 .text daShopItem_Delete__FPv */
|
||||
static int daShopItem_Delete(void* i_this) {
|
||||
return static_cast<daShopItem_c*>(i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 8059F3D0-8059F3F4 000A90 0024+00 1/0 0/0 0/0 .text daShopItem_Draw__FPv */
|
||||
static int daShopItem_Draw(void* i_this) {
|
||||
return static_cast<daShopItem_c*>(i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 8059F3F4-8059F418 000AB4 0024+00 1/0 0/0 0/0 .text daShopItem_Execute__FPv */
|
||||
static int daShopItem_Execute(void* i_this) {
|
||||
return static_cast<daShopItem_c*>(i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 8059F418-8059F420 000AD8 0008+00 1/0 0/0 0/0 .text daShopItem_IsDelete__FPv */
|
||||
static int daShopItem_IsDelete(void* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8059F49C-8059F4BC -00001 0020+00 1/0 0/0 0/0 .data daShopItemMethodTable */
|
||||
static actor_method_class daShopItemMethodTable = {
|
||||
(process_method_func)daShopItem_Create, (process_method_func)daShopItem_Delete,
|
||||
(process_method_func)daShopItem_Execute, (process_method_func)daShopItem_IsDelete,
|
||||
(process_method_func)daShopItem_Draw,
|
||||
};
|
||||
|
||||
/* 8059F4BC-8059F4EC -00001 0030+00 0/0 0/0 1/0 .data g_profile_ShopItem */
|
||||
extern actor_process_profile_definition g_profile_ShopItem = {
|
||||
fpcLy_CURRENT_e,
|
||||
7,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_ShopItem,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(daShopItem_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
242,
|
||||
&daShopItemMethodTable,
|
||||
0x60100,
|
||||
fopAc_ACTOR_e,
|
||||
fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
@@ -884,7 +884,7 @@ int daSpinner_c::setNextPathNum() {
|
||||
}
|
||||
|
||||
/* 804D3694-804D36F4 001DF4 0060+00 1/1 0/0 0/0 .text getPathNextPos__11daSpinner_cFv */
|
||||
cXyz* daSpinner_c::getPathNextPos() {
|
||||
Vec* daSpinner_c::getPathNextPos() {
|
||||
s32 add = field_0xa72 + field_0xa73;
|
||||
if (add < 0) {
|
||||
return &(mpPathMove->m_points + mpPathMove->m_num - 1)->m_position;
|
||||
|
||||
@@ -19,6 +19,7 @@ M706_LIBS := \
|
||||
M706_CFLAGS := \
|
||||
-sdata 0 \
|
||||
-sdata2 0 \
|
||||
-sym on \
|
||||
|
||||
M706_LDFLAGS := \
|
||||
-nodefaults \
|
||||
|
||||
@@ -1,398 +1,258 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_startAndGoal
|
||||
//
|
||||
/**
|
||||
* d_a_startAndGoal.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_startAndGoal/d_a_startAndGoal.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_timer.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
class daStartAndGoal_Path_c : public daNpcF_Path_c {
|
||||
public:
|
||||
/* 80D4D7B8 */ BOOL chkPassed2(cXyz);
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80D4D928 */ virtual ~daStartAndGoal_Path_c() {}
|
||||
};
|
||||
|
||||
struct daStartAndGoal_c {
|
||||
/* 80D4D84C */ void getType();
|
||||
/* 80D4D884 */ void Create();
|
||||
class daStartAndGoal_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80D4D84C */ int getType();
|
||||
/* 80D4D884 */ int Create();
|
||||
/* 80D4D998 */ void init();
|
||||
/* 80D4DA68 */ void actorPosCheck();
|
||||
/* 80D4DB30 */ void readyStartTimer();
|
||||
/* 80D4DBAC */ void isStartCheck();
|
||||
/* 80D4DBD0 */ void isReadyCheck();
|
||||
/* 80D4DC50 */ void Execute();
|
||||
/* 80D4DCF4 */ bool Draw();
|
||||
/* 80D4DCFC */ void Delete();
|
||||
/* 80D4DB30 */ int readyStartTimer();
|
||||
/* 80D4DBAC */ BOOL isStartCheck();
|
||||
/* 80D4DBD0 */ BOOL isReadyCheck();
|
||||
/* 80D4DC50 */ int Execute();
|
||||
/* 80D4DCF4 */ int Draw();
|
||||
/* 80D4DCFC */ int Delete();
|
||||
|
||||
/* 0x568 */ daStartAndGoal_Path_c mPath;
|
||||
/* 0xB98 */ u8 field_0xb98;
|
||||
/* 0xB99 */ u8 mType;
|
||||
/* 0xB9C */ int mAction;
|
||||
/* 0xBA0 */ bool mStarted;
|
||||
};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct daStartAndGoal_Path_c {
|
||||
/* 80D4D7B8 */ void chkPassed2(cXyz);
|
||||
/* 80D4D928 */ ~daStartAndGoal_Path_c();
|
||||
};
|
||||
|
||||
struct dPath {};
|
||||
|
||||
struct daNpcF_SPCurve_c {
|
||||
/* 80150870 */ void initialize(dPath*, int);
|
||||
/* 80D4DE68 */ ~daNpcF_SPCurve_c();
|
||||
};
|
||||
|
||||
struct daNpcF_Path_c {
|
||||
/* 80150900 */ void initialize();
|
||||
/* 8015095C */ void setPathInfo(u8, s8, u8);
|
||||
/* 80150A24 */ void chkPassed(cXyz);
|
||||
/* 80150BE0 */ void setNextIdx();
|
||||
/* 80150C18 */ void getNextIdx();
|
||||
/* 80D4DE08 */ ~daNpcF_Path_c();
|
||||
};
|
||||
|
||||
struct dComIfG_play_c {
|
||||
/* 8002CB9C */ void getTimerNowTimeMs();
|
||||
/* 8002CBDC */ void getTimerPtr();
|
||||
};
|
||||
|
||||
struct Z2SeqMgr {
|
||||
/* 802AF49C */ void subBgmStart(u32);
|
||||
/* 802AF884 */ void subBgmStop();
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void chkPassed2__21daStartAndGoal_Path_cF4cXyz();
|
||||
extern "C" void getType__16daStartAndGoal_cFv();
|
||||
extern "C" void Create__16daStartAndGoal_cFv();
|
||||
extern "C" void __dt__21daStartAndGoal_Path_cFv();
|
||||
extern "C" void init__16daStartAndGoal_cFv();
|
||||
extern "C" void actorPosCheck__16daStartAndGoal_cFv();
|
||||
extern "C" void readyStartTimer__16daStartAndGoal_cFv();
|
||||
extern "C" void isStartCheck__16daStartAndGoal_cFv();
|
||||
extern "C" void isReadyCheck__16daStartAndGoal_cFv();
|
||||
extern "C" void Execute__16daStartAndGoal_cFv();
|
||||
extern "C" bool Draw__16daStartAndGoal_cFv();
|
||||
extern "C" void Delete__16daStartAndGoal_cFv();
|
||||
extern "C" static void daStartAndGoal_Execute__FP16daStartAndGoal_c();
|
||||
extern "C" static void daStartAndGoal_Draw__FP16daStartAndGoal_c();
|
||||
extern "C" static bool daStartAndGoal_IsDelete__FP16daStartAndGoal_c();
|
||||
extern "C" static void daStartAndGoal_Delete__FP16daStartAndGoal_c();
|
||||
extern "C" static void daStartAndGoal_create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__13daNpcF_Path_cFv();
|
||||
extern "C" void __dt__16daNpcF_SPCurve_cFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void getTimerNowTimeMs__14dComIfG_play_cFv();
|
||||
extern "C" void getTimerPtr__14dComIfG_play_cFv();
|
||||
extern "C" void dComIfG_TimerStart__Fis();
|
||||
extern "C" void dComIfG_TimerEnd__Fii();
|
||||
extern "C" void dComIfG_TimerDeleteRequest__Fi();
|
||||
extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi();
|
||||
extern "C" void initialize__13daNpcF_Path_cFv();
|
||||
extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc();
|
||||
extern "C" void chkPassed__13daNpcF_Path_cF4cXyz();
|
||||
extern "C" void setNextIdx__13daNpcF_Path_cFv();
|
||||
extern "C" void getNextIdx__13daNpcF_Path_cFv();
|
||||
extern "C" void dTimer_createTimer__FlUlUcUcffff();
|
||||
extern "C" void dTimer_isStart__Fv();
|
||||
extern "C" void dTimer_isReadyFlag__Fv();
|
||||
extern "C" void subBgmStart__8Z2SeqMgrFUl();
|
||||
extern "C" void subBgmStop__8Z2SeqMgrFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80D4D7B8-80D4D84C 000078 0094+00 1/1 0/0 0/0 .text chkPassed2__21daStartAndGoal_Path_cF4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_Path_c::chkPassed2(cXyz param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/chkPassed2__21daStartAndGoal_Path_cF4cXyz.s"
|
||||
BOOL daStartAndGoal_Path_c::chkPassed2(cXyz i_checkPos) {
|
||||
int var_r31 = 0;
|
||||
while (var_r31 < 1) {
|
||||
if (!chkPassed(i_checkPos)) {
|
||||
break;
|
||||
}
|
||||
|
||||
var_r31 = 1;
|
||||
if (setNextIdx()) {
|
||||
var_r31 = 2;
|
||||
}
|
||||
}
|
||||
|
||||
return var_r31 > 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4D84C-80D4D884 00010C 0038+00 1/1 0/0 0/0 .text getType__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::getType() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/getType__16daStartAndGoal_cFv.s"
|
||||
int daStartAndGoal_c::getType() {
|
||||
switch (fopAcM_GetParam(this) & 0xFF) {
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
return 1;
|
||||
default:
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
struct timer_info {
|
||||
/* 0x0 */ s32 mode;
|
||||
/* 0x4 */ u8 type;
|
||||
/* 0x5 */ u8 field_0x5;
|
||||
};
|
||||
|
||||
/* 80D4DECC-80D4DEE4 000000 0018+00 4/4 0/0 0/0 .data l_timerType */
|
||||
SECTION_DATA static u8 l_timerType[24] = {
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80D4DEE4-80D4DF04 -00001 0020+00 1/0 0/0 0/0 .data l_daStartAndGoal_Method */
|
||||
SECTION_DATA static void* l_daStartAndGoal_Method[8] = {
|
||||
(void*)daStartAndGoal_create__FP10fopAc_ac_c,
|
||||
(void*)daStartAndGoal_Delete__FP16daStartAndGoal_c,
|
||||
(void*)daStartAndGoal_Execute__FP16daStartAndGoal_c,
|
||||
(void*)daStartAndGoal_IsDelete__FP16daStartAndGoal_c,
|
||||
(void*)daStartAndGoal_Draw__FP16daStartAndGoal_c,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 80D4DF04-80D4DF34 -00001 0030+00 0/0 0/0 1/0 .data g_profile_START_AND_GOAL */
|
||||
SECTION_DATA extern void* g_profile_START_AND_GOAL[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0009FFFD,
|
||||
(void*)0x03060000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x00000BA4, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x01870000, (void*)&l_daStartAndGoal_Method,
|
||||
(void*)0x00044000, (void*)0x000E0000,
|
||||
};
|
||||
|
||||
/* 80D4DF34-80D4DF40 000068 000C+00 2/2 0/0 0/0 .data __vt__21daStartAndGoal_Path_c */
|
||||
SECTION_DATA extern void* __vt__21daStartAndGoal_Path_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__21daStartAndGoal_Path_cFv,
|
||||
};
|
||||
|
||||
/* 80D4DF40-80D4DF4C 000074 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */
|
||||
SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__16daNpcF_SPCurve_cFv,
|
||||
};
|
||||
|
||||
/* 80D4DF4C-80D4DF58 000080 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */
|
||||
SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__13daNpcF_Path_cFv,
|
||||
static timer_info l_timerType[] = {
|
||||
{3, 0, 1},
|
||||
{4, 2, 0},
|
||||
{3, 1, 1},
|
||||
};
|
||||
|
||||
/* 80D4D884-80D4D928 000144 00A4+00 1/1 0/0 0/0 .text Create__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::Create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/Create__16daStartAndGoal_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
int daStartAndGoal_c::Create() {
|
||||
fopAcM_SetupActor(this, daStartAndGoal_c);
|
||||
|
||||
/* 80D4D928-80D4D998 0001E8 0070+00 1/0 0/0 0/0 .text __dt__21daStartAndGoal_Path_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daStartAndGoal_Path_c::~daStartAndGoal_Path_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/__dt__21daStartAndGoal_Path_cFv.s"
|
||||
init();
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D4DEB8-80D4DEBC 000000 0001+03 1/1 0/0 0/0 .rodata l_DATA */
|
||||
SECTION_RODATA static u8 const l_DATA[1 + 3 /* padding */] = {
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D4DEB8, &l_DATA);
|
||||
|
||||
/* 80D4DEBC-80D4DEC0 000004 0004+00 0/1 0/0 0/0 .rodata @3913 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3913 = 210.0f;
|
||||
COMPILER_STRIP_GATE(0x80D4DEBC, &lit_3913);
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DEC0-80D4DEC4 000008 0004+00 0/1 0/0 0/0 .rodata @3914 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3914 = 410.0f;
|
||||
COMPILER_STRIP_GATE(0x80D4DEC0, &lit_3914);
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DEC4-80D4DEC8 00000C 0004+00 0/1 0/0 0/0 .rodata @3915 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3915 = 32.0f;
|
||||
COMPILER_STRIP_GATE(0x80D4DEC4, &lit_3915);
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DEC8-80D4DECC 000010 0004+00 0/1 0/0 0/0 .rodata @3916 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3916 = 419.0f;
|
||||
COMPILER_STRIP_GATE(0x80D4DEC8, &lit_3916);
|
||||
#pragma pop
|
||||
static const u8 l_DATA[1] = {0}; // unused
|
||||
|
||||
/* 80D4D998-80D4DA68 000258 00D0+00 1/1 0/0 0/0 .text init__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::init() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/init__16daStartAndGoal_cFv.s"
|
||||
void daStartAndGoal_c::init() {
|
||||
field_0xb98 = 1;
|
||||
mStarted = false;
|
||||
mType = getType();
|
||||
|
||||
mPath.initialize();
|
||||
mPath.setPathInfo(fopAcM_GetParam(this) >> 8, fopAcM_GetRoomNo(this), 0);
|
||||
JUT_ASSERT(0 != mPath.getPathInfo());
|
||||
|
||||
if (dComIfG_getTimerPtr() == NULL) {
|
||||
dTimer_createTimer(l_timerType[mType].mode, 9999000, l_timerType[mType].type, 0, 210.0f,
|
||||
410.0f, 32.0f, 419.0f);
|
||||
}
|
||||
|
||||
mAction = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DA68-80D4DB30 000328 00C8+00 1/1 0/0 0/0 .text actorPosCheck__16daStartAndGoal_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::actorPosCheck() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/actorPosCheck__16daStartAndGoal_cFv.s"
|
||||
void daStartAndGoal_c::actorPosCheck() {
|
||||
cXyz pos(daPy_getPlayerActorClass()->current.pos);
|
||||
if (mPath.chkPassed2(pos)) {
|
||||
int idx = mPath.getIdx();
|
||||
int next_idx = mPath.getNextIdx();
|
||||
|
||||
if (idx == next_idx) {
|
||||
mAction = 3;
|
||||
dComIfG_TimerEnd(l_timerType[mType].mode, -1);
|
||||
dMeter2Info_setMsgTimeMs(dComIfG_getTimerNowTimeMs());
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DB30-80D4DBAC 0003F0 007C+00 0/0 0/0 2/2 .text readyStartTimer__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::readyStartTimer() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/readyStartTimer__16daStartAndGoal_cFv.s"
|
||||
int daStartAndGoal_c::readyStartTimer() {
|
||||
if (dComIfG_TimerStart(l_timerType[mType].mode, 0)) {
|
||||
mAction = 1;
|
||||
field_0xb98 = l_timerType[mType].field_0x5;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DBAC-80D4DBD0 00046C 0024+00 1/1 0/0 2/2 .text isStartCheck__16daStartAndGoal_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::isStartCheck() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/isStartCheck__16daStartAndGoal_cFv.s"
|
||||
BOOL daStartAndGoal_c::isStartCheck() {
|
||||
return dTimer_isStart();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DBD0-80D4DC50 000490 0080+00 1/1 0/0 0/0 .text isReadyCheck__16daStartAndGoal_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::isReadyCheck() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/isReadyCheck__16daStartAndGoal_cFv.s"
|
||||
BOOL daStartAndGoal_c::isReadyCheck() {
|
||||
if (mStarted) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (dTimer_isReadyFlag()) {
|
||||
mStarted = true;
|
||||
|
||||
if (mType == 1) {
|
||||
Z2GetAudioMgr()->subBgmStart(Z2BGM_RIVER_GAME);
|
||||
}
|
||||
}
|
||||
|
||||
return dTimer_isStart();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DC50-80D4DCF4 000510 00A4+00 1/1 0/0 0/0 .text Execute__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::Execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/Execute__16daStartAndGoal_cFv.s"
|
||||
int daStartAndGoal_c::Execute() {
|
||||
switch (mAction) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if (isStartCheck()) {
|
||||
mAction = 2;
|
||||
|
||||
if (mType == 0) {
|
||||
Z2GetAudioMgr()->subBgmStart(Z2BGM_RIVER_GAME_00);
|
||||
}
|
||||
} else {
|
||||
isReadyCheck();
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
actorPosCheck();
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DCF4-80D4DCFC 0005B4 0008+00 1/1 0/0 0/0 .text Draw__16daStartAndGoal_cFv */
|
||||
bool daStartAndGoal_c::Draw() {
|
||||
return true;
|
||||
int daStartAndGoal_c::Draw() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D4DCFC-80D4DD80 0005BC 0084+00 1/1 0/0 0/0 .text Delete__16daStartAndGoal_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daStartAndGoal_c::Delete() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/Delete__16daStartAndGoal_cFv.s"
|
||||
int daStartAndGoal_c::Delete() {
|
||||
if (field_0xb98 == 1) {
|
||||
dComIfG_TimerDeleteRequest(l_timerType[mType].mode);
|
||||
}
|
||||
|
||||
if (mStarted == true && (mType == 0 || mType == 1)) {
|
||||
Z2GetAudioMgr()->subBgmStop();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DD80-80D4DDA0 000640 0020+00 1/0 0/0 0/0 .text daStartAndGoal_Execute__FP16daStartAndGoal_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daStartAndGoal_Execute(daStartAndGoal_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/daStartAndGoal_Execute__FP16daStartAndGoal_c.s"
|
||||
static int daStartAndGoal_Execute(daStartAndGoal_c* i_this) {
|
||||
return i_this->Execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DDA0-80D4DDC0 000660 0020+00 1/0 0/0 0/0 .text daStartAndGoal_Draw__FP16daStartAndGoal_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daStartAndGoal_Draw(daStartAndGoal_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/daStartAndGoal_Draw__FP16daStartAndGoal_c.s"
|
||||
static int daStartAndGoal_Draw(daStartAndGoal_c* i_this) {
|
||||
return i_this->Draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DDC0-80D4DDC8 000680 0008+00 1/0 0/0 0/0 .text
|
||||
* daStartAndGoal_IsDelete__FP16daStartAndGoal_c */
|
||||
static bool daStartAndGoal_IsDelete(daStartAndGoal_c* param_0) {
|
||||
return true;
|
||||
static int daStartAndGoal_IsDelete(daStartAndGoal_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D4DDC8-80D4DDE8 000688 0020+00 1/0 0/0 0/0 .text daStartAndGoal_Delete__FP16daStartAndGoal_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daStartAndGoal_Delete(daStartAndGoal_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/daStartAndGoal_Delete__FP16daStartAndGoal_c.s"
|
||||
static int daStartAndGoal_Delete(daStartAndGoal_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DDE8-80D4DE08 0006A8 0020+00 1/0 0/0 0/0 .text daStartAndGoal_create__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daStartAndGoal_create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/daStartAndGoal_create__FP10fopAc_ac_c.s"
|
||||
static int daStartAndGoal_create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daStartAndGoal_c*>(i_this)->Create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D4DE08-80D4DE68 0006C8 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daNpcF_Path_c::~daNpcF_Path_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/__dt__13daNpcF_Path_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
/* 80D4DEE4-80D4DF04 -00001 0020+00 1/0 0/0 0/0 .data l_daStartAndGoal_Method */
|
||||
static actor_method_class l_daStartAndGoal_Method = {
|
||||
(process_method_func)daStartAndGoal_create, (process_method_func)daStartAndGoal_Delete,
|
||||
(process_method_func)daStartAndGoal_Execute, (process_method_func)daStartAndGoal_IsDelete,
|
||||
(process_method_func)daStartAndGoal_Draw,
|
||||
};
|
||||
|
||||
/* 80D4DE68-80D4DEB0 000728 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daNpcF_SPCurve_c::~daNpcF_SPCurve_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_startAndGoal/d_a_startAndGoal/__dt__16daNpcF_SPCurve_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
/* 80D4DF04-80D4DF34 -00001 0030+00 0/0 0/0 1/0 .data g_profile_START_AND_GOAL */
|
||||
extern actor_process_profile_definition g_profile_START_AND_GOAL = {
|
||||
fpcLy_CURRENT_e,
|
||||
9,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_START_AND_GOAL,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(daStartAndGoal_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
391,
|
||||
&l_daStartAndGoal_Method,
|
||||
0x44000,
|
||||
fopAc_ACTOR_e,
|
||||
fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
Reference in New Issue
Block a user