summaryrefslogtreecommitdiff
path: root/src/d/d_a_race_item_static.cpp
blob: 2d1cc5ad6a04bd46b6a4e9b52ad3dfcc1e7663c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
//
// Generated by dtk
// Translation Unit: d_a_race_item_static.cpp
//

#include "d/dolzel.h" // IWYU pragma: keep
#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 dItemNo_GREEN_RUPEE_e:
            mDoAud_seStart(JA_SE_LUPY_GET);
            dComIfGp_plusMiniGameRupee(1);
            break;
        case dItemNo_BLUE_RUPEE_e:
            mDoAud_seStart(JA_SE_BLUE_LUPY_GET);
            dComIfGp_plusMiniGameRupee(5);
            break;
        case dItemNo_YELLOW_RUPEE_e:
            mDoAud_seStart(JA_SE_LUPY_GET);
            dComIfGp_plusMiniGameRupee(10);
            break;
        case dItemNo_RED_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            dComIfGp_plusMiniGameRupee(20);
            break;
        case dItemNo_PURPLE_RUPEE_e:
            mDoAud_seStart(JA_SE_LUPY_GET);
            dComIfGp_plusMiniGameRupee(50);
            break;
        case dItemNo_ORANGE_RUPEE_e:
            mDoAud_seStart(JA_SE_LUPY_GET);
            dComIfGp_plusMiniGameRupee(100);
            break;
        case dItemNo_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 dItemNo_GREEN_RUPEE_e:
            mDoAud_seStart(JA_SE_LUPY_GET);
            break;
        case dItemNo_BLUE_RUPEE_e:
            mDoAud_seStart(JA_SE_BLUE_LUPY_GET);
            break;
        case dItemNo_YELLOW_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            break;
        case dItemNo_RED_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            break;
        case dItemNo_PURPLE_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            break;
        case dItemNo_ORANGE_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            break;
        case dItemNo_SILVER_RUPEE_e:
            mDoAud_seStart(JA_SE_RED_LUPY_GET);
            break;
        case dItemNo_SMALL_MAGIC_e:
            mDoAud_seStart(JA_SE_MAGIC_POT_GET_S);
            break;
        case dItemNo_LARGE_MAGIC_e:
            mDoAud_seStart(JA_SE_MAGIC_POT_GET_L);
            break;
        case dItemNo_BOMB_5_e:
        case dItemNo_BOMB_10_e:
        case dItemNo_BOMB_20_e:
        case dItemNo_BOMB_30_e:
        case dItemNo_ARROW_10_e:
        case dItemNo_ARROW_20_e:
        case dItemNo_ARROW_30_e:
            mDoAud_seStart(JA_SE_CONSUMP_ITEM_GET);
            break;
        case dItemNo_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());
}