@@ -407,6 +407,18 @@ typedef struct _InMemBallType {
407407 /*0x1BF5*/ u8 frameCountdownAfterLeavingPlant ;
408408} InMemBallType ; // size: 0x1BF8
409409
410+ typedef enum {
411+ /* 0x0 */ PITCHER_ACTION_STATE_NONE ,
412+ /* 0x0 */ PITCHER_ACTION_STATE_TRANSITION = PITCHER_ACTION_STATE_NONE ,
413+ /* 0x1 */ PITCHER_ACTION_STATE_PRE_PITCH ,
414+ /* 0x2 */ PITCHER_ACTION_STATE_WINDUP ,
415+ /* 0x3 */ PITCHER_ACTION_STATE_IN_AIR ,
416+ /* 0x4 */ PITCHER_ACTION_STATE_NO_CONTACT ,
417+ /* 0x5 */ PITCHER_ACTION_STATE_HIT ,
418+ /* 0x6 */ PITCHER_ACTION_STATE_POST_HIT ,
419+ /* 0x7 */ PITCHER_ACTION_STATE_HIT_BY_PITCH ,
420+ } PITCHER_ACTION_STATE ;
421+
410422typedef struct _InMemPitcherType {
411423 /*0x000*/ VecXYZ ballCurrentPosition ;
412424 /*0x00C*/ VecXYZ ballLastPosition ;
@@ -472,7 +484,7 @@ typedef struct _InMemPitcherType {
472484 /*0x138*/ s16 framesSinceFirstEggBounce ;
473485 /*0x13A*/ s16 ballBouncePeakZ ;
474486 /*0x13C*/ s16 warioWaluStarHasPlayedSound ;
475- /*0x13E*/ u8 pitcherActionState ;
487+ /*0x13E*/ E ( u8 , PITCHER_ACTION_STATE ) pitcherActionState ;
476488 /*0x13F*/ u8 AIInd ; // unsure
477489 /*0x140*/ u8 aiLevel ;
478490 /*0x141*/ u8 handedness ;
@@ -890,12 +902,15 @@ typedef struct _PracticeStruct {
890902 /*0x1E1*/ u8 hitVariablesSetIndicator ;
891903 /*0x1E2*/ u8 _1E2 ;
892904 /*0x1E3*/ u8 aiBuntIndicator ; // unsure
893- artificial_padding (0x1e3 , 0x1ef , u8 );
905+ artificial_padding (0x1e3 , 0x1ee , u8 );
906+ /*0x1EE*/ u8 _1EE ;
894907 /*0x1EF*/ u8 rosterID ; // unsure
895908} PracticeStruct ; // size: 0x1f0
896909
897910extern PracticeStruct g_Practice ;
898911
912+ #define ACTIVE_TUTORIAL (g_d_GameSettings.GameModeSelected == GAME_TYPE_PRACTICE && g_Practice.instructionNumber >= 0)
913+
899914extern u8 buntPower [5 ][2 ];
900915
901916extern VecXYZ s_ballCurveData [2 ];
0 commit comments