minigame docs

This commit is contained in:
engineer124
2022-09-29 15:11:03 -04:00
parent 16ea0c48b3
commit 615d945bf9
25 changed files with 587 additions and 512 deletions
+2 -2
View File
@@ -1834,7 +1834,7 @@ s32 Inventory_HasItemInBottle(u8 item);
void Inventory_UpdateBottleItem(PlayState* play, u8 item, u8 btn);
s32 Inventory_ConsumeFairy(PlayState* play);
void Inventory_UpdateItem(PlayState* play, s16 slot, s16 item);
void Interface_SetAButtonDoAction(PlayState* play, u16 action);
void Interface_SetAButtonDoAction(PlayState* play, u16 aButtonDoAction);
void Interface_SetBButtonDoAction(PlayState* play, s16 bButtonDoAction);
void Interface_SetTatlCall(PlayState* play, u16 tatlCallState);
void func_80115844(PlayState* play, s16 arg1);
@@ -1845,7 +1845,7 @@ void Inventory_ChangeAmmo(s16 item, s16 ammoChange);
void Magic_Add(PlayState* play, s16 magicToAdd);
void Magic_Reset(PlayState* play);
s32 Magic_Consume(PlayState* play, s16 magicToConsume, s16 type);
void Interface_SetPerfectMinigame(PlayState* play, s16 rewardType);
void Interface_SetMinigamePerfect(PlayState* play, s16 minigamePerfectType);
void Interface_StartMoonCrash(PlayState* play);
void Interface_Draw(PlayState* play);
void Interface_Update(PlayState* play);
+7 -7
View File
@@ -1051,7 +1051,7 @@ extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE2 D_801BF978;
// extern UNK_TYPE2 D_801BF97C;
// extern UNK_TYPE4 D_801BF980;
// extern UNK_TYPE1 D_801BF988;
// extern UNK_TYPE1 gScreenFillSetupDL;
// extern UNK_TYPE1 D_801BF998;
// extern UNK_TYPE2 D_801BF9B0;
// extern UNK_TYPE1 D_801BF9B4;
@@ -1125,15 +1125,15 @@ extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE1 D_801BFC14;
// extern UNK_TYPE1 D_801BFC40;
// extern UNK_TYPE2 D_801BFC50;
// extern UNK_TYPE2 D_801BFC60;
// extern UNK_TYPE2 sMinigamePerfectType1PrimColorTargets;
// extern UNK_TYPE2 D_801BFC62;
// extern UNK_TYPE2 D_801BFC64;
// extern UNK_TYPE2 D_801BFC6C;
// extern UNK_TYPE2 D_801BFC7C;
// extern UNK_TYPE1 D_801BFC8C;
// extern UNK_TYPE1 sMinigamePerfectType2PrimColorTargets;
// extern UNK_TYPE2 D_801BFC98;
// extern UNK_TYPE2 D_801BFCA8;
// extern UNK_TYPE1 D_801BFCB8;
// extern UNK_TYPE1 sMinigamePerfectType3PrimColorTargets;
// extern UNK_TYPE4 D_801BFCC4;
// extern UNK_TYPE2 sTimerStateTimer;
// extern UNK_TYPE2 sTimerDigits;
@@ -1150,9 +1150,9 @@ extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE1 D_801BFD24;
// extern UNK_TYPE1 D_801BFD2C;
// extern UNK_TYPE1 D_801BFD40;
// extern UNK_TYPE1 D_801BFD54;
// extern UNK_TYPE1 D_801BFD64;
// extern UNK_TYPE2 D_801BFD6C;
// extern UNK_TYPE1 sMinigameCountdownTextures;
// extern UNK_TYPE1 sMinigameCountdownTexWidths;
// extern UNK_TYPE2 sMinigameCountdownPrimColors;
// extern UNK_TYPE1 D_801BFD84;
// extern UNK_TYPE1 D_801BFD8C;
// extern UNK_TYPE1 D_801BFD94;
+38 -21
View File
@@ -545,9 +545,26 @@ typedef enum {
/* 30 */ MINIGAME_STATE_30 = 30
} MinigameState;
typedef enum {
/* 0 */ MINIGAME_PERFECT_TYPE_OFF,
/* 1 */ MINIGAME_PERFECT_TYPE_1,
/* 2 */ MINIGAME_PERFECT_TYPE_2,
/* 3 */ MINIGAME_PERFECT_TYPE_3
} MinigamePerfectType;
typedef enum {
/* 0 */ MINIGAME_PERFECT_STATE_0,
/* 1 */ MINIGAME_PERFECT_STATE_1,
/* 2 */ MINIGAME_PERFECT_STATE_2,
/* 3 */ MINIGAME_PERFECT_STATE_3,
/* 4 */ MINIGAME_PERFECT_STATE_4,
/* 5 */ MINIGAME_PERFECT_STATE_5,
/* 6 */ MINIGAME_PERFECT_STATE_6
} MinigamePerfectState;
typedef struct {
/* 0x000 */ View view;
/* 0x168 */ Vtx* actionVtx;
/* 0x168 */ Vtx* aButtonVtx;
/* 0x16C */ Vtx* beatingHeartVtx;
/* 0x170 */ u8* parameterSegment;
/* 0x174 */ u8* doActionSegment;
@@ -564,7 +581,7 @@ typedef struct {
/* 0x212 */ u16 unk_212;
/* 0x214 */ u16 unk_214;
/* 0x218 */ f32 unk_218;
/* 0x21C */ s16 unk_21C;
/* 0x21C */ s16 bButtonDoActionActive;
/* 0x21E */ s16 bButtonDoAction;
/* 0x220 */ s16 tatlCalling;
/* 0x222 */ s16 unk_222;
@@ -586,11 +603,11 @@ typedef struct {
/* 0x256 */ s16 unk_256;
/* 0x258 */ s16 magicConsumptionTimer; // For certain magic states, 1 unit of magic is consumed every time the timer reaches 0
/* 0x25A */ u8 numHorseBoosts;
/* 0x25C */ u16 unk_25C;
/* 0x25E */ u16 unk_25E;
/* 0x260 */ u16 hbaAmmo;
/* 0x262 */ u16 unk_262;
/* 0x264 */ s16 unk_264;
/* 0x25C */ u16 minigamePoints; // Points to add to the minigame score. Reset to 0 every frame.
/* 0x25E */ u16 minigameHiddenPoints; // Points to add to the secondary set of minigame points not displayed. Reset to 0 every frame.
/* 0x260 */ u16 minigameAmmo;
/* 0x262 */ u16 minigameUnusedPoints; // Associated with other minigame points, unused
/* 0x264 */ s16 screenFillAlpha;
/* 0x266 */ s16 aAlpha;
/* 0x268 */ s16 bAlpha;
/* 0x26A */ s16 cLeftAlpha;
@@ -606,21 +623,21 @@ typedef struct {
/* 0x27E */ u8 unk_27E;
/* 0x27F */ u8 unk_27F;
/* 0x280 */ u8 minigameState;
/* 0x282 */ s16 unk_282;
/* 0x284 */ s16 unk_284;
/* 0x282 */ s16 minigameCountdownAlpha;
/* 0x284 */ s16 minigameCountdownScale;
/* 0x286 */ s16 isMinigamePerfect;
/* 0x288 */ s16 minigameRewardType;
/* 0x28A */ s16 unk_28A[8];
/* 0x29A */ u16 unk_29A[8];
/* 0x2AA */ s16 unk_2AA[8];
/* 0x2BC */ f32 unk_2BC[8];
/* 0x2DC */ f32 unk_2DC[8];
/* 0x2FC */ s16 unk_2FC[4];
/* 0x304 */ s16 unk_304;
/* 0x306 */ s16 unk_306;
/* 0x308 */ s16 unk_308;
/* 0x30A */ s16 unk_30A;
/* 0x30C */ s16 unk_30C;
/* 0x288 */ s16 minigamePerfectType;
/* 0x28A */ s16 minigamePerfectState[8];
/* 0x29A */ u16 minigamePerfectLetterDirection[8];
/* 0x2AA */ s16 minigamePerfectVtxOffset[8];
/* 0x2BC */ f32 minigamePerfectLetterPosX[8];
/* 0x2DC */ f32 minigamePerfectLetterPosY[8];
/* 0x2FC */ s16 minigamePerfectPrimColor[4];
/* 0x304 */ s16 minigamePerfectLetterCount;
/* 0x306 */ s16 minigamePerfectUnused;
/* 0x308 */ s16 minigamePerfectColorTargetIndex;
/* 0x30A */ s16 minigamePerfectColorTimer;
/* 0x30C */ s16 minigamePerfectTimer;
struct {
/* 0x30E */ u8 hGauge;
/* 0x30F */ u8 bButton;
+8 -2
View File
@@ -106,6 +106,12 @@ typedef enum {
/* 1 */ BOTTLE_TIMER_STATE_COUNTING
} BottleTimerState;
typedef enum {
/* 0 */ MINIGAME_STATUS_INACTIVE,
/* 1 */ MINIGAME_STATUS_ACTIVE,
/* 3 */ MINIGAME_STATUS_DONE = 3
} MinigameStatus;
typedef enum {
/* 0 */ HUD_VISIBILITY_IDLE,
/* 1 */ HUD_VISIBILITY_NONE,
@@ -344,9 +350,9 @@ typedef struct SaveContext {
/* 0x3F32 */ s16 magicToConsume; // accumulated magic that is requested to be consumed "magic_used"
/* 0x3F34 */ s16 magicToAdd; // accumulated magic that is requested to be added "magic_recovery"
/* 0x3F36 */ u16 mapIndex; // "scene_ID"
/* 0x3F38 */ u16 minigameState; // "yabusame_mode"
/* 0x3F38 */ u16 minigameStatus; // "yabusame_mode"
/* 0x3F3A */ u16 minigameScore; // "yabusame_total"
/* 0x3F3C */ u16 unk_3F3C; // "yabusame_out_ct"
/* 0x3F3C */ u16 minigameHiddenScore; // "yabusame_out_ct"
/* 0x3F3E */ u8 unk_3F3E; // "no_save"
/* 0x3F3F */ u8 unk_3F3F; // "flash_flag"
/* 0x3F40 */ SaveOptions options;
+1 -1
View File
@@ -480,7 +480,7 @@ s32 Inventory_GetBtnBItem(PlayState* play) {
} else if (gSaveContext.unk_1015 == ITEM_NONE) {
return ITEM_NONE;
} else if (CUR_FORM_EQUIP(EQUIP_SLOT_B) == ITEM_NONE) {
if (play->interfaceCtx.unk_21C != 0) {
if (play->interfaceCtx.bButtonDoActionActive) {
if (play->interfaceCtx.bButtonDoAction != DO_ACTION_ATTACK) {
return play->interfaceCtx.bButtonDoAction;
}
+466 -414
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1484,7 +1484,7 @@ void func_80A97D5C(EnAz* this, PlayState* play) {
player->stateFlags1 |= PLAYER_STATE1_20;
Interface_InitMinigame(play);
gSaveContext.minigameScore = (this->unk_374 & 2) ? 25 : 20;
play->interfaceCtx.minigameState = 1;
play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_START_3;
if ((this->unk_2FA == 1) || (this->unk_2FA == 3)) {
Interface_StartTimer(TIMER_ID_MINIGAME_2, 120);
} else if (gSaveContext.save.weekEventReg[25] & 1) {
@@ -1498,7 +1498,7 @@ void func_80A97D5C(EnAz* this, PlayState* play) {
void func_80A97E48(EnAz* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (play->interfaceCtx.minigameState >= 8) {
if (play->interfaceCtx.minigameState >= MINIGAME_STATE_COUNTDOWN_GO) {
player->stateFlags1 &= ~PLAYER_STATE1_20;
func_80A97EAC(this, play);
}
+1 -1
View File
@@ -800,7 +800,7 @@ void func_80962F4C(EnFu* this, PlayState* play) {
gSaveContext.timerCurTimes[TIMER_ID_MINIGAME_2] = SECONDS_TO_TIMER(0);
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
func_801A3098(NA_BGM_GET_ITEM | 0x900);
Interface_SetPerfectMinigame(play, 1);
Interface_SetMinigamePerfect(play, MINIGAME_PERFECT_TYPE_1);
this->unk_54A = 3;
func_809632D0(this);
}
@@ -2916,22 +2916,23 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) {
EnHorse_PlayWalkingSound(this);
}
if (play->interfaceCtx.hbaAmmo == 0) {
if (play->interfaceCtx.minigameAmmo == 0) {
this->hbaTimer++;
}
sp28 = Audio_IsSequencePlaying(0x41);
EnHorse_UpdateHbaRaceInfo(this, play, &sHbaInfo);
if (((this->hbaFlags & 1) || (this->hbaTimer > 45)) && (sp28 != 1) && (gSaveContext.minigameState != 3)) {
if (((this->hbaFlags & 1) || (this->hbaTimer > 45)) && (sp28 != 1) &&
(gSaveContext.minigameStatus != MINIGAME_STATUS_DONE)) {
gSaveContext.save.cutscene = 0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_64;
}
if (play->interfaceCtx.hbaAmmo) {}
if (play->interfaceCtx.minigameAmmo) {}
if (((play->interfaceCtx.hbaAmmo == 0) || (this->hbaFlags & 2)) && (this->hbaFlags & 4)) {
if (((play->interfaceCtx.minigameAmmo == 0) || (this->hbaFlags & 2)) && (this->hbaFlags & 4)) {
this->hbaFlags &= ~4;
Audio_QueueSeqCmd(0x8041);
}
@@ -122,7 +122,7 @@ s32 func_808F8CCC(EnHorseGameCheck* this, PlayState* play2) {
}
Interface_StartTimer(TIMER_ID_MINIGAME_2, 0);
play->interfaceCtx.minigameState = 1;
play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_START_3;
this->horse1 = (EnHorse*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -1149.0f, -106.0f, 470.0f, 0, 0x7FFF, 0,
ENHORSE_PARAMS(ENHORSE_PARAM_BANDIT, ENHORSE_4));
@@ -212,10 +212,10 @@ s32 func_808F8FAC(EnHorseGameCheck* this, PlayState* play) {
if ((this->unk_168 > 50) && !(this->unk_164 & 2)) {
this->unk_164 |= 2;
} else if ((play->interfaceCtx.minigameState >= 8) && !(this->unk_164 & 1)) {
} else if ((play->interfaceCtx.minigameState >= MINIGAME_STATE_COUNTDOWN_GO) && !(this->unk_164 & 1)) {
this->unk_164 |= 1;
horse->inRace = true;
} else if ((play->interfaceCtx.minigameState >= 8) && !(this->unk_164 & 8)) {
} else if ((play->interfaceCtx.minigameState >= MINIGAME_STATE_COUNTDOWN_GO) && !(this->unk_164 & 8)) {
EnHorse* horse = this->horse1;
horse->inRace = true;
@@ -94,7 +94,7 @@ s32 EnJcMato_CheckForHit(EnJcMato* this, PlayState* play) {
if ((this->collider.base.acFlags & AC_HIT) && !this->hitFlag && (this->actor.colChkInfo.damageEffect == 0xF)) {
this->collider.base.acFlags &= ~AC_HIT;
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
play->interfaceCtx.unk_25C = 1;
play->interfaceCtx.minigamePoints = 1;
this->hitFlag = true;
return 1;
} else {
@@ -284,7 +284,7 @@ void func_80C1410C(EnJgameTsn* this, PlayState* play) {
player->stateFlags1 |= 0x20;
func_801A2BB8(0x25);
play->interfaceCtx.minigameState = 1;
play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_START_3;
Interface_InitMinigame(play);
gSaveContext.save.weekEventReg[90] |= 0x20;
Interface_StartTimer(TIMER_ID_MINIGAME_2, 120);
@@ -294,7 +294,7 @@ void func_80C1410C(EnJgameTsn* this, PlayState* play) {
void func_80C1418C(EnJgameTsn* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (play->interfaceCtx.minigameState == 8) {
if (play->interfaceCtx.minigameState == MINIGAME_STATE_COUNTDOWN_GO) {
func_80C141DC(this);
player->stateFlags1 &= ~0x20;
}
@@ -478,7 +478,7 @@ void func_80C147B4(EnJgameTsn* this, PlayState* play) {
case 0x10A0:
case 0x10A1:
func_801477B4(play);
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
gSaveContext.save.weekEventReg[90] &= (u8)~0x20;
func_80C144E4(this);
@@ -563,14 +563,14 @@ s32 func_80C14BCC(EnJgameTsn* this, PlayState* play) {
if (phi_s3 == this->unk_218) {
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
*this->unk_208[phi_s3] |= OBJLUPYGAMELIFT_DISPLAY_CORRECT;
play->interfaceCtx.unk_25C = 1;
play->interfaceCtx.minigamePoints = 1;
return true;
}
if (*this->unk_208[phi_s3] & OBJLUPYGAMELIFT_IGNITE_FIRE) {
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
*this->unk_208[phi_s3] |= OBJLUPYGAMELIFT_DISPLAY_CORRECT;
play->interfaceCtx.unk_25C = 1;
play->interfaceCtx.minigamePoints = 1;
} else {
*this->unk_208[phi_s3] |= OBJLUPYGAMELIFT_DISPLAY_INCORRECT;
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_ERROR);
@@ -304,7 +304,7 @@ void func_80B269A4(EnKendoJs* this, PlayState* play) {
case 0x272D:
func_801477B4(play);
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
func_80B276C4(this);
func_80B276D8(this, play);
break;
@@ -334,7 +334,7 @@ void func_80B26AFC(EnKendoJs* this, PlayState* play) {
}
if ((this->unk_288 == 0x272E) || (this->unk_288 == 0x272F) || (this->unk_288 == 0x2730)) {
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
}
player->stateFlags1 &= ~0x20;
@@ -621,14 +621,14 @@ void func_80B274BC(EnKendoJs* this, PlayState* play) {
if (this->unk_28E == 1) {
if ((player->meleeWeaponAnimation == PLAYER_MWA_JUMPSLASH_START) ||
(player->meleeWeaponAnimation == PLAYER_MWA_JUMPSLASH_FINISH)) {
play->interfaceCtx.unk_25C = 3;
play->interfaceCtx.minigamePoints = 3;
if (gSaveContext.minigameScore >= 27) {
player->stateFlags1 |= 0x20;
}
} else if (player->meleeWeaponAnimation == PLAYER_MWA_STAB_1H) {
play->interfaceCtx.unk_25C = 2;
play->interfaceCtx.minigamePoints = 2;
} else {
play->interfaceCtx.unk_25C = 1;
play->interfaceCtx.minigamePoints = 1;
}
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
this->unk_28E = 0;
+3 -3
View File
@@ -688,7 +688,7 @@ void EnMa4_HorsebackGameTalking(EnMa4* this, PlayState* play) {
void EnMa4_InitHorsebackGame(EnMa4* this, PlayState* play) {
Player* player = GET_PLAYER(play);
play->interfaceCtx.minigameState = 1;
play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_START_3;
Interface_StartTimer(TIMER_ID_MINIGAME_2, 0);
gSaveContext.save.weekEventReg[8] |= 1;
Interface_InitMinigame(play);
@@ -699,7 +699,7 @@ void EnMa4_InitHorsebackGame(EnMa4* this, PlayState* play) {
void EnMa4_SetupHorsebackGameWait(EnMa4* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (play->interfaceCtx.minigameState == 8) {
if (play->interfaceCtx.minigameState == MINIGAME_STATE_COUNTDOWN_GO) {
this->actionFunc = EnMa4_HorsebackGameWait;
player->stateFlags1 &= ~0x20;
}
@@ -714,7 +714,7 @@ void EnMa4_HorsebackGameWait(EnMa4* this, PlayState* play) {
if (this->poppedBalloonCounter != D_80AC0258) {
D_80AC0258 = this->poppedBalloonCounter;
play->interfaceCtx.unk_25C = 1;
play->interfaceCtx.minigamePoints = 1;
}
if ((gSaveContext.timerCurTimes[TIMER_ID_MINIGAME_2] >= SECONDS_TO_TIMER(120)) ||
@@ -315,11 +315,11 @@ void EnMttag_RaceStart(EnMttag* this, PlayState* play) {
} else {
if (DECR(this->timer) == 60) {
Interface_StartTimer(TIMER_ID_MINIGAME_2, 0);
play->interfaceCtx.minigameState = 1;
play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_START_3;
Audio_QueueSeqCmd(NA_BGM_GORON_RACE | 0x8000);
play->envCtx.unk_E4 = 0xFE;
player->stateFlags1 &= ~0x20;
} else if ((this->timer < 60) && (play->interfaceCtx.minigameState == 8)) {
} else if ((this->timer < 60) && (play->interfaceCtx.minigameState == MINIGAME_STATE_COUNTDOWN_GO)) {
this->timer = 0;
gSaveContext.eventInf[1] |= 1;
this->actionFunc = EnMttag_Race;
+3 -4
View File
@@ -5,7 +5,6 @@
*/
#include "z_en_ot.h"
#include "prevent_bss_reordering.h"
#include "objects/object_ot/object_ot.h"
#include "objects/gameplay_keep/gameplay_keep.h"
@@ -59,9 +58,9 @@ EnOtUnkStruct* func_80B5DF58(EnOtUnkStruct* arg0, u8 arg1, Vec3f* arg2, Vec3s* a
void func_80B5E078(PlayState* play, EnOtUnkStruct* arg1, s32 arg2);
void func_80B5E1D8(PlayState* play, EnOtUnkStruct* arg1, s32 arg2);
static EnOt* D_80B5E880;
static EnOt* D_80B5E884;
static EnOt* D_80B5E888;
EnOt* D_80B5E880;
EnOt* D_80B5E884;
EnOt* D_80B5E888;
const ActorInit En_Ot_InitVars = {
ACTOR_EN_OT,
@@ -325,7 +325,7 @@ void EnSyatekiMan_Swamp_HandleChoice(EnSyatekiMan* this, PlayState* play) {
Message_StartTextbox(play, 0xA31, &this->actor);
this->prevTextId = 0xA31;
if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) {
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
}
this->shootingGameState = SG_GAME_STATE_NOT_PLAYING;
@@ -364,7 +364,7 @@ void EnSyatekiMan_Swamp_HandleChoice(EnSyatekiMan* this, PlayState* play) {
}
if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) {
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
}
this->shootingGameState = SG_GAME_STATE_NOT_PLAYING;
@@ -391,7 +391,7 @@ void EnSyatekiMan_Swamp_HandleNormalMessage(EnSyatekiMan* this, PlayState* play)
play->msgCtx.stateTimer = 4;
player->actor.freezeTimer = 0;
Interface_InitMinigame(play);
play->interfaceCtx.hbaAmmo = 80;
play->interfaceCtx.minigameAmmo = 80;
func_80123F2C(play, 80);
this->shootingGameState = SG_GAME_STATE_RUNNING;
this->actionFunc = EnSyatekiMan_Swamp_StartGame;
@@ -405,7 +405,7 @@ void EnSyatekiMan_Swamp_HandleNormalMessage(EnSyatekiMan* this, PlayState* play)
gSaveContext.save.weekEventReg[63] &= (u8)~1;
gSaveContext.save.weekEventReg[63] &= (u8)~2;
this->actionFunc = EnSyatekiMan_Swamp_Idle;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
this->shootingGameState = SG_GAME_STATE_NONE;
} else {
// Wanna play again?
@@ -425,7 +425,7 @@ void EnSyatekiMan_Swamp_HandleNormalMessage(EnSyatekiMan* this, PlayState* play)
play->msgCtx.msgMode = 0x43;
play->msgCtx.stateTimer = 4;
player->actor.freezeTimer = 0;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
player->stateFlags1 |= 0x20;
this->actionFunc = EnSyatekiMan_Swamp_SetupGiveReward;
EnSyatekiMan_Swamp_SetupGiveReward(this, play);
@@ -632,7 +632,7 @@ void EnSyatekiMan_Town_HandleChoice(EnSyatekiMan* this, PlayState* play) {
if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) {
player->stateFlags3 &= ~0x400;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
}
this->shootingGameState = SG_GAME_STATE_NOT_PLAYING;
@@ -668,7 +668,7 @@ void EnSyatekiMan_Town_HandleChoice(EnSyatekiMan* this, PlayState* play) {
if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) {
player->stateFlags3 &= ~0x400;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
}
this->shootingGameState = SG_GAME_STATE_NOT_PLAYING;
@@ -799,7 +799,7 @@ void EnSyatekiMan_Town_HandleNormalMessage(EnSyatekiMan* this, PlayState* play)
play->msgCtx.msgMode = 0x43;
play->msgCtx.stateTimer = 4;
player->actor.freezeTimer = 0;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
this->actionFunc = EnSyatekiMan_Town_SetupGiveReward;
EnSyatekiMan_Town_SetupGiveReward(this, play);
break;
@@ -1081,7 +1081,7 @@ void EnSyatekiMan_Swamp_RunGame(EnSyatekiMan* this, PlayState* play) {
func_801A2C20();
this->shootingGameState = SG_GAME_STATE_GIVING_BONUS;
if (this->score == 2120) {
Interface_SetPerfectMinigame(play, 2);
Interface_SetMinigamePerfect(play, MINIGAME_PERFECT_TYPE_2);
gSaveContext.timerStates[TIMER_ID_MINIGAME_1] = TIMER_STATE_6;
this->actionFunc = EnSyatekiMan_Swamp_AddBonusPoints;
} else {
@@ -1113,7 +1113,7 @@ void EnSyatekiMan_Swamp_EndGame(EnSyatekiMan* this, PlayState* play) {
gSaveContext.save.weekEventReg[63] &= (u8)~1;
gSaveContext.save.weekEventReg[63] &= (u8)~2;
this->shootingGameState = SG_GAME_STATE_NONE;
gSaveContext.minigameState = 3;
gSaveContext.minigameStatus = MINIGAME_STATUS_DONE;
this->actionFunc = EnSyatekiMan_Swamp_Idle;
return;
}
@@ -1157,7 +1157,7 @@ void EnSyatekiMan_Swamp_AddBonusPoints(EnSyatekiMan* this, PlayState* play) {
sBonusTimer = 0;
} else if (sBonusTimer > 10) {
gSaveContext.timerStopTimes[TIMER_ID_MINIGAME_1] += SECONDS_TO_TIMER(1);
play->interfaceCtx.unk_25C += 10;
play->interfaceCtx.minigamePoints += 10;
this->score += 10;
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
sBonusTimer = 0;
@@ -1350,7 +1350,7 @@ void EnSyatekiMan_Town_RunGame(EnSyatekiMan* this, PlayState* play) {
this->actionFunc = EnSyatekiMan_Town_EndGame;
if (this->score == 50) {
func_801A3098(NA_BGM_GET_ITEM | 0x900);
Interface_SetPerfectMinigame(play, 1);
Interface_SetMinigamePerfect(play, MINIGAME_PERFECT_TYPE_1);
}
}
}
@@ -370,7 +370,7 @@ void EnSyatekiOkuta_Update(Actor* thisx, PlayState* play) {
syatekiMan = (EnSyatekiMan*)this->actor.parent;
if (this->unk_2A6 == 1) {
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
play->interfaceCtx.unk_25C++;
play->interfaceCtx.minigamePoints++;
syatekiMan->score++;
syatekiMan->perGameVar2.octorokHitType = SG_OCTO_HIT_TYPE_RED;
} else {
@@ -165,7 +165,7 @@ s32 func_80B761FC(EnTruMt* this, PlayState* play) {
this->unk_3A4 = 0;
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_KOUME_DAMAGE2);
}
play->interfaceCtx.unk_25E = 1;
play->interfaceCtx.minigameHiddenPoints = 1;
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 25);
return true;
}
@@ -322,7 +322,7 @@ void func_80B76924(EnTruMt* this) {
void func_80B76980(EnTruMt* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (gSaveContext.unk_3F3C >= 10) {
if (gSaveContext.minigameHiddenScore >= 10) {
Message_StartTextbox(play, 0x87F, &this->actor);
gSaveContext.eventInf[3] |= 0x40;
gSaveContext.eventInf[4] |= 1;
+1 -1
View File
@@ -198,7 +198,7 @@ void func_80AC0D2C(EnTwig* this, PlayState* play) {
(s32)(Rand_ZeroOne() * 10.0f) + 20);
}
play_sound(NA_SE_SY_GET_ITEM);
play->interfaceCtx.unk_25C--;
play->interfaceCtx.minigamePoints--;
sRingNotCollected[RACERING_GET_PARAM_FE0(&this->dyna.actor)] = true;
if (sCurrentRing == RACERING_GET_PARAM_FE0(&this->dyna.actor)) {
s32 i;

Some files were not shown because too many files have changed in this diff Show More