@@ -11,26 +11,232 @@ STATE_DEFINE(dAcPumpkin_c, Roll);
1111STATE_DEFINE (dAcPumpkin_c, CarryBeetle);
1212STATE_DEFINE (dAcPumpkin_c, CarryWhip);
1313
14- void dAcPumpkin_c::initializeState_Stick () {}
15- void dAcPumpkin_c::executeState_Stick () {}
16- void dAcPumpkin_c::finalizeState_Stick () {}
17- void dAcPumpkin_c::initializeState_Wait () {}
18- void dAcPumpkin_c::executeState_Wait () {}
14+ void dAcPumpkin_c::initializeState_Stick () {
15+
16+ pumpkinState = pumpkinState & 0xfffffffe ;
17+
18+ }
19+
20+ void dAcPumpkin_c::executeState_Stick () {
21+
22+ fn_19_31B0 ();
23+
24+ bool temp = (mLinkage .mState == 1 && mLinkage .mType == 6 );
25+ if (temp) {
26+ startSound (0x9f4 );
27+ something->vt_0x18 ();
28+ return ;
29+ }
30+
31+ temp = (mLinkage .mState == 1 && mLinkage .mType == 5 );
32+ if (temp) {
33+ startSound (0x9f4 );
34+ something->vt_0x18 ();
35+ return ;
36+ }
37+
38+ temp = (mLinkage .mState == 1 && mLinkage .mType == 7 );
39+ if (temp) {
40+ startSound (0x9f4 );
41+ something->vt_0x18 ();
42+ return ;
43+ }
44+
45+ if (mLinkage .mState == 1 ) {
46+ startSound (0x9f4 );
47+ field_a15 = 0 ;
48+ something->vt_0x18 ();
49+ return ;
50+ }
51+
52+ temp = false ;
53+ if ((field_7ec & 1 ) && field_7d8->GetActor () != nullptr ) {
54+ temp = true ;
55+ }
56+ if (temp && field_a17 != 0 ) {
57+ fn_19_2C20 ();
58+ }
59+
60+
61+
62+ }
63+
64+
65+ void dAcPumpkin_c::finalizeState_Stick () {
66+
67+ mViewClipIdx = -1 ;
68+
69+ }
70+ void dAcPumpkin_c::initializeState_Wait () {
71+
72+ field_0x908 = 0 ;
73+ mActorProperties = mActorProperties | 1 ;
74+ fn_19_2FC0 (10 );
75+ pumpkinState = pumpkinState & 0xfffffffe ;
76+
77+ }
78+ void dAcPumpkin_c::executeState_Wait () {
79+
80+ bool temp = (mLinkage .mState == 1 && mLinkage .mType == 6 );
81+ if (temp) {
82+ // startSound(0x9f4);
83+ something->vt_0x18 ();
84+ return ;
85+ }
86+ temp = (mLinkage .mState == 1 && mLinkage .mType == 5 );
87+ if (temp) {
88+ // startSound(0x9f4);
89+ something->vt_0x18 ();
90+ return ;
91+ }
92+ temp = (mLinkage .mState == 1 && mLinkage .mType == 1 );
93+ if (temp) {
94+ // startSound(0x9f4);
95+ int temp2 = 0 ;
96+ if (field_0x40c && mPosition .y < field_0x744) {
97+ temp2 = 1 ;
98+ }
99+ field_a15 = temp2;
100+ something->vt_0x18 ();
101+ return ;
102+ }
103+ temp = (mLinkage .mState == 1 && mLinkage .mType == 7 );
104+ if (temp) {
105+ // startSound(0x9f4);
106+ something->vt_0x18 ();
107+ return ;
108+ }
109+ if ((field_7ec & 1 ) && field_7d8->GetActor () != nullptr ) {
110+ temp = true ;
111+ }
112+ if (temp && field_a17 != 0 ) {
113+ fn_19_2C20 ();
114+ return ;
115+ }
116+ temp = field_0x40c & 0x800 && mPosition .y < field_0x744;
117+ if (temp) {
118+ if (field_0x40c & 0x80 && mPosition .y + 50 < field_0x744) {
119+ fn_19_2C20 ();
120+ }
121+ return ;
122+
123+ /* if (angleToRotate(mVec3_c::Zero)) {
124+
125+ }*/
126+ mSpeed = mSpeed * 0.93 ;
127+ u32 temp5 = field0x9b8 << 0x10 ;
128+ s32 temp11 = temp5 / 0x32 + temp5 >> 0x1f ;
129+ float temp15 = nw4r::math::SinFIdx (temp11 - (temp11 >> 0x1f ) * 1 .0f * 0.00390625 );
130+ mVelocity .y = (mSpeed * 0.8 + (field_0x744 - mPosition .y ) * fabs (field_0x744)) / (temp15 * 3.0 + 20.0 );
131+ if (mVelocity .y > 20.0 ) {
132+ mVelocity .y = 20.0 ;
133+ }
134+ if (mVelocity .y < -20.0 ) {
135+ mVelocity .y = -20.0 ;
136+ }
137+ if (field_0x9db == 0 ) {
138+ field_0x908 = cM::rndInt (0x200 ) + 0x800 ;
139+ field_0x90C = cM::rndInt (0x100 ) + 0xa00 ;
140+ startSound (0x9a0 );
141+ mRotation .x = (mRotation .x & 0xfffffffe ) >> 0x10 ;
142+ mRotation .y = (mRotation .y & 0xfffffffe );
143+ }
144+ fn_19_31B0 ();
145+ mVelocity .y = 0 ;
146+ sLib::addCalcAngle ((short *) & (mRotation .x ), 0 , 5 , 0x100 );
147+ sLib::addCalcAngle ((short *) &(mRotation .z ), 0 , 5 , 0x100 );
148+ }
149+ }
19150void dAcPumpkin_c::finalizeState_Wait () {}
20- void dAcPumpkin_c::initializeState_CarryGrab () {}
151+ void dAcPumpkin_c::initializeState_CarryGrab () {
152+
153+ fn_19_30C0 ();
154+ fn_19_2FC0 (4 );
155+ mVelocity = mVec3_c ::Zero;
156+ mSpeed = 0 ;
157+ field_0x870 = field_0x870 | 0x400 ;
158+ pumpkinState = pumpkinState & 0xfffffffe ;
159+ unsetActorProperty (AC_PROP_0x1);
160+ field_99c = 0 ;
161+ field_a14 = 0 ;
162+ field_a16 = 0 ;
163+ }
21164void dAcPumpkin_c::executeState_CarryGrab () {}
22- void dAcPumpkin_c::finalizeState_CarryGrab () {}
23- void dAcPumpkin_c::initializeState_StickSword () {}
165+ void dAcPumpkin_c::finalizeState_CarryGrab () {
166+
167+ field_0x870 = field_0x870 & 0xfffffbff ;
168+
169+ }
170+ void dAcPumpkin_c::initializeState_StickSword () {
171+
172+ fn_19_30C0 ();
173+ mVelocity = mVec3_c ::Zero;
174+ field_0x870 = field_0x870 | 0x400 ;
175+ pumpkinState = pumpkinState & 0xfffffffe ;
176+ field0x914[0 ] = 0 ;
177+ field0x914[1 ] = 0 ;
178+ field0x914[2 ] = 0 ;
179+ field0x914[3 ] = 0 ;
180+ field0x914[4 ] = 0 ;
181+ field0x914[5 ] = 0 ;
182+ field0x914[6 ] = 0 ;
183+ field0x914[7 ] = 0 ;
184+ field0x914[8 ] = 0 ;
185+ field0x914[9 ] = 0 ;
186+ field0x914[10 ] = 0 ;
187+ field0x914[11 ] = 0 ;
188+ field0x914[12 ] = 0 ;
189+ field0x914[13 ] = 0 ;
190+ field0x914[14 ] = 0 ;
191+ field0x914[15 ] = 0 ;
192+ field0x914[16 ] = 0 ;
193+ field0x914[17 ] = 0 ;
194+ field0x914[18 ] = 0 ;
195+ field0x914[19 ] = 0 ;
196+ field0x914[20 ] = 0 ;
197+ field0x914[21 ] = 0 ;
198+ }
24199void dAcPumpkin_c::executeState_StickSword () {}
25- void dAcPumpkin_c::finalizeState_StickSword () {}
26- void dAcPumpkin_c::initializeState_Throw () {}
200+ void dAcPumpkin_c::finalizeState_StickSword () {
201+
202+ field_0x870 = field_0x870 & 0xfffffbff ;
203+
204+ }
205+ void dAcPumpkin_c::initializeState_Throw () {
206+
207+ mActorProperties = mActorProperties & 0xfffffffe ;
208+
209+ }
27210void dAcPumpkin_c::executeState_Throw () {}
28211void dAcPumpkin_c::finalizeState_Throw () {}
29- void dAcPumpkin_c::initializeState_Roll () {}
212+ void dAcPumpkin_c::initializeState_Roll () {
213+
214+ field_0x908 = 0 ;
215+ pumpkinState = pumpkinState & 0xfffffffe ;
216+
217+ }
30218void dAcPumpkin_c::executeState_Roll () {}
31219void dAcPumpkin_c::finalizeState_Roll () {}
32- void dAcPumpkin_c::initializeState_CarryBeetle () {}
33- void dAcPumpkin_c::executeState_CarryBeetle () {}
220+ void dAcPumpkin_c::initializeState_CarryBeetle () {
221+
222+ fn_19_30C0 ();
223+
224+ mVelocity .x = mVec3_c ::Zero.x ;
225+ mVelocity .z = mVec3_c ::Zero.z ;
226+ mVelocity .y = mVec3_c ::Zero.y ;
227+ mSpeed = 0 ;
228+ field_0x870 = field_0x870 | 0x400 ;
229+ pumpkinState = pumpkinState & 0xfffffffe ;
230+ mActorProperties = mActorProperties & 0xfffffffe ;
231+
232+ }
233+ void dAcPumpkin_c::executeState_CarryBeetle () {
234+
235+ if (field_0x40c & 0x80 || field_0x3cc->ChkWallHit ()) {
236+ dJEffManager_c::spawnGroundEffect (mPosition , mPolyAttr0 , mPolyAttr1 , field_0x1B4, 0 , 1 .0f , field_0x1B0);
237+ }
238+
239+ }
34240void dAcPumpkin_c::finalizeState_CarryBeetle () {}
35241void dAcPumpkin_c::initializeState_CarryWhip () {}
36242void dAcPumpkin_c::executeState_CarryWhip () {}
0 commit comments