mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-04 10:48:31 -04:00
150 lines
4.2 KiB
C++
150 lines
4.2 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: d_a_race_item_static.cpp
|
|
//
|
|
|
|
#include "d/actor/d_a_race_item.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_item.h"
|
|
#include "d/d_item_data.h"
|
|
#include "m_Do/m_Do_mtx.h"
|
|
|
|
/* 80068A58-80068AA4 .text raceItemForceGet__12daRaceItem_cFv */
|
|
void daRaceItem_c::raceItemForceGet() {
|
|
field_0x640 = 1;
|
|
switch(field_0x644) {
|
|
case 0:
|
|
raceItemGet();
|
|
break;
|
|
case 1:
|
|
normalItemGet();
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 80068AA4-80068D48 .text raceItemGet__12daRaceItem_cFv */
|
|
void daRaceItem_c::raceItemGet() {
|
|
switch(m_itemNo) {
|
|
case dItem_GREEN_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(1);
|
|
break;
|
|
case dItem_BLUE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_BLUE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(5);
|
|
break;
|
|
case dItem_YELLOW_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(10);
|
|
break;
|
|
case dItem_RED_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(20);
|
|
break;
|
|
case dItem_PURPLE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(50);
|
|
break;
|
|
case dItem_ORANGE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(100);
|
|
break;
|
|
case dItem_SILVER_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
dComIfGp_plusMiniGameRupee(200);
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 80068D48-80068FD0 .text normalItemGet__12daRaceItem_cFv */
|
|
void daRaceItem_c::normalItemGet() {
|
|
field_0x640 = 1;
|
|
execItemGet(m_itemNo);
|
|
if(mItemBitNo != 0x7F) {
|
|
dComIfGs_onItem(mItemBitNo, fopAcM_GetHomeRoomNo(this));
|
|
}
|
|
|
|
switch(m_itemNo) {
|
|
case dItem_GREEN_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_LUPY_GET);
|
|
break;
|
|
case dItem_BLUE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_BLUE_LUPY_GET);
|
|
break;
|
|
case dItem_YELLOW_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
break;
|
|
case dItem_RED_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
break;
|
|
case dItem_PURPLE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
break;
|
|
case dItem_ORANGE_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
break;
|
|
case dItem_SILVER_RUPEE_e:
|
|
mDoAud_seStart(JA_SE_RED_LUPY_GET);
|
|
break;
|
|
case dItem_SMALL_MAGIC_e:
|
|
mDoAud_seStart(JA_SE_MAGIC_POT_GET_S);
|
|
break;
|
|
case dItem_LARGE_MAGIC_e:
|
|
mDoAud_seStart(JA_SE_MAGIC_POT_GET_L);
|
|
break;
|
|
case dItem_BOMB_5_e:
|
|
case dItem_BOMB_10_e:
|
|
case dItem_BOMB_20_e:
|
|
case dItem_BOMB_30_e:
|
|
case dItem_ARROW_10_e:
|
|
case dItem_ARROW_20_e:
|
|
case dItem_ARROW_30_e:
|
|
mDoAud_seStart(JA_SE_CONSUMP_ITEM_GET);
|
|
break;
|
|
case dItem_TRIPLE_HEART_e:
|
|
mDoAud_seStart(JA_SE_HEART_PIECE);
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 80068FD0-80068FE0 .text startOffsetPos__12daRaceItem_cFv */
|
|
BOOL daRaceItem_c::startOffsetPos() {
|
|
field_0x640 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 80068FE0-8006903C .text endOffsetPos__12daRaceItem_cFfP4cXyzffP5csXyz */
|
|
BOOL daRaceItem_c::endOffsetPos(f32 param_1, cXyz* param_2, f32 param_3, f32 param_4, csXyz* param_5) {
|
|
if(param_5) {
|
|
current.angle = *param_5;
|
|
}
|
|
if(param_2) {
|
|
scale = *param_2;
|
|
}
|
|
|
|
gravity = param_1;
|
|
speedF = param_4;
|
|
speed.y = param_3;
|
|
field_0x640 = 3;
|
|
|
|
return true;
|
|
}
|
|
|
|
/* 8006903C-80069064 .text checkOffsetPos__12daRaceItem_cFv */
|
|
BOOL daRaceItem_c::checkOffsetPos() {
|
|
BOOL ret = true;
|
|
if(cLib_checkBit(field_0x645, (u8)0x01) || fopAcM_checkHookCarryNow(this)) {
|
|
ret = false;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/* 80069064-800690E4 .text set_mtx__12daRaceItem_cFP4cXyz */
|
|
void daRaceItem_c::set_mtx(cXyz* param_1) {
|
|
mpModel->setBaseScale(scale);
|
|
mDoMtx_stack_c::transS(*param_1);
|
|
mDoMtx_stack_c::YrotM(current.angle.y);
|
|
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
}
|