Files
tww/src/d/actor/d_a_auction.cpp
T
2025-04-20 20:06:40 -04:00

1670 lines
43 KiB
C++

//
// Generated by dtk
// Translation Unit: d_a_auction.cpp
//
#include "d/actor/d_a_auction.h"
#include "d/actor/d_a_npc_auction.h"
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_player_main.h"
#include "d/d_camera.h"
#include "d/d_procname.h"
#include "m_Do/m_Do_controller_pad.h"
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
#include "weak_data_1811.h" // IWYU pragma: keep
struct NpcDatStruct {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ s16 mBidIncMin; // Minimum bid increment
/* 0x0A */ s16 mBidIncMax; // Maximum bid increment
/* 0x0C */ s16 mSpendingLimit;
};
struct NpcMsgDatStruct {
/* 0x00 */ s16 field_0x00;
/* 0x02 */ s16 field_0x02;
/* 0x04 */ s16 field_0x04;
/* 0x06 */ s16 field_0x06;
/* 0x08 */ s16 field_0x08;
};
struct NpcCameraDatStruct {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ s16 field_0x08;
/* 0x0A */ s16 field_0x0A;
};
static cXyz l_camera_pos[][2] = {
{cXyz(-265.0f, 48.0f, -631.0f), cXyz(332.0f, 232.0f, 286.0f)},
{cXyz(-50.0f, 202.0f, 137.0f), cXyz(-87.0f, 239.0f, 330.0f)},
{cXyz(-216.0f, 205.0f, 5.0f), cXyz(-379.0f, 238.0f, 115.0f)},
};
#ifdef DEBUG
static daAuction_HIO_c l_HIO;
#endif
static daAuction_c::ItemData l_item_dat[] = {
{dItem_JOY_PENDANT_e, 0x1D10, 40, 0x0F01},
{dItem_COLLECT_MAP_27_e, 0x1D11, 5, 0x1080},
{dItem_COLLECT_MAP_18_e, 0x1D12, 60, 0x1040},
{dItem_HEART_PIECE_e, 0x1D13, 80, 0x1020},
};
static daAuction_c::ItemData l_item_dat2[] = {
{POSTMAN_STATUE, 0x1D14, 30, 0x1008},
{PRESIDENT_STATUE, 0x1D15, 40, 0x1004},
};
static s16 l_item_dat22[] = {0x002A, 0x00F9};
static NpcDatStruct l_npc_dat[7] = {
{2.0f, 2.1f, 0x0, 0x0, 1000},
{0.3f, 0.5f, 0x4, 0x6, 450 },
{0.3f, 0.6f, 0x3, 0x7, 500 },
{0.4f, 0.7f, 0x2, 0x4, 250 },
{0.5f, 1.0f, 0x2, 0x3, VERSION_SELECT(998, 990, 990) },
{0.4f, 0.5f, 0x3, 0x4, VERSION_SELECT(998, 990, 990) },
{0.7f, 1.2f, 0x2, 0x2, 150 },
};
static NpcMsgDatStruct l_npc_msg_dat[12] = {
{0x33AC, 0x1D3A, 0x1D3B, 0x1D3C, 0x33B6},
{0x33AD, 0x1D3D, 0x1D3E, 0x1D3F, 0x33B7},
{0x33AE, 0x1D40, 0x1D41, 0x1D42, 0x33B8},
{0x33AF, 0x1D43, 0x1D44, 0x1D45, 0x33B9},
{0x33B0, 0x1D46, 0x1D47, 0x1D48, 0x33BA},
{0x33B1, 0x1D49, 0x1D4A, 0x1D4B, 0x33BB},
{0x33B2, 0x339D, 0x339E, 0x339F, 0x33BC},
{0x33B3, 0x33A0, 0x33A1, 0x33A2, 0x33BD},
{0x33B4, 0x33A3, 0x33A4, 0x33A5, 0x33BE},
{0x33B5, 0x33A6, 0x33A7, 0x33A8, 0x33BF},
{0x1CE9, 0x0000, 0x0000, 0x0000, 0x0000},
{0x1CE9, 0x0000, 0x0000, 0x0000, 0x0000},
};
static NpcCameraDatStruct l_npc_camera_dat[7] = {
{ 150.0f, 70.0f, -500 },
{ 200.0f, 100.0f, 0 },
{ 200.0f, 100.0f, 0 },
{ 200.0f, 100.0f, 0 },
{ 200.0f, 100.0f, 0 },
{ 200.0f, 100.0f, 0 },
{ 200.0f, 150.0f, 0 },
};
static f32 l_npc_emitter_ofsy[8] = {
120.0f,
180.0f,
180.0f,
180.0f,
180.0f,
180.0f,
210.0f,
180.0f,
};
static f32 l_npc_camera_ofsy[8] = {
150.0f,
210.0f,
210.0f,
210.0f,
210.0f,
210.0f,
240.0f,
210.0f,
};
static s16 l_rest_msg_time1[4] = {
30000,
10000,
5000,
-1000,
};
static s16 l_rest_msg_time2[4] = {
15000,
10000,
5000,
-1000,
};
static u32 l_rest_msg_no[3] = {
0x1D01,
0x1D02,
0x1D03,
};
static u32 l_rest_se_no[3] = {
JA_SE_AUC_LAST_SPURT,
JA_SE_AUC_FEW_TIME,
JA_SE_AUC_5_SEC,
};
static f32 l_after_bet_rate[4] = {2.0f, 1.5f, 1.2f, 1.1f};
static s16 l_after_bet_chk[4] = {
0x0014,
0x0014,
0x0028,
0x0028,
};
static u32 l_after_bet_msg_no[4] = {
0x1D23,
0x1D22,
0x1D21,
0x1D20,
};
static s16 l_after_bet_wait[4][2] = {
{8, 10},
{7, 10},
{6, 9},
{5, 8},
};
static daPy_py_c::daPy_FACE l_link_face[8] = {
daPy_py_c::daPyFace_TMABAA,
daPy_py_c::daPyFace_TMABAC,
daPy_py_c::daPyFace_TMABACB,
daPy_py_c::daPyFace_TMABAE,
daPy_py_c::daPyFace_TMABAF,
daPy_py_c::daPyFace_TMABAG,
daPy_py_c::daPyFace_TMABAH,
daPy_py_c::daPyFace_TMABAJ_TEYORIME,
};
static daAuction_c::ProcFunc_t moveProc[] = {
&daAuction_c::executeWait,
&daAuction_c::executeNormal,
&daAuction_c::executeStart,
};
extern void dAuction_screen_delete();
extern void dAuction_screen_slotShow();
extern void dAuction_screen_slotHide();
extern void dAuction_screen_gaugeHide();
extern void dAuction_screen_gaugeShow();
extern void dAuction_screen_gaugeUp();
extern void dAuction_screen_gaugeDown();
extern void dAuction_screen_talkStart();
extern void dAuction_screen_talkEnd();
extern fpc_ProcID dAuction_screen_create();
/* 000000EC-000002FC .text __ct__11daAuction_cFv */
daAuction_c::daAuction_c() {
for (int i = 0; i < 8; i++) {
m738[i] = fpcM_ERROR_PROCESS_ID_e;
m80C[i] = i;
mAucMdlNo[i] = 0xFF;
}
for (int i = 0; i < 100; i++) {
int rnd1 = getRand(6);
int rnd2 = getRand(6);
u8 tmp = m80C[rnd1 + 1];
m80C[rnd1 + 1] = m80C[rnd2 + 1];
m80C[rnd2 + 1] = tmp;
}
mMoveState = 0;
m820 = 1;
m821 = 0;
m7EC = 0;
m7F0 = 0;
m81C = 0xFF;
m81D = 0xFF;
mpEmitter = NULL;
m836 = 0;
eyePos = current.pos;
m832 = 0;
}
/* 00000644-00000664 .text CheckCreateHeap__FP10fopAc_ac_c */
static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
return static_cast<daAuction_c*>(i_this)->createHeap();
}
/* 00000664-000006F4 .text _create__11daAuction_cFv */
cPhs_State daAuction_c::_create() {
fopAcM_SetupActor(this, daAuction_c);
cPhs_State phase_state = dComIfG_resLoad(&mPhs, "Pspl");
if (phase_state == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x2400)) {
return cPhs_ERROR_e;
}
return createInit();
}
return phase_state;
}
/* 000006F4-00000770 .text createHeap__11daAuction_cFv */
BOOL daAuction_c::createHeap() {
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectIDRes("Pspl", 0));
if (modelData == NULL) {
return FALSE;
}
mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
if (mpModel == NULL) {
return FALSE;
}
return TRUE;
}
/* 00000770-000008C4 .text createInit__11daAuction_cFv */
cPhs_State daAuction_c::createInit() {
mEvtStartIdx = dComIfGp_evmng_getEventIdx("AUCTION_START");
mEvtGetItemIdx = dComIfGp_evmng_getEventIdx("AUCTION_GET_ITEM");
mEvtNoItemIdx = dComIfGp_evmng_getEventIdx("AUCTION_NO_ITEM");
mEvtStart2Idx = dComIfGp_evmng_getEventIdx("AUCTION_START2");
mEvtEnd2Idx = dComIfGp_evmng_getEventIdx("AUCTION_END2");
mNpcEvtInfo.setActorInfo("Auction", this);
m824 = 0;
m826 = 0xFF;
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m824)].field_0x00);
mCurrAuctionItemIndex = 0;
s16 nameMsgID = l_item_dat[mCurrAuctionItemIndex].mNameMsgID;
mCurrBid = l_item_dat[mCurrAuctionItemIndex].mStartingBid;
dComIfGp_setItemNameMessageID(nameMsgID);
dComIfGp_setMessageCountNumber(mCurrBid);
setMtx();
return cPhs_COMPLEATE_e;
}
/* 000008C4-0000092C .text _delete__11daAuction_cFv */
BOOL daAuction_c::_delete() {
dComIfG_resDelete(&mPhs, "Pspl");
if (heap != NULL && mpEmitter != NULL) {
mpEmitter->becomeInvalidEmitter();
}
return TRUE;
}
/* 0000092C-00000998 .text _draw__11daAuction_cFv */
BOOL daAuction_c::_draw() {
g_env_light.settingTevStruct(TEV_TYPE_BG2, &current.pos, &tevStr);
g_env_light.setLightTevColorType(mpModel, &tevStr);
if (mFlags & 4) {
mDoExt_modelUpdateDL(mpModel);
}
return TRUE;
}
/* 00000998-00000B10 .text _execute__11daAuction_cFv */
BOOL daAuction_c::_execute() {
checkOrder();
if (!dComIfGp_event_runCheck() || eventInfo.checkCommandTalk()) {
(this->*moveProc[mMoveState])();
} else {
eventMove();
}
eventOrder();
if (mpEmitter != NULL) {
if (m836 & 1) { // Increase alpha
if (m80A != 0) {
m80A -= 1;
} else {
mAlpha += 4.0f;
if (mAlpha > 255.0f) {
mAlpha = 255.0f;
m836 &= ~1;
}
mpEmitter->setGlobalAlpha(mAlpha);
}
} else if (m836 & 2) { // Decrease alpha
mAlpha -= 4.0f;
if (mAlpha < 0.0f) {
mpEmitter->becomeInvalidEmitter();
mpEmitter = NULL;
} else {
mpEmitter->setGlobalAlpha(mAlpha);
}
}
}
setMtx();
return TRUE;
}
/* 00000B10-00000B44 .text executeWait__11daAuction_cFv */
void daAuction_c::executeWait() {
for (int i = 0; i < 8; i++) {
if (m738[i] == fpcM_ERROR_PROCESS_ID_e) {
return;
}
}
mMoveState = 1;
}
/* 00000B44-00000B48 .text executeNormal__11daAuction_cFv */
void daAuction_c::executeNormal() {}
/* 00000B48-00000B4C .text executeStart__11daAuction_cFv */
void daAuction_c::executeStart() {}
/* 00000B4C-00000C68 .text checkOrder__11daAuction_cFv */
void daAuction_c::checkOrder() {
if (eventInfo.checkCommandDemoAccrpt()) {
if (dComIfGp_evmng_startCheck(mEvtStartIdx) && m838 == 3) {
m838 = 0;
} else if (dComIfGp_evmng_startCheck(mEvtGetItemIdx) && m838 == 4) {
m838 = 0;
} else if (dComIfGp_evmng_startCheck(mEvtNoItemIdx) && m838 == 5) {
m838 = 0;
}
if (dComIfGp_evmng_startCheck(mEvtStart2Idx) && m838 == 6) {
m838 = 0;
} else if (dComIfGp_evmng_startCheck(mEvtEnd2Idx) && m838 == 7) {
m838 = 0;
}
}
}
/* 00000C68-00000EF8 .text eventOrder__11daAuction_cFv */
void daAuction_c::eventOrder() {
if (m821 == 1) {
mMoveState = 2;
m838 = 3;
m822 = m821;
m821 = 0;
} else if (m821 == 2) {
mMoveState = 2;
m838 = 6;
m822 = m821;
m821 = 0;
}
if (m838 == 1 || m838 == 2) {
eventInfo.onCondition(dEvtCnd_CANTALK_e);
if (m838 == 1) {
fopAcM_orderSpeakEvent(this);
}
} else if (m838 == 3) {
if (dComIfGs_isEventBit(0x4008)) {
mCurrAuctionItemIndex = dComIfGs_getEventReg(0xCD03);
mCurrBid += 10;
} else {
mCurrAuctionItemIndex = getItemNo();
}
dComIfGp_setItemNameMessageID(l_item_dat[mCurrAuctionItemIndex].mNameMsgID);
mCurrBid = l_item_dat[mCurrAuctionItemIndex].mStartingBid;
dComIfGp_setMessageCountNumber(mCurrBid);
fopAcM_orderChangeEventId(dComIfGp_getPlayer(0), this, mEvtStartIdx, 0, 0xFF7F);
dComIfGp_startMiniGame(5);
} else if (m838 == 4) {
fopAcM_orderOtherEventId(this, mEvtGetItemIdx, 0xFF, 0xFF7F);
} else if (m838 == 5) {
fopAcM_orderOtherEventId(this, mEvtNoItemIdx, 0xFF, 0xFF7F);
} else if (m838 == 6) {
mCurrAuctionItemIndex &= 1;
s16 nameMsgID = l_item_dat2[mCurrAuctionItemIndex].mNameMsgID;
mCurrBid = l_item_dat2[mCurrAuctionItemIndex].mStartingBid;
dComIfGp_setItemNameMessageID(nameMsgID);
dComIfGp_setMessageCountNumber(mCurrBid);
fopAcM_orderChangeEventId(dComIfGp_getPlayer(0), this, mEvtStart2Idx, 0, 0xFF7F);
dComIfGp_startMiniGame(5);
} else if (m838 == 7) {
fopAcM_orderOtherEventId(this, mEvtEnd2Idx, 0xFF, 0xFF7F);
}
}
/* 00000EF8-0000104C .text eventMove__11daAuction_cFv */
void daAuction_c::eventMove() {
if (dComIfGp_evmng_endCheck(mEvtStartIdx)) {
dComIfGp_event_reset();
if (m824 != 0) {
m838 = 5;
} else {
m838 = 4;
}
} else if (dComIfGp_evmng_endCheck(mEvtGetItemIdx) || dComIfGp_evmng_endCheck(mEvtNoItemIdx) || dComIfGp_evmng_endCheck(mEvtEnd2Idx)) {
dComIfGp_event_reset();
dComIfGp_endMiniGame(5);
fopAcM_delete((fopAc_ac_c*)mpTimer);
dAuction_screen_delete();
} else if (dComIfGp_evmng_endCheck(mEvtStart2Idx)) {
dComIfGp_event_reset();
m838 = 7;
} else {
bool attn = mNpcEvtInfo.getAttnFlag();
if (mNpcEvtInfo.cutProc()) {
if (!mNpcEvtInfo.getAttnFlag()) {
mNpcEvtInfo.setAttnFlag(attn);
}
} else {
privateCut();
}
}
}
/* 0000104C-00001300 .text privateCut__11daAuction_cFv */
void daAuction_c::privateCut() {
static char* cut_name_tbl[] = {
"MES_SET",
"MES_END",
"START",
"MAIN",
"GET_ITEM",
"CAMERA_OFF",
"GET_ITEM_NPC",
"GET_ITEM_MES",
"CAMERA_OFF_NPC",
"END",
"CAMERA_TEST",
};
enum {
ACT_MES_SET,
ACT_MES_END,
ACT_START,
ACT_MAIN,
ACT_GET_ITEM,
ACT_CAMERA_OFF,
ACT_GET_ITEM_NPC,
ACT_GET_ITEM_MES,
ACT_CAMERA_OFF_NPC,
ACT_END,
ACT_CAMERA_TEST,
};
int staffIdx = dComIfGp_evmng_getMyStaffId("Auction");
if (staffIdx == -1) {
return;
}
mAction = dComIfGp_evmng_getMyActIdx(staffIdx, cut_name_tbl, ARRAY_SIZE(cut_name_tbl), TRUE, 0);
if (mAction == -1) {
dComIfGp_evmng_cutEnd(staffIdx);
return;
}
if (dComIfGp_evmng_getIsAddvance(staffIdx)) {
switch (mAction) {
case ACT_MES_SET:
eventTalkInit(staffIdx);
break;
case ACT_START:
eventStartInit();
break;
case ACT_MAIN:
eventMainInit();
break;
case ACT_GET_ITEM:
eventGetItemInit();
break;
case ACT_CAMERA_OFF:
eventCameraOffInit();
break;
case ACT_GET_ITEM_NPC:
eventGetItemNpcInit(staffIdx);
break;
case ACT_GET_ITEM_MES:
eventGetItemMesInit();
break;
case ACT_END:
eventEndInit();
break;
case ACT_CAMERA_TEST:
eventCameraTestInit();
break;
}
}
bool evtRes;
switch (mAction) {
case ACT_MES_SET:
evtRes = eventMesSet();
break;
case ACT_MES_END:
evtRes = eventMesEnd();
break;
case ACT_START:
evtRes = eventStart();
break;
case ACT_MAIN:
evtRes = eventMain();
break;
case ACT_GET_ITEM:
evtRes = eventGetItem();
break;
case ACT_GET_ITEM_MES:
#if BUGFIX
evtRes = eventMesSet();
#elif __MWERKS__
// @bug They probably meant to call this function
evtRes = eventMesSet;
#else
evtRes = &daAuction_c::eventMesSet;
#endif
break;
case ACT_CAMERA_OFF_NPC:
evtRes = eventCameraOffNpc();
break;
case ACT_END:
evtRes = eventEnd();
break;
case ACT_CAMERA_TEST:
evtRes = eventCameraTest();
break;
default:
evtRes = true;
}
if (evtRes) {
dComIfGp_evmng_cutEnd(staffIdx);
}
dCamera_c* pCam = dCam_getBody();
// This could probably be simplified
if (m835 & 1) {
pCam->Stop();
m835 &= ~1;
m835 |= 4;
}
if (m835 & 2) {
pCam->Start();
m835 &= ~0xE;
}
if (m835 & 4 && m835 & 8) {
pCam->Set(m78C, m798);
}
}
/* 00001300-000013C0 .text eventTalkInit__11daAuction_cFi */
void daAuction_c::eventTalkInit(int staffIdx) {
int* pMsg = dComIfGp_evmng_getMyIntegerP(staffIdx, "MsgNo");
if (pMsg != NULL) {
switch (*pMsg) {
case 0x1CF4:
mDoAud_seStart(JA_SE_AUC_ITEM_SHOW);
default:
setMessage(*pMsg);
}
} else {
setMessage(0);
}
}
/* 000013C0-00001400 .text eventMesSet__11daAuction_cFv */
bool daAuction_c::eventMesSet() {
talk(0);
return mCurrMsgBsPcId != fpcM_ERROR_PROCESS_ID_e;
}
/* 00001400-00001434 .text eventMesEnd__11daAuction_cFv */
bool daAuction_c::eventMesEnd() {
return talk(0) == fopMsgStts_BOX_CLOSED_e;
}
/* 00001434-00001634 .text eventStartInit__11daAuction_cFv */
void daAuction_c::eventStartInit() {
m820 = ~1;
if (m822 == 2) {
mTimerID = dTimer_createTimer(4, 30, 1, 0, 221.0f, 439.0f, 32.0f, 419.0f);
} else {
mTimerID = dTimer_createTimer(4, 60, 1, 0, 221.0f, 439.0f, 32.0f, 419.0f);
}
JUT_ASSERT(0x861, mTimerID != fpcM_ERROR_PROCESS_ID_e);
mGaugeID = dAuction_screen_create();
JUT_ASSERT(0x863, mGaugeID != fpcM_ERROR_PROCESS_ID_e);
mpTimer = NULL;
m830 = 1;
dComIfGp_setMiniGameRupee(0);
dComIfGp_setAuctionRupee(0);
dAuction_screen_slotHide();
dAuction_screen_gaugeHide();
dAuction_screen_talkEnd();
mCurrAuctionItemPID = fopAcM_create(PROC_ShopItem, l_item_dat[mCurrAuctionItemIndex].mItemID, &current.pos);
dKy_custom_colset(0, 4, 1.0f);
mLight.mPos.x = 0.0f;
mLight.mPos.y = 50.0f;
mLight.mPos.z = -200.0f;
mLight.mColor.r = 0x96;
mLight.mColor.g = 0x64;
mLight.mColor.b = 0x3C;
mLight.mPower = 450.0f;
mLight.mFluctuation = 0.0f;
dKy_efplight_set(&mLight);
mFlags |= 4;
dAuction_screen_talkEnd();
}
/* 00001634-000016AC .text eventStart__11daAuction_cFv */
bool daAuction_c::eventStart() {
if (mpTimer == NULL) {
mpTimer = (dTimer_c*)fopMsgM_SearchByID(mTimerID);
if (mpTimer != NULL) {
mpTimer->mpScrnDraw->setShowType(0);
}
}
dComIfGp_setDoStatusForce(dActStts_HIDDEN_e);
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
return mpTimer != NULL;
}
/* 000016AC-0000188C .text eventMainInit__11daAuction_cFv */
void daAuction_c::eventMainInit() {
m804 = 3600;
for (int i = 0; i < 7; i++) {
m7C4[i] = 0.0f;
}
if (m822 == 2) {
m81F = 1;
} else {
m81F = 0;
}
m7E0 = 0.0f;
m7E4 = 1.0f;
m82A = 0;
for (int i = 0; i < 3; i++) {
s16 restMsgTime;
if (m822 == 2) {
restMsgTime = l_rest_msg_time2[i];
} else {
restMsgTime = l_rest_msg_time1[i];
}
if (60000 > restMsgTime) break; // Bug: restMsgTime is an s16, so this condition is always true.
m82A += 1;
}
m82B = 0;
m835 = 0;
m834 = 0;
m82E = 0;
dComIfG_TimerStart(0, 4);
if (m822 == 1) {
dAuction_screen_gaugeShow();
}
m836 |= 1;
daPy_py_c* pLink = (daPy_py_c*)dComIfGp_getLinkPlayer();
pLink->changeOriginalDemo();
mCurLinkAnm = daPy_demo_c::DEMO_UNK01_e;
dComIfGp_event_setTalkPartner(this);
m82F = 0;
m78C = l_camera_pos[m82F][0];
m798 = l_camera_pos[m82F][1];
dAuction_screen_talkEnd();
}
static daAuction_c::ProcFunc_t eventProc[] = {
&daAuction_c::eventMainKai,
&daAuction_c::eventMainUri,
&daAuction_c::eventMainMsgSet,
&daAuction_c::eventMainMsgEnd,
&daAuction_c::eventMainMsgBikonC,
&daAuction_c::eventMainMsgBikonW,
};
/* 0000188C-00001A98 .text eventMain__11daAuction_cFv */
bool daAuction_c::eventMain() {
daPy_lk_c* pLink = (daPy_lk_c*)dComIfGp_getLinkPlayer();
if (
pLink->getBaseAnimeFrameRate() == 0.0f &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK01_e &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK25_e
) {
setLinkAnm(daPy_demo_c::DEMO_UNK01_e);
}
mFlags &= 4;
if (dComIfG_getTimerMode() == 4) {
dComIfG_TimerStop(2);
}
(this->*eventProc[m81F])();
if (m832 != 0) {
pLink->setFace((daPy_py_c::daPy_FACE)mFace);
}
if (m822 == 1) {
dComIfGp_setAuctionGauge((s16)m7C4[0]);
}
if (m81F <= 1 && m82B != 0) {
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m824)].field_0x00);
if (dComIfG_getTimerMode() == 4) {
dComIfG_TimerStop(2);
}
dAuction_screen_slotHide();
dAuction_screen_gaugeHide();
m82B = 1;
m834 = 0;
m836 |= 2;
// Might be incorrect
pLink->cancelOriginalDemo();
if (m835 & 4) {
m835 |= 2;
m835 &= ~1;
}
mDoAud_seStart(JA_SE_AUC_END);
return true;
}
return false;
}
/* 00001A98-000022A8 .text eventMainKai__11daAuction_cFv */
void daAuction_c::eventMainKai() {
if (dComIfG_getTimerMode() == 4) {
dComIfG_TimerReStart(2);
}
if (dComIfG_getTimerRestTimeMs() <= 0) {
m82B = 1;
} else {
if (CPad_CHECK_TRIG_B(0)) {
setMessage2(0x1CFC);
mDoAud_seStart(JA_SE_AUC_QUIT);
} else {
// I think this uses std::abs in kiosk build?
m7E0 = m7E0 + m7E4;
if (m7E0 >= 1.0f) {
m7E0 = 1.0f;
m7E4 = -1.0f;
} else if (m7E0 <= -1.0f) {
m7E0 = -1.0f;
m7E4 = 1.0f;
}
if (m7C4[0] < 100.0f) {
m7C4[0] += 0.02f;
}
if (CPad_CHECK_TRIG_A(0)) {
m7C4[0] += l_npc_dat[0].field_0x00 + cM_rndF(l_npc_dat[0].field_0x04 - l_npc_dat[0].field_0x00);
mDoAud_seStart(JA_SE_AUC_BID_GAUGE, NULL, m7C4[0]);
}
if (m7C4[0] > 100.0f) {
m7C4[0] = 100.0f;
}
if (m806 != 0) {
m806 -= 1;
if (m806 == 0) {
if (m834 & 2) {
m82F = getRand(3);
m78C = l_camera_pos[m82F][0];
m798 = l_camera_pos[m82F][1];
}
m834 &= ~6;
}
} else {
for (int i = 1; i < 7; i++) {
m7C4[i] += cM_rndF(l_npc_dat[i].field_0x04 - l_npc_dat[i].field_0x00) + l_npc_dat[i].field_0x00;
}
}
int idx;
int end = 7;
if ((m834 & 2)) {
end = 1;
}
for (idx = 0; idx < end; idx++) {
if (m7C4[idx] >= 100.0f && mCurrBid < l_npc_dat[idx].mSpendingLimit) {
break;
}
}
if (idx < end) {
m828 = idx;
s16 prevItemNameMsgNo = mCurrBid;
if (idx != 0) {
f32 f = 1.0f;
if (dComIfG_getTimerRestTimeMs() < 30000) {
f = 2.0f;
} else if (dComIfG_getTimerRestTimeMs() < 60000) {
f = 1.5f;
}
mCurrBid += (s16)(f * (s16)(l_npc_dat[idx].mBidIncMin + cM_rndF(l_npc_dat[idx].mBidIncMax - l_npc_dat[idx].mBidIncMin)));
m800 = mCurrBid;
end = 0x1CF9;
m82C = 4;
m7C4[idx] = 0.0f;
nextBet();
} else {
m800 = mCurrBid + 1;
dComIfGp_setMessageSetNumber(mCurrBid + 1);
end = 0x1CFA;
setLinkAnm(daPy_demo_c::DEMO_UNK48_e);
mpTimer->mpScrnDraw->setShowType(1);
dAuction_screen_gaugeUp();
dComIfGp_getVibration().StartShock(5, 1, cXyz(0.0f, 1.0f, 0.0f));
dComIfGp_getVibration().StartShock(4, 0x3E, cXyz(0.0f, 1.0f, 0.0f));
}
m806 = (cM_rndF(0.0f) + 1.0f) * 60.0f;
m7F0 = end;
m81F = 4;
if (m830 != 0) {
m830 = 0;
} else if (m826 != 0xFF && idx != 0 && dComIfG_getTimerRestTimeMs() > l_rest_msg_time1[0] && getRand(3) == 0) {
u32 msgParam;
if (mCurrBid <= 100) {
msgParam = 0x1CFD;
} else if (mCurrBid <= 150) {
msgParam = 0x1CFE;
} else if (mCurrBid <= 200) {
msgParam = 0x1CFF;
} else {
msgParam = 0x1D00;
}
// onCameraOld might be used somewhere here?
dComIfGp_setMessageCountNumber(prevItemNameMsgNo);
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m824)].field_0x00);
setMessage2(msgParam);
setCameraNpc(m824, 0);
if (m824 == 0 && mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e) {
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
}
m834 |= 0x20;
m829 = m827;
m830 = 1;
}
if (m81F == 4) {
u8 tmp = m828;
m829 = tmp;
m827 = tmp;
dComIfGp_setMessageCountNumber(m800);
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m827)].field_0x00);
}
m835 |= 9;
m835 &= ~2;
} else if (dComIfG_getTimerRestTimeMs() < l_rest_msg_time1[m82A]) {
setMessage2(l_rest_msg_no[m82A]);
mDoAud_seStart(l_rest_se_no[m82A]);
m82A += 1;
}
}
if (m834 & 2) {
m834 |= 4;
m798.set(0.0f, 50.0f, -210.0f);
m78C.set(getNpcActorP(0)->current.pos);
m78C.x += cM_ssin(m808) * 256.0f;
m78C.y += 100.0f;
m808 += 200;
mDoAud_seStart(JA_SE_CM_AUC_PARALYZED);
}
}
dComIfGp_setDoStatusForce(dActStts_BID_e);
dComIfGp_setAStatusForce(dActStts_CANCEL_e);
}
/* 000022A8-00002760 .text eventMainUri__11daAuction_cFv */
void daAuction_c::eventMainUri() {
if (dComIfG_getTimerMode() == 4) {
dComIfG_TimerReStart(2);
}
if (dComIfG_getTimerRestTimeMs() <= 0) {
m82B = 1;
} else if (m82E != 0 && CPad_CHECK_TRIG_A(0)) {
setMessage2(0x1D1A);
} else {
if (m806 != 0) {
m806 -= 1;
} else {
for (int i = 1; i < 7; i++) {
m7C4[i] += 2.0f * (l_npc_dat[i].field_0x00 + cM_rndF(l_npc_dat[i].field_0x04 - l_npc_dat[i].field_0x00));
}
}
int idx;
for (idx = 1; idx < 7; idx++) {
if (m7C4[idx] >= 100.0f) {
m7C4[idx] = 0.0f;
if (mCurrBid < l_npc_dat[idx].mSpendingLimit) {
break;
}
}
}
if (idx < 7) {
m828 = idx;
if (idx != 0) {
float multiplier = 1.0f;
if (dComIfG_getTimerRestTimeMs() < 30000) {
multiplier = 2.0f;
} else if (dComIfG_getTimerRestTimeMs() < 60000) {
multiplier = 1.5f;
}
mCurrBid += (s16)(multiplier * (2 * (s16)(l_npc_dat[idx].mBidIncMin + cM_rndF(l_npc_dat[idx].mBidIncMax - l_npc_dat[idx].mBidIncMin))));
m800 = mCurrBid;
m7F0 = 0x1CF9;
m82C = 4;
m82E = 1;
m806 = cM_rndF(1.0) * 60.0f;
m81F = 4;
// onCameraOld might be used here
if (m830 != 0) {
m830 = 0;
} else if (dComIfG_getTimerRestTimeMs() > l_rest_msg_time1[0] && getRand(3) == 0) {
u32 msgParam;
if (mCurrBid <= 100) {
msgParam = 0x1CFD;
} else if (mCurrBid <= 150) {
msgParam = 0x1CFE;
} else if (mCurrBid <= 200) {
msgParam = 0x1CFF;
} else {
msgParam = 0x1D00;
}
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m824)].field_0x00);
setMessage2(msgParam);
setCameraNpc(m824, 0);
if (m824 == 0) {
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
}
m834 |= 0x20;
m829 = m827;
m830 = 1;
}
if (m81F == 4) {
u8 m828_val = m828;
m829 = m828_val;
m827 = m828_val;
dComIfGp_setMessageCountNumber(m800);
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m827)].field_0x00);
}
m835 |= 9;
m835 &= ~2;
}
} else if (dComIfG_getTimerRestTimeMs() < l_rest_msg_time2[m82A]) {
setMessage2(l_rest_msg_no[m82A]);
mDoAud_seStart(l_rest_se_no[m82A]);
m82A += 1;
}
}
if (m82E != 0) {
dComIfGp_setDoStatusForce(dActStts_BID_e);
}
}
/* 00002760-0000279C .text eventMainMsgSet__11daAuction_cFv */
void daAuction_c::eventMainMsgSet() {
if (eventMesSet()) {
m81F = 3;
}
}
/* 0000279C-0000294C .text eventMainMsgEnd__11daAuction_cFv */
void daAuction_c::eventMainMsgEnd() {
if (eventMesEnd()) {
if (mCurLinkAnm != daPy_demo_c::DEMO_UNK01_e && mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e) {
setLinkAnm(daPy_demo_c::DEMO_UNK01_e);
}
if (m834 & 0x20) {
m81F = 4;
} else {
if (m822 == 2) {
m81F = 1;
} else {
m81F = 0;
}
eyePos = current.pos;
m832 = 0;
}
m7E0 = 0.0f;
if ((m834 & 2) == 0) {
m82F = getRand(3);
m78C = l_camera_pos[m82F][0];
m798 = l_camera_pos[m82F][1];
}
mpTimer->mpScrnDraw->setShowType(0);
dAuction_screen_gaugeDown();
m834 &= ~0x29;
dAuction_screen_talkEnd();
dAuction_screen_gaugeShow();
return;
}
if (dComIfGp_checkMesgSendButton() && ((m7EC >= 0x1D3AU && m7EC <= 0x1D4BU) || (m7EC >= 0x339DU && m7EC <= 0x33A8U))) {
setCameraNpc(m825, 0);
m834 |= 8;
m829 = m825;
}
}
/* 0000294C-00002B90 .text eventMainMsgBikonC__11daAuction_cFv */
void daAuction_c::eventMainMsgBikonC() {
u8 tmp = m828;
m829 = tmp;
m827 = tmp;
dComIfGp_setMessageCountNumber(m800);
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m827)].field_0x00);
cXyz npcPos = getNpcActorP(m827)->current.pos;
npcPos.y += getPiconDispOfs(m827) + 30.0f;
if (cLib_addCalcPos(&m78C, npcPos, 0.4f, 700.0f, 0.1f) == 0.0f) {
m81F = 5;
m7A8 = getNpcActorP(m827)->current.pos;
m7A8.y += getPiconDispOfs(m827);
dComIfGp_particle_set(dPa_name::ID_SCENE_8153, &m7A8, NULL, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this));
mTimer = 30;
if (m827 == 0) {
mDoAud_seStart(JA_SE_AUC_BID_GAUGE_MAX);
} else {
mDoAud_seStart(JA_SE_CM_AUC_CALL_BID);
m832 = 1;
mFace = l_link_face[getRand(8)];
}
eyePos = getNpcActorP(m827)->eyePos;
}
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
}
/* 00002B90-00002C1C .text eventMainMsgBikonW__11daAuction_cFv */
void daAuction_c::eventMainMsgBikonW() {
if (mTimer != 0) {
mTimer -= 1;
} else {
setMessage2(m7F0);
setCameraNpc(m827, 0);
dAuction_screen_talkStart();
if (m827 != 0) {
m834 |= 1;
}
}
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
}
/* 00002C1C-00002D4C .text eventGetItemInit__11daAuction_cFv */
void daAuction_c::eventGetItemInit() {
if (m822 == 2) {
fpc_ProcID itemID = fopAcM_createItemForPresentDemo(&current.pos, l_item_dat22[mCurrAuctionItemIndex] & 0xFF);
if (itemID != fpcM_ERROR_PROCESS_ID_e) {
dComIfGp_event_setItemPartnerId(itemID);
}
dComIfGs_onEventBit(l_item_dat2[mCurrAuctionItemIndex].mObtainedEventBit);
} else {
fpc_ProcID itemID = fopAcM_createItemForPresentDemo(&current.pos, l_item_dat[mCurrAuctionItemIndex].mItemID & 0xFF);
if (itemID != fpcM_ERROR_PROCESS_ID_e) {
dComIfGp_event_setItemPartnerId(itemID);
}
dComIfGs_onEventBit(l_item_dat[mCurrAuctionItemIndex].mObtainedEventBit);
}
setCameraNpc(0, 0);
}
/* 00002D4C-00002D54 .text eventGetItem__11daAuction_cFv */
bool daAuction_c::eventGetItem() {
return true;
}
/* 00002D54-00002D70 .text eventCameraOffInit__11daAuction_cFv */
void daAuction_c::eventCameraOffInit() {
offCamera();
}
/* 00002D70-00002E00 .text eventGetItemNpcInit__11daAuction_cFi */
void daAuction_c::eventGetItemNpcInit(int staffIdx) {
setCameraNpc(m824, 0);
int* pTimerData = dComIfGp_evmng_getMyIntegerP(staffIdx, "Timer");
if (pTimerData != NULL) {
mTimer = *pTimerData;
} else {
mTimer = 0;
}
m834 = 0x10;
m829 = m824;
}
/* 00002E00-00002E40 .text eventGetItemMesInit__11daAuction_cFv */
void daAuction_c::eventGetItemMesInit() {
setMessage(l_npc_msg_dat[getAucMdlNo(m824)].field_0x08);
}
/* 00002E40-00002EA0 .text eventCameraOffNpc__11daAuction_cFv */
bool daAuction_c::eventCameraOffNpc() {
if (eventMesEnd()) {
m834 = 0;
offCamera();
return true;
}
return false;
}
/* 00002EA0-00002EDC .text eventEndInit__11daAuction_cFv */
void daAuction_c::eventEndInit() {
mBlend = 0.0f;
mFlags &= ~4;
dKy_efplight_cut(&mLight);
}
/* 00002EDC-00002F60 .text eventEnd__11daAuction_cFv */
bool daAuction_c::eventEnd() {
mBlend += 0.05f;
if (mBlend > 1.0f) {
mBlend = 1.0f;
}
dKy_custom_colset(4, 0, mBlend);
// "return mBlend == 1.0f" doesn't match for some reason
return mBlend == 1.0f ? true : false;
}
/* 00002F60-00002F64 .text eventCameraTestInit__11daAuction_cFv */
void daAuction_c::eventCameraTestInit() {}
/* 00002F64-00002F6C .text eventCameraTest__11daAuction_cFv */
bool daAuction_c::eventCameraTest() {
return true;
}
/* 00002F6C-0000369C .text next_msgStatus__11daAuction_cFPUl */
u16 daAuction_c::next_msgStatus(u32* pMsgNo) {
u16 ret = 0xF;
switch (*pMsgNo) {
case 0x1CF2:
*pMsgNo = 0x1CF3;
break;
case 0x1CF4:
if (m822 == 2) {
*pMsgNo = 0x1D1B;
break;
}
if (dComIfGs_isEventBit(0x4008)) {
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[dComIfGs_getEventReg(0x790F)].field_0x00);
*pMsgNo = 0x1CF6;
} else {
*pMsgNo = 0x1CF5;
}
break;
case 0x1CF7:
dComIfGp_setMiniGameRupee(mCurrBid);
dComIfGp_setAuctionRupee(mCurrBid);
dAuction_screen_slotShow();
*pMsgNo = 0x1CF8;
break;
case 0x1CF9: {
dComIfGp_setMiniGameRupee(mCurrBid);
dComIfGp_setAuctionRupee(mCurrBid);
if (m82C < 4) {
*pMsgNo = l_after_bet_msg_no[m82C];
} else if (m827 == 0 && l_npc_msg_dat[getAucMdlNo(m824)].field_0x02 != 0) {
if (dComIfG_getTimerRestTimeMs() < 60000) {
*pMsgNo = l_npc_msg_dat[getAucMdlNo(m824)].field_0x04;
} else {
*pMsgNo = l_npc_msg_dat[getAucMdlNo(m824)].field_0x02;
}
} else {
ret = 0x10;
}
m825 = m824;
u8 tmp = m827;
m826 = tmp;
m824 = tmp;
if (m826 != 0) {
setLinkAnm(daPy_demo_c::DEMO_UNK01_e);
}
break;
}
case 0x1CFA: {
s16 msgSetNo = dComIfGp_getMessageSetNumber();
if (dComIfGs_getRupee() < msgSetNo) {
mDoAud_seStart(JA_SE_AUC_BID_NG);
setLinkAnm(daPy_demo_c::DEMO_UNK4A_e);
*pMsgNo = 0x1CFB;
m7C4[0] = 50.0f;
} else if (msgSetNo <= mCurrBid) {
mDoAud_seStart(JA_SE_AUC_BID_NG);
setLinkAnm(daPy_demo_c::DEMO_UNK4A_e);
*pMsgNo = 0x1D1E;
m7C4[0] = 50.0f;
} else {
mDoAud_seStart(JA_SE_AUC_BID_OK);
m7C4[0] = 0.0f;
if (msgSetNo == 999) {
*pMsgNo = 0x1D24;
m825 = m824;
u8 tmp = m827;
m826 = tmp;
m824 = tmp;
} else {
*pMsgNo = 0x1CF9;
m82C = 4; // ?
for (m82C = 0; m82C < 4; m82C++) {
if (msgSetNo >= (s16)(mCurrBid * l_after_bet_rate[m82C]) &&
mCurrBid >= l_after_bet_chk[m82C])
{
m806 = (s16)(60.0f * (l_after_bet_wait[m82C][0] + cM_rndF(l_after_bet_wait[m82C][1] - l_after_bet_wait[m82C][0])));
break;
}
}
}
mCurrBid = msgSetNo;
dComIfGp_setMessageCountNumber(mCurrBid);
}
break;
}
case 0x1CFC:
if (mpCurrMsg->mSelectNum == 0) {
*pMsgNo = 0x1D1F;
} else {
ret = 0x10;
}
break;
case 0x1D1A:
if (mpCurrMsg->mSelectNum == 0) {
m82B = 1;
}
ret = 0x10;
break;
case 0x1D1F:
dComIfGp_setNextStage("sea", 3, 11);
case 0x1D24:
m82B = 1;
ret = 0x10;
break;
case 0x1D20:
case 0x1D21:
case 0x1D22:
case 0x1D23: {
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
int rnd = getRand(6) + 1;
*pMsgNo = l_npc_msg_dat[getAucMdlNo(rnd)].field_0x06;
m825 = rnd;
break;
}
case 0x1D48:
case 0x33A2:
case 0x33A8:
case 0x33A5:
case 0x339F:
case 0x1D4B:
case 0x1D3F:
case 0x1D45:
case 0x1D42:
case 0x1D3C:
this->m834 |= 2;
this->m808 = 0;
ret = 0x10;
break;
case 0x1D05:
if (m822 == 2) {
*pMsgNo = 0x1D1C;
} else {
if (m824 != 0) {
dComIfGs_onEventBit(0x4008);
dComIfGs_setEventReg(0x790F, getAucMdlNo(m824));
dComIfGs_setEventReg(0xCD03, mCurrAuctionItemIndex);
} else {
dComIfGs_offEventBit(0x4008);
}
fopAcM_delete(mCurrAuctionItemPID);
ret = 0x10;
}
break;
case 0x1D1C:
dComIfGp_setItemRupeeCount(mCurrBid);
ret = 0x10;
break;
case 0x1D07:
dComIfGp_setItemRupeeCount(-mCurrBid);
*pMsgNo = 0x1D08;
break;
case 0x1D1D:
case 0x1D08:
*pMsgNo = 0x1D09;
break;
default:
ret = 0x10;
break;
}
if (ret == 0xF) {
m7EC = *pMsgNo;
} else {
m7EC = 0;
}
return ret;
}
/* 0000369C-000036AC .text setMessage__11daAuction_cFUl */
void daAuction_c::setMessage(u32 msg) {
mCurrMsgBsPcId = fpcM_ERROR_PROCESS_ID_e;
mCurrMsgNo = msg;
}
/* 000036AC-000036E4 .text setMessage2__11daAuction_cFUl */
void daAuction_c::setMessage2(u32 msg) {
setMessage(msg);
m81F = 2;
dAuction_screen_gaugeHide();
}
/* 000036E4-00003754 .text setMtx__11daAuction_cFv */
void daAuction_c::setMtx() {
mpModel->setBaseScale(scale);
mDoMtx_stack_c::transS(current.pos);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 00003754-00003828 .text getItemNo__11daAuction_cFv */
u8 daAuction_c::getItemNo() {
int i;
int rand_max = 0;
for (i = 0; i < 4; i++) {
if (!dComIfGs_isEventBit(l_item_dat[i].mObtainedEventBit)) {
rand_max += 1;
}
}
int rand = getRand(rand_max);
for (i = 0; i < 3; i++) {
if (!dComIfGs_isEventBit(l_item_dat[i].mObtainedEventBit)) {
if (rand == 0) break;
rand -= 1;
}
}
return i;
}
/* 00003828-0000387C .text getNpcActorP__11daAuction_cFi */
fopAc_ac_c* daAuction_c::getNpcActorP(int idx) {
if (idx != 0) {
return fopAcM_SearchByID(m738[idx]);
}
return dComIfGp_getPlayer(0);
}
/* 0000387C-000039FC .text setCameraNpc__11daAuction_cFis */
void daAuction_c::setCameraNpc(int idx, s16 param_2) {
fopAc_ac_c* pActor = getNpcActorP(idx);
m78C = pActor->current.pos;
m78C.y += l_npc_camera_dat[idx].field_0x04;
m798.x = l_npc_camera_dat[idx].field_0x00 * cM_ssin(pActor->current.angle.y);
m798.y = 0.0f;
m798.z = l_npc_camera_dat[idx].field_0x00 * cM_scos(pActor->current.angle.y);
s16 yRot = l_npc_camera_dat[idx].field_0x0A;
if (param_2 != 0) {
yRot += param_2;
} else {
s16 rnd = (s16)cM_rndFX(8000.0f);
yRot += rnd;
}
mDoMtx_stack_c::YrotS(yRot);
mDoMtx_stack_c::XrotM(l_npc_camera_dat[idx].field_0x08);
cMtx_multVec(mDoMtx_stack_c::get(), &m798, &m798);
m798 += m78C;
// onCamera inline
m835 |= 9;
m835 &= ~2;
}
/* 000039FC-00003A3C .text setLinkAnm__11daAuction_cFUc */
void daAuction_c::setLinkAnm(u8 linkAnm) {
if (linkAnm == daPy_demo_c::DEMO_UNK01_e && m826 == 0) {
linkAnm = daPy_demo_c::DEMO_UNK1D_e;
}
daPy_lk_c* pLink = (daPy_lk_c*)dComIfGp_getLinkPlayer();
pLink->changeDemoMode(linkAnm);
pLink->changeDemoParam0(3);
mCurLinkAnm = linkAnm;
}
/* 00003A3C-00003A74 .text getPiconDispOfs__11daAuction_cFUc */
f32 daAuction_c::getPiconDispOfs(u8 param) {
if (param == 0) {
return l_npc_emitter_ofsy[0];
}
daNpcAuction_c* pNpcActor = (daNpcAuction_c*)getNpcActorP(param);
return pNpcActor->getPiconOfsY();
}
/* 00003A74-00003BA4 .text nextBet__11daAuction_cFv */
void daAuction_c::nextBet() {
if (m831 != 0) {
m831 -= 1;
return;
}
for (int i = 1; i < 7; i++) {
f32 rnd = getRand(60 - (dComIfG_getTimerRestTimeMs() / 1000));
if (rnd > 50.0f) {
rnd = 50.0f;
}
m7C4[i] += rnd;
if (m7C4[i] >= 100.0f) {
m831 += 1;
}
}
m831 += 2;
}
/* 00003BA4-00003C08 .text getRand__11daAuction_cFi */
int daAuction_c::getRand(int max) {
int rnd = (int)cM_rndF(max);
if (rnd == max) {
rnd = 0;
}
return rnd;
}
/* 00003C08-00003C28 .text daAuctionCreate__FPv */
static s32 daAuctionCreate(void* i_this) {
return static_cast<daAuction_c*>(i_this)->_create();
}
/* 00003C28-00003C48 .text daAuctionDelete__FPv */
static BOOL daAuctionDelete(void* i_this) {
return static_cast<daAuction_c*>(i_this)->_delete();
}
/* 00003C48-00003C68 .text daAuctionExecute__FPv */
static BOOL daAuctionExecute(void* i_this) {
return static_cast<daAuction_c*>(i_this)->_execute();
}
/* 00003C68-00003C88 .text daAuctionDraw__FPv */
static BOOL daAuctionDraw(void* i_this) {
return static_cast<daAuction_c*>(i_this)->_draw();
}
/* 00003C88-00003C90 .text daAuctionIsDelete__FPv */
static BOOL daAuctionIsDelete(void*) {
return TRUE;
}
static actor_method_class daAuctionMethodTable = {
(process_method_func)daAuctionCreate,
(process_method_func)daAuctionDelete,
(process_method_func)daAuctionExecute,
(process_method_func)daAuctionIsDelete,
(process_method_func)daAuctionDraw,
};
actor_process_profile_definition g_profile_AUCTION = {
/* LayerID */ fpcLy_CURRENT_e,
/* ListID */ 0x0007,
/* ListPrio */ fpcPi_CURRENT_e,
/* ProcName */ PROC_AUCTION,
/* Proc SubMtd */ &g_fpcLf_Method.base,
/* Size */ sizeof(daAuction_c),
/* SizeOther */ 0,
/* Parameters */ 0,
/* Leaf SubMtd */ &g_fopAc_Method.base,
/* Priority */ 0x01E0,
/* Actor SubMtd */ &daAuctionMethodTable,
/* Status */ fopAcStts_UNK4000_e | fopAcStts_UNK40000_e,
/* Group */ fopAc_ACTOR_e,
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
};